Транспортна задача
Курсовая работа, 07 Мая 2013, автор: пользователь скрыл имя
Описание работы
Целями курсовой работы являются:
построить математическую модель задачи;
рассмотреть классификацию задач данного типа;
рассмотреть методы решения транспортных задач;
написать и отладить программу для решения транспортных задач с ограничениями на пропускную способность.
Работа состоит из введения, трёх глав, и приложения, содержащего исходный код программного продукта.
Во введении рассмотрена краткая история транспортной задачи, и поставлены цели работы.
Содержание
Введение 3
1. Транспортная задача 5
1.1 Математическая модель задачи 5
1.2 Классификация транспортных задач 8
1.3 Методы решения транспортных задач 8
2. Решение практической задачи 13
3. Спецификация программного продукта 22
Заключение 24
Список использованной литературы 25
Работа содержит 1 файл
kursovaya_rabota_obrazets.doc
— 506.50 Кб (Скачать)
Самый тяжёлый нуль находится в ячейке (1,7), но если удалить строку 1 в шестом столбце не останется ни одного пути, следовательно, подмножество решений (7,5) надо разбить на и .
Таблица 2.15 Преобразованная матрица
lij |
1 |
2 |
3 |
4 |
7 |
2 |
85 |
∞ |
0 |
5 |
55 |
3 |
∞ |
0 |
∞ |
5 |
∞ |
4 |
∞ |
5 |
0 |
∞ |
∞ |
6 |
∞ |
∞ |
∞ |
∞ |
0 |
8 |
∞ |
0 |
∞ |
0 |
50 |
Четвёртая итерация
Выполним редукцию столбцов, так как редукцию строк проводить не имеет смысла:
Таблица 2.16 Редукция столбцов в четвёртой итерации
lij |
1 |
2 |
3 |
4 |
7 |
ci |
|
2 |
0 |
∞ |
0 |
5 |
55 |
0 |
3 |
∞ |
0 |
∞ |
5 |
∞ |
0 |
4 |
∞ |
5 |
0 |
∞ |
∞ |
0 |
6 |
∞ |
∞ |
∞ |
∞ |
0 |
0 |
8 |
∞ |
0 |
∞ |
0 |
50 |
0 |
qj |
85 |
0 |
0 |
0 |
0 |
H=85 |
Проверка:
В полученной таблице можно выбрать по только по одному нулевому элементу в каждых строке и столбце, следовательно получено оптимальное решение: это элементы (2, 1), (3, 2), (4, 3), (6, 7), (8, 4).
Ответ:
Оптимальный маршрут состоит из следующих звеньев или пар пунктов: (1, 6), (6, 7), (7, 5), (5, 8), (8, 4), (4, 3), (3, 2), (2, 1), или
Сиэтл→ Сан-Франциско→ Солт-Лейк-Сити→ Хьюстон→ Сент-Луис→Мемфис→ Нью-Йорк→ Чикаго→ Сиэтл. Он является ориентированным графом с длиной маршрута
3. Спецификация программного продукта
Созданный программный продукт, получивший название «CIRCLE», предназначен для решения транспортных задач на замкнутые маршруты по методу Литтла.
Интерфейс программы представлен на рисунке 3.1:
Рисунок 3.1 Интерфейс программы «CIRCLE»
На главной форме
расположены главное меню, содержащая
все доступные функции
На дочерней форме находится сетка StringGrid, которая служит для задания программе исходной матрицы расстояний/стоимости перехода. Размерность сетки устанавливается через пункт меню Решение→Кол-во узлов, либо по нажатии на соответствующую кнопку панели инструментов.
Редактирование сетки осуществляется двойным щелчком на необходимой ячейке, в результате чего выскакивает окно ввода, представленное на рисунке 3.2:
Рисунок 3.2 Окно редактирования ячейки
Установка переключателя «Установить равным бесконечности» присваивает выбранной ячейке значение , равное максимально возможному числу для обработки.
Задание исходной матрицы также может быть осуществлено путём загрузки оной из заранее сохранённого файла. Для этого нужно выбрать пункт меню Файл→Сохранить как…, либо нажать соответствующую клавишу на панели инструментов. В появившемся диалоговом окне надо выбрать нужный файл.
Аналогичным образом выполняется и сохранение матрицы в формате *.MyFile.
Нажатие на кнопку (Решение→Вычислить) приводит к появлению окна с результатами вычислений (рисунок 3.3):
Рисунок 3.3 Окно вывода результата
Если же программе не удаётся найти ни одного Замкнутого маршрута (Матрица задана некорректно) выводится (рисунок 3.4).
Рисунок 3.4 Окно вывода информации о некорректном вводе исходных данных
Заключение
Результатом выполнения курсовой работы явилось создание программы для решения транспортной задачи на замкнутые маршруты
В процессе работы были поставлены и выполнены следующие цели:
- Построена математическая модель задачи
- Рассмотрена классификация транспортных задач
- Рассмотрены методы их решения
- Написана и отлажена программа для решения транспортных задач на замкнутые маршруты
- В дальнейшем планируется модифицировать данный программный продукт, введя в него и дополнив следующие функции:
- Расширение команд главного меню
- Возможность отображения результатов всех итераций
- Возможность записи в файл всех этапов решения и окончательного маршрута
- Повышение точности вычислений
- Более наглядное представление исходный данных за счёт замены пустых узлов на символ бесконечности
- Возможность решения всех видов транспортных задач
Список использованной литературы
- Барановская Т.П., Лойко В.И., Семенов М.И., Трубилин А.И. Архитектура компьютерных систем и сетей: Учебное пособие. – М.: Финансы и статистика, 2003.
- Вентцель Е.С. Исследование операций. Задачи, принципы, методология: учебное пособие для вузов. – 4-е издание, стереотип. – М.: Дрофа, 2006.
- Гмурман В.Е. Теория вероятностей и математическая статистика: Учебное пособие для вузов. – 8-е издание, стер. – М.: Высшая школа, 2002.
- Грешилов А.А. Математические методы принятия решений: Учебное пособие для вузов. – Издательство МГТУ им. Н.Э. Баумана, 2006.
- Грешилов А.А. Прикладные задачи математического программирования: Учебное пособие. – 2-е издание. – М.: Логос, 2006.
- Катулев А.Н., Северцев Н.А. Математические методы в системах поддержки принятия решений: Учебное пособие. – М.: Высшая школа, 2005.
- Коробов П.Н. Математическое программирование и моделирование экономических процессов. Учебник. Изд. Третье перераб. и доп. – СПб.: ООО «Издательство ДНК», 2006.
- Пантелеев А.В., Летова Т.А. Методы оптимизации в примерах и задачах: Учебное пособие. – М.: Высшая школа, 2002.
Приложение. Листинг программы CIRCLE
1 Исполняемый файл (course.dpr)
program course;
uses
Forms,
main in 'Model\main\main.pas' {Главная форма},
uOption in 'Model\uOption\uOption.pas' {Форма настройки сетки},
uAboutBox in 'Model\uAboutBox\uAboutBox.
param in 'Model\param\param.pas',
uQuery in 'Model\uQuery\uQuery.pas' {Редактор ячейки};
{$R Resourses\course.RES}
begin
Application.Initialize;
Application.Title := 'Результат';
Application.CreateForm(
Application.CreateForm(
Application.CreateForm(
Application.CreateForm(
Application.CreateForm(
Application.Run;
end.
2. Главная форма
2.1 Файл main.dfm
object MainForm: TMainForm
Left = 260
Top = 172
Width = 588
Height = 441
BorderWidth = 5
Caption =
'.:: '#1055#1088#1086#1075#1088#
#1090#1099' ::.'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnCloseQuery = FormCloseQuery
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Splitter1: TSplitter
Left = 0
Top = 24
Width = 570
Height = 3
Cursor = crVSplit
Align = alTop
Beveled = True
end
object WaightGrid: TStringGrid
Left = 0
Top = 53
Width = 570
Height = 330
Hint = #1044#1074#1086#1081#1085#
Align = alClient
DefaultColWidth = 70
DefaultRowHeight = 26
Font.Charset = RUSSIAN_CHARSET
Font.Color = clGreen
Font.Height = -13
Font.Name = 'Tahoma'
Font.Style = [fsBold]
ParentFont = False
TabOrder = 0
OnDblClick = WaightGridDblClick
OnSelectCell = WaightGridSelectCell
end
object ActionMainMenuBar1: TActionMainMenuBar
Left = 0
Top = 0
Width = 570
Height = 24
UseSystemFont = False
ActionManager = ActionManager1
Caption = 'ActionMainMenuBar1'
ColorMap.HighlightColor = clWhite
ColorMap.BtnSelectedColor = clBtnFace
ColorMap.UnusedColor = clWhite
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
Spacing = 0
end
object ActionToolBar1: TActionToolBar
Left = 0
Top = 27
Width = 570
Height = 26
ActionManager = ActionManager1
Caption = 'ActionToolBar1'
ColorMap.HighlightColor = clWhite
ColorMap.BtnSelectedColor = clBtnFace
ColorMap.UnusedColor = clWhite
Spacing = 0
end
object StatusBar: TStatusBar
Left = 0
Top = 383
Width = 570
Height = 19
BiDiMode = bdRightToLeft
Panels = <
item
BiDiMode = bdLeftToRight
ParentBiDiMode = False
Width = 300
end
item
Width = 50
end
item
Width = 50
end
item
Width = 50
end
item
Alignment = taRightJustify
BiDiMode = bdLeftToRight
ParentBiDiMode = False
Width = 50
end>
ParentBiDiMode = False
end
object ImageList1: TImageList
Left = 600
Top = 400
end
object ActionManager1: TActionManager
ActionBars = <
item
Items = <
item
Items = <
item
Action = Action3
ImageIndex = 7
end
item
Action = Action4
ImageIndex = 9