Я строю модель оптимизации смешанных целых чисел, используя OR-Tools с решателем SCIP для распределения материалов с учетом ограничений по упаковке и запасам.
Модель работает правильно для большинства входных данных. Однако для определенных комбинаций параметров решатель не возвращает никакого результата (оптимальное решение не найдено), хотя я ожидаю, что допустимое решение существует.
def allocate_materials(M, N, STOCK, GR, PACK, REQ, ALLOCATION, ALLOWED_MATERIALS):
solver = pywraplp.Solver.CreateSolver("SCIP")
if not solver:
return None
# Upper bounds for decision variables
max_x = max(REQ) // min(PACK) + 2
max_y = max(REQ) + 2
x = {}
y = {}
zz = {}
for i in range(M):
for j in range(N):
x[(i, j)] = solver.IntVar(0, max_x, f"x_{i}_{j}")
y[(i, j)] = solver.IntVar(0, max_y, f"y_{i}_{j}")
zz[(i, j)] = solver.IntVar(0, 1, f"zz_{i}_{j}")
z = solver.IntVar(0, solver.infinity(), "z_sum")
t = solver.IntVar(0, solver.infinity(), "t_sum")
# Each floor can choose at most one package type
for i in range(M):
solver.Add(sum(zz[(i, j)] for j in range(N))
Подробнее здесь: https://stackoverflow.com/questions/798 ... ecific-par
Инструменты OR (SCIP): модель становится невыполнимой/не возвращает решения для определенных наборов параметров. ⇐ Python
Программы на Python
1769410335
Anonymous
Я строю модель оптимизации смешанных целых чисел, используя [b]OR-Tools с решателем SCIP[/b] для распределения материалов с учетом ограничений по упаковке и запасам.
Модель работает правильно для большинства входных данных. Однако [b]для определенных комбинаций параметров решатель не возвращает никакого результата (оптимальное решение не найдено)[/b], хотя я ожидаю, что допустимое решение существует.
def allocate_materials(M, N, STOCK, GR, PACK, REQ, ALLOCATION, ALLOWED_MATERIALS):
solver = pywraplp.Solver.CreateSolver("SCIP")
if not solver:
return None
# Upper bounds for decision variables
max_x = max(REQ) // min(PACK) + 2
max_y = max(REQ) + 2
x = {}
y = {}
zz = {}
for i in range(M):
for j in range(N):
x[(i, j)] = solver.IntVar(0, max_x, f"x_{i}_{j}")
y[(i, j)] = solver.IntVar(0, max_y, f"y_{i}_{j}")
zz[(i, j)] = solver.IntVar(0, 1, f"zz_{i}_{j}")
z = solver.IntVar(0, solver.infinity(), "z_sum")
t = solver.IntVar(0, solver.infinity(), "t_sum")
# Each floor can choose at most one package type
for i in range(M):
solver.Add(sum(zz[(i, j)] for j in range(N))
Подробнее здесь: [url]https://stackoverflow.com/questions/79874206/or-tools-scip-model-becomes-infeasible-returns-no-solution-for-specific-par[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия