Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика 2 Решение ЗЛП.doc
Скачиваний:
3
Добавлен:
15.11.2019
Размер:
1.84 Mб
Скачать

Решение.

Этап 1. Выполнен - модель задана.

Этап 2.

  1. Подготовим форму для ввода условий задачи (рис 6).

Зарезервированы ячейки: в3:с3 – для оптимальных значений управляющих переменных ,

D5- для оптимального значения целевой функции.

  1. Введем исходные данные в созданную форму (рис.7.)

Рис. 6. Форма для ввода данных.

Рис 7. Данные введены.

  1. Введем зависимость для целевой функции

  • Курсор в ячейку D5. (Обозначим через - один щелчок левой кнопкой мыши).

  • Курсор на кнопку Мастер функций. .

  • На экране диалоговое окно Мастер функций шаг 1 из 2.

  • В окне Категория выбрать Математические.

  • В окне Функции выбрать СУММПРОИЗВ.

  • Готово . На экране появиться диалоговое окно СУММПРОИЗВ, показанное на рис. 8.

Рис 8. Ввод формулы для вычисления целевой функции.

  • Курсор в поле Массив 1 : ввести В3:С3. Во все диалоговые окна адреса удобно вводить не с клавиатуры, а протягиванием мыши (не отпуская левой кнопки) по ячейкам, адреса которых следует указать в этом поле. Чтобы на адресах установить знак $ нажмите на клавиатуре кнопку . В результате в поле Массив 1 будут указаны адреса $В$3:$С$3.

  • Курсор в поле Массив 2 : ввести В4:С4.

  • Готово На экране: в ячейку d5 введена формула вычисления целевой функции (Рис. 9.)

Рис. 9. Ввод формулы в ячейку целевой функции.

4. Введем зависимости, стоящие в левых частях ограничений. Это можно сделать так же, как и для целевой функции через Мастер функций:

  • Курсор в ячейку D9.

  • Курсор на кнопку Мастер функции / Математические / СУММПРОИЗВ.

  • В поле Массив 1 ввести В3:С3. Чтобы на адресах установить знак $ нажмите на клавиатуре кнопку . В результате в поле Массив 1 будут указаны адреса $В$3:$С$3.

  • В поле Массив 2 ввести В9:С9.

  • Готово

В пустой ячейке D9 появляется посчитанное значение 0 (ячейки В3:С3 пустые - значения переменных равны 0).

В ячейку D10 формулу можно ввести аналогично, или скопировать формулу из ячейки D9. На этом ввод зависимостей закончен (Рис. 10).

После копирования формул обязательно проверьте адреса!

Замечание: так как во всех зависимостях надо ссылаться на изменяемые ячейки В3:С3, для них использованы абсолютные адреса.

Рис. 10. Ввод зависимостей.

Этап 3. Запуск Поиск решений

После выбора команд Поиск решения появится диалоговое окно Поиск решения (Рис. 11)

  • Назначение целевой ячейки: курсор в поле Установить целевую ячейку. . Курсор в ячейку D5. .

  • Ввести направление целевой функции: максимальному значению.

  • Ввести адреса искомых переменных: курсор в поле Изменяя ячейки. . Выделить мышью ячейки В3:C3.

Рис. 11. Подготовка Поиска решения.

  • Ввести ограничения:

    • курсор в поле Ограничения . Выбрать режим Добавить . Появляется диалоговое окно Добавление ограничений, как показано на рис. 12.

Рис. 12. Ввод ограничений.

    • курсор в поле Ссылка на ячейку

    • выбрать мышью ячейки D9:D10

!!! Обратите внимание: указываются адреса ячеек, содержащих формулу.

    • ввести знак ограничения <=

    • курсор в правое окно Ограничение .

    • указать мышью адреса F9:F10

    • если ввод ограничений закончен, выберете , если

надо ввести другие ограничения, то Добавить.

В результате этих действий экран будет выглядеть, как представлено на рис 13.

Рис 13. Введены все условия для решения задачи.

      • Выбрать параметры модели: рис 4.

Этап 4. Выполнить.

На экране диалоговое окно Результат поиска решения.(рис. 14.)

Рис. 14. Решение найдено.

В результате решения получен ответ: максимальное значение целевой функции составит 1810,5 при значениях переменных и .

Задача 2. Решение транспортной задачи в среде EXCEL

На трех станциях отправления имеется соответственно 30, 50, и 20 ед. однородного груза, который нужно доставить в четыре пункта назначения согласно их потребностям. Эти данные, а также стоимость перевозки единицы груза от каждой станции отправления к каждому пункту назначения указаны в таблице. Составить план перевозок грузов, чтобы затраты на эти перевозки были минимальными.

