
- •Введение
- •1. Основы исследования систем и принятия решений
- •1.1. Постановка задач принятия решений и разработка моделей
- •1.2. Классификация математических моделей и методов принятия решений
- •1.3. Принятие решений в условиях определенности при векторном критерии
- •Способ 5
- •1.4. Принятие решений в условиях риска и неопределенности
- •1.5. Программное компьютерное обеспечение исследования транспортных систем
- •2. Построение математических моделей
- •2.1. Детерминированные модели
- •2.1.1. Решение систем линейных уравнений
- •2.1.2. Решение систем нелинейных уравнений
- •2.1.3. Численное интегрирование
- •2.1.4. Вычисление специальных функций
- •2.1.5. Сортировка чисел (символов)
- •Программа сортировки по индексам
- •Программа сортировки по методу "пузырька"
- •2.2. Стохастические модели
- •2.2.1. Исследование распределения случайных величин
- •1) Критерий хи - квадрат (Пирсона)
- •2) Критерий Романовского
- •3) Критерий Колмогорова
- •Ринунок 2.13 – Эмпирическая (1) и теоретическая (2) функции распределения
- •4) Критерий Мизеса-Смирнова
- •2.2.2. Генерация случайных чисел по различным законам распределения
- •2.2.3. Интервальная оценка параметров и определение интервалов распределения случайных величин
- •2.2.4. Исследование статистических зависимостей между случайными величинами
- •2.2.5. Исследование временных рядов
- •2.2.6. Системы массового обслуживания
- •1) Аналитическое исследование систем массового обслуживания
- •2) Статистическое имитационное моделирование
- •3. Оптимизационные задачи и методы их решения
- •3.1. Безусловная оптимизация для одномерной унимодальной целевой функции
- •3.2. Многомерная безусловная оптимизация
- •3.3. Оптимизация при наличии ограничений
- •3.4. Задача линейного программирования
- •3.5. Отыскание кратчайших расстояний и путей между пунктами транспортной сети. Кратчайшая связывающая сеть
- •3.6. Транспортная задача линейного программирования
- •3.7. Одномерная задача динамического программирования
- •3.8. Эвристические методы решения транспортных задач
- •3.8.1. Маршрутизация перемещения ресурсов помашинными отправками
- •3.8.2. Маршрутизация перемещения мелких партий ресурсов
- •3.9. Задачи дискретной оптимизации
- •3.9.1. Целочисленная задача линейного программирования
- •3.9.2. Задача о назначениях
- •3.9.3. Задача о ранце (рюкзаке)
- •3.9.4. Задача о коммивояжере
- •3.10. Задачи упорядочения и согласования
- •3.11. Состязательные задачи
- •3.1. Основная литература
- •3.2. Дополнительная литература
- •Приложение 1. Компьютерная программа принятия решений в условиях риска и неопределенности
- •Приложение 2. Компьютерная программа исследования распределения случайных величин
- •Приложение 3. Компьютерная программа однофакторного корреляционно-регрессионного анализа
- •Приложение 4. Компьютерная программа проведения многофакторного корреляционно-регрессионного анализа
- •Приложение 5. Компьютерная программа выравнивания динамического ряда многочленом ряда фурье
- •Приложение 6. Компьютерная программа решения задачи линейного программирования симплекс-методом
- •Приложение 7. Компьютерная программа отыскания кратчайших расстояний между пунктами транспортной сети
- •Приложение 8. Компьютерная программа решения транспортной задачи линейного программирования
- •Приложение 9. Компьютерная программа разработки сборочно-развозочных маршрутов на основе метода кларка-райта
- •Приложение 10. Компьютерная программа расчета параметров сетевого графика
- •Приложение 11. Компьютерная программа решения игровой задачи двух сторон на основе алгоритма брауна
- •Учебное издание
- •По дисциплине "Математические модели в транспортных системах" для студентов специальностей 1-44 01 01, 1-44 01 02
- •Подписано в печать .04.2006
- •220013, Г. Минск, проспект Независимости, 65.
1.5. Программное компьютерное обеспечение исследования транспортных систем
Программное обеспечение компьютеров можно разделить на следующие виды: системное (операционные системы); системы программирования; прикладное.
Операционные системы (ОС) – это набор программ, осуществляющих управление работой компьютера.
Функции ОС:
связь с пользователем в реальном времени для подготовки устройств к работе, переопределение конфигурации и изменение состояния системы;
выполнение операций ввода-вывода с обработкой прерываний, запросов и распределением их между устройствами;
управление памятью, связанное с распределением оперативного запоминающего устройства (ОЗУ, RAM) между прикладными программами;
управление файлами с обеспечением их защиты, выборки и ограничения доступа;
обработка исключительных условий во время выполнения задачи – ошибок, прерываний;
вспомогательные функции по обеспечению организации сетей, использованию служебных программ.
Для 8-ми разрядных машин с процессором типа 8080 наиболее часто применялась операционная система СР/М, 16-ти разрядных – MS DOS фирмы "Microsoft".
Для 32-х и более разрядных машин могут применяться система MS DOS, многозадачные системы OS/2 и LINUX, многопользовательская многозадачная операционная система UNIX. Система Windows с версии 95 и выше также выполняет функции операционной системы.
Системное программирование, кроме непосредственно операционной системы, содержит также ряд внешних утилит, обеспечивающих сервисное обслуживание работы пользователя.
Программирование может осуществляться в машинных кодах и на символьных языках.
Наибольшее распространение получили следующие языки программирования: Ассемблер, Макроассемблер, (Бейсик) – варианты Quick, Turbo, Visual; Cobol (Кобол); Fortran(Фортран); Pascal (Паскаль); C (Си); Lisp (Лисп) – для машинной графики; Prolog (Пролог) – для обработки логической информации; Smoltok (Смолток), объектноориентированная система программирования Delphi (Делфи.
Для удобной работы с компьютером кроме ОС используются оболочки (FAR manager, Norton Commander, DOS Navigator, Volkov Commander, Total Commander и др.). Большинство современных систем программирования также представляют собой среду со своим головным меню, редактором, транслятором, компоновщиком (редактором связей, сборщиком), отладчиком.
Прикладное программирование подразделяется на пакеты прикладных программ и программы пользователя.
Пакеты прикладных программ охватывают инструментальные средства, интегрированные, функционально ориентированные и проблемно ориентированные пакеты.
Инструментальные средства представляют собой диагностические, тестовые, антивирусные пакеты и т.п.
Для интегрированных пакетов характерно следующее:
совместимость записи данных, дающая возможность их вызова различными средствами для различных целей;
возможность продолжить выполнять свою функцию, если понадобилось на время переключиться на другую;
преемственность различных типов команд и методов работы с меню.
Интегрированные пакеты позволяют работать с отдельными программами, базами данных, графикой, создавать прикладные программы, поддерживать связь с другими компьютерами. Примерами таких пакетов являются Windows Office, Works, Lotus и др.
К функционально ориентированным пакетам относятся программы работы с текстом, обработки электронных таблиц, организации баз данных, поддержки интерактивной графики, функционирования экспертных систем и т.п. Примерами являются пакеты машинной графики (AutoCAD, Компос), графические редакторы (Adobe PhotoShop, Adobe Premiere, CorelDraw и др.), электронные таблицы и деловая графика (SuperCalc, Exсel, QuattroPro, Grapher), СУБД (Access, Clarion, Clipper, dBase, FoxBase, FoxPro, FoxGraph, Ingres, Paradox и др.), редакционно-издательские системы (PageMaker, Ventura Publisher), анимационные (3D StudioMAX и др.), презентационные (PowerPoint).
Проблемно-ориентированные пакеты охватывают различные сферы применения: математика, экономика, транспорт, бухгалтерский учет и др. Для разнообразных задач математической статистики могут служить пакеты программ Statistica и "Олимп". Программы Matlab, Gauss, Assyst, Eurica, Maple V, Mathematica, MathCad предназначены для решения задач матричной и векторной алгебры, векторного анализа, решения систем линейных и нелинейных уравнений. Некоторые из них позволяют выполнить преобразование математических выражений в символьной форме (упростить выражение или представить в другом виде), найти вид неопределенного интеграла.
Работа пользователя в пакетах производится с помощью "меню". Максимальное число альтернатив, содержащихся в "меню", различно. Обычно принимают равным 7±2 (7 – число по Миллеру).
Через меню могут запускаться программы из командного файла или из головной программы, а также ветвится выполнение программы (подпрограммы). Меню может быть одномерным, двумерным, аналогичным картотеке и представлено в виде алфавитно-цифровой информации и графических изображений. Активизация функций может производиться по набору ключевого символа, по нажатию клавиш ("Ввод", функциональных и др.) клавиатуры или кнопок манипуляторов ("мышки", джойстика и т.п.) при нахождении маркера (стрелки) на месте соответствующего изображения.
При проектировании пакета прикладных программ должны быть определены следующие характеристики:
1. Состав исходного текста
1.1. Единый текст
1.2. Отдельные текстовые модули
2. Структура исполняемой программы
2.1. Единый модуль, полностью загружаемый в ОЗУ при запуске
2.2. Несколько сегментов, загружаемых в ОЗУ по мере необходимости
2.3. Резидентная часть, загружаемая в ОЗУ в начале сеанса, и одна или несколько нерезидентных частей, загружаемых по мере необходимости.
3. Способы хранения данных на внешнем постоянном запоминающем устройстве (ВПЗУ)
3.1. Все данные располагаются в одном файле
3.2. Данные распределены по нескольким файлам.
По пункту 1 влияние на способ разработки, по 2 – на ОЗУ и быстродействие, по 3 – на быстродействие при доступе к данным и характер использования внешней памяти.
Применение подпрограмм, процедур, функций и других отдельных программных модулей обеспечивает структурирование программ на уровне исходных текстов, объектных модулей и выполняемых программ. Под объектным модулем понимается преобразованный в машинные коды (транслированный) текст программы. Может применяться подстановка – включение перед трансляцией в текст основной программы текстов других модулей. Исходные тексты модулей могут формироваться в виде библиотек. Отдельные модули можно также транслировать независимо друг от друга и связывать только на стадии компоновки исполняемой программы (загрузочного модуля). Выполняется сборка программы с помощью редактора связей (компоновщика). При таком подходе к программированию создаются библиотеки объектных модулей. В системах программирования могут иметься библиотеки стандартных процедур (функций и подпрограмм).
При создании перекрывающихся (оверлейных) сегментов программа состоит из отдельных частей, которые при ее выполнении загружаются в ОЗУ по мере необходимости. Корневой сегмент находится постоянно в ОЗУ. Он содержит обращения к процедурам, находящимся в оверлейных сегментах. Сегменты могут быть связаны в сложные древовидные структуры. Быстродействие системы падает из-за потерь времени на перезагрузку сегментов с внешнего накопителя.
Взаимодействие программ осуществляется с помощью командных файлов или управляющих программ.
Отдельные модули пакетов обычно создают (выделяют) по функциональному принципу: ввод данных, корректировка данных, расчетная часть, графическое представление результатов, вывод (печать) результатов.
Межмодульный информированный обмен может осуществляться через общие области ОЗУ и файлы на ВПЗУ. В случае необходимости обмена при разнесенном во времени исполнении программ или модулей применяется обмен через файлы на ВПЗУ.
Достоверность программного обеспечения отрабатывается и проверяется на контрольных примерах. Тестирование должно быть произведено для всех возможных вариантов расчетов и значений исходных данных. При наличии ограничений на исходные данные об этом должно сообщаться пользователю. Документация на программные продукты должна отвечать стандартам Единой системы программной документации (ЕСПД).