350 likes | 527 Views
جلسه دوم …. Basic Visual SLAM Elements. CREATE Node QUEUE Node TERMINATE Node ASSIGN Node ACTIVITY Branches GOON Node COLCT Node. TBC. TF. MV. M. MC. CREATE Node. CREATE,TBC,TF,MV,MC,M;. QUEUE(IFL), IQ, QC,BALK(NLBL) or BLOCK;. IQ. IFL. QC. QUEUE Node. TERMINATE Node.
E N D
Basic Visual SLAM Elements • CREATE Node • QUEUE Node • TERMINATE Node • ASSIGN Node • ACTIVITY Branches • GOON Node • COLCT Node
TBC TF MV M MC CREATE Node CREATE,TBC,TF,MV,MC,M;
QUEUE(IFL), IQ, QC,BALK(NLBL) or BLOCK; IQ IFL QC QUEUE Node
TERMINATE Node • DONE: TERMINATE,25; 25 DONE
ACTIVITIES ACTIVITY,A,DUR,PROB OR COND,NLBL,N,ID DUR,PROB,OR COND A N
VAR1=VALUE1 VAR2=VALUE2 M VAR3=VALUE3 ASSIGN Node ASSIGN,{{VAR,VALUE},REPEATS},M;
ASSIGN Node continue XX(1)=EXPON(10) 1 ATRIB(1) = RNORM(.5) ASSIGN,{{XX(1),EXPON(10)},{ATRIB(1),RNORM(.5)}},M;
GOON Node M GOON, M;
GOON Node Example 1 • Model of two activities in parallel 5 1 1 2 G1 Q1 10 2 G1: GOON,2; ACT,1,5; ACT,2,10; Q1: QUEUE,1;
BranchingRouting Entities from Nodes • The M-Number • maximum number of branches that can be selected by a single entity in a node. • Default = • Probabilistic Branching • probabilities are assigned to branches emanating from a node in which M=1 • Deterministic Branching • no conditions or probabilities are assigned for the branches and M= the number of branches
Branching: The GOON Node (Pronounced “go on”) • M = 2 ; At most, two branches can be selected by a single entity that arrives at this node. • p1 and p2 are probabilities, therefore, one of the two branches will be selected. • The remaining selection will be made from c3, c4, or c5, depending on the respective conditions. Graphic Symbol p1 p2 c3 2 c4 c5 Statement: GOON,M;
COLLECT Node • Used to collect statistics. • Estimates for the mean and standard deviation of the variable are obtained. • Histogram of the collected values can be obtained. • NCEL = the number of cells in the histogram • HLOW = the upper limit of the first cell • HWID = histogram cell width
COLLECT Node continue VALUE ID,H M COLCT,COLCT#,VALUE,ID, NCEL,HLOW,HWID,M;
مثال1: کارگاهی را در نظر بگیرید که دو نوع سفارش کار قبول میکند. هر دو نوع کار با یک ماشین انجام میشود. زمان فرآیند کارها متفاوت می باشد. دو نوع کار با فاصله های زمانی 8 و 12 ایجاد شده است. زمان انجام نوع کار اول، توزیع نمایی با میانگین 7 و زمان انجام کار نوع دوم دارای توزیع نمایی با میانگین 10 است. کار در صف Q1 منتظر میماند و سپس به نوبت، فرآیند آنها شروع می شود و بالاخره از سیستم حذف می شوند. از کار اول 100 نهاد و از کار دوم 50 نهاد تولید می شود. سیستم را شبیه سازی نمایید.
مقدار اولیه دهی به متغیرهای مورد استفاده در شبیهسازی
به کمک گره assign می توان به متغیرها مقدار اولیه داد. مثلاً متغیرهای Attrib، Ltrib، Strib، XX، LL، II را میتوان مقدار دهی اولیه نمود. • نکته: متغیرها: • متغیر II: مربوط به ذخیره اندیس ها می باشد که میتواند بعنوان اندیس سایر آرایه ها استفاده گردد. • متغیر NNACT(I): تعداد نهادهایی که از فعالیت نوع I ام در حال عبور کردن هستند. • متغیر NNCNT(I): تعداد نهادهایی که از فعالیت Iام عبور کردهاند. • متغیر NNQ(I): تعداد مشتریانی که در صف Q با شماره فایل I ذخیره شده اند. • متغیر Array(I,j): آرایه دو بعدی. • تابع ASSERT(Val,Low,High): بررسی می کند اگر مقدار بین محدوده پایین و بالا بود اجازه عبور میدهد. • تابع Userf(I): تابعی که کاربر به زبان C/C++ تعریف می نماید. ( تابع سفارشی) • باید بعد از هر مولد یک گره Assign قرار گیرد که مقدار دهی ها را انجام دهد.
مثال: برای ورودی نوع اول: Attrib[1]=EXPON(7)
نتیجه کار پس از ایجاد گره های Create و Assign به شکل زیر می باشد
حال یک صف ایجاد می نماییم و در نهایت Terminate را می سازیم.برای ایجاد فعالیت سرویس در خروجی صف برای زمان فعالیت (Activity) مقدار Atrib[1] را انتخاب مینماییم که بسته به اینکه از کدام مولد وارد صف شده اند مقدار آن تعیین می شود:
حال حداکثر تعداد نهادها بعنوان شرط خاتمه در گره های Create تعیین می شوند: 1 2
سپس شبکه را ذخیره نموده و در ادامه کنترل مورد نیاز را همانطور که در جلسه اول شرح داده شد ایجاد می نماییم. لازم است تعداد خانه های ATRIB و تعداد دفعات اجرا تعیین گردند:
تذکر: در صورت وجود خطا در شبیه سازی، می توان خطا را از Report > Output > Echo مشاهده نمود.نتیجه شبیه سازی از قسمت Report > Output > Summary قابل مشاهده است که در شکل زیر نشان داده شده است:
مثال 2: فرض کنید نهادها در هر 5 واحد زمانی وارد سیستم می شوند و هر نهاد بطور سری و یا متوالی به فعالیتهای یک و دو و سه نیاز دارد. زمان سرویس برای فعالیتهای یک و دو و سه به ترتیب نمایی با میانگین 2 و 5 و 7 می باشد. این مدل را به مدت 500 واحد زمانی شبیه سازی نمایید. ( توجه شود که در این مثال می خواهیم از یک گره صف و یک شاخه فعالیت استفاده نماییم، نه سه گره صف و فعالیت ! ) • ** هدف از این مثال یادگیری خلاصه سازی شبکه های بزرگ می باشد
چون چند فعالیت را با یک صف و فعالیت می خواهیم اجرا نماییم نیاز به استفاده از گره GOON برای تصمیم گیری داریم: یک گره تصمیم گیرنده برای ادامه فرآیند است و عملیاتی انجام نمیدهد. در شبکه های دارای سرویسهای موازی و سری استفاده دارد.
طول گام ایجاد ثابت و برابر 5 است. ( خاصیت Time Between در شیء Create ). • زمانهای هر مرحله فعالیت در سه خانه از آرایه XX ذخیره می شوند که این مقادیر در Control مقداردهی می شوند و در بخش ایجاد شبکه تعریف نمی شوند. • با توجه مقداردهی های ASSIGN زمان سرویس برابر ATRIB[2] و شماره فعالیت برابر ATRIB[1] است که فعالیت مربوطه از صف به گره GOON متصل می شود. • در این مثال بدلیل وجود یک صف برای سه فعالیت، شماره فایل صف باید متغیر انتخاب شود تا برای سه سرویس، مجزا باشد. مثلاً در اینجا از همان ATRIB[1] که شماره سرویس است استفاده میکنیم.
نکته: چون نیاز به مقدار دهی اولیه به XX داریم در بخش Controls، از منوی Edit گزینه Insert را انتخاب می کنیم و در بخش INTLC مقدار اولیه های مورد نظر را تعیین می نماییم.
همچنین برای تعیین زمان شبیه سازی (500 واحد زمانی) از همین مسیر گزینه Initialize را انتخاب می کنیم:
نکته: در کنترل به ترتیب باید گره Generate، Limit، و بعد بقیه گره ها به ترتیب تعریف شوند.
فرض کنید نهادها در هر 5 واحد زمانی وارد سیستم می شوند و هر نهاد بطور سری(متوالی) به فعالیتهای یک و دو و سه نیاز دارد. زمان سرویس برای فعالیتهای یک و دو و سه به ترتیب نمایی با میانگین 2 و 5 و 7 می باشد. این مدل را به مدت 500 واحد زمانی شبیه سازی نمایید. ( به سه گره و سه صف )
مثال3: عمل تعمیر و نگهداری یک کمپانی تولیدی را در نظر بگیرید. تعمیرات در دو فرآیند سری انجام میشوند. هر 2 واحد زمانی یکبار یک ماشین نیاز به تعمیر دارد. زمان تعمیر در فعالیتهای یک و دو به ترتیب متغیر تصادفی مثلثی با پارامتر 0.2 و 0.4 و 0.8 و متغیر تصادفی یکنواخت با پارامترهای 0.5 و 1 میباشد. ظرفیت صف اول چهار می باشد. اگر ماشینی خراب شود و فضای لازم در صف نباشد ماشین به تعمیرگاه خارج از کمپانی هدایت می شود. ( فرآیند تعمیر در خارج از کارخانه در این مثال شبیه سازی نشود.). پس از انجام عملیات یک، صف دیگری برای عملیات دو در نظر گرفته شده است. این صف نیز در ابتدا خالی بوده و ظرفیت آن برابر 2 است. در صورتی که صف دو فضای خالی نداشته باشد از ورود ماشین جلوگیری بعمل میآید. این امر موجب توقف عملیات فعالیت یک می شود. بعبارت دیگر با وجود اینکه عملیات شماره یک برای این ماشین پایان پذیرفته، این عملیات نمی تواند شروع شود. این حالت تا ایجاد فضای خالی در صف عملیات دو ادامه خواهد داشت. شبیه سازی را در 500 واحد زمانی اجرا نمایید.