ラむブ䟋を䜿甚したシミュレヌションのGPSS-WORLDの基瀎

グッドフラむデヌ、Habrの芪愛なる読者。

この投皿では、GPSS-WORLDプログラムでプロセスのシミュレヌションモデルを䜜成する可胜性に぀いお、すぐに理解しおください。 この投皿は本栌的なチュヌトリアルずは芋なせたせんが、私が知っおいる粒子を共有したす。蚘事を読んでから30分以内に、独自のシミュレヌションモデルを䜜成する想像力が埗られる可胜性は十分にありたす。 人々が蚀うように「戊いで簡単に孊ぶこずは困難です。」

そしお、いく぀かの堎所では、この「チュヌトリアル」は「敗者は幞運ではない」ずいう原則を順守しおいたすが、私はただ持っおいる知識をあなたにもたらしたすが、あなたはあなた自身が私を信頌するか、チェックする方が良いかどうかを自由に決めるこずができたす。 いずれにせよ、GPSS-WORLDの専門家からのコヌドを喜んで監査したす。 GItHubに投皿されたすべおの蚘事資料

私たちは、実䟋ですぐに基本を孊びたす-アクセス可胜で、理解しやすく、倚くの埓業員が法定8時間をオフィスで過ごす心の近くです。

詳现から歌詞に移りたす。金曜日は䌝統的におかしな質問をする必芁がありたす。今回は同僚のDrZugrikず私に 「電球をねじ蟌む方法を教えおくれるサポヌトスタッフは䜕人いたすか」 ず自問したした。

この思考実隓の詳现に぀いおは、猫の䞋でお願いしたす。



モデル開発ず䞀緒にこのミニチュヌトリアルを䜜成するには、6時間の玔粋な時間がかかりたした。

蚘事が朜圚的に興味のある読者に届いたら感謝したす。



ネガティブな感情を匕き起こすこずを避けるために、元の写真はパむプ付きのネコに眮き換えられ、ネタバレの䞋に隠されたした。



初期むラスト










たず、 GPSS-World自䜓が必芁です 。



孊生には無料版を䜿甚したす。

たた、シミュレヌションの蚀語を孊習する堎合、教科曞が圹立ちたす

これを取るこずができたす。

私の意芋では、アクセスしやすいずは蚀えたせんが、䜕もないよりはたしです。



そこで必芁なツヌルを甚意したしたが、今では想像力を぀なぎ、最初のモデルを思い付くこずが残っおいたす。

私は䞀般的なシミュレヌション、特にGPSS-Worldの第䞀人者ずは蚀えたせん。この本の資料は、ここで玹介する䟋の基瀎ずなりたした。 しかし、コンパむルされたモデルには生呜暩があるず思いたす。

そのような堎合をたず考えおみたしょう。

䞎えられた

10人の埓業員が勀務するオフィス、「暹皮4分間」の回廊の端にあるクヌラヌ、お茶を飲み、クヌラヌに1時間に1回旅行したい埓業員。 ボりルに生呜を䞎える氎分の入った袋を入れる時間は玄2分です。 就業日は480分昌䌑みなしの8時間です

定矩

オフィススタッフによるクヌラヌの䜿甚係数。

シミュレヌションモデルを䜜成する



GENERATE ,,,10 ; 1 Amount office staff ADVANCE 4,0.8 ; 2 Time to reach the cooler DRINK QUEUE STAND ; 3 Queue to the cooler. input SEIZE COOLER ; 4 Verification of employment cooler DEPART STAND ; 5 Queue to the cooler. output ADVANCE 2,0.8 ; 6 Filling the cup with boiling water RELEASE COOLER ; 7 leave the cooler ADVANCE 60,10 ; 8 Time for tea, time to work, time to get back to the cooler TRANSFER ,DRINK ; 9 Go back to the cooler GENERATE 480 ; 10 Working day (minutes) TERMINATE 1 ; 11 Minus one minute START 1 ; 12 Start from the first minute
      
      







私は壊れた英語でコメントを残したので、私は確かにモデルの機胜に぀いお詳现にポむントを芋たす。

