Имитационное моделирование

Вопросы по программированию, не подходящие в другие разделы.

Модераторы: Naeel Maqsudov, C_O_D_E

alexander.spb
Сообщения: 22
Зарегистрирован: 24 мар 2009, 13:25
Откуда: St.Petersburg

24 мар 2009, 14:42

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

я не прошу мне её сделать, может кто-то заимался подобными вещами и подкинет пару ссылочек на примеры или описаловы. буду очень длагодарен!

спасибо!
Делается "руками", и делается не сложно.
Если использовать объектно-ориентированный язык, то мир сводится к взаимодействию объектов-шлюзов и объектов-судов.
Необходимо также создать генератор объектов-судов, интервал между генерациями лучше распределить по нормальному закону. Параметры генерации - направление движения, скорость и приоритет.
Шлюзы можно представить как массив целых чисел. Число = кол-ву суден в нем. Параметры шлюза - его длина, время открытия / закрытия.

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

Чтобы получить видимость практической ценности, считаем, например, минимальный интервал между генерациями новых судов, или максимальное кол-во шлюзов, при котором система не "захлебывается" (то есть продолжается перемещение судов).
Rita_R
Сообщения: 3
Зарегистрирован: 17 мар 2009, 21:25

29 мар 2009, 20:46

Запускала программу на GPSS 50 раз и все время получала идентичные результаты (макс.очередь, абсолютное время модели..). Почему, ведь время генерирования транзактов и их обработки заданы временными интервалами, а не конкретными числами?


GENERATE 5,3
QUEUE RITA
SEIZE TT
DEPART RITA
ADVANCE 8,3
RELEASE TT
TERMINATE 1

GENERATE 100
TERMINATE

START 10


Можно ли утверждать, что каждый отчет правильный?
alexander.spb
Сообщения: 22
Зарегистрирован: 24 мар 2009, 13:25
Откуда: St.Petersburg

29 мар 2009, 21:33

генераторы случайных чисел в GPSS превдо-случайные, поэтому результаты должны быть одинаковы.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

30 мар 2009, 03:46

Там же было что-то типа RANDOMIZE...
Не помню уже...
alexander.spb
Сообщения: 22
Зарегистрирован: 24 мар 2009, 13:25
Откуда: St.Petersburg

31 мар 2009, 11:17

я нашел статеечку про датчики GPSS:
http://venec.ulstu.ru/lib/2002/1/Evseeva_Shishkin.pdf

Цитата:
Необходимо учитывать, что в GPSS имеются восемь датчиков
равномерно распределенных псевдослучайных чисел, у каждого из
которых есть свое имя: RN1, RN2,..., RN8. Имена датчиков
являются стандартными числовыми атрибутами (СЧА), которые
используются для получения псевдослучайных чисел с другими
распределениями. При i-м обращении к любому из датчиков
вычисляется произведение a(k)*Х(i-1), где k - индекс, который с
равной вероятностью принимает значения 0,1,2,...,7; a(k) - ядро; X(i-
1) - значение множителя, которое получено при предыдущем
обращении к датчику. Если i=1, то X(i-1)=X(0) - начальное значение
множителя X(i).
Дробные числа датчик выдает, если его имя используется в ка-
честве аргумента функции. При использовании датчика в любом
другом контексте выдаются целые числа, распределенные
равномерно в интервале [0,999]. У всех восьми датчиков начальное
значение индекса k=0, а начальное значение множителя X(0)=1.
Поэтому все датчики формируют совершенно одинаковые
псевдослучайные последовательности. Однако пользователь
может изменить последовательность псевдослучайных чисел путем
изменения начального значения X(0) множителя. Такую
возможность обеспечивает команда RMULT (УСТАНОВИТЬ
ЗНАЧЕНИЯ ДАТЧИКОВ), имеющая восемь операндов от A до H,
которые используются для записи начальных значений множителя
соответственно 1-8 датчиков. Так, например,
RMULT 325,14159,,8677
устанавливает начальное значения множителей датчиков RN1, RN2
и RN4 соответственно равными 325,14159,8677. Начальные
значения множителей, задаваемых в RMULT, должны быть
нечетными и иметь от одного до пяти разрядов.
artom
Сообщения: 0
Зарегистрирован: 24 май 2009, 14:39

24 май 2009, 14:41

Бесплатные теле и радиоприемники для просмотра тысяч телеканалов и прослушивания тысяч радиостанций со всего мира обладают уникальными параметрами:
Не требуется установка ПО
Не требуются дополнительные настройки
Не требуется дополнительное оборудование
Обеспечивается автоматическое обновление теле и радиоканалов
Поддерживаются телеканалы, ведущие прямую трансляцию
Обеспечивается возможность одновременного открытия неограниченного количества теле или радиоприемников
Обеспечивается высокое качество изображения и звука
Загрузите очень маленький файл http://mystic-news.com/free-tv-online/f ... ne-tv.html кликните на иконку, выберите телеканал или радиостанцию и слушайте ! Такого Вы еще не видели !
Beginner
Сообщения: 2
Зарегистрирован: 04 авг 2017, 11:19

06 авг 2017, 11:29

OTELLO писал(а):спасибо, но к сожалению мне надо полностью запрограммировать это именно в средах дельфи, си или вообще на Vba в экселе... вот я и теряюсь...

Для Дельфи и Лазаруса есть абслолютно бесплатная библиотека для имитационного моделирования с открытым исходным кодом - OpenSIMPLY.
Очень простая для начинающих, с обучающими примерами (Tutorial), где буквально шаг за шагом объясняется как быстро создать собственную модель.
Для библиотеки есть подробная документация и всплывающие подсказки (Insight help) для Delphi и Lazarus.
Загрузить можно осюда opensimply.org или с sourceforge.
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

09 авг 2017, 08:43

Эта задача имеет целью научить вас моделировать процессы, изучить поведение объектов и используя логику и аналитическое мышление написать алгоритм управления.
Я не думаю, что преподавателя устроит тот факт, что вы найдете подобную библиотеку для дельфы или мощное и универсальное приложение для моделирования процессов. Так вы программистами не станете.
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
Evgenii32
Сообщения: 20
Зарегистрирован: 14 сен 2017, 22:15

18 сен 2017, 20:50

Воспользуйтесь системой GPSS. Она хоть и древняя, но лично я для себя, ничего лучше так и не нашел.
Ответить