- •Содержание
- •Введение
- •1 Постановка задачи оптимизации закупки топлива авиакомпанией
- •1.1 Качественное описание задачи
- •1.2 Концептуальная модель задачи
- •1.3 Математическая постановка задачи
- •2 Алгоритмизация решения задачи оптимизации закупки топлива авиакомпанией
- •2.1 Методы нахождения опорного и оптимального решения транспортной задачи
- •2.2 Описание венгерского метода нахождения оптимального плана
- •2.3 Описание алгоритма нахождения опорного плана методом северо-западного угла
- •2.4 Описание алгоритма нахождения оптимального плана распределительным методом
- •2.5 Проектирование сценария диалога
- •2.6 Описание структур данных
- •2.7 Описание программной системы «Оптимизация закупки топлива авиакомпанией»
- •2.8 Структурная схема сценария диалога и описание его программной реализации
- •2.9 Структурная схема алгоритмов метода северо-западного угла и распределительного и описание их программной реализации
- •2.10 Структурная схема алгоритмов ведения файловых архивов, графического представления результатов и их программная реализация
- •3. Численные эксперименты
- •3.1 Ручная реализация метода северо-западного угла и распределительного
- •3.2 Ручная реализация венгерского метода
- •3.3 Машинные эксперименты с программной системой
- •3.4 Качественная интерпретация полученных результатов
- •Заключение
2.10 Структурная схема алгоритмов ведения файловых архивов, графического представления результатов и их программная реализация
Результаты вычислений выдаются программой в виде текста по следующей схеме:
Количество итераций=3
Количество посчитанных циклов=49
Матрица перевозок:
12 14 8 0 0 0 0 0 0
0 22 0 0 0 0 0 0 0
4 0 0 5 17 14 24 9 11
Общая стоимость перевозки=3902
Шрифт текста: Courier New; 8,25pt – выбран для предотвращения смещения таблицы. Максимальная ширина страницы, при которой отображение производится адекватно – восемь столбцов. Для адекватного просмотра матриц большего размера, её нужно сохранить. При нажатии на кнопку «Сохранить результат» выходит стандартный диалог сохранения файлов Windows. При сохранении текст ответа сохраняется в первозданном виде в формате .txt
Для удобства повторных расчётов были введены функции сохранения и загрузки исходных данных. При нажатии на кнопку «Сохранить результат» выходит стандартный диалог сохранения файлов Windows. При сохранении начальные условия сохраняются в виде текста в формате .txt. Структура построения файла начальных условий имеет вид:
<Количество строк матрицы стоимостей>\n
<Матрица стоимостей (Содержимое одноимённого поля)>…
<Количество поставщиков>\n
<Запасы поставщиков (Содержимое поля «Поставщики»)>…
<Количество потребителей>\n
<Потребности потребителей (Содержимое поля «Потребители»)>…
Пример:
2
8 7 6 5 4 3 2 1
1 2 3 4 5 6 7 8
2
25
35
8
8
12
10
2
5
3
7
13
При нажатии кнопки «Загрузить НУ» открывается стандартный диалог открытия файла, причём если будет произведена попытка открыть файл со структурой, отличной от показанной ранее, будет выдана ошибка. В случае открытия именно архивного файла данные будут успешно введены и показаны в соответствующих полях ввода.
3. Численные эксперименты
3.1 Ручная реализация метода северо-западного угла и распределительного
Решение транспортной задачи, представленной данными из 1.1.
Метод северо-западного угла:
i=1, j=1;
x11=min(a1,b1)=min(5,10)=5;
a1=5-5=5;
b1=10-5=5;
a1=0 => i=2;
x21=min(a2,b1)=min(18,5)=5;
a2=18-5=13;
b1=5-5=0;
b1=0 => j=2;
x22=min(a2,b2)=min(13,40)=13;
a2=0;
b2=27;
a2=0 => i=3;
x32=min(a3,b2)=min(30,27)=27;
a3=3;
b2=17;
b2=0 => j=3;
x33=min(a3,b3)=min(3,30)=3;
a3=0;
b3=27;
a3=0 => i=4;
x43=min(a4,b3)=min(12,27)=12;
a4=0;
b3=15;
a4=0 => i=5;
x53=min(a5,b3)=min(60,15)=15;
a5=45;
b3=0;
b3=0 => j=4;
x54=min(a5,b4)=min(45,55)=45;
a5=0;
b4=10;
a5=0 => i=6;
x64=min(a6,b4)=min(35,10)=10;
a6=25;
b4=0;
b4=0 => j=5;
x65=min(a6,b5)=min(25,25)=25;
i=6, j=5, количество базисных переменных = 10 => переход на этап распределительного метода;
Опорный план имеет вид:
Стоимость плана: F=3657
Распределительный метод:
В данной курсовой работе будет рассмотрен только 1-я итерация решения, так как для данных начальных условий производится вычисление 250 циклов пересчёта в течение 17 итераций.
Цикл х12-х22-х21-х11
Цена цикла: γ12=с12-с22+с21-с11=35-27+18-20=6 => Переход к следующему циклу.
Цикл х13-х33-х32- х22-х21-х11
Цена цикла: γ13=с12-с33+с32-с22+с21-с11=-34-23+19-27+18-20=1 => Переход к следующему циклу.
Цикл х14-х54-х53- х33-х32- х22-х21-х11
Цена цикла: γ12=с12-с22+с21-с11=6 => Переход к следующему циклу.
Цикл х13-х33-х32- х22-х21-х11
Цена цикла: γ14=с12-c54+c53-с33+с32-с22+с21-с11=-27-15+19-23+19-27+18-20=-2 => Производится переход по циклу пересчёта.
K=min(x54,x33,x22,x11)=min(45,3,13,5)=3.
Тогда модифицированный план имеет вид:
Стоимость плана: F1= F-k*|γ14|=3657-6=3651;
И результате расчёта остальных 247 циклов оставшихся 16 итераций было получено решение:
Стоимость плана: Fорт=2614
