Аналитический обзор методов и систем имитационного моделирования

Принцип метода Монте-Карло и проверка статистических гипотез. Закон распределения случайных величин при имитации экономических процессов. Программы имитационного моделирования. Описание граф-схемы стратегии и разработка редактора сетевых графиков.

Рубрика Экономико-математическое моделирование
Вид курсовая работа
Язык русский
Дата добавления 20.12.2012
Размер файла 1,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1. АНАЛИТИЧЕСКИЙ ОБЗОР МЕТОДОВ И СИСТЕМ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ

1.1 Метод Монте-Карло и проверка статистических гипотез

1.2 Законы распределения случайных величин при имитации экономических процессов

1.3 Программы имитационного моделирования

1.4 Выводы по главе

2. ПОСТАНОВКА ЗАДАЧИ

3. ОПИСАНИЕ ГРАФ-СХЕМЫ СТРАТЕГИИ

4. РАЗРАБОТКА РЕДАКТОРА СЕТЕВЫХ ГРАФИКОВ

5. ТЕСТИРОВАНИЕ СИСТЕМЫ

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

ИСХОДНЫЙ КОД ПРОГРАММЫ

ВВЕДЕНИЕ

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

Ранее был разработан программный продукт, тренажер под названием “Logist”, который представляет собой модуль отображения и редактирования схем бизнес-процессов и временных диаграмм. На его основе также были реализованы методы сетевого планирования.

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

Целью данной курсовой работы является разработать графический редактор сетевых графиков и модуль имитационного моделирования.

1. АНАЛИТИЧЕСКИЙ ОБЗОР МЕТОДОВ И СИСТЕМ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ

моделирование имитация статистический график

Имитационное моделирование реализуется посредством набора математических инструментальных средств, специальных компьютерных программ и приемов, позволяющих с помощью компьютера провести целенаправленное моделирование в режиме «имитации» структуры и функций сложного процесса и оптимизацию некоторых его параметров. Набор программных средств и приемов моделирования определяет специфику системы моделирования - специального программного обеспечения [1].

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

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

· Формализованное описание модели. Графическое изображение имитационной модели, функции, выполняемые каждым подпроцессом, условия взаимодействия всех подпроцессов и особенности поведения моделируемого процесса (временная, пространственная и финансовая динамика) должны быть описаны на специальном языке для последующей трансляций. Для этого существуют различные способы:

1) описание вручную на языке типа GPSS, Pilgrim и даже на Visual Basic. Последний очень прост, на нем можно запрограммировать элементарные модели, но он не подходит для разработки реальных моделей сложных экономических процессов, так как описание модели средствами Pilgrim компактнее аналогичной алгоритмической модели на Visual Basic в десятки-сотни раз;

2) автоматизированное описание с помощью компьютерного графического конструктора во время проведения структурного анализа, т.е. с очень незначительными затратами на программирование. Такой конструктор, создающий описание модели, имеется в составе системы моделирования в Pilgrim.

· Построение модели (build). Обычно это трансляция и редактирование связей (сборка модели), верификация (калибровка) параметров. Трансляция осуществляется в различных режимах:

§ в режиме интерпретации, характерном для систем типа GPSS.

§ в режиме компиляции (характерен для системы Pilgrim).

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

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

· Проведение экстремального эксперимента для оптимизации определенных параметров реального процесса.

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

1.1 Метод Монте-Карло и проверка статистических гипотез

Статистические испытания по методу Монте-Карло представляют собой простейшее имитационное моделирование при полном отсутствии каких-либо правил поведения. Получение выборок по методу Монте-Карло - основной принцип компьютерного моделирования систем, содержащих стохастические или вероятностные элементы. Зарождение метода связано с работой фон Неймана и Улана в конце 1940-х гг., когда они ввели для него название «Монте-Карло» и применили его к решению некоторых задач экранирования ядерных излучений [2].

Многим специалистам термин «метод Монте-Карло» иногда представляется синонимом термина «имитационное моделирование», что в общем случае неверно. Имитационное моделирование - это более широкое понятие, и метод Монте-Карло является важным, но далеко не единственным методическим компонентом имитационного моделирования.

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

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

* случайные моменты времени, в которые поступают заказы на фирму;

* загрузка производственных участков или служб объекта экономики;

* внешние воздействия (требования или изменения законов, платежи по штрафам и др.);

* оплата банковских кредитов;

* поступление средств от заказчиков;

* ошибки измерений.

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

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

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

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

* согласия (хи-квадрат);

* Крамера-фон Мизеса;

* Колмогорова-Смирнова,

Критерий предпочтителен, если объемы выборок N, в отношении которых проводится анализ, велики. Это мощное средство, если N > 100 значений. Однако при анализе экономических ситуаций иногда бывает довольно трудно (или невозможно) найти 100 одинаковых процессов, развивающихся с различными исходными данными.

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

Критерий Крамераг-фон Мизеса дает хорошие результаты при малых объемах выборок (при N < 10). Однако следует отметить два обстоятельства:

1) при N < 10, каким бы методом ни пользоваться, вопрос о до­верительной вероятности при проверке статистической гипотезы решается плохо (эта вероятность мала при значительных размерах доверительных интервалов);

2) метод Монте-Карло используется как раз для того, чтобы недостающие данные собрать с помощью специального вычислительного статистического инструментария и компьютера.

