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

В>Да, можно этот пересечение куба и плоскости (для произвольного 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

Все. Вот такая простая вариация симплекс-метода для гиперкуба получается.
Отредактировано 28.05.2020 21:59 andyp . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.