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

Пример: В ресторане готовятся фирменные блюда трех видов (блюдо А, блюдо В и блюдо С) с использованием при приготовлении ингредиентов трех видов (ингредиент 1, ингредиент 2, ингредиент 3). Расход ингредиентов задается таблицей:

Вид ингр. Блюдо А Блюдо В Блюдо С
Ингр. 1
Ингр. 2
Ингр. 3

Стоимость блюд одинакова (100 руб.)

Ежедневно в ресторан поступает 5 кг ингредиента 1 и по 4 кг ингредиентов 2 и 3. Каково оптимальное соотношение дневного производства блюд различного вида, если производственные мощности ресторана позволяют использовать весь запас поступивших продуктов?

Решение:

Пусть х1 – дневной выпуск блюд А; х2 – дневной выпуск блюд В; х3 – дневной выпуск блюд С.

Составим целевую функцию, она заключается в стоимости выпущенных рестораном блюд:

Z = 100*x1 + 100*x2 + 100*x3

Определим имеющиеся ограничения:

  1. 20*х1 + 50*х2 + 10*х3 <=5000; 2. 20*x1 + 0*x2 + 40*x3<=4000; 3. 20*x1 + 10*x2 + 10*x3<=4000

Поскольку количество блюд не может быть отрицательным, еще одно ограничение:

х1 >=0; x2>=0; x3>=0; x1 –целое; х2 – целое; х3 – целое.

В ячейки А2, А3 и А4: дневной запас продуктов – 5000, 4000, 4000. В ячейки С1, D1 и Е1: начальные значения неизвестных х1, х1 и х3 (нули). В ячейках С2:Е4 разместим таблицу расхода ингредиентов (С2 – 20, D2 – 50, Е2 – 10, С3 – 20, D3 – 0, …)

В ячейках В2:В4 укажем формулы для расчета расхода ингредиентов по видам. В ячейке В2:

=$C$1*C2 + $D$1*D2 + $E$1*E2

Затем копируем формулу в ячейку В3 и В4.

В ячейку F1 занесем формулу целевой функции:

=100 * (С1 + D1 + Е1).

Меню Данные > Поиск решения (при отсутствии данной опции следует ее включить в Надстройках).

В поле Установить целевую ячейку – мышью указать F1. Установить переключатель «равной» в положение «максимальному значению». В поле «Изменение ячейки» мышью задать диапазон С1:Е1.

Чтобы определить набор ограничений, - щелкнуть на кнопке Добавить. В поле «Ссылки на ячейку» мышью указать диапазон В2:В4. В качестве условия задать <=.

В поле «Ограничение» мышью задать диапазон А2:А4. ОК. Снова щелкнуть на Добавить. В поле «Ссылки на ячейку» указать С1:Е1. В качестве условия выбрать пункт «цел.».

Щелкнуть на кнопке Выполнить. Установить переключатель «Значения параметров» в положение «Сохранить найденное решение». Ок.

Пример: Туристическая фирма заключил контракт с двумя турбазами: в г. Сухуми и в окрестностных городах, рассчитанных, соответственно, на 200 и 150 человек.

Туристам для осмотра предлагается обезьяний питомник в городе, ботанический сад и поход в горы. Составить маршрут движения туристов так, чтобы это обошлось возможно дешевле, если:

- обезьяний питомник принимает в день 70 человек, ботанический сад – 180 человек, а в горы в один день могут пойти 110 человек;

Стоимость одного посещения выражается таблицей:

Турбаза Обез питомник Ботан сад Поход

Решение: пусть х1 – число туристов из турбазы в Сухуми, посещающих обезьяний питомник; х2 – число туристов из Сухуми, посещающих ботанический сад; х3 – число туристов из Сухуми, отправляющихся в поход; х4 – число туристов из окрестной турбазы, посещающих обезьяний питомник; х5 – туристы из окрестных турбаз, посещающие ботанический сад; х6 – туристы из окрестных турбаз, отправляющихся в поход.

Составим целевую функцию:

Z= 5* x1 + 6*x2 + 20*x3 + 10*x4 + 12*x5 + 5*x6

Определим ограничения:

x1 + x4 <=70; x2 + x5 <=180; x3 + x6 <=110; x1 + x2 + x3 =200; x4 + x5 + x6 = 150

Кроме того, поскольку турист неделим и количество туристов, участвующих в каждом мероприятии, не может быть отрицательным, то:

1) Х1>=0; 2) X2>=0; 3) X3>=0; 4) X4>=0; 5) X5>=0; 6) X6>=0; 7) X1 – целое; 8) X2 – целое; 9) X3 – целое; 10) X4 – целое; 11) X5 – целое; 12)X6 – целое;

На новом рабочем листе в ячейки А2, А3 и А4 внесите дневное количество посетителей различных мероприятий, т.е. числа 70, 180, 110.

В ячейки А5 и А6: количество туристов в обеих гостиницах, т.е. 200 и 150.

В ячейки С1:Н1 занесите начальные значения неизвестных х1,х2, …, х6 (нули).

В диапазон С2:Н6 разместите таблицу коэффициентов основных ограничений:

1,0,0,1,0,0;

0,1,0,0,1,0;

0,0,1,0,0,1;

1,1,1,0,0,0;

0,0,0,1,1,1.

В ячейках В2:В6 укажите формулы для расчета ограничений. В ячейке В2 формула будет иметь вид =$C$1*C2+$D$1*D2+$E$1*E2+$F$1*F2+$G$1*G2+$H$1*H2, остальные формулы получите автозаполнением (копированием).

В ячейку I1 занесите формулу целевой функции =5*С1+6*D1+20*E1+10*F1+12*G1+5*H1.

Меню Данные Поиск решения.

В поле установить целевую ячейкуI1. Переключатель Равной установите в положение минимальному значению (требуется минимальный объем затрат).

В поле Изменяемые ячейки – диапазон С1:Н1.

Чтобы начать определять ограничения щелкните по кнопке Добавить. В поле Ссылка на ячейку укажите диапазон В2:В4. В качестве условия задайте <=. В поле Ограничение задайте диапазон А2:А4. Щелкните ОК. (Дневное количество посетителей не должно превосходить их возможностей).

Опять щелкните на кнопке Добавить. В поле Ссылка на ячейку укажите диапазон В5:В6. В качестве условия задайте =. В поле Ограничение задайте диапазон А5:А6. (дневное количество посетителей мероприятий должно быть равно количеству туристов). Щелкните ОК.

Снова щелкните на кнопке Добавить. В поле Ссылка на ячейку укажите диапазон С1:Н1. В качестве условия задайте >=. В поле Ограничение задайте число 0. Это условие указывает, что число участников мероприятий неотрицательно. Нажмите ОК.

Снова щелкните на кнопке Добавить. В поле Ссылка на ячейку укажите диапазон С1:Н1. В качестве условия выберите пункт цел. Это условие указывает, что турист неделим. Щелкните на ОК.

Щелкните на кнопке Выполнить. В открывшемся окне установите переключатель Сохранить найденное решение. Щелкните ОК.