Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Квадратичное программирование

Input file name: standard input

Output file name: standard output

Time limit: 3 s

Memory limit: 256 MB

В данной задаче необходимо реализовать итерационный алгоритм для решения задачи квадратичного программирования.

В задаче дана матрица A, вектор b, вектор c и симметричная положительно полуопределенная матрица D. Также вам известен опорный план {x, Jоп, J*​}.

Необходимо вывести оптимальный план для заданных соотношений:

Ax = b, x ≥ 0

c′x + 1/2x′Dx → min⁡

Input

В первой строке входных данных находится два целых числа m, n, k (1 ≤ m ≤ k ≤ n ≤ 100) — размер матрицы A, m строк по n столбцов, а также k - количество индексов расширенного базиса.

В следующих m строках задано по n целых чисел aij (−500 ≤ aij ​≤ 500) — значения элементов матрицы A.

В следующей строке задано m целых чисел bi​ (−500 ≤ bi​ ≤ 500) — значения элементов вектора b.

В следующей строке задано m целых чисел ci​ (−500 ≤ ci​ ≤ 500) — значения элементов вектора c.

В следующих n строках задано по n целых чисел dij​ (−500 ≤ dij​ ≤ 500) — значения элементов матрицы D.

В следующей строке задано n дробных чисел xi​ ​(0 ≤ xi​ ≤ 500) — значения элементов плана x.

В следующей строке задано m целых чисел j​опi​ (1 ≤ j​опi​​ ≤ n) — значения индексов опорного базиса.

В следующей строке задано k целых чисел j​i​ (1 ≤ j​i​ ​​≤ n) — значения индексов расширенного базиса.

Output

В первой строке выходных данных необходимо вывести следующее:

Если задача не ограничена выведите "Unbounded"

Иначе выведите "Bounded"

На второй строке выходных данных, в случае если ответ существует, необходимо вывести n дробных чисел через пробел — значения вектора x.

Абсолютная или относительная погрешность не должны превышать 10−6.