Марковские процессы

Автор работы: Пользователь скрыл имя, 04 Апреля 2012 в 17:54, курсовая работа

Краткое описание

Математическое моделирование позволяет более глубоко и объективно взглянуть на модель и найти способ её преобразования. Модель, в данном случае, представляет собой набор цифр и функций по которым работают некоторые её компоненты.
Таким образом, с помощью применения метода Динамического Программирования (Марковский процесс с дискретными состояниями и непрерывным временем. Уравнения Колмогорова для вероятностей состояний.) и создания программы на основе этого метода, будет выполнена цель курсового проекта.

Содержимое работы - 1 файл

курсовая работа.doc

— 135.50 Кб (Скачать файл)

   В языке Delphi 6.0, на котором написана программа, имеется встроенная возможность слежения за синтаксисом в процессе компиляции. Синтаксический анализатор на основе синтаксических правил грамматики языка проверяет корректность записи предложений программы и переводит последовательность лексем в последовательность внутренних кодов компилятора. Эта последовательность уже отражает порядок действий, которые должен выполнить компьютер, но еще не является окончательным машинным кодом.


6.2. Семантическая отладка

 

   Семантическая отладка – нахождение смысловой ошибки в программе, не связанной с нарушением синтаксиса.

   Термин «семантическая» означает смысловая, а сама семантика – это наука, устанавливающая отношения между символами и объектами, которые они обозначают, т.е. наука, определяющая смысл знаков. Понятиями обычно выступают абстрактные или конкретные объекты, а отношения – это связи типа: «это», «имеет частью», «принадлежит», «любит». Характерной особенностью семантической отладки является обязательное наличие трех типов отношений:

класс - элемент класса;

свойство - значение;

пример элемента класса.

Можно внести несколько классификаций семантической отладки по количеству типов отношений:

однородные (с единственным типом отношений);

не однородные (с различными типами отношений).

По типам отношений:

бинарные (отношения связывают два объекта);

p-нарные (есть специальные отношения, связывающие более двух понятий).

Наиболее часто в семантической отладке используются следующие отношения:

связи типа «часть-целое» («класс-подкласс», «элемент-множество» и т.п.);

функциональные связи;

количественные (больше, меньше, равно...);

пространственные (далеко от, близко от, за, под, над...);

временные (раньше, позже, в течение…);

атрибутивные связи (иметь свойство, иметь значение ...);

логические связи (и, или, не) и др.


6.3. Тестовые расчеты и анализ тестирования

 

Для тестирования программы были взяты следующие значения:

-   было введено количество вершин 4

программа вывела квадратную матрицу размерности 4 х 4

-   матрица заполнена следующим образом

 

 

 

 

 

 

 

 

 

 

 

S1

S2

S3

S4

S1

***

1

1

1

S2

1

***

0

0

S3

1

0

***

0

S4

1

0

0

***

 

-   были получены следующие результаты:

dp1/dt=-λ12p1+ λ21p2- λ13p1+ λ31p3- λ14p1+ λ41p4

dp2/dt=-λ21p2+ λ12p1

dp3/dt=-λ31p3+ λ13p1

dp4/dt=-λ41p4+ λ14p1

 

В результате полученных данных видно, что программа работает исправно так, как произведённые в ручную расчеты имеют такие же значения.

 

 

 

 

 

 

 


6.4. Оптимизация программы

 

   Оптимальное использование программой всех ресурсов улучшается, если придерживаться следующих правил программирования: избегать использования языковых конструкций с неочевидной семантикой; стремиться к локализации действия управляющих конструкций и использования структур данных; разрабатывать программу так, что бы её можно было читать от начала до конца без управляющих переходов на другую страницу.

   Повышения эффективности можно достигнуть, если выполнять структурирование программы, разбивая её на модули так, что бы можно было легко находить и корректировать ошибки, а так же что бы текст любого модуля, с целью улучшения эффективности, можно было переделать независимо от других.

 


7. Документирование

7.1. Описание задачи и цели

 

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

Целью курсового проекта на тему “Марковский процесс с дискретными состояниями и непрерывным временем. Уравнения Колмогорова для вероятностей состояний” является реализация на компьютере специального алгоритма вывода системы уравнений методом Колмогорова.

Моделируемый алгоритм по исходным (входной информации) данным позволяет получить информацию о состоянии процесса в произвольные моменты времени.

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

 


7.2. Описание модели, метода и алгоритма

 

За основу метода решения задачи берётся метод Колмогорова.