1行目-GENERATE ,,, 10-GENERATEブロック自䜓が着信芁件この堎合はオフィスの埓業員の数を蚭定し、フォヌムのオペレヌタヌの蚘録、、、 10は最初の3぀のパラメヌタヌが欠萜しおいるこずを瀺し、4番目のパラメヌタヌは最倧着信芁件の数。 GENERATEブロック。 他のパラメヌタヌで蚭定するこずもできたすが、これに぀いおは少し埌で説明したす。

ご想像のずおり、「;」 -コメントフィヌルドを区切りたす。 コヌドの蚭蚈構造に぀いおもう少し詳しく説明したす。コヌドは巊から右に読み取られたす。タブで区切るのが望たしいいく぀かのブロックがありたす。 巊端のブロックはラベル他のプログラミング蚀語のラベルに䌌おいたす、ブロック自䜓生成など、通垞はパラメヌタヌ、コメントです。 むかしむかし、これらのブロックを衚圢匏で分けるように教えられたしたが、これは矎孊の問題です。 1スペヌスでもすべおが始たるのに十分なようです。 ずころで、すべおが倧きな文字で曞かれおいる堎合は、そのように曞く方が良いです。そうしないず、実行゚ラヌが飛び出す可胜性がありたす。

行2-ADVANCE 4.0.8; 圌はプロセスの時間的特性を担圓しおいるため、この堎合により理解しやすくなりたす。これは、埓業員が4分±0.4分間クヌラヌに行くこずを意味したす。

したがっお、最初の数字は費やされた時間反埩の単䜍を意味し、2番目の数字は偏差の半分たたは䞊䞋を意味し、曞籍は偏差倀がランダムに生成されるず蚀っおいたすが、システムを再起動するたびに同じ倀を䞎えたすおそらくわからない叀き良きパスカルからのランダム化の類䌌物がありたすが、私はそれを芋぀けたせんでした。 ADVANCEブロックには他の倀を蚭定するこずもできたすが、それに぀いおは埌で詳しく説明したす。

行3-ドリンクキュヌスタンド; -ここで最初のラベルDRINKに䌚い、続いおQUEUEブロックが続きたす。このブロックはこのキュヌにキュヌを䜜成したす。クヌラヌに行く人党員に喉を濡らしたす。 STANDは、キュヌの識別子です。

行4-SEIZE COOLER-SEIZEブロックは、デバむスが空いおいるかどうかを刀断したす。この堎合、デバむス識別子はCOOLERたあ、たたは単にクヌラヌです。

5行目DEPART STAND-最埌のブロックで肯定的な結果が埗られた堎合クヌラヌフリヌ、次のDEPARTブロックがトリガヌされ、ナヌザヌがSTANDキュヌから確実に離れたす。

Line 6-ADVANCE 2.0.8ラむンを離れた人は、マグカップに玄2分間沞隰した氎を泚ぎたすさらに、クヌラヌに䞊んでいる人ずチャットする時間もありたす

7行目-クヌラヌのリリヌス、「りェット」ビゞネスを行った人は、次の被灜者のためにクヌラヌデバむスをリリヌスしたす。

8行目-ADVANCE 60.10-このブロックは時間を考慮しおいたす。 氎を飲んだ人が力を集めお再びクヌラヌに来るために努力したす少なくずも、これがシミュレヌトされるこずを願っおいたす。

9行目-転送、ドリンク-「すべおが以前ず同じように繰り返されたす」A.ブロックは、プログラミングに粟通しおいれば蚀うでしょう。 このステヌトメントは、DRINKラベルぞの移行を提䟛したす。

10行目-GENERATE 480は、プログラミングの芳点から、最埌のブロックのラベルに移動した埌、以䞋のすべおが意味をなさないように芋えたすが、そうではありたせん正盎なずころ、私は本圓に深く入りたせんでしたが、経隓ず゚ラヌに察しお、このピヌスは前の8ブロックのコンテキストの少し倖偎で認識されたす。 䞻なこずは、このナニットがモデル党䜓の実行時間、぀たり480分8時間を蚭定するこずです。

11行目-TERMINATE 1-この偎は、各反埩カりンタヌから1を匕きたす。 このブロックがないず、無限ルヌプに陥るこずがありたす。

12行目-START 1-サむクルの開始䜍眮をプログラムに指瀺したす。最初の1分から開始したす。



ええず、たあ、最初のモデルの説明はこれで終わりです。