Поэтому будем полагать, что реальные объемы выборок, которые можно получить, находятся в пределах 10 < N < 100. Как указывают многие исследователи, для указанных пределов хорошие результаты дает критерий Колмогорова-Смирнова. Он применяется в тех случаях, когда проверяемое распределение непрерывно и известны среднее значение и дисперсия проверяемой совокупности.

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

Среди других вычислительных методов, метод Монте-Карло выделяется своей простотой и общностью. Медленная сходимость является существенным недостатком метода, однако, могут быть указаны его модификации, которые обеспечивают высокий порядок сходимости при определённых предположениях. Правда, вычислительная процедура при этом усложняется и приближается по своей сложности к другим процедурам вычислительной математики. Сходимость метода Монте-Карло является сходимостью по вероятности. Это обстоятельство вряд ли следует относить к числу его недостатков, ибо вероятностные методы в достаточной мере оправдывают себя в практических приложениях. Что же касается задач, имеющих вероятностное описание, то сходимостью по вероятности является даже в какой-то мере естественной при их исследовании.

1.2 Законы распределения случайных величин при имитации экономических процессов

Рассмотрим приемы, которые автоматически выполняются в современных системах имитационного моделирования.

Равномерное распределение на интервале (0,1)

Существуют различные методы получения равномерного распределения. Рассмотрим программный генератор, наиболее подходящий для компьютеров с 32-разрядным словом.

Генератор предназначен для применения в системе имитационного моделирования, позволяющей параллельное моделирование сложной сети взаимодействующих процессов, причем каждый процесс может иметь свой датчик псевдослучайных величин. Поэтому в качестве глобальной переменной рассматривается указатель k - адрес, управляющий структуры такого процесса, имеющего номер next.

Равномерное распределение на произвольном интервале

Рассмотрим важное и очень простое равномерное распределение на интервале (m-s, m+s). Плотность вероятностей этого распределения описывается следующей формулой:

где m - математическое ожидание;

s - максимальное отклонение от математического ожидания.

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

Равномерное распределение можно использовать при расчетах по сетевым графикам работ, в том числе при работе по методу PERT.

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

Формула для определения дисперсии получается после получения второго момента:

Нормальное распределение

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

Непрерывная случайная величина t имеет нормальное распределение вероятностей с параметрами m и у > 0.

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

T{n}=

Если сделать предельный переход и устремить n->, то распределение случайной величины t=T{n} устремится к нормальному с математическим ожиданием M[t] и дисперсией D[t], определяемыми из следующих соотношений:

M[t]= и D[i]=

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

При оценках трудозатрат всегда справедливо предположение о том, что их продолжительность - это случайная величина, которая распределена по нормальному закону.

Экспоненциальное распределение

Оно также занимает очень важное место при проведении системного анализа экономической деятельности. Этому закону распределения подчиняются многие явления, например:

* время поступления заказа на предприятие;

* посещение покупателями магазина-супермаркета;

* телефонные разговоры;

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

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

p(t)=

Особенностью этого распределения являются его параметры:

* математическое ожидание M[t]=1/л;

* дисперсия D[t] == .

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

Рассмотрим пример, допустим, что имеется некая крупная фирма. Клиенты фирмы - это физические и юридические лица. Каждый из них может иметь набор планов и расписанных дел на значительном интервале времени. Если рассмотреть суммарный поток обращений этих клиентов к служащим фирмы по разным вопросам, то интервал времени между двумя последовательными обращениями в соответствии с рассмотренной теоремой является случайной величиной, распределенной по экспоненциальному закону.

Обобщенное распределение Эрланга

Обычно распределение Эрланга используется в случаях, когда длительность какого-либо процесса можно представить как сумму к элементарных последовательных составляющих, распределенных по экспоненциальному закону. Если обозначить математическое ожидание длительности всего процесса как M[t]=l/л, среднюю длительность элементарной составляющей как 1/л, то плотность вероятностей распределения Эрланга представляется следующей формулой:

Дисперсия такого распределения D[t]=. Очевидно, что при k=1 - это экспоненциальное распределение.

1.3 Программы имитационного моделирования

Рассмотрим программы имитационного моделирования GPSS-World и AnyLogic.

Программа имитационного моделирования GPSS-World

GPSS - интегрирующая языковая система, применяющаяся для описания пространственного движения объектов. Такие динамические объекты в языке GPSS называются транзактами и представляют собой элементы потока. Транзакты "создаются" и "уничтожаются". Функцию каждого из них можно представить как движение через модель М с поочерёдным воздействием на её блоки. Функциональный аппарат языка образуют блоки, описывающие логику модели, сообщая транзактам, куда двигаться и что делать дальше. Данные для программной реализации подготавливаются в виде пакета управляющих и определяющих карт, которым составляется по схеме модели, набранной из стандартных символов. Созданная программа GPSS, работая в режиме интерпретации, генерирует и передаёт транзакты из блока в блок. Каждый переход транзакта приписывается к определенному моменту системного времени [3].

Исходная программа на языке GPSS представляет собой последовательность операторов. Операторы GPSS записываются и вводятся в ПК в следующем формате:

§ номер строки

§ имя

§ операция

§ операнды;

§ комментарии

Все операторы исходной программы должны начинаться с номера строки - целого положительного числа от 1 до 9999999. После ввода операторов они располагаются в исходной программе в соответствии с нумерацией строк. Обычно нумерация производится с некоторым шагом, отличным от 1, чтобы иметь возможность добавления операторов в нужное место исходной программы.

При описании формата операторов номера строк будут опускаться для лучшей читаемости текста.

