
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.21] |
![]() |
|
Страницы: (54) « Первая ... 9 10 [11] 12 13 ... 53 54 ( Перейти к последнему сообщению ) |
Сообщ.
#151
,
|
|
|
Попробовала через LINK написать. Но как в UNLINKе изобразить, что 5% ошибочных идут на повторную обработку???
|
Сообщ.
#152
,
|
|
|
ПРРРР
не влазьте в дебри ненужен там линк Цитата 5% пойдут на метку, остальные пойдут дальше transfer .05,povt |
Сообщ.
#153
,
|
|
|
народ помогите навалять программку очеень буду признателен
На обрабатывающий участок цеха поступают детали в среднем через 50 мин. Первичная обработка деталей производится с вероятностью 60% на первом станке и с вероятностью 40% на втором станке. Первый станок обрабатывает деталь в среднем 40 мин и имеет 4% брака, второй соответственно 60 мин и 8% брака. Все бракованные детали возвращаются на повторную обработку каждый в свой станок. Разработать по концептуальной модели программную модель системы с использованием ЯИМ GPSS. Определить среднюю длину очередей перед обработкой на станках. |
Сообщ.
#154
,
|
|
|
Безусловно поможем. Где ваш исходный текст?
З.Ы.: Между "поможем" и "напишем" принципиальная разница. Последнее обычно за деньги делается. |
Сообщ.
#155
,
|
|
|
Ну собственно вот и есть задание
Текст задания: На обрабатывающий участок цеха поступают детали в среднем через 50 мин. Первичная обработка деталей производится с вероятностью 60% на первом станке и с вероятностью 40% на втором станке. Первый станок обрабатывает деталь в среднем 40 мин и имеет 4% брака, второй соответственно 60 мин и 8% брака. Все бракованные детали возвращаются на повторную обработку каждый в свой станок. |
Сообщ.
#156
,
|
|
|
Текст программы, которую вы пытались написать по заданию
|
Сообщ.
#157
,
|
|
|
я даже не пытался делать! вот и прошу помоши! конечно не безвозместно!
|
Сообщ.
#158
,
|
|
|
15$ - обрабатывающий участок
подобная задача должна быть в этом разделе |
Сообщ.
#159
,
|
|
|
фрагмент решения такой:
![]() ![]() GENERATE 50 TRANSFER 0.4,,met1 met2 SEIZE Stаnоk1 ADVANCE 40 RELEASE Stanok1 TRANSFER 0.04,,met2 ... GENERATE 1440 TERMINATE 1 start1 и снова 2варианта: попытаешься сделать и/или не безвозместно Цитата Yamakasi @ я даже не пытался делать! вот и прошу помоши! конечно не безвозместно! + халява тоже здесь есть GPSS задача (сообщение #2181443) |
Сообщ.
#160
,
|
|
|
Господа, подскажите правильно ли я понял условие задачи...
В начале работы на фирме на счёт корпоративного пользователя мобильной связью перечислено 500р. Ежедневный расход средств – случайная величина, распределенная по случайному закону со средним значением 50 руб. и средним квадратичным отклонением 10 руб. По договору с оператором мобильной связи в конце каждой недели производится контроль остатка средств на счету пользователя. Если на счету меньше 150р. то счёт автоматически в течении 2 плюс минус 1 день пополняется до 500 р. Требуется смоделировать работу системы пополнения счёта в течение 180 дней. Какова вероятность остаться пользователю без мобильной связи? ![]() ![]() SchAb STORAGE 500 ;средства на счёте абонента SostSch TABLE S$SchAb 0,1,502 ;статистические данные о состоянии счёта абонента PopSc VARIABLE NahKol-S$SchAb ;объём соедств, необходимый для пополнения счёта абонента EzRas VARIABLE RN1@20+40 ;ежедневный расход средств абонентом NahKol EQU 500 ;начальное количество средств на счету абонента GrPop EQU 150 ;сумма после которой необходимо пополнение счёта *Сегмент процесса заказа* GENERATE 7,,,,1 ;генерация транзакта каждые 7 дней TEST L S$SchAb,GrPop,Met1 ;проверка необходимости пополнения счёта ASSIGN 2,V$PopSc ;величина заказа заносится во второй параметр транзакта ADVANCE 2,1 ;время задержки пополнения счёта ENTER SchAb,P2 ;пополнение счёта абонента Met1 TERMINATE ;завершение заказа *Сегмент расхода средств* GENERATE 1 ;генерация транзакта каждый день ASSIGN 1,V$EzRas ;дневной расход средств записывается в первый параметр TABULATE SostSch ;средства на счёте на текущий день TEST GE S$SchAb,P1,Met2 ;проверка возможности снятия денег со счёта LEAVE SchAb,P1 ;списание необходимого количества средств со счёта абонента TERMINATE 1 ;завершение дня Met2 TERMINATE 1 ; START 180 ;количество дней *Инициализация счёта* GENERATE ,,,1,10 ;порождается 1 транзакт ENTER SchAb,NahKol ;запись начального количества средств на счёт абонента TERMINATE ; Я сомневаюсь насчёт использования блока ADVANCE для моделирования данной ситуации "то счёт автоматически в течении 2 плюс минус 1 день пополняется" |
Сообщ.
#161
,
|
|
|
Какой интересный подход к реализации )
Я б делал щет сохраняемой величиной. так же, исходя из кода, если у абонента не хватит денег совершить запланированный звонок - то звонить он не будет вообще ) |
Сообщ.
#162
,
|
|
|
Цитата - Лучше поменять блоки, тогда не нужна единица*Сегмент процесса заказа* GENERATE 7,,,,1 ;генерация транзакта каждые 7 дней ![]() ![]() *Сегмент расхода средств* GENERATE 1 ;генерация транзакта каждый день ![]() ![]() *Сегмент процесса заказа* GENERATE 7 ;генерация транзакта каждые 7 дней Цитата - поменяй наMet2 TERMINATE 1 ; ![]() ![]() Met2 LEAVE SchAb,S$SchAb TERMINATE 1 - и тоже самое с вариантом до ![]() ![]() TEST GE S$SchAb,P1,Met2 LEAVE SchAb,P1 TERMINATE 1 Met2 LEAVE SchAb,S$SchAb TERMINATE 1 ![]() ![]() LEAVE SchAb,V$write_off TERMINATE 1 ![]() ![]() write_off VARIABLE ((S$SchAb'GE'P1)#P1 + (S$SchAb'L'P1)#S$SchAb) Добавлено модельная ед.времени 1 день - 2й вариант ![]() ![]() ADVANCE 2,1 ;время распределено на интвале [1,3) ADVANCE (uniform(1,1,4)\1) ;время дискретно 1 или 2 или 3 |
Сообщ.
#163
,
|
|
|
Цитата ![]() ![]() GENERATE 10 ADVANCE (Normal(1,10,3)) TERMINATE GENERATE 1000000 TERMINATE 1 START 1 При большом числе опытов возникает следующая ошибка: 02/05/09 17:46:18 ADVANCE (Normal(1,10,3)) 02/05/09 17:46:18 Negative time increment. Где и как можно вставить проверку, чтобы отрицательные значения приравнивались к 0? Писать свое "нормальное" распределение не хочется... Ну вопервых подумайте, действительно ли это то распредиление, которое вам нужно. Вовторых "свое" нормальное распредиление писать ненужно. все уже придумано до вас. Цитата NORM FUNCTION RN2,C25 0,-5/.00003,-4/.00135,-3/.00621,-2.5/.02275,-2 .06681,-1.5/.11507,-1.2/.15866,-1/.21186,-.8/.2725,-.6 .34458,-.4/.42074,-.2/.5,0/.57296,.2/.65542,.4 .72575,.6/.78814,.8/.84134,1/.88493,1.2/.93319,1.5 .97725,2/.99379,2.5/.99865,3/.99997,4/1,5 Как видите значения меняются от -5 до 5. Следовательно (Normal(1,10,3)) или (10+3#FN$NORM) вернет значения [-5,25] что действительно не подходит под опредиление "временной интервал". Если вы всетаки уверены, что интервал задан верно, то решение следующее: Цитата GENERATE 10 POVT ASSIGN 1,(Normal(1,10,3)) TEST GE P1,0,POVT ADVANCE P1 TERMINATE GENERATE 1000000 TERMINATE 1 START 1 |
Сообщ.
#164
,
|
|
|
Цитата TEMENb @ Цитата Где и как можно вставить проверку, чтобы отрицательные значения приравнивались к 0? отв. только на это ![]() ![]() testing_P1 VARIABLE ((P1'G'0)#P1) ASSIGN 1,(Normal(1,10,3)) ASSIGN 1,V$testing_P1 |
Сообщ.
#165
,
|
|
|
Ух
Цитата Eugen @ testing_P1 VARIABLE ((P1'G'0)#P1) Цитата testing_P1 VARIABLE ((P1>0)#P1) Расшифровал ![]() Цитата Eugen @ testing_P1 VARIABLE ((P1'G'0)#P1) ASSIGN 1,(Normal(1,10,3)) ASSIGN 1,V$testing_P1 Этот метод, помоему, более правильный. |