Автор работы: Пользователь скрыл имя, 21 Мая 2013 в 12:04, курсовая работа
Актуальность использования метода обусловлена высокой востребованность экономического образования в современных условиях, важностью повышения уровня математической подготовки экономистов и недостатком доступных методов, сочетающих систематизированное изложение теоретических основ метода динамического программирования с последовательным обучением решению данным методом типовых экономических задач.
Введение 4
1 Постановка задачи 6
1.1 Требования к системе и ее структуре 6
1.2 Требования к функциям, выполняемым системой 6
1.3 Требования к программно-аппаратному обеспечению 7
1.4 Требования к техническому обеспечению 7
1.5 Требования к эргономике и технической эстетике 7
1.6 Требования к надежности и хранению информации 8
2 Основная часть 9
2.1 Математическая модель 9
2.2 Метод решения задачи 10
2.3 Структурная схема программы 12
2.4 Схема взаимодействия модулей 12
3 Руководство программисту 13
4 Руководство пользователя 13
4.1 Общие сведения 13
4.2 Работа с помощью 13
4.3 Наиболее вероятные ошибки 13
Заключение 15
Список использованных источников 16
Понятный интерфейс делает обучение работе с ним легким и быстрым, снижает время и затраты на обучение и техническую поддержку пользователей.
Понятный интерфейс повышает производительность труда пользователей, в результате для выполнения задачи требуется меньше людей или они затрачивают на работу меньше времени.
Понятный интерфейс снижает количество человеческих ошибок.
1.6 Требования
к надежности и хранению
В целях избежание не корректной работы программы не рекомендуется:
Объем программы составляет 584 кб. Приложения можно хранить на любых носителях. Ограничения на транспортировку отсутствуют.
2 Основная часть
2.1 Математическая модель
Математическая модель - это математическое представление реальности.
Математическое моделирование - процесс построения и изучения математических моделей.
Модель - объект произвольной природы, который отражает главные, с точки зрения решаемой задачи, свойства объекта моделирования.
Главные функции модели:
Идея динамического программирования заключается в том, что оптимальное решение подзадач меньшего размера может быть использовано для решения исходной задачи. К примеру, кратчайший путь в графе из одной вершины (обозначим s) в другую (обозначим t) может быть найден так: сначала считаем кратчайший путь из всех вершин, смежных с s, до t, а затем, учитывая веса ребер, которыми s соединена со смежными вершинами, выбираем лучший путь до t (через какую вершину лучше всего пойти). В общем случае мы можем решить задачу, в которой присутствует оптимальная подструктура, проделывая следующие три шага:
Перекрывающиеся подзадачи в динамическом программировании означают подзадачи, которые используются для решения некоторого количества задач (не одной) большего размера (то есть мы несколько раз проделываем одно и то же).
Подводя итоги вышесказанного можно сказать, что динамическое программирование пользуется следующими свойствами задачи:
Динамическое программирование обычно придерживается двух подходов к решению задач:
2.2 Метод решения задачи
Решение задач - процесс, являющийся составной частью мышления, выполнение действий или мыслительных операций, направленное на достижение цели, заданной в рамках проблемной ситуации.
Алгоритм - это всякая система вычислений, выполняемых по строго определённым правилам, которая после какого-либо числа шагов заведомо приводит к решению поставленной задачи.
Для решения задачи оптимизации, в которой требуется построить решение с максимальным или минимальным (оптимальным) значением некоторого параметра, алгоритм, основанный на динамическом программировании, можно сформулировать так:
Если нас интересует только значение параметра, то шаг 4 в алгоритме не нужен (такая ситуация характерна, например, для задач подсчета количеств допустимых вариантов или некоторых конфигураций, в том числе и комбинаторных). Однако, в случае необходимости построения самого оптимального решения иногда приходится в процессе выполнения шага 3 алгоритма получать и хранить дополнительную информацию. Зачастую именно шаг 4 оказывается самым сложным при реализации подобных алгоритмов.
Ниже приведен пример аналитического решением относительно предметной области, где:
Ui - выбор дороги на i - м шаге по которому направляется груз из данного пункта в соседний пункт;
Fi - итог предыдущего шага местонахождение транспорта с грузом в пункте в котором пребывает перед следующим шагом;
Zi – затраты на перевозку единиц груза из данного пункта в соседний.
Рассмотрим решение задачи на данном примере. Дана модель соединения городов:
Рисунок 2 – Модель соединения городов
Основные этапы решения задачи представлены в таблицах 8 – 12.
Таблица 8 - разбиение вершин по группам
I |
I |
III |
IV |
V |
с1 |
с2 |
с5 |
с8 |
с10 |
с3 |
с6 |
с9 |
||
с4 |
с7 |
После чего составим основное функциональное уравнение динамического программирования:
Fi (xi – 1, Ui) = extr (Zi (xi – 1, Ui) + Fi + 1 (xi));
Для n шага уравнение примет следующий вид:
Fn (xn – 1, Un) = extr (Zn (xn – 1, Un – 1, Un) + Fn + 1 (xn));
Таблица 9 - первый этап
х3 |
U4 |
Z3 |
х4 |
f4 |
с8 |
(8,10) |
1 |
С10 |
1 |
с9 |
(9,10) |
7 |
С10 |
7 |
Для первого этапа уравнение примет следующий вид:
F4 (x3 – 1, U4) = extr (Z3 (x3 – 1, U4 – 1, U4) + F4 + 1 (x3));
Таблица 10 - второй этап
X2 |
U3 |
Х3 |
Z3 |
F4 |
Z3+F4 |
F3 |
с5 |
(5,8) |
с8 |
7 |
1 |
8 |
8 |
(5,9) |
с9 |
2 |
7 |
5 |
- | |
с6 |
(6,8) |
с8 |
9 |
1 |
10 |
- |
(6,9) |
с9 |
2 |
7 |
9 |
9 | |
с7 |
(7,9) |
с9 |
8 |
7 |
15 |
11 |
Для второго этапа уравнение примет следующий вид:
F3 (x2 – 1, U3) = extr (Z3 (x2 – 1, U3 – 1, U3) + F3 + 1 (x2));
Таблица 11 - третий этап
X1 |
U2 |
Х2 |
Z2 |
F4 |
Z2+F3 |
F2 |
с2 |
(2,5) |
с5 |
1 |
8 |
9 |
9 |
(2,7) |
с7 |
6 |
15 |
21 |
- | |
с3 |
(3,5) |
с5 |
2 |
8 |
10 |
10 |
(3,6) |
с6 |
7 |
9 |
16 |
- | |
(3,7) |
с7 |
4 |
15 |
19 |
- | |
с4 |
(4,5) |
с5 |
6 |
8 |
14 |
14 |
(4,6) |
с6 |
8 |
9 |
17 |
- | |
(4,7) |
с7 |
3 |
15 |
18 |
- |
Для третьего этапа уравнение примет следующий вид:
F2 (x1 – 1, U2) = extr (Z2 (x1 – 1, U2 – 1, U2) + F2 + 1 (x1));
Таблица 12 – четвертый этап
X0 |
U1 |
Х1 |
Z1 |
F2 |
Z1+F2 |
F1 |
с1 |
(1,2) |
с2 |
3 |
9 |
12 |
12 |
(1,3) |
с3 |
5 |
10 |
15 |
- | |
(1,4) |
с4 |
4 |
14 |
18 |
- |
Для четвертого этапа уравнение примет следующий вид:
F1 (x0 – 1, U1) = extr (Z1 (x0 – 1, U1 – 1, U1) + F1 + 1 (x0));
Наиболее экономичный маршрут доставки груза из пункта 1 в пункт 10 это: 1-2-5-8-10, а минимальные расстояние составляют 12 тыс.км.
2.3 Структурная схема программы
Структурная схема программы проиллюстрирована на рисунке 3.
Рисунок 3 - Пример структурной схемы программы
2.4 Схема взаимодействия модулей
Схема взаимодействия модулей представлен на рисунке 4.
Рисунок 4 - Схема взаимодействия модулей
3 Руководство программисту
Программа предназначена для нахождения кратчайшего пути.
Структура программы построена на взаимодействии двух модулей «Matrica» в котором осуществляется заполнения матрицы и произведение необходимых расчетов. В модуль «Rechenie» выводится аналитическое решение и ответ.
Форматирование конкретного варианта программы, обладающего свойством многовариантности, учитывающего состав и структуру технических средств, может производиться по необходимости средствами Borland Delphi при подключении стандартных библиотек.
4 Руководство пользователя
4.1 Общие сведения
При запуске приложения пользователю предлагается выбрать размерность матрицы, после чего заполнить ее. После заполнения матрицы и нажатия кнопки рассчитать открывается новое окно, в котором представлены этапы решения задачи, кратчайший путь и длина выбранного пути. Также предусмотрена возможность вывода отчета, в котором отображен конечный ответ и кратчайший путь.