H+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+M+H+M+K+K+K+M+K+H+M+P+K+H+M+K+M+K+K+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+H+M+P+K+H+M+K+K+K+M+K+Н+M+P+M+K=0,4+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+1,35+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+1,35+0,2+0,2+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+1,35+0,2=165,95 с.
Рассчитаем время, которое требуется пользователю на исправление ошибки.
Ø нажатие на необходимый переключатель (сообщение об ошибке): P K;
Ø удаление четырех символов ошибочного ввода: H K K K K;
Ø ввод четырех символов на место ошибочного ввода: K K K K;
Ø нажатие на необходимый переключатель: H P K.
В соответствии с правилом 0:
M P M K H M K M K M K M K M K M K M K M KH M P M K
Далее применим правило 1 и правило 4:
M P K H M K M K M K M K M K M K M K M K H M P M K
Далее применим правило 2:
M P K H M K K K K K K K M KH M P M K
Правила 3, 5 не применяются.
Заменим символы операторов на соответствующие временные интервалы:
M+P+K+H+M+K+K+K+K+K+K+K+M+K+H+M+P+M+K=1,35+1,1+0,2+0,4+1,35+0,2+0,2+0,2+0,2+0,2+0,2+0,2+1,35+0,2+0,4+1,35+1,1+1,35+0,2=11,75 с.
Т.к. решение задачи в 80% случаев, при вводе данных, производится без ошибок и в 20% случаев с ошибками, то время, требуемое на решение задачи, составит:
0,8*165,95+0,2*(165,95+11,75)=168,3 с.
3 Реализация программного модуля
3.1 Код программы
Код программы представлен в приложении А.
4 Тестирование программного модуля
Проведем тестирование программного модуля на следующем примере.
Тест №1
Рисунок 9 – Условие задачи
Решение задачи на сети начинается с построения начального опорного плана.
Опорный план должен удовлетворять следующим требованиям:
1) все запасы должны быть распределены, а потребности удовлетворены:
80+20+50=60+30+10+50,
150=150.
2) к каждой вершине должна подходить или выходить из нее хотя бы одна стрелка(рисунок 10);
3) общее количество стрелок должно быть на единицу меньше числа вершин n-1=m: 7-1=6 (рисунок 10);
4) стрелки не должны образовывать замкнутый контур(рисунок 10).
Далее следует проверить план на оптимальность.
Для этого вычисляем потенциалы(рисунок 11) и оценки незагруженных ребер. План является оптимальным:
IV-V:1-(1-1)=1,
III-VI:1-(1-0)=0,
IV-VII:1-(1-1)=1.
Рисунок 10 – Тест№1
Рисунок 11 – Тест№1
Результат ,который получили в ходе решения задачи вручную, совпадает с результатом выполнения решения с помощью программы(рисунок 12).
Рисунок 12 – Результат выполнения программы
В данной курсовой работе был изучена транспортная задача в сетевой постановке, нахождение алгоритмов решения, и реализация их на языке программирования. Было произведено тестирование разработанного программного модуля при различных входных данных и типах решений. Полученные результаты показывают, что программа работает правильно, так как они совпали с рассчитанными вручную.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.