Отдельные операторы могут иметь имя для ссылки на эти операторы в других операторах. Если такие ссылки отсутствуют, то этот элемент оператора не является обязательным.

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

В полях операндов записывается информация, уточняющая и конкретизирующая выполнение функции, определенной в поле операции. Эти поля в зависимости от типа операции содержат до семи операндов, расположенных в определенной последовательности и обозначаемых обычно первыми буквами латинского алфавита от A до G. Некоторые операторы вообще не имеют операндов, а в некоторых операнды могут быть опущены, при этом устанавливаются их стандартные значения (по умолчанию). При записи операндов используется позиционный принцип: пропуск операнда отмечается запятой [4].

Каждый оператор GPSS относится к одному из четырех типов: операторы-блоки, операторы определения объектов, управляющие операторы и операторы-команды.

Операторы-блоки формируют логику модели. В GPSS имеется около 50 различных видов блоков, каждый из которых выполняет свою конкретную функцию. За каждым из таких блоков стоит соответствующая подпрограмма транслятора, а операнды каждого блока служат параметрами этой подпрограммы.

Операторы определения объектов служат для описания параметров некоторых объектов GPSS. Примерами параметров объектов могут быть количество каналов в многоканальной системе массового обслуживания, количество строк и столбцов матрицы и т.п.

Управляющие операторы служат для управления процессом моделирования (прогоном модели).

Операторы-команды позволяют управлять работой интегрированной среды GPSS. Управляющие операторы и операторы-команды обычно не включаются в исходную программу, а вводятся непосредственно с клавиатуры ПК в процессе интерактивного взаимодействия с интегрированной средой.

Объекты GPSS можно разделить на семь классов: динамические, операционные, аппаратные, статистические, вычислительные, запоминающие и группирующие.

Динамические объекты, соответствующие заявкам в системах массового обслуживания, называются в GPSS транзактами. Они "создаются" и "уничтожаются" так, как это необходимо по логике модели в процессе моделирования.

Операционные объекты GPSS, называемые блоками, соответствуют операторам-блокам исходной программы. Они, формируют логику модели, давая транзактам указания: куда идти и что делать дальше.

Аппаратные объекты GPSS - это абстрактные элементы, на которые может быть расчленено (декомпозировано) оборудование реальной системы. К ним относятся одноканальные и многоканальные устройства и логические переключатели. Логические переключатели (ЛП) используются для моделирования двоичных состояний логического или физического характера.

Статистические объекты GPSS служат для сбора и обработки статистических данных о функционировании модели. К ним относятся очереди и таблицы.

К вычислительным объектам GPSS относятся переменные (арифметические и булевские) и функции. Они используются для вычисления некоторых величин, заданных арифметическими или логическими выражениями либо табличными зависимостями.

Запоминающие объекты GPSS обеспечивают хранение в памяти ПК отдельных величин, используемых в модели, а также массивов таких величин.

К объектам группирующего класса относятся списки пользователя и группы.

Каждому объекту того или иного класса соответствуют числовые атрибуты, описывающие его состояние в данный момент модельного времени. Большая часть атрибутов составляет так называемые стандартные числовые атрибуты (СЧА), которые могут использоваться в качестве операндов операторов исходной программы. Все СЧА в GPSS являются целыми числами.

Программа имитационного моделирования AnyLogic

AnyLogic -- программное обеспечение для имитационного моделирования сложных систем и процессов, разработанное российской компанией «XJ Technologies». Программа обладает графической средой пользователя и позволяет использовать язык Java для разработки моделей [5].

В начале 1990-х в компьютерной науке наблюдался большой интерес к построению математически трактуемого описания взаимодействия параллельных процессов. Что сказалось на подходах к анализу корректности параллельных и распределённых программ. Группа учёных из Санкт-Петербургского Политехнического университета разработала программное обеспечение для анализа корректности системы; новый инструмент назвали COVERS (Параллельная Верификация и Моделирование). Анализируемая система процессов задавалась графически, с помощью описания её структуры и поведения отдельных параллельных компонентов, которые могли взаимодействовать с окружением -- с другими процессами и средой. Инструмент использовался в исследовательских проектах компании Хьюлетт-Паккард (англ. Hewlett-Packard). В 1998 г. успех этого исследования вдохновил лабораторию организовать коммерческую компанию с миссией создания нового программного обеспечения для имитационного моделирования. Акцент при разработке ставился на прикладные методы: моделирование стохастических систем, оптимизацию и визуализацию модели. Новое программное обеспечение, выпущенное в 2000 г., было основано на последних преимуществах информационных технологий: объектно-ориентированный подход, элементы стандарта UML, языка программирования Java, современного GUI, и т. д. Продукт получил название AnyLogic, потому что он поддерживал все три известных метода моделирования:

· системная динамика;

· дискретно-событийное (процессное) моделирование;

· агентное моделирование.

А также любую комбинацию этих подходов в пределах одной модели. Первоверсии был присвоен индекс 4 -- Anylogic 4.0, так как нумерация продолжила историю версий предыдущей разработки -- COVERS 3.0.

Огромный шаг вперёд был сделан в 2003 году, когда был выпущен AnyLogic 5, ориентированный на бизнес-моделирование. С помощью AnyLogic стало возможным разрабатывать модели в следующих областях

· производство;

· логистика и цепочки поставок;

· рынок и конкуренция;

· бизнес-процессы и сфера обслуживания;

· здравоохранение и фармацевтика;

· управление активами и проектами;

