Как можно динамически определить ограничения с помощью симплексного метода?

Я пытаюсь правильно написать модель линейного программирования для своей задачи. Я хочу минимизировать сумму w_i, и у меня есть следующее ограничение:

(a_i+w_i ≤ w_j) XOR (a_j+w_j ≤ w_i)

a_i and a_j are integer constants
w_i and w_j are integer variables

в общем, когда мы пишем стандартную форму системы, у нас есть уравнения, где часть записи представляет собой максимальное или минимальное количество продукта, это количество хорошо определено, но в моей задаче и w_i, и w_j неизвестны, их нужно вычислить по моему ILP, поэтому я не могу определить бюджет b при написании стандартной формы и при составлении первой таблицы, которые соответствуют стандартной форме! пожалуйста, как я могу это сделать?!

Re: Я использую симплексный метод. все переменные целые

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
0
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

(1) Строго говоря, симплекс-метод предназначен только для непрерывных задач.

(2) INEQ1 OR INEQ2 можно сделать, добавив двоичные переменные. Я никогда не видел модели с INEQ1 XOR INEQ2. Я подозреваю, что в вашем случае мы просто можем использовать INEQ1 OR INEQ2.

(3) OR часто моделируется как:

a(i)+w(i) ≤ w(j) + M*δ(i,j)  
a(j)+w(j) ≤ w(i) + M*(1-δ(i,j))
δ(i,j) ∈ {0,1}

Здесь M — это большое М: достаточно большая константа. Часто мы можем ограничить эти ограничения случаем, когда i<j из-за симметрии.

Да, это ИЛИ, я уже добавил двоичные переменные, но проблема в том, что когда я хочу сформулировать таблицу, которая соответствует стандартной форме, w(i) и w(j) должны быть вычислены ILP, так как я могу определить бюджет в моей таблице?!

FifaBen 21.12.2020 13:41

Не знаю, какая у вас "стандартная форма". Это в основном используется в главе 1 учебников, но программные инструменты для моделей MIP обычно более гибкие в том, что они могут принять.

Erwin Kalvelagen 21.12.2020 14:03

для двоичных переменных a,b XOR — это просто «a + b == 1» в качестве ограничения, а OR — «a + b <= 1». (Стандарт для задачи MILP)

creanion 28.08.2022 14:57

Другие вопросы по теме