Перейти к содержимому

Моделирование систем

- Stratum ПГТУ
  • рядовой пользователь
  • PipPip
  • Вставить ник
  • Цитировать
  • Группа: Пользователи
  • Сообщений: 321

 

Кто нибудь может поделиться готовой моделью (сделаную Стратуме) Системы массового обслуживания?
Или мануалом по стратуму как и что там пишется.

Буду очень благодарен.
  • 0

  • рядовой пользователь
  • PipPip
  • Вставить ник
  • Цитировать
  • Группа: Пользователи
  • Сообщений: 495

у Мухина Олега Игоивечяа на сайте помнится был конспект лекций для заочкников АСУ+примекры в стратуме-думаю там есть то что вам надо
  • 0

  • рядовой пользователь
  • PipPip
  • Вставить ник
  • Цитировать
  • Группа: Пользователи
  • Сообщений: 321

Это все у меня есть, но там нет примеров по моделированию систем массового обслуживания...
вы про сайт стратум.асу.ру?

Сообщение отредактировал EnChikiben: 15.09.2009 - 10:59

  • 0

  • рядовой пользователь
  • PipPip
  • Вставить ник
  • Цитировать
  • Группа: Пользователи
  • Сообщений: 89

Там всё просто. Главное, подойдите к решению задачи как АСУшник, спроектируйте систему, а уже затем беритесь за реализацию. В СМО ведь нет ничего сложного. Если какие то конкретные технические вопросы возникнут, то задавайте прямо сюда.
  • 0

  • рядовой пользователь
  • PipPip
  • Вставить ник
  • Цитировать
  • Группа: Пользователи
  • Сообщений: 321

Вот у меня и возник вопрос как систему реализовать в стратуме :)
Начать я так понял надо с генератора заявок, а что в нем писать какой код не понятно...
  • 0

  • рядовой пользователь
  • PipPip
  • Вставить ник
  • Цитировать
  • Группа: Пользователи
  • Сообщений: 89

Чаще всего заявки генерируют по Пуассоновскому потоку.
То есть есть плотность заявок L;
определяется интервал до следующего события след. образом:
t = -1/L * Ln( r ), где r - случайно число от 0 до 1 полученное из равномерного распределения.

То есть, вводим в систему для начала системное время, имидж: в котором
float t, deltat; t - время, deltat - прирост времени. t := ~t + ~deltat (deltat сам настроишь, к пример 0.01 возьми)
из этого имииджа t и deltat в генератор заявок.
внутри заявок
float flag // когда 1 - событие произошло
float tau // интервал между событиями
float L // интенсивность заявок (сам установишь сколько надо)
float r // случайная величина

if (~tau > 0)
// если время до наступления след. события еще не вышло, просто уменьшаем его
tau := ~tau - ~deltat;
flag := 0;
else
// новое событие наступило, определяем интервал до наступления следующего события
r := rnd(1);
tau := -1/~L * ln(~r);
flag := 1;
endif

Из имиджа этого воьзмешь flag, когда он 1 значит события наступило, обрабатываем его

Сообщение отредактировал doubleV: 16.09.2009 - 15:58

  • 0

  • рядовой пользователь
  • PipPip
  • Вставить ник
  • Цитировать
  • Группа: Пользователи
  • Сообщений: 321

L это я так понял количество необходимых заявок для обработки?
или количество заявок поступивших в очередь?

добавлено в [mergetime]1253115841[/mergetime]

А как можно посмотреть как меняется flag, визуально типа соединить его с имиджом текстовой строки
  • 0

  • рядовой пользователь
  • PipPip
  • Вставить ник
  • Цитировать
  • Группа: Пользователи
  • Сообщений: 321

Сделал :) выдает очень быстро 1 и 0, а как их в очередь сделать?
  • 0

  • рядовой пользователь
  • PipPip
  • Вставить ник
  • Цитировать
  • Группа: Пользователи
  • Сообщений: 89

L это интенсивность заявок, грубо говоря чем больше тем чаще заявки будут поступать.

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

  • рядовой пользователь
  • PipPip
  • Вставить ник
  • Цитировать
  • Группа: Пользователи
  • Сообщений: 321

А как же очередь?
  • 0

  • рядовой пользователь
  • PipPip
  • Вставить ник
  • Цитировать
  • Группа: Пользователи
  • Сообщений: 89

Если есть очеедь её и моделируй. У тебя сигнал же есть о приходе заявки. Дальше в определяй, идёт она в очередь или сразу в канал обслуживания (если свободен). Определи длину очереди, время ожидания заявки в очереди итд итп.
  • 0

  • рядовой пользователь
  • PipPip
  • Вставить ник
  • Цитировать
  • Группа: Пользователи
  • Сообщений: 321

Собрал что то непонятное :) Вроде очередь заполняется, но все так быстро обрабатывается что я не могу отследить убывает она когда освобождается канал или нет...
  • 0

  • рядовой пользователь
  • PipPip
  • Вставить ник
  • Цитировать
  • Группа: Пользователи
  • Сообщений: 321

А как сделать чтоб заявки генерировались не так часто?
float L // интенсивность заявок (сам установишь сколько надо)
пробовал это менять в разные стороны все также быстро заявки выходят
  • 0

  • рядовой пользователь
  • PipPip
  • Вставить ник
  • Цитировать
  • Группа: Пользователи
  • Сообщений: 321

актуально
  • 0

  • рядовой пользователь
  • PipPip
  • Вставить ник
  • Цитировать
  • Группа: Пользователи
  • Сообщений: 321

Очень актуальнооо
  • 0


1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей