Решение задачи линейного программирования в MathCAD

Решим задачу линейного программирования с использованием Mathcad.

Автозавод выпускает две модели: “Каприз” и (более дешевую) “Фиаско”. На заводе работает 1000 неквалифицированных и 800 квалифицированных рабочих. Каждому из которых оплачивается 40 часов в неделю. Для изготовления модели “Каприз” требуется 30 часов неквалифицированного и 50 часов квалифицированного труда; для “Фиаско” требуется 40 часов неквалифицированного и 20 часов квалифицированного труда. Каждая модель “Фиаско” требует затрат в размере 500$ на сырье и комплектующие изделия, тогда как каждая модель “Каприз” требует затрат в размере 1500$; суммарные затраты не должны превосходить 900000$ в неделю. Рабочие осуществляющие доставку работают по пять дней в неделю и могу забрать с завода не более 210 машин в день. Каждая модель “Каприз” приносит фирме 1000$ прибыли, а “Фиаско” 500$.

Какой объем выпуска каждой модели порекомендовать для повышения прибыли предприятия?

Описание алгоритма решения задачи

1)    Сначала построим математическую модель задачи.

Пусть x = (X1;X2) какой-то план выпуска моделей исходя из времени их обработки в часах, где:

X1 – количество моделей “Каприз”

X2 – количество моделей “Фиаско”

50*X1 – время работы квалифицированных работников, затраченное на производство модели ”Каприз”,

20*X2 — время работы квалифицированных работников, затраченное на производство модели ”Фиаско”,

30*X1 – время работы неквалифицированных работников, затраченное на производство модели ”Фиаско”,

40*X2 – время работы неквалифицированных работников, затраченное на производство модели ”Каприз”,

500*X2 – Затраты на сырьё для производства модели “Фиаско”,

1500*X1 – Затраты на сырьё для производства модели “Каприз”.

Тогда:

50*X1+20*X2 – Время затраченное квалифицированными работниками на производство двух моделей ”Каприз” и “Фиаско”,

30*X1+40*X2 – Время затраченное неквалифицированными работниками на производство двух моделей ”Каприз” и “Фиаско”,

1500*X1+500X2 – Общие затраты на сырье для производства моделей ”Каприз” и “Фиаско”.

При этом учтём что, отведенное время, средства и возможности доставки не должны превосходить заданных ограничений, в следствии этого получается такое ограничение:

50*X1+20*X2 <= 32000 – время работы квалифицированных работников,

30*X1+40*X2  <= 40000 – время работы неквалифицированных работников,

1500*X1+500*X2 <= 900000 – общие затраты на сырье,

X1+X2<=1050 – возможное количество вывоза моделей с производства,

Xi >= 0, i = 1,2.

F(x) = 1000*X1+500*X2 => max – целевая функция для расчета максимальной прибыли предприятия.

Из этих ограничений получим математическую модель задачи, и она будет иметь вид:

2)    Специальной переменной ORIGIN присваиваем значение 1. Значением ORIGIN является номер первого элемента строки или столбца в матрице. Пол умолчанию ORIGIN=0.

ORIGIN:=1

3)    Вводим исходные данные задачи в матричной форме.

4)    Вводим линейную целевую функцию

5)    Задаем начальные значения переменным задачи и вводим ограничения в матричной форме

6)    Определяем оптимальное решение значение с помощью встроенной функции Maximize.

Эта функция относится к категории встроенных функций Solving и реализует процедуру поиска экстремума функций многих переменных как при наличии, так и при отсутствии ограничений на комбинации последних. Функции в задачах оптимизации могут быть как линейными, так и нелинейными (например, квадратичными). Поэтому при использовании встроенных функций Minimize и Maximize предусмотрен выбор метода оптимизации (например, метод сопряженных градиентов, метод Ньютона для нелинейных функций), для чего необходимо нажать правую кнопку мыши при наведении курсора на функцию Minimize или Maximize

Анализ результатов

Следовательно, нашим оптимальным планом является f(x)= 714300, при х=(342,857;742,857).

Таким образом, максимальная выручка при минимальной затрате составляет 714300, при изготовлении 343 моделей “Каприз” и 743 моделей “Фиаско”.

Рубрика Информационные технологии. Добавьте постоянную ссылку на эту страницу в закладки.