Расчет Колмогорова ведётся по графической части задачи, в данном случае графическая часть заменяется матрицей состояний.


7.3. Описание среды реализаций

 

В качестве среды реализации задачи курсового проектирования была выбрана среда объектно-ориентированного программирования Delphi 6.0. Оболочка ориентированна на создание Win32 (32-х разрядных) приложений под операционную систему Windows.

Выбранная оболочка обладает как очень мощными средствами математических расчетов, работы с базами данных, так и для работы с графикой.

В основе оболочки Delphi 6.0 лежит очень мощный и функциональный язык программирования Pascal. И, следовательно среда программирования впитала в себя все положительные и отрицательные стороны данного языка.

Delphi 6.0 позволяет создавать достаточно быстрые и оптимизированные приложения под Windows. Но оптимизация приложений зависит не только от языка программирования, но и от самого программиста.

Компилирование приложений в исполняемый файл позволяет даже неопытным пользователям использовать уже готовые программные продукты.


7.4. Описание возможностей и ограничений

 

К возможностям программы относятся только те, которые описываются непосредственно в условии задачи. Программа не может реализовывать алгоритмы, которые в ней не описаны. Для этого будет необходимо дорабатывать программу и вновь ее компилировать.

В качестве ограничений могут быть лишь ограничения на вводимые данные. Например, если пользователь в числовое поле введет символьную строку, то появится соответствующее сообщение. Или же если в целое поле введется вещественное число, то появится сообщение о несовместимости типов данных.

Ограничения по вводу количества состояний зависят только от технического обеспечения пользователя. То есть, задав слишком много состояний компьютер пользователя не сможет рассчитать матрицу состояний и приведёт к временному зависанию, после которого в принципе моно продолжать работу. В связи с этим было поставлено ограничение на ввод  состояний: если переменная имеет значение не попадающее в интервал от 1 до 100 то переменной принудительно присваивается нуль.


7.5. Описание входных и выходных форматов

 

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

При вводе неверных данных, данные преобразовываются в числовой формат (при этом берутся максимальные значения данной переменной).


7.6. Описание тестирования

 

Для тестирования программного обеспечения бел выбран метод черного ящика. То есть были произведены ручные подсчеты входных и выходных данных:

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

Х1Х2-1

Х1Х3-1

Х3Х1-1

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

dp1/dt=-λ12p1- λ13p1+ λ31p3

dp2/dt=λ12p1

dp3/dt=- λ31p3+ λ13p1

 

 


7.7. Инструкция пользователю

 

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

-В ячейку необходимо ввести количество состояний.

-Затем необходимо мышью щёлкнуть  кнопку «построить», результатом будет первично заполненная матрица состояний.

-Далее пользователь должен заполнить матрицу состояний, то есть изменять значения ячеек с «0» на «1». Следует изменять только ячейки со значением «0».

-Нажатие кнопки «вывести» открывает вторую форму и в окно выводит полученный результат, то есть систему уравнений Колмогорова.

-Кнопка «рестарт» позволяет повторить операцию с начала.

-Кнопка «выход» завершает работу с программой.


8. Сопровождение

8.1. Анализ использования и отказов

 

Использование написанного программного обеспечения показывает, что программное обеспечение достаточно надежно. То есть даже при многочисленных ошибках пользователя программное обеспечение работает безотказно.

Но могут быть и такие сочетания данных, которые не были учтены при тестировании, приводящие к зависанию программы. Но сочетание таких данных получить очень и очень сложно.

Говорить об окончательной надежности программного обеспечения можно будет только после долгой эксплуатации.

Также могут возникать ошибки не зависящие от пользователя и вызываемые не самой программой, а той средой, где программа работает. К таким ошибкам можно отнести отказ или некорректную работу оборудования, проблемы с совместно использующимся программным обеспечением.


8.2. Обслуживание при эксплуатации

 

После завершения тестирования, программа сдается в эксплуатацию.

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

Все эти ситуации оговариваются с заказчиком. Если же заказчик хочет реализовать вопросы, которые не оговаривались, то он просто может получить отказ.


8.3. Расширение возможности модели и компьютерной программы (в том числе и перенос в новую среду)

 

Расширение возможности модели зависит только от самой модели, то есть могут ли быть в саму модель добавлены новые функции. Для данной задачи могут быть добавлены функции для построения расписания для нескольких машин. Добавление новой функции будет “безболезненным” для основной программы, важно будет только правильно реализовать соответствующий алгоритм.

Информация о работе Марковские процессы