Пункты отправления

Запасы груза

Пункты назначения

30

1

8

2

3

50

4

7

5

1

20

5

3

4

4

Потребности

15

35

40

30

Решение.

Этап 1.

Часто условие транспортной задачи оформляют матрицей:

1

8

2

3

30

4

7

5

1

50

5

3

4

4

20

15

35

40

30

Построим математическую модель транспортной задачи.

1. «Составить план перевозок грузов» - значит определить сколько, от куда и куда надо перевезти груза, чтобы достичь поставленной цели - «затраты на эти перевозки были минимальными». Введем управляющие переменные: - количество груза, перевозимого из пункта в пункт ( ).

2. Стоимость этой перевозки составит . Тогда целевая функция - суммарные затраты, связанные с реализацией всего плана перевозок – запишется выражением:

в общем виде , где

в нашей задаче

  1. Для построения системы ограничений проверим, является ли задача сбалансированной.

Суммарная мощность поставщиков ед

Суммарная мощность потребителей

Следовательно, условие сбалансированности не выполнено.

4. Запишем систему ограничений:

По потребителю: мощности поставщиков меньше мощности потребителей, следовательно, кто-то из потребителей получит груза меньше, чем его потребность .

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

Аналогично строятся ограничения по другим потребителям. Так как в задаче заранее не оговаривается, потребности какого потребителя не будут удовлетворены, знак поставим в ограничениях по всем потребителям. Получим систему ограничений по потребителю:

По поставщику: весь имеющийся на станции отправления груз будет вывезен (т.е. ):

;

Прямые ограничения .

Этап 2.

1. Подготовим форму для ввода исходных данных (Рис 15.),

В нашем примере матрица затрат по доставке груза с конкретной станции отправления каждому потребителю вводится в ячейки блока В3:E5. В ячейках В6:E6 указываются потребности в пунктах назначения , мощности поставщиков записаны в блоке F3:F5.

Рис. 15 Ввод исходных данных.

2. Зарезервируем изменяемые ячейки, в которых после решения задачи будет находиться оптимальный план перевозок . Размерность этого массива обязательно должна совпадать с размерностью матрицы затрат: выделим блок ячеек I3:L5 (можно ввести в эти ячейки «1» ) (рис. 16).

Рис 16. Создание формы для ввода условий задачи.

  1. Введем зависимость для целевой функции (рис. 17). Оптимальное значение целевой функции будет помещено в ячейке В8:

    • Курсор в ячейку В8 .

    • Мастер функций / Математические / СУММПРОИЗВ (В3:E5; I3:L5)

Рис. 17 Ввод зависимости для целевой функции

  1. Введем зависимости ограничений, стоящие в левых частях ограничений.

- вводим условия реализации мощностей поставщиков (рис 18.):

  • Курсор в ячейку М3.

  • Мастер функций / Математические / СУММ (I3:L3)

  • Курсор в ячейку М3.

  • Растянуть (копировать) ячейку М3 в ячейки М4 и М5.

Рис. 18. Ввод зависимостей ограничений по поставщикам.

- вводим зависимостей ограничений по потребителям (рис. 19):

  • курсор в ячейку I6. ;

  • Мастер функций / Математические / СУММ (I3:I5)

  • Курсор в ячейку I6.

  • Растянуть (копировать) ячейку I6 в ячейки J6, K6 и L6.

Рис. 19. Ввод зависимостей ограничений по потребителям.

На этом ввод зависимостей закончен.

Этап 3. Запуск программы Поиск решений

После выбора команд Поиск решения появится диалоговое окно Поиск решения.

  • Назначение целевой ячейки: курсор в поле Установить целевую ячейку. . Левой кнопкой мыши щелкнуть на ячейке В8.

  • Ввести направление целевой функции: минимальному значению.

  • Ввести адреса искомых переменных: курсор в поле Изменяя ячейки. . Выделить мышью адреса ячеек I3:L5.

  • Ввести ограничения:

    • курсор в поле Ограничения . Выбрать режим Добавить .

    • курсор в поле Ссылка на ячейку

    • выбрать мышью ячейки I6:L6

    • ввести знак ограничения <=

    • курсор в правое окно Ограничение .

    • указать мышью адреса В6:E6

Остальные ограничения ввести аналогично. В результате этих действий окно Поиск решений будет выглядеть, как представлено на рис 20.

Рис. 20. Введены все ограничения.

      • Выбрать параметры модели: рис 4.

Этап 4. Выполнить.

На экране диалоговое окно Результат поиска решения (рис.18.) .

Рис.21. Решение найдено.

Найденный план перевозок означает, что общая стоимость перевозок составит 235 ден.ед., если

ед. груза перевести со станции 1 потребителю 3;

ед. груза перевести со станции 2 потребителю 1;

ед. груза перевести со станции 2 потребителю 3;

ед. груза перевести со станции 2 потребителю 4;

ед. груза перевести со станции 3 потребителю 2.

Неудовлетворены будет потребители и , т.к. их потребности составляют 35 и 40 ед. груза соответственно (ячейки С6 и D6), а получат они 20 и 35 ед. (ячейки J6 и К6). Остальные потребители удовлетворены полностью.

Задача 3. Решение задачи о назначениях в среде Excel.

Известна матрица эффективности. Осуществить назначение продавцов по торговым точкам для достижения максимального объема продаж.

Прода-

вец

средний дневной объем продаж продуктов по торговым точкам, у.е.

56

60

58

63

35

38

-

45

40

42

47

45

62

70

68

67

(назначение продавца на торговую точку недопустимо по медицинским показаниям, т.е. в матрице эффективностей знаком «-» проставлен запрет назнвчений).

Решение.

Этап 1.

Построим математическую модель задачи о назначениях.

1. Введем управляющие переменные:

- факт назначения ресурса на работу :

, если кандидат назначен на работу ,

, если кандидат не назначен на работу .

2. Объем продаж -го продавца на -ой торговой точке равны , , .

Функция цели - объем продаж по всем продавцам и всем торговым точкам - определяется выражением:

, или

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

4. Построим систему ограничений.

По продавцам: каждый продавец будет назначен только на одну торговую точку, т.е. сумма назначений первого продавца ( ) будет равна 1. Аналогично для других продавцов. Получим систему ограничений:

или

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

, или

Добавим ограничение - двоичные переменные.

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

Этап 2.

1. Подготовим форму для ввода исходных данных (Рис. 22.).

В нашем примере матрица эффективности назначений продавцов по торговым точкам вводится в ячейки блока В3:E6.

Зарезервированы изменяемые ячейки H3:K6 - для создания матрицы назначений (размерность матрицы назначений должна совпадать с размерностью матрицы эффективности). В этих ячейках будут находиться оптимальные значения управляющих переменных .

Рис. 22. Создание формы для ввода условий задачи.

2. Введем зависимость для целевой функции (рис. 23).

Оптимальное значение целевой функции будет помещено в ячейке В8

  • Курсор в ячейку В8 .

  • Мастер функций / Математические / СУММПРОИЗВ (В3:E5; I3:L5)

Рис. 23 Ввод зависимости целевой функции

2. Введем зависимости ограничений (рис 24.).

- вводим условия по продавцам:

  • курсор в ячейку L3. ;

  • Мастер функций / Математические / СУММ (H3:K3)

  • Скопировать ячейку L3 в L4, L5 и L6.

- вводим условия удовлетворения запросов по торговым точкам:

  • курсор в ячейку Н7. ;

  • Мастер функций / Математические / СУММ (Н3:Н6);

  • Скопировать ячейку Н7 в I7, J7 и K7.

Рис 24. Ввод формул для вычисления левых частей ограничений.

Этап 3. Запуск программы Поиск решений

  • Назначение целевой ячейки: курсор в поле Установить целевую ячейку. Левой кнопкой мыши щелкнуть на ячейке В8.

  • Ввести направление целевой функции: максимальному значению.

  • Ввести адреса искомых переменных: курсор в поле Изменяя ячейки. . Выделить мышью ячейки Н3:К6.

  • Ввести ограничения:

    • курсор в поле Ограничения . Выбрать режим Добавить .

    • курсор в поле Ссылка на ячейку

    • выбрать мышью ячейки в L3: L6

    • ввести знак ограничения =

    • курсор в правое окно Ограничение .

    • Ввести 1

    • Выбрать режим Добавить

    • курсор в поле Ссылка на ячейку

    • выбрать мышью ячейки в Н7: К7

    • ввести знак ограничения =

    • курсор в правое окно Ограничение .

    • Ввести 1

    • Добавим ограничение - двоичные переменные .

В результате окно Поиск решения будет выглядеть как показано на рисунке:

      • Выбрать параметры модели: рис 4.

Этап 4. Выполнить (рис.25.).

На экране диалоговое окно Результат поиска решения.

Рис.25. Решение найдено.

Найденный план назначений означает, что суммарный объем продаж будет максимальным и составит 218 у.е., если:

- продавец назначен на торговую точку ;

- продавец назначен на торговую точку ;

- продавец назначен на торговую точку ;

- продавец назначен на торговую точку .

Все ограничения при этом выполнены.