誰が結果を気にするのか、ネタバレをお願いしたす。 すべおを自分で確認したい堎合は、もう䞀床GItHubに投皿されたすべおのモデルを思い出させたす



結果モデル1-クヌラヌ䜿甚率




結果を分析する

したがっお、クヌラヌの平均負荷は33です。぀たり、10人の埓業員からなるチヌムでは、管理者のPeter、Marya Vasilyevnaが経理郚門から、プロゞェクトマネヌゞャヌのVasily Chufirkinが絶えず圌に応募し、0.33たたは、たずえば-猫。 実際、このテキストブロックにはセマンティックの負荷がありたせん。猫ずクヌラヌずMarya Vasilievnaを䌚蚈から匕きたいず思っただけです猫以倖の人は玔粋に発明された人です







私はこれを読んだ埌に気になりたすが、クヌラヌは12匹のかわいい猫を飲むこずができたず安党に蚀えたす=







しかし、トピックに戻りたす。







発行の結果を芋おみたしょう。



ファシリティは、動䜜するすべおのデバむスのリストであり、この堎合はクヌラヌのみです。

゚ントリ79-デバむスぞのサヌビスアプロヌチの数を意味したす。この堎合、空のカップを持぀人の数は79-シフト党䜓でした。

Utilは機噚の䜿甚率で、クヌラヌがアむドル状態1〜0.33* 100=党䜓の67であったこずを瀺しおいたす。

アベ 時間-1人の平均​​クヌラヌ䜿甚時間2.002分

䜿甚可胜。 -クヌラヌの可甚性、これが䜕を意味するのかわかりたせん、明らかにナニットはそれが利甚可胜であったず蚀いたす

DELAY = 0-クヌラヌに近づき、動揺し、手ぶらで攟眮された円人の数はれロであるこずを瀺しおいたす。



それでは、キュヌに移動したしょうQUEUE

ご芧のずおり、先ほど䜜成したキュヌの名前がここに瀺されおいたす。

最倧で9人、79の入り口ず48のれロの入り口キュヌで埅機しない入り口の可胜性が最も高いがあった堎合、キュヌで1人が費やした平均時間は1.5分でした。 続き = 0は、シミュレヌションの終了時にキュヌに誰もいなかったこずを瀺したす。



たあ、すべおが悪いわけではないようですが、2006幎に戻ったらどうなりたすか

1幎で、私たちのオフィスでさらに30人の埓業員を雇いたすか



結果モデル1-40人の埓業員のクヌラヌ䜿甚率








モデルからわかるように、クヌラヌはほずんどアむドル状態で停止し、キュヌ内の平均時間は最倧20分になりたす。これは、2番目のクヌラヌが必芁であるか、長いティヌパヌティヌのボヌナスを党員から奪う時間であるこずを瀺唆しおいたす。

たぶんこのモデルは玠朎ですが、想像力を発揮したずしおも、床に必芁なクヌラヌの数を芋積もるこずができたす。

しかし、珟時点では、マルチチャネルサヌビスモデルをただ開発できおいたせん。 そこで、1石で2矜の鳥を殺し、マルチチャネルサヌビスを孊び、同時に、同僚ず蚘事の冒頭で尋ねた質問に答えたす。 気配りがあり、芚えおいる-よくやった、週末のない良いず二日酔いの幞犏に:)



モデル、コヌルセンタヌのオペレヌタヌ、およびサブスクラむバヌを䜜成するずきは、そのような条件を自問したす

䞎えられた

2人のテクニカルサポヌトオペレヌタヌが、1人のオペレヌタヌが別のオペレヌタヌのピックアップに忙しい堎合、2分ごずに定期的に電話をかけるナヌザヌにサヌビスを提䟛したす。 就業日は480分昌䌑みなしの8時間です。

定矩

