Рефераты. Транспортная задача

Транспортная задача



Кавминводский Институт сервиса (КМВИС)

Филиал

Южно-Российского Государственного Университета Экономики и Сервиса (ЮРГУЭС)












Курсовая работа

по информатике

тема работы: «Транспортная задача»














                                                            Выполнил студент 2-го курса

                                                                 Очного отделения группы ИС-01

                                                                        Ханин Константин Александрович

                                                                   проверил старший преподаватель

                                                                         Макаров Борис Сергеевич.






















Пятигорск 2003 г.

1.   Постановка задачи.


В качестве объекта исследования рассматривается сеть с потоками однородного продукта – экономико-математическая модель задачи оптимизации транспорта энергии, газа, трубопроводных систем различного назначения, а также транспортировки продукции от поставщиков к потребителям. Требуется написать программу оптимизации транспорта энергии, газа, трубопроводных систем различного назначения по заданной схеме, решить систему уравнений заданным методом.

2. Спецификация.

  2.1. Название задачи.

По заданной схеме (3):

следует найти в ходе выполнения работы направления потоков по ветвям и их величину P (в условных единицах).

2.2 Описание задачи.

Выберем произвольное направление на схеме по ветвям для формирования матрицы A:


Таким образом, получим матрицу A вида:

Таб.№1.

Ветви

-1

0

0

0

1

0

0

0

-1

0

0

-1

-1

0

0

0

1

0

0

1

1

0

0

0

1

0

0

-1

1

1

-1

-1

0

0

0

Узлы      

1

2

3

4

0

                    0-1            0-2        0-3          0-4            1-2          2-3           3-4        



Затем введём диагональную матрицу R, элементами которой являются заданные стоимости перевозок по отдельным ветвям.






R =

       


Можно показать, опуская преобразования, связанные с поиском минимума целевой функции F, что искомый вектор потоков Р можно вычислить (в матричной форме) как

 = -R-1At.

Где R-1 – матрица, обратная матрице R, Atтранспонированная матрица А,  - вектор Лагранжа (потенциалов), который предварительно должен быть найден из решения системы уравнений в матричной форме:

AR-1At = .

Вектор Q- объём производства в узлах схемы, которые задаются в качестве входных данных по вариантам работы, и входит в уравнение:

A +  = 0,



Таблица соответствия:

Ветви

Начало

Конец

Стоимость

1

0

1

4

2

0

2

5

3

0

3

7

4

0

4

6

5

1

2

5

6

2

3

8

7

3

4

5

2.3. Управление программой.

В среде Turbo Pascal программа после подготовки текста программы можно попытаться исполнить её, т.е. откомпилировать программу, связать её (если это необходимо) с библиотекой стандартных процедур и функций, загрузить в оперативную память и передать её управление. Вся эта последовательность действий называется прогоном программы и реализуется командой Ctrl+F9  или нажатием мышкой на панели меню раздел Run и далее Run.

Если в программе нет синтаксических ошибок, то все действия выполняются последовательно одно за другим, при этом в небольшом окне сообщается о количестве откомпилированных строк и объёме доступной оперативной памяти. Перед передачей управления загруженной программе среда очищает экран (точнее, выводит на экран окно прогона программы), а после завершения работы программы вновь берёт управление компьютером на себя и восстанавливает на экран окно редактора.

Итак, нажимаем Ctrl+F9 или выбираем из меню Run+Run, появляется голубой экран, которым является оформление курсовой работы, через некоторое время на экране появляется меню с 10-ю пунктами, выбрав любой пункт из меню, можно просмотреть интересующие результаты вычислений.

2.4. Входные данные

  Ввод данных – это передача информации от внешних устройств в оперативную память. Вводятся, как правило, исходные данные решаемой задачи.

  В моём курсовом проекте входными данными являются числа от 0 до 9, которые вводятся при выборе пункта меню с цифровой клавиатуры. В разделе переменных они у меня записаны типом Byte. Byte – это целочисленный тип данных я его взял потому, что числа от 0 до 9 являются целыми числами. Длина Byte – 1 байт, а диапазон значений от 0 до 255.

2.5. Выходные данные.

Вывод данных – это обратный процесс вводу данных, когда данные передаются из оперативной памяти на внешние носители (принтер, дисплей, магнитные устройства и т.д.). Результаты решения всякой задачи должны быть выведены на один из этих носителей. Как и в моем курсовом проекте все результаты вычислений выводятся на дисплей монитора.

Основным устройством вывода у персонального компьютера является дисплей (экран монитора).

Все результаты вычислений я выводил на дисплей с помощью оператора Write(<Список вывода>). Здесь элементами списка вывода могут быть выражения различных типов (в частности, константы и переменные). У меня элементами списка вывода являются переменные.

 Второй вариант процедуры вывода на экран: Writeln(<список вывода>), слово – Write line – означает писать строку. Его действие отличается от оператора Write тем, что после вывода последнего в списке значения происходит перевод курсора к началу следующей строки. Оператор Writeln, записанный без параметров, вызывает перевод строки.

Форматы вывода. В списке вывода могут присутствовать указатели форматов вывода (форматы). Формат определяет представление выводимого значения на экране. Он отделяется от соответствующего ему элемента двоеточием. Если указатель формата отсутствует, то машина выводит значение по определенному правилу, предусмотренному по умолчанию.

2.6. Пример

Для тестирования программы нужно запустить программу нажатием Ctrl+F9 и дождаться появления меню, затем нужно ввести с клавиатуры цифру 1 и сравнить результат выведенной матрицы с матрицей приведённой в таблице №1(выделенное заливкой), они должны совпасть.

3. Проектирование и алгоритмизация.

Метод решения задачи – метод Крамера(по предложенному преподавателем). Метод Крамера имеет весьма простую схему. Пусть detA – определитель матрицы А, а detAi – определитель матрицы Ai, полученной в матрице А столбца с номером i столбцов свободных членов. Тогда метод Крамера сводится к вычислению detA, detAi, i=1,2,…,n, после чего значения неизвестных определяются элементарными соотношениями

Xi=detAi/detA, i=1,2,…n

Определители в этой формуле вычисляются с помощью усеченного метода Гаусса. Действительно, прямой ход метода Гаусса приводит  к верхней треугольной матрице, определитель которой равен произведению диагональных элементов матрицы. В прямом ходе метода Гаусса на каждом очередном шаге соответствующая строка делится на диагональный элемент. В результате матрица, полученная после прямого хода, имеет на главной диагонали единицы. Поэтому при вычислении определителя методом Гаусса на каждом шаге прямого хода следует вначале запомнить очередной диагональный элемент, а затем производить деление на него элементов строки.

Страницы: 1, 2



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.