· телекоммуникации и информационные системы;

· социальные и экологические системы;

· пешеходная динамика;

· оборона.

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

Программа имитационного моделирования MSProject

MicrosoftProject (или MSP) -- программа управления проектами, разработанная и продаваемая корпорацией Microsoft.

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

MicrosoftProject создаёт расписания критического пути. Расписания могут быть составлены с учётом используемых ресурсов. Цепочка визуализируется в диаграмме Ганта.

Под маркой MicrosoftProject доступны сразу несколько продуктов и решений:

§ MicrosoftProjectStandard -- однопользовательская версия для небольших проектов

§ MicrosoftProjectProfessional -- корпоративная версия продукта поддерживающая совместное управление проектами и ресурсами, а также управление портфелями проектов с помощью MicrosoftProjectServer.

§ MicrosoftProjectWebAccess -- Web-интерфейс для отчетности о выполнении задач, а также просмотра портфелей проектов.

§ MicrosoftProjectPortfolioServer -- продукт для отбора проектов для запуска на основе сбалансированных показателей [6].

Корпоративная редакция Microsoft Project вместе с методикой внедрения на базе Microsoft SolutionFramework составляет решение по управлению проектами от корпорации Microsoft под названием Microsoft Enterprise Projec tManagement Solution (MS EPM).

Корпоративная версия Microsoft Project в отличие от стандартной версии требует квалифицированного персонала для внедрения. Microsoft ведет ряд сертификационных программ по MS Project для проверки квалификации аналитиков.

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

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

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

Освоение и практическое применение методов управления проектами возможно при использовании современного программного продукта, разработанного и используемого сегодня в России и странах с рыночной экономикой - MSProject.

MicrosoftProject - автоматизированная система построения графика проекта

Наиболее распространенным средством автоматизации системы управления проектами проекта является программный комплекс MicrosoftProject, разработанный фирмой Microsoft.

Основным аспектом при использовании системы управления проектами (СУП) MicrosoftProject является правильное создание графика создания и реализации проекта. Система управления проектами Project предоставляет пользователям широкие возможности для создания графиков, причем это можно делать "вручную" - при помощи клавиатуры или путем копирования информации из файлов, созданных другими программами.

Автоматизация СУП базируется на последовательность формирования графика проекта:

* определение опорных дат проекта;

* создание перечня работ с оценкой их продолжительности;

* организация иерархической структуры перечня графика работ ;

* формирование ресурсного обеспечения;

* сохранение файла.

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

У каждого проекта должны быть определены две опорных даты: начато и окончание. СУП Project позволяет использовать одну из них как точку отсчета.

Если в качестве опорной определена дата начала работ (ProjectStartDate), то в результате расчета графика реализации проекта будет автоматически вычислять дата окончания работ (именно так Project и действует по умолчанию). Попытка начать работу до даты начала проекта приведет к выводу сообщения об ошибке, в ответ на которое пользователь сможет принять свое решение. По умолчанию добавляемые в состав графика работы рассматриваются как срочные (AsSoonAsPossible).

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

Перечень работ может быть создан "вручную" или путем переноса данных из любого файла, например, баз данных FoxPro или Access, документа Word, таблицы Excel.

Иерархию графика работ в MSProject можно организовывать на разной основе, по: исполнителям; периодам работы; технологическому признаку; видам продуктов, услуг, по конструктивному признаку.

1.4 Выводы по главе

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

§ Реализация законов распределения случайных величин должна осуществляться по выбору пользователя.

§ Модуль должен отличаться удобством моделирования для конкретного пользователя (без участия программы).

§ В модуле должна быть осуществлена автоматизация подкачки данных из реальных БД, т.е. интерфейс менеджера.

2. ПОСТАНОВКА ЗАДАЧИ

Тренажер под названием “Logist” представляет собой модуль отображения и редактирования схем бизнес-процессов и временных диаграмм. На его основе также были реализованы методы сетевого планирования и имитационного моделирования.

Но для пользователей тренажера “Logist”, которые хотят принимать верные управленческие решения на основе полного анализа данных, этого будет недостаточно. И именно поэтому необходимо в систему “Logist” интегрировать графический редактор сетевых графиков.

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

3. ОПИСАНИЕ ГРАФ-СХЕМЫ СТРАТЕГИИ

Схема стратегии похожа на привычный сетевой график, за исключением символа “ИЛИ”, который будет использоваться не часто. Имея структурированное описание ресурсов, ограничений и правил, этого достаточно, чтобы смоделировать варианты решения задачи. Общий вид схемы стратегии рассмотрен на рисунке 1.1.

Рисунок 3.1. - Граф-схема стратегии

Необходимо реализовать данную схему в системе “Логист”.

4. РЕАЛИЗАЦИЯ ГРАФИЧЕСКОГО РЕДАКТОРА СЕТЕВЫХ ГРАФИКОВ

Основное меню графического редактора выглядит следующим образом (рис. 4.1).

Рисунок 4.1. - Основное меню графического редактора

Для того что бы задать работы графически следует нажать в поле правой кнопкой мыши и выбрать пункт «Добавить работу» (рис. 4.2).

Рисунок 4.2. - Добавление работы в графическом редакторе

После того как мы добавили работу указываем название работы, оборудование и материалы (рис. 4.3).

Примечание. Перед тем как создавать работу в граф редакторе следует обязательно нажать на пункт меню «Подключить БД» для того что бы можно было выбирать материалы и оборудование.

Рисунок 4.3. - Заполнение данных