サポヌトスタッフの負荷率。



 HELPDESK STORAGE 2 ;1 Number of operators helpdesk ************************************************************************************************** GENERATE 6,3 ;2 The number of subscribers Ticket ADVANCE (Exponential(1,0,2)),, ;3 during dialing ENTER HELPDESK ;4 incoming call TRANSFER ALL,OPR1,OPR2,3 ;5 definition of operator availability OPR1 SEIZE OP1 ;6 Verification of employment operator number 1 ASSIGN 1,OP1 ;7 If the operator is free in this case, accept a call TRANSFER ,COME ;8 Jump to the process of service OPR2 SEIZE OP2 ;9 Verification of employment operator number 1. ASSIGN 1,OP2 ;10 If the operator is free in this case, accept a call COME LEAVE HELPDESK ;11 Beginning the process of providing technical support ADVANCE 10,8 ;12 Service time RELEASE P1 ;13 The release of the operator TERMINATE 0 ;14 Removes the Active Transaction from the simulation GENERATE 480 ;15 Working day (minutes) TERMINATE 1 ;16 Minus one minute START 1 ;17 Start from the first minute
      
      







前回ず同様に、行ごずに説明したす



1行目-HELPDESK STORAGE 2-埓業員2名のドラむブサポヌトサヌビスの䜜成

行2-GENERATE 6.3; ここで、ブロックタスクを生成する別の方法に移りたす。この堎合、番号6は6回ごずに玄1回の呌び出し音が鳎り、番号3は6分からの偏差が±1.5分であるこずを意味したす。 別のGENERATEブロックをこのように蚭定できたす

指数1,0,6、䞀般に、ADVANCEに圓おはたるこずは、GENERATEにほが圓おはたりたす。

行3-ADVANCE指数1,0,2,,-発信者がサポヌト電話番号を芚えお番号をダむダルするのにかかる時間を瀺し、指数分垃に平均2分かかりたす。 桁1-乱数ゞェネレヌタヌを遞択し1〜7でそれらの䜿甚方法を理解しおいたせん、桁0-オフセットを決定したす私にずっおは謎です、桁2は実際には分です。 期間を蚭定できる他の流通法もありたすが、それらに぀いおは教科曞で読む方が良いず付け加えたす。 蚘事の冒頭で瀺したした。

行4-ヘルプデスクの入力-ドラむブを入力したす着信コヌル

5行目-TRANSFER ALL、OPR1、OPR2,3-このむベントはすべおの着信コヌルALLで凊理され、凊理オペレヌタヌはラベルOPR1で始たり、ラベルOPR2に到達するたで3ブロックず぀移動するこずを瀺したす

行6-OPR1 SEIZE OP1-最初のサポヌトサヌビスオペレヌタヌOP1の占有チェックがチェックされる最初のラベルです。

7行目-ASSIGN 1、OP1-挔算子1が空いおいる堎合。 次に、着信コヌルを圌に枡したす。そうでない堎合は、3行埌6日から、9行目に行きたす。

行8-転送、COME-2番目のオペレヌタヌの忙しさを知る必芁はありたせん。ラベルCOMEに移動したす

行9 OPR2 SEIZE OP2-最初のオペレヌタヌが忙しかった堎合、2番目をチェック

行10--ASSIGN 1、OP2-そしお圌に電話をしたす。

11行目-COME LEAVE HELPDESK-コヌルはサポヌトサヌビスのドラむブを離れたす

12行目-ADVANCE 10.8-オペレヌタが電球を適切にねじ蟌む方法に぀いお人にアドバむスするために費やす時間。

行13-リリヌスP1; -オペレヌタヌは男を助け、自分を解攟したした。 この堎合のP1は特定のポむンタヌたたはパラメヌタヌぞの参照です。この瞬間を説明するこずはできたせんが、機胜したす。

14行目-終了-デフォルトではれロは省略できるため、れロです、この堎合、このブロックは、アクティブなルヌプからこの反埩を削陀しお次のルヌプに移る時間であるこずをシステムに通知したす。 いずれにせよ、それなしでは、システムぱラヌを出したす。

行15〜17は、最初のモデルの行に䌌おいたす。



その結果、次のデヌタを取埗したす



結果モデル2-オペレヌタヌの䜿甚率






出力構造は最初のモデルの出力構造に䌌おいたすが、キュヌではなく、ドラむブが自分で凊理するように提案する点が異なりたす。 ちなみに、レポヌト生成パラメヌタヌは構成できたすこのコンピュヌタヌにGPSSをむンストヌルしおいないので、むンストヌルしたくないので、プログラムの蚭定にはこのような機䌚がありたすので、忘れない堎合は月曜日にここに远加したす

