
- •1. Для решения ктз.
- •Варианты заданий.
- •Пример выполнения работы
- •Лабораторная работа №2. Поиск кратчайшего пути. Для решения задачи поиска кратчайшего пути на транспортной сети.
- •Варианты заданий.
- •Пример выполнения работы
- •Лабораторная работа №3. Задача о максимальном потоке. Для решения задачи нахождения максимального потока на сети.
- •Варианты заданий.
- •Пример выполнения работы
- •Лабораторная работа №4. Задача дискретного целочисленного программирования Описание работы с программой ldpTechs.
- •Варианты заданий.
- •Пример выполнения работы
- •Лабораторная работа №5. Задача о загрузке рюкзака
- •Лабораторная работа №6. Решение матричной игры ( ) среди смешанных стратегий
- •Варианты заданий.
- •Пример выполнения работы
- •Лабораторная работа №7. Решение игры (2x2) с помощью геометрической интерпретации.
- •Варианты заданий.
Министерство образования и науки Российской Федерации
КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ им. А.Н. ТУПОЛЕВА
_______________________________________________________________
ТЕОРИЯ ПРИНЯТИЯ РЕШЕНИЙ
Методические указания по проведению лабораторных работ
Лабораторная работа №1.
Решение открытой классической транспортной задачи.
1. Для решения ктз.
Для начала работы с программой необходимо запустить файл КТЗ.exe. Сразу после запуска на экране появляется основная форма «Решение КТЗ методом потенциалов» программного комплекса. Все это выглядит следующим образом:
Рис. 1 Рис. 2
В данном окне (рис.2) пользователь должен задать размерность задачи, т.е. ввести количество строк и столбцов соответственно в первую и вторую ячейки, и далее нажать на кнопку «Подтвердить». Если студент не ввел размерность задачи или выбрал количество строк и(или) столбцов, равным «0», то выдается сообщение об ошибке «Проверьте правильность введенных данных»:
Рис. 3
2. Далее на экране появляются таблицы с количеством строк и столбцов, заданным обучаемым:
Рис. 4 Рис. 5
Студенту необходимо ввести в «Рабочую область» (рис.5) исходные данные согласно своему варианту. Если обучаемый ввел правильные данные, то по нажатию кнопки «Принять данные» на экран выдается сообщение «Данные введены правильно!», а исходные данные заносятся в таблицу «Начальные данные».
Рис. 6
В противном случае студент видит сообщение «Проверьте правильность введенных данных!».
3. На следующем шаге происходит определение начального опорного плана:
Рис. 7 Рис. 8
Студент должен нажать кнопку «Определение НОП», после чего ему предлагается ввести значение клетки с минимальной стоимостью перевозки (рис.7). Студент должен ввести соответствующее значение клетки в ячейку и нажать кнопку «Готово», в данном случае «0»:
Рис. 9 Рис. 10
На экран выдается сообщение: «Правильно».
4. Клетка со значением минимальной стоимости перевозки обводится красным цветом, а далее обучаемому требуется нажать кнопку «Определение объема перевозки» (рис.10). После чего студенту нужно ввести максимально возможный объем перевозки в этой клетке в предназначенную для этого ячейку:
Рис. 11 Рис. 12
Если введенное им значение является верным (рис.12), то по нажатию кнопки «Готово» выдается сообщение: «Правильно»
Рис. 13 Рис. 14
Поскольку
,
то вычеркивается столбец №4, в таблицу
«Текущие опорные планы и потенциалы»
заносится текущий опорный план (рис.14).
Далее снова возвращаемся к третьему
шагу. Если студент ввел неправильное
значение клетки,
Рис. 15 Рис. 16
то получает сообщение «Проверьте правильность введенных данных!» (рис.16).
Аналогично для четвертого шага: при неправильном введении значения максимально возможного объема перевозки в этой клетке:
Рис. 17 Рис. 18
Выдается сообщение «Проверьте правильность введенных данных!» (рис.18)
Шаги 3-4 повторяются до тех пор, пока не будут назначены объемы перевозок в (n+m-1) клетках, т.е. не получится некоторый опорный план перевозок.
Рис. 19
Вместо таблицы «Рабочая область» появляется таблица «Ваши начальные данные» с исходными данными студентов.
5. Далее производится проверка опорного плана на оптимальность. Для этого необходимо произвести определение потенциалов, для чего студент должен нажать кнопку «Определение потенциалов»:
Рис. 20 Рис. 21
Обучаемый должен заполнить столбец ui и строку vj соответствующими потенциалами (рис.21), после чего нажать на кнопку «Проверить потенциалы»
Рис. 22 Рис. 23
Если введенные студентом потенциалы соответствуют правильным, то выдается сообщение «Правильно!», в таблицу «Значения дельт» заносятся вычисленные программой автоматически соответствующие значения дельт, а в таблицу «Текущие опорные планы и потенциалы» - потенциалы, введенные обучаемым, в противном случае – сообщение «Проверьте правильность введенных данных!».
6.
На данном шаге студент должен
ответить на вопрос, является ли опорный
план оптимальным. На форме появляются
две кнопки: «Да» и «Нет». Поскольку для
оптимальности опорного плана необходимо
и достаточно существование вектора
двойственных переменных, компоненты
которого удовлетворяют условию:
,
то если в случае (рис.23) студент нажмет
кнопку «Да» - получит сообщение
«Неправильно, так как есть положительные
дельты», а сами клетки с
будут выделены красным цветом. Если
ответит «Нет», получит сообщение «Задача
решена, оптимальный план найден!». Так
как из теоремы следует, что если хотя
бы для одной небазисной переменной
,
то опорный план неоптимален и его
требуется улучшить.
7. На этом шаге
осуществляется переход к лучшему
опорному плану. Студенту нужно выделить
клетку, с которого начинается цикл, т.е.
небазисную клетку (i,j)
с наибольшим
и нажать кнопку «Клетка выделена».
Рис. 24 Рис. 25
Если обучаемый выделит правильную клетку, то на форме появится сообщение «Верно!» (рис25), в противном случае – «Проверьте правильность введенных данных!».
8. Далее студентом выделяются оставшиеся клетки цикла, после чего следует нажатие кнопки «Цикл выделен»:
Рис. 26
Если клетки выделены правильно, появляется сообщение «Правильно!», в противном случае – «Проверьте правильность введенных данных!».
Рис. 27 Рис. 28
В случае правильности
выделения вместо таблицы «Значения
дельт» появится «Текущий опорный план»
с текущими опорными планами из таблицы
«Текущие опорные планы и потенциалы»,
а сам цикл будет обведен красным цветом.
В клетке
ставится знак «+», а далее поочередно в
вершинах цикла ставятся «-», «+»… (рис.28)
10. Студенту
предлагается ввести величину Q=min{
},
которая будет прибавляться ко всем
объемам перевозок, отмеченных знаком
«+», и вычитаться от всех объемов
перевозок, отмеченных знаком «-».
Рис. 29 Рис. 30
Если обучаемый ввел правильное значение, то по нажатию кнопки «θ введена» выдается сообщение «Правильно!» (рис.30), на форме выводится «tetta=…» и полученный новый опорный план записывается в новой распределительной таблице «Текущий опорный план», в противном случае – «Проверьте правильность введенных данных!».
11. Далее по нажатию на кнопку «Переходим к лучшему плану»:
Рис. 31 Рис. 32
программа автоматически осуществляет переход к лучшему опорному плану, рисует цикл в соответствующей таблице и выводит соответствующее значение θ (рис.32) и т.д. пока не получит оптимальный опорный план:
Рис. 33 Рис. 34
После того как найдено решение задачи на форме появляется общее количество совершенных студентом ошибок (рис.34).