Решатель Excel Solver портит мою оптимизацию - PullRequest
0 голосов
/ 04 мая 2018

Я настроил проблему оптимизации, но, должно быть, я что-то не так делаю, и я мог бы использовать вашу помощь. У меня три фирмы: альфа, браво, чарли. Каждый из них выполняет три задания: фрезерование, проверка, сверление. Каждому из них требуется разное количество минут для выполнения каждой задачи. Альфа требует 12 минут для фрезерования, 5 минут для осмотра и 10 минут для бурения. Браво требует 10 минут на фрезерование, 4 на осмотр и 8 на сверление. Чарли требуется 8 для мельницы, 4 для проверки и 16 для тренировки. После того, как каждая фирма выполнит все эти задачи, они получат определенную прибыль, Альфа заработает 2,40 доллара, Браво заработает 2,50 доллара, а Чарли заработает 3 доллара. У всех трех фирм есть максимально отведенное время 1200 минут на фрезерование, 900 на проверку и 1440 на бурение. Цель состоит в том, чтобы максимизировать прибыль этих трех фирм. Я настроил его так, чтобы суммы задач забирались из доступного оставшегося времени при изменении решателем. Я также установил ограничения в решателе, чтобы ограничить каждую задачу выделенным временем, разрешенным для каждой задачи. Я, должно быть, упускаю важный шаг, потому что он продолжает пытаться максимально увеличить отведенное время для отдельной фирмы, не принимая во внимание альтернативные издержки других фирм или что-то в этом роде. Пожалуйста помоги! (показано на фотографиях)

Данные

Solver

После выполнения Солвера

Ответы [ 2 ]

0 голосов
/ 05 мая 2018

Я только что попробовал это, и я получил другой ответ, поскольку я сделал предположение, что для получения прибыли компания должна завершить процесс фрезерования, затем осмотреть, затем сверлить, и как только все будут завершены, то это 1 единица для получения прибыли - надеюсь, что это действительно.

Но если нет, то этот макет может вам все равно помочь. Обратите внимание, что я установил это как линейную модель для решателя, а также обратите внимание на использование целых и неотрицательных значений.

enter image description here

Все равно было весело!

0 голосов
/ 04 мая 2018

Я изменил логику немного по-другому, чтобы учесть минимальную единицу:

enter image description here

UNITS часть - это переменные ячейки. Поскольку конечный произведенный блок будет минимальным из этих ячеек, формула E9 будет =MIN(B9:D9) и скопирована.

ВРЕМЯ часть умножается на Единицы времени и Единицы . Таким образом, формула B14 равна =B9*B2 и скопирована вниз и вправо.

I9:I11 - доход, рассчитанный путем умножения заработанной единицы на минимальные единицы

I12 - это наша общая прибыль и наша объективная ячейка.

Пожалуйста, будьте осторожны с ограничениями, так как, если вы не установите целочисленное ограничение, поиск решения становится более сложным, и, конечно, наши единицы должны быть целочисленными в любом случае.

А также заполните B9:D11 ячейки некоторыми значениями, такими как 100, поскольку в противном случае итерация не начинается правильно, и решатель заканчивается очень маленькой целевой ячейкой.

...