したがっお、挔算子はそれぞれ玄75ず87で十分に受け入れられるこずがわかりたす。 電球を適切にねじ蟌む方法をアドバむスするには、2人のオペレヌタヌで十分だず思いたす。 しかし、あなたず私は奜奇心people盛な人たちです。別の寄生虫を電話でみんなに匕っ掛けたらどうなるか芋おみたしょう。

これを行うには、わずかに倉曎されたモデルを怜蚎したす。 自分で察凊するこずをお勧めしたす。



 HELPDESK STORAGE 3 ;1 Number of operators helpdesk ************************************************************************************************** GENERATE 6,3 ;2 The number of subscribers Ticket ADVANCE (Exponential(1,0,2)),, ;3 during dialing ENTER HELPDESK ;4 incoming call TRANSFER ALL,OPR1,OPR3,3 ;5 definition of operator availability OPR1 SEIZE OP1 ;6 Verification of employment operator number 1 ASSIGN 1,OP1 ;7 If the operator is free in this case, accept a call TRANSFER ,COME ;8 Jump to the process of service SEIZE OP2 ;9 Verification of employment operator number 1. ASSIGN 1,OP2 ;10 If the operator is free in this case, accept a call TRANSFER ,COME ;11 Jump to the process of service OPR3 SEIZE OP3 ;12 Verification of employment operator number 1. ASSIGN 1,OP3 ;13 If the operator is free in this case, accept a call COME LEAVE HELPDESK ;14 Beginning the process of providing technical support ADVANCE 10,8 ;15 Service time RELEASE P1 ;16 The release of the operator TERMINATE 0 ;17 Removes the Active Transaction from the simulation GENERATE 480 ;18 Working day (minutes) TERMINATE 1 ;19 Minus one minute START 1 ;20 Start from the first minute
      
      







ネタバレの結果



結果モデル2-3人のオペレヌタヌの䜿甚率






したがっお、最終的には、明らかに3番目のオペレヌタヌは䞍芁であり、空垭を削陀しお、すべおの候補者を安党に削陀できるこずがわかりたす。



最埌に、GPSS-WORLDは、先ほどお䌝えしたよりも広範なモデリング機胜を提䟛したす。 私の知識の限界のために、あなたにそれらを十分に瀺すこずができたせん。 しかし、それでも、ボヌナスずしお、倉数を操䜜する䟋を瀺したす



  INITIAL X$APPLES,3 ;1 Set Variable GENERATE 1 ;2 set count of cicles SAVEVALUE APPLES-,1 ;3 set APPLES=APPLES-1 TERMINATE 1 ;4 delete one iteration START 1 ;5 1 Start from the first cicle
      
      







行ごずに行こう



1行目-INITIAL X $ APPLES、3; 1は倉数の倀を蚭定したす。この堎合、X $は䜕らかの圢で倉数の名前を瀺し、3番目はAPPLES倉数に曞き蟌む倀ですずころで、私はAPPLE補品のファンではありたせん数孊の幌皚園の問題のように、䞀般的なテヌブルの䞊の瞬間は3぀のリンゎであり、1぀は自分で取ったものです

行-2 GENERATE 1-1぀の反埩を䜜成したす

3行目-SAVEVALUE APPLES-、1; -倉数の倀から1を匕いた倀を保存したす。

行4〜5は、プログラムの終了に圹立ちたす。



モデル3の結果-倉数






正盎に蚀うず、この䟋が機胜し、単䜍が倉数から実際に差し匕かれおいるずいう事実にもかかわらず、倉数を操䜜する完党なメカニズムを理解しおいないため、専門家に任せたす。



さお、あなたはプロセスのシミュレヌションモデルを䜜成できるツヌルの1぀に぀いお䜕を知っおいたすかツヌルは最も䟿利ではなく、開発者によっお開発されおいないようですが、それでも、想像力を発揮すれば、1日でいく぀かの研究を行うこずができたすモデルを䜜成し、たずえば科孊ゞャヌナルや䌚議で公開したすこれに぀いおは以前にすでに曞きたした 

いずれにせよ、䞖界をより良い堎所に䜜成、開発、䜜成するためのツヌルがもう1぀ありたす。 正しい蚀葉は、公共亀通機関に座っおスマヌトフォンで颚船を匟くよりも面癜いです。

良い週末、幞運、そしお幞運をお祈りしたす:)



All Articles