После того как мы построили диаграмму в графическом редакторе нажимаем клавишу «Сохранить» и пункт меню «Построить диаграмму».

После того как нажали клавишу «Построить диаграмму» программа строит диаграмму Ганта как показано на рисунке 4.4.

Рисунок 4.4. - Диаграмма Ганта после задания работ в графическом редакторе системы Логист

5. ТЕСТИРОВАНИЕ СИСТЕМЫ

К 3-м рабочим поступают детали для обработки. Интервал поступления деталей 4-6 мин. Если первый занят, то деталль идет ко второму, если второй занят, то деталь идет к третьему. При этом третий должен обрабатывать все имеющиеся детали. Время обработки: 1-й 9-11, 2-й 11-15, 3-й 7-9. Смоделировать работу рабочих в течение 5 часов.

На рисунке изображен графический редактор показывающий один цикл работы.

Рисунок 5.1 - Состояние работы в графическом редакторе

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

По скольку нам по условиям задачи следует найти количество деталей то материалы мы не указываем. Так же имеется время моделирования в минутах - это общее время всех работ.

Что бы увидеть диаграмму Ганта нажимаем на кнопку «Построить диаграмму» после чего получаем диаграмму как показано на рисунке 5.2

Рисунок 5.2 - Диаграмма Ганта

На данной диаграмме мы можем увидеть этапы работ, название работ возобновляемые и невозобновляемые ресурсы.

Так же мы можем посмотреть не большой отчет по работам рисунок 5.3

Рисунок 5.3 - Отчет по выполненой работе

Из отчета видно, что по окончанию выполнения задачи рабочие изготовили по 25 деталей.

Так же мы можем посмотреть отчет в Excel как показано на рисунке 5.4.

Рисунок 5.4 - Фрагмент отчета в Excel

Отчет в Excel состоит из листов: работы и ресурсы возобновляемые и не возобновляемые. На рисунке выше приведен пример из «листа» работы.

ЗАКЛЮЧЕНИЕ

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

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

Тренажер “Логист” представляет собой модуль отображения и редактирования схем бизнес-процессов и временных диаграмм, в рамках которого были реализованы методы сетевого планирования и имитационного моделирования на основе графической схемы стратегии.

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. В.Н. Бурков, Г.С. Джавахадзе, Н.И. Динова, Д.А Щепкин. Применение игрового имитационного моделирования для оценки эффективности экономических механизмов. М.: ИПУ РАН, 2003. - с 51.

2. А.А. Емельянов. Имитационное моделирование экономических процессов: Учеб. пособие. М.: Финансы и статистика, 2002. - 813 с.

3. В.А. Орлов и др. Система моделирования GPSS/ PC для ПЭВМ, Выпуск 69. М: Международный центр научной и технической информации. МЭИ,1990 г.

4. Г.М. Устинова. Информационные системы менеджмента: основные аналитические технологии в поддержке принятия решений / Учеб. пособие. СПб: Изд-во «ДиаСофтЮП», 2000. - 308 с.

5. Н.Н. Лычкина. Имитационное моделирование экономических процессов. М.: ГУУ, 2005.

ИСХОДНЫЙ КОД ПРОГРАММЫ

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace Logist

{

class DiagramsBlock

{

int width;

int height;

int x0;

int y0;

Brush b;

Pen p;

String name;

public DiagramsBlock(Brush b1, Pen p1, int x01, int y01, int width1, int heigth1, String name1)

{

b = b1;

p = p1;

x0 = x01;

y0 = y01;

width = width1;

height = heigth1;

name = name1;

}

public void Paint(Graphics g)

{

g.FillRectangle(b, x0, y0, width, height);

g.DrawRectangle(p, x0, y0, width, height);

// g.DrawString(name, new Font("Arial", 9), new SolidBrush(Color.Black), x0 + width + 4, y0);

}

public void Resize(int dx, Graphics g)

{

width += dx;

Paint(g);

}

public void Replace(int dx, Graphics g)

{

x0 += dx;

Paint(g);

}

public void BolidPen(int width1, Graphics g)

{

p.Width = width1;

Paint(g);

}

public int GetX()

{

return x0;

}

public int GetY()

{

return y0;

}

public int GetWidth()

{

return width;

}

public int GetHeight()

{

return height;

}

}

}

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace Logist

{

class DiagramsParent

{

Point[] xy;

Brush b;

Pen p;

String name;

public DiagramsParent(Brush b1, Pen p1, Point[] xy1, String name1)

{

b = b1;

p = p1;

xy = xy1;

name = name1;

}

public void Paint(Graphics g)

{

g.FillPolygon(b, xy);

g.DrawPolygon(p, xy);

// g.DrawString(name, new Font("Arial", 9), new SolidBrush(Color.Black), xy[2].X + 4, xy[2].Y + 0);

}

}

}using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using AdvancedDataGridView;

using System.Data.SqlClient;

using System.Data.Sql;

using System.Threading;

using System.Data.Odbc;

//using Excel = Microsoft.Office.Interop.Excel;

namespace Logist

{

public class Domfort

{

public List<string> mater=new List<string>();

public List<string> TypeFacilities = new List<string>();

public List<List<string>> MarkFacilities=new List<List<string>>();

public void LoadData()

{

string connStr = @"Data Source=(local)\SQLEXPRESS;

Initial Catalog=DomFort;

Integrated Security=True";

SqlConnection conn = new SqlConnection(connStr);

try

{

conn.Open();

}

catch (SqlException se)

{

MessageBox.Show("Ошибка подключения: "+ se.Message);

return;

}

SqlCommand cmd = new SqlCommand("Select [Наименование] From Materials", conn);

SqlDataReader dr = cmd.ExecuteReader();

while (dr.Read())

{

mater.Add(dr.GetValue(0).ToString());

}

cmd = new SqlCommand("Select [Оборудование] From Facilities", conn);

dr.Close();

dr = cmd.ExecuteReader();

while (dr.Read())

{

if (!TypeFacilities.Contains(dr.GetValue(0).ToString()))

TypeFacilities.Add(dr.GetValue(0).ToString());

}

cmd = new SqlCommand("Select [Оборудование],[Марка],[Модель] From Facilities", conn);

dr.Close();

for (int i = 0; i < TypeFacilities.Count; i++)

{

List<string> ls = new List<string>();

dr = cmd.ExecuteReader();

while (dr.Read())

{

if (dr.GetValue(0).ToString() == TypeFacilities[i])

ls.Add(dr.GetValue(1).ToString() + " " + dr.GetValue(2).ToString());

}

MarkFacilities.Add(ls);

dr.Close();

}

conn.Close();

conn.Dispose();

}

}

}using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using AdvancedDataGridView;

namespace Logist

{

class DrawWorks

{

enum ModiferState

{

zeroState, resize, replace, setFirstBlockToDrawArrow, setSecondBlockToArrow,

arrowIsMarked, dateIsMarked

}

public void ReDrawWorks(PictureBox pictureBoxWorks, ToolStripMenuItem Days, ToolStripMenuItem Hours, ToolStripMenuItem Minutes,

AdvancedDataGridView.TreeGridView treeGridViewWorks, Graphics mainBufWorks, SplitContainer splitContainerDiagrams,

MainForm mainForm, DateTime startDate, List<DiagramsBlock> blocks, List<DiagramsParent> parents,

List<HandleBlock> leftHandles, List<HandleBlock> rightHandles, List<LineBlockToBlock> lineBlockToBlock)

{

#region Перерисовка всех блоков

blocks.Clear();

parents.Clear();

leftHandles.Clear();

rightHandles.Clear();

lineBlockToBlock.Clear();

int currentHeight = 26;

bool BlockIsCreated;

Color brushColor;

Point[] xy = new Point[6];

Point xy00;

xy00 = new Point(0, 0);

for (int i = 0; i < treeGridViewWorks.Nodes.Count; i++)

{

if ((treeGridViewWorks.Nodes[i].HasChildren == true) && (treeGridViewWorks.Nodes[i].ImageIndex == 2))

{

EditParentNodeInfo(treeGridViewWorks.Nodes[i]);

}

}

for (int i = 0; i < treeGridViewWorks.Columns[1].DataGridView.RowCount; i++)

{

currentHeight += 22;

#region Отрисовка стрелок

if (treeGridViewWorks.Columns[11].DataGridView["WorkBeforeThat", i].Value.ToString() != "")

{

string blockIndex = treeGridViewWorks.Columns[11].DataGridView["WorkBeforeThat", i].Value.ToString();

for (int k = 0; k < treeGridViewWorks.Columns[1].DataGridView.RowCount; k++)

{

if (treeGridViewWorks.Columns[7].DataGridView["Index", k].Value.ToString() == blockIndex)

{

treeGridViewWorks.Columns[12].DataGridView["WorkAfterThat", k].Value =

treeGridViewWorks.Columns[7].DataGridView["Index", i].Value;

int leftIndent1 = LeftIndent(Days, Hours, Minutes, Convert.ToDateTime(treeGridViewWorks.Columns[1].DataGridView["Begin", i].Value), startDate);

//TimeSpan n1 = Convert.ToDateTime(treeGridViewWorks.Columns[1].DataGridView["Begin", i].Value) - startDate;

int leftIndent2 = LeftIndent(Days, Hours, Minutes, Convert.ToDateTime(treeGridViewWorks.Columns[1].DataGridView["End", k].Value), startDate);

//TimeSpan n2 = Convert.ToDateTime(treeGridViewWorks.Columns[1].DataGridView["End", k].Value) - startDate;

if (leftIndent1 < leftIndent2)

{

lineBlockToBlock.Add(new LineBlockToBlock(new SolidBrush(Color.Red), new Pen(Color.Red),

leftIndent2 * 22, 33 + 22 * (k + 1), leftIndent1 * 22, currentHeight + 7));

}

else

{

lineBlockToBlock.Add(new LineBlockToBlock(new SolidBrush(Color.Black), new Pen(Color.Black),

leftIndent2 * 22, 33 + 22 * (k + 1), leftIndent1 * 22, currentHeight + 7));

}

lineBlockToBlock[lineBlockToBlock.Count - 1].Paint(mainBufWorks);

break;

}

}

}

#endregion

}

currentHeight = 26;

DateTime CheckedDate = DateTime.Today; // дата для проверки, находится ли правый хэндл правее левого

for (int i = 0; i < treeGridViewWorks.Columns[1].DataGridView.RowCount; i++)

{

if (treeGridViewWorks.Columns[10].DataGridView["RightHandle", i].Value.ToString() == "checked")

{

CheckedDate = Convert.ToDateTime(treeGridViewWorks.Columns[1].DataGridView["End", i].Value);

}

}

for (int i = 0; i < treeGridViewWorks.Columns[1].DataGridView.RowCount; i++)

{

currentHeight += 22;

if ((treeGridViewWorks.Columns[2].DataGridView["End", i].ReadOnly == false) ||

((treeGridViewWorks.Columns[2].DataGridView["End", i].ReadOnly == true)

&& (treeGridViewWorks.Columns[8].DataGridView["Collapse", i].Value.ToString() == "true")))

{

BlockIsCreated = true;

brushColor = treeGridViewWorks.Columns[6].DataGridView["ColorWorks", i].Style.BackColor;

int leftIndent = LeftIndent(Days, Hours, Minutes,

Convert.ToDateTime(treeGridViewWorks.Columns[1].DataGridView["Begin", i].Value), startDate);

int duration = Duration(Days, Hours, Minutes, Convert.ToDateTime(treeGridViewWorks.Columns[1].DataGridView["Begin", i].Value),

Convert.ToDateTime(treeGridViewWorks.Columns[1].DataGridView["End", i].Value));

blocks.Add(new DiagramsBlock(new SolidBrush(brushColor), new Pen(Color.Black), leftIndent * 22, currentHeight,

duration * 22, 14, Convert.ToString(treeGridViewWorks.Columns[0].DataGridView["NameWork", i].Value)));

if (duration != 0)

{

blocks[i].Paint(mainBufWorks);

}

#region Отрисовка Хендлов

if (duration != 0)

{

if ((treeGridViewWorks.Columns[9].DataGridView["LeftHandle", i].Value.ToString() == "false") ||

(treeGridViewWorks.Columns[11].DataGridView["WorkBeforeThat", i].Value.ToString() != "")

|| (Convert.ToDateTime(treeGridViewWorks.Columns[1].DataGridView["Begin", i].Value) < CheckedDate))

{

leftHandles.Add(new HandleBlock(new SolidBrush(Color.White), new Pen(Color.White), 0, 0, 0, 0));

}

else

if (treeGridViewWorks.Columns[9].DataGridView["LeftHandle", i].Value.ToString() == "true")

{

leftHandles.Add(new HandleBlock(new SolidBrush(Color.White), new Pen(Color.Black),

leftIndent * 22 - 3, currentHeight + 4, 6, 6));

leftHandles[i].Paint(mainBufWorks);

}

else

if (treeGridViewWorks.Columns[9].DataGridView["LeftHandle", i].Value.ToString() == "checked")

{

leftHandles.Add(new HandleBlock(new SolidBrush(Color.Black), new Pen(Color.Black),

leftIndent * 22 - 3, currentHeight + 4, 6, 6));

leftHandles[i].Paint(mainBufWorks);

}

if ((treeGridViewWorks.Columns[10].DataGridView["RightHandle", i].Value.ToString() == "false") ||

(treeGridViewWorks.Columns[12].DataGridView["WorkAfterThat", i].Value.ToString() != ""))

{

rightHandles.Add(new HandleBlock(new SolidBrush(Color.White), new Pen(Color.White), 0, 0, 0, 0));

}

else

if (treeGridViewWorks.Columns[10].DataGridView["RightHandle", i].Value.ToString() == "true")

{

rightHandles.Add(new HandleBlock(new SolidBrush(Color.White), new Pen(Color.Black),

leftIndent * 22 + duration * 22 - 3, currentHeight + 4, 6, 6));

rightHandles[i].Paint(mainBufWorks);

}

else

if (treeGridViewWorks.Columns[10].DataGridView["RightHandle", i].Value.ToString() == "checked")

{

rightHandles.Add(new HandleBlock(new SolidBrush(Color.Black), new Pen(Color.Black),

leftIndent * 22 + duration * 22 - 3, currentHeight + 4, 6, 6));

rightHandles[i].Paint(mainBufWorks);

}

}

else

{

rightHandles.Add(new HandleBlock(new SolidBrush(Color.White), new Pen(Color.White), 0, 0, 0, 0));

leftHandles.Add(new HandleBlock(new SolidBrush(Color.White), new Pen(Color.White), 0, 0, 0, 0));

}

#endregion

xy[0] = xy00; xy[1] = xy00; xy[2] = xy00; xy[3] = xy00; xy[4] = xy00; xy[5] = xy00;

parents.Add(new DiagramsParent(new SolidBrush(Color.White), new Pen(Color.White),

xy, ""));

}

else

{

blocks.Add(new DiagramsBlock(new SolidBrush(Color.White), new Pen(Color.White),

0, 0, 0, 0, ""));

//n = Convert.ToDateTime(treeGridViewWorks.Columns[1].DataGridView["Begin", i].Value) - minDate;

int leftIndent = LeftIndent(Days, Hours, Minutes,

Convert.ToDateTime(treeGridViewWorks.Columns[1].DataGridView["Begin", i].Value), startDate);

int duration = Duration(Days, Hours, Minutes, Convert.ToDateTime(treeGridViewWorks.Columns[1].DataGridView["Begin", i].Value),

Convert.ToDateTime(treeGridViewWorks.Columns[2].DataGridView["End", i].Value));

if (duration == 0)

{

xy[0] = xy00; xy[1] = xy00; xy[2] = xy00; xy[3] = xy00; xy[4] = xy00; xy[5] = xy00;

}

else

{

xy[0] = new Point(leftIndent * 22, currentHeight + 15);

xy[1] = new Point(leftIndent * 22, currentHeight + 1);

xy[2] = new Point(leftIndent * 22 + duration * 22, currentHeight + 1);

xy[3] = new Point(leftIndent * 22 + duration * 22, currentHeight + 15);

xy[4] = new Point(leftIndent * 22 + duration * 22 - 5, currentHeight + 9);

xy[5] = new Point(leftIndent * 22 + 5, currentHeight + 9);

}

brushColor = treeGridViewWorks.Columns[6].DataGridView["ColorWorks", i].Style.BackColor;

parents.Add(new DiagramsParent(new SolidBrush(brushColor), new Pen(Color.Black),

xy, Convert.ToString(treeGridViewWorks.Columns[0].DataGridView["NameWork", i].Value)));

if (duration != 0)

{

parents[i].Paint(mainBufWorks);

}

#region Отрисовка Хендлов

if (duration != 0)

{

if ((treeGridViewWorks.Columns[9].DataGridView["LeftHandle", i].Value.ToString() == "false")

|| (Convert.ToDateTime(treeGridViewWorks.Columns[1].DataGridView["Begin", i].Value) < CheckedDate)

|| (treeGridViewWorks.Columns[11].DataGridView["WorkBeforeThat", i].Value.ToString() != ""))

{

leftHandles.Add(new HandleBlock(new SolidBrush(Color.White), new Pen(Color.White), 0, 0, 0, 0));

}

else

if (treeGridViewWorks.Columns[9].DataGridView["LeftHandle", i].Value.ToString() == "true")

{

leftHandles.Add(new HandleBlock(new SolidBrush(Color.White), new Pen(Color.Black),

leftIndent * 22 - 3, currentHeight + 4, 6, 6));

leftHandles[i].Paint(mainBufWorks);

}

else

if (treeGridViewWorks.Columns[9].DataGridView["LeftHandle", i].Value.ToString() == "checked")

{

leftHandles.Add(new HandleBlock(new SolidBrush(Color.Black), new Pen(Color.Black),

leftIndent * 22 - 3, currentHeight + 4, 6, 6));

leftHandles[i].Paint(mainBufWorks);

}

if (treeGridViewWorks.Columns[10].DataGridView["RightHandle", i].Value.ToString() == "false")

{

rightHandles.Add(new HandleBlock(new SolidBrush(Color.White), new Pen(Color.White), 0, 0, 0, 0));

}

else

if (treeGridViewWorks.Columns[10].DataGridView["RightHandle", i].Value.ToString() == "true")

{

rightHandles.Add(new HandleBlock(new SolidBrush(Color.White), new Pen(Color.Black),

leftIndent * 22 + duration * 22 - 3, currentHeight + 4, 6, 6));


Подобные документы

  • Понятие имитационного моделирования, применение его в экономике. Этапы процесса построения математической модели сложной системы, критерии ее адекватности. Дискретно-событийное моделирование. Метод Монте-Карло - разновидность имитационного моделирования.

    контрольная работа [26,7 K], добавлен 23.12.2013

  • Метод имитационного моделирования, его виды, основные этапы и особенности: статическое и динамическое представление моделируемой системы. Исследование практики использования методов имитационного моделирования в анализе экономических процессов и задач.

    курсовая работа [54,3 K], добавлен 26.10.2014

  • Характеристика метода Монте-Карло. Его преимущество и недостатки, области применения. Решение задач по оптимизации использования ресурсов, управлению запасами и системе массового обслуживания с помощью средств аналитического и имитационного моделирования.

    контрольная работа [1,4 M], добавлен 22.11.2013

  • Статические и динамические модели. Анализ имитационных систем моделирования. Система моделирования "AnyLogic". Основные виды имитационного моделирования. Непрерывные, дискретные и гибридные модели. Построение модели кредитного банка и ее анализ.

    дипломная работа [3,5 M], добавлен 24.06.2015

  • Изучение особенностей метода статистического моделирования, известного в литературе под названием метода Монте-Карло, который дает возможность конструировать алгоритмы для ряда важных задач. Решение задачи линейного программирования графическим методом.

    контрольная работа [1,2 M], добавлен 17.12.2014

  • Элементарные понятия о случайных событиях, величинах и функциях. Числовые характеристики случайных величин. Виды асимметрии распределений. Статистическая оценка распределения случайных величин. Решение задач структурно-параметрической идентификации.

    курсовая работа [756,0 K], добавлен 06.03.2012

  • Связь стохастических процессов и дифференциальных уравнений. Алгоритм Бюффона для определения числа Пи. Геометрический алгоритм Монте-Карло интегрирования. Применение метода Монте-Карло в логистике. Алгоритм Метрополиса, квантовый метод Монте-Карло.

    курсовая работа [258,0 K], добавлен 26.12.2013

  • Структура и параметры эффективности функционирования систем массового обслуживания. Процесс имитационного моделирования. Распределения и генераторы псевдослучайных чисел. Описание метода решения задачи вручную. Перевод модели на язык программирования.

    курсовая работа [440,4 K], добавлен 30.10.2010

  • Обоснование, схема и описание бизнес-процесса организации. Идентификация законов распределения случайных величин. Разработка и описание моделирующего алгоритма для реализации программы имитационной модели. Разработка компьютерной программы моделирования.

    курсовая работа [265,3 K], добавлен 28.07.2013

  • Статистическая модель случайного процесса. Численный метод Монте-Карло. Типы имитации, ее достоинства и возможности. Простая имитационная модель системы обработки документов. Использование для моделирования языка Siman. Его основные моделирующие блоки.

    презентация [1,6 M], добавлен 22.10.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.