Бинарные ограничения Excel Solver (Simplex LP)
Я решаю проблему оптимизации. проблема имеет бинарные ограничения. решатель (во время итерации) устанавливает эти двоичные ограничения в десятичные числа от 0 до 1 (аппроксимируя поиск по градиенту). Я хочу указать решателю, что он должен просто искать по разрывным значениям 0..1.
Есть ли способ сделать это?
В качестве альтернативы, есть ли в OpenSolver алгоритм, который делает это, имитирует симплекс-lp и обеспечивает глобальный оптимум?
самый дешевый способ сделать это - исправить цикл for и перебрать значения. Мне было интересно, есть ли способ сформулировать это так, чтобы нелинейная задача стала линейной.
Благодарю.
1 ответ
Методы GRG Nonlinear и Simplex LP используют метод Branch & Bound, когда сталкиваются с целочисленными ограничениями. Этот метод сначала "ослабляет" целочисленное требование, находит решение, затем фиксирует одно из ограничений на целое и находит новое решение. Смотрите онлайн-документацию Solver.
Это метод поиска методом грубой силы, который может занять значительное время.
Эволюционный метод использует свой собственный алгоритм для работы с целочисленными ограничениями и, как правило, намного быстрее, чем два других метода.
Вы спрашиваете о линеаризации нелинейной задачи - вам нужно предоставить более конкретную информацию, чтобы ответить на этот вопрос (например, каково ваше уравнение? Как вы задали решающую проблему? И т. Д.)