Информация об изменениях

Сообщение Re[3]: Это линейное программирование или можно как-то проще? от 28.05.2020 21:43

Изменено 28.05.2020 21:59 andyp

Re[3]: Это линейное программирование или можно как-то проще?
Здравствуйте, Ватакуси, Вы писали:

В>Да, можно этот пересечение куба и плоскости (для произвольного N) выразить уравнением?


Это не нужно. Можешь действовать так:

Преобразуй координаты в y_i, чтобы перейти к гиперкубу для ограничений. Тогда неравенства ограничений примут вид
0 ≤ y_i ≤ 1.


Выбери любую вершину, например из всех нулей. Рассчитай в ней целевую функцию . Перебирай соседние N вершин, пока не найдешь вершину, где целевая функция больше. Переходи в нее. Повторяй для N-1 новых соседних вершин. Если во всех соседних вершинах целевая функция не больше, чем в текущей, то максимум найден.

Координаты вершин гиперкуба — вектора из 0 и 1. Соседние вершины получаются изменением одной из координат, например для N = 4 соседями вершины с нулевыми координатами будут

1 0 0 0
0 1 0 0
0 0 1 0
1 0 0 1

Все. Вот такая простая вариация симплекс-метода для гиперкуба получается.
Re[3]: Это линейное программирование или можно как-то проще?
Здравствуйте, Ватакуси, Вы писали:

В>Да, можно этот пересечение куба и плоскости (для произвольного N) выразить уравнением?


Это не нужно. Можешь действовать так:

Преобразуй координаты в y_i, чтобы перейти к гиперкубу для ограничений. Тогда неравенства ограничений примут вид
0 ≤ y_i ≤ 1.


Выбери любую вершину, например из всех нулей. Рассчитай в ней целевую функцию . Перебирай соседние N вершин, пока не найдешь вершину, где целевая функция больше. Переходи в нее. Повторяй для N-1 новых соседних вершин. Если во всех соседних вершинах целевая функция не больше, чем в текущей, то максимум найден.

Координаты вершин гиперкуба — вектора из 0 и 1. Соседние вершины получаются изменением одной из координат, например для N = 4 соседями вершины с нулевыми координатами будут

1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

Все. Вот такая простая вариация симплекс-метода для гиперкуба получается.