Форум программистов, компьютерный форум CyberForum.ru

Иммитационное моделирование в Pilgrim с использованием GEM - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Roach13
Сообщений: n/a
16.06.2013, 02:50     Иммитационное моделирование в Pilgrim с использованием GEM #1
Приветствую.
При написании курсача столкнулся с проблемой - я не уверен, что мой метод решения правильный.
Моё задание состоит в том что бы расчитать оптимальное число колонок на автозаправочной станции.
При условии, что на автозаправочной станции может работать N колонок. Мест для ожидания нет, поэтому вновь подъехавший автомобиль, который застает все колонки занятыми, уезжает. Средний интервал между приездом автомобилей распределен по экспоненциальному закону со средним значением 5 мин. Время заправки распределено по нормальному закону со средним значением 6 минут и среднеквадратичным отклонением 2,0 мин. Заправка каждого автомобиля приносит доход в 40 рублей, содержание каждой колонки обходится в 1 рубль/мин.
Напомню, что для решения данной задачи передо мной поставлено условия использования имитационной системы Pilgrim.
Вот пример моих набросков.
Кликните здесь для просмотра всего текста
Иммитационное моделирование в Pilgrim с использованием GEM


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <Pilgrim.h>
#include <Fstream.h>
 
forward
{
 int fw;        //Переменная конечного узла в Queue
 int N = 1;     //Кол-во колонок
 float benzin;  //Доход с заправки 1го автомобиля
 
 ofstream myfile;
 
 modbeg("АЗС без очереди", 105, 60, (long)time(NULL), none, none, none,none, 2); //60 - это время моделирования в минутах 
 myfile.open ("1.txt");
 myfile <<"";
 myfile.close();
 
 ag("Входящий поток машин",  101, none, expo, 12, none, none, 102); // 12, а не 5 так как для получения кол-ва автомобилей в час нам нужно 60мин\5 (интенсивность потока заявок)
 network(dummy, dummy)
 {
  top(102): 
      
       if (addr[103]->tn>N)  //
             {
              fw=104;
             }
            else
             {
              fw=103;
             }
             queue("Подъезд к заправке", none, fw);
             place;
 
  top(103): 
       benzin=40;
       t->ru0=benzin;
        serv("Object 103", N, none, norm, 10, 2, none, 104); // не 6, а 10 -> тоже, что и выше 60мин\ 6 (интенсивность обслуживания)
             place;
 
  top(104): 
    myfile.open ("1.txt", ios::app);
    myfile <<t->ru0<<endl;
    myfile.close();  
        term("Object 104");
             place;
 
  fault(123);
 }
 modend("itog.txt", 1, 8, page);
 return 0;
}
Надеюсь на вашу помощь! :3
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2013, 02:50     Иммитационное моделирование в Pilgrim с использованием GEM
Посмотрите здесь:

Моделирование C++
C++ Нейрокомпьютерное моделирование
Программирование с использованием строк (обычный вариант и с использованием 3 видов строк) C++
C++ Выполнить задания с использованием инструкции выбора if и с использованием условного оператора
C++ Моделирование систем
C++ Моделирование СМО
Написать программу с использованием функции и с использованием макроса C++
C++ Моделирование COM

Искать еще темы с ответами

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

Текущее время: 04:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru