بررسی نرم افزار شبیه سازی SEMoLa

بررسی-نرم-افزار

SEMoLa  (ساده ،كاربرد آسان ، زبان مدلينگ ) بوسيله فرانسسكو دانوسو در رشته كشاورزي و در دانشکده علوم دانشگاه يوداين ايتاليا وبا همكاري تعداد زيادي از محققين پياده سازي شده است ، يك شبيه ساز كه محيط مدلسازي در ساخت مدلهاي كامپيوتری براي سيستم هاي پوياست.

نرم افزار مذکور قالب بندي شده بوسيله ۳ جزء :

  1. ساختار غير رويه اي براي مدل كد
  2. يك مجموعه دستور ساخت و ارزيابي جهت مدلهاي شبيه ساز كامپيوتری
  3. يك محیطGUI براي مديريت محيط شبيه سازی

دستورات به مستندات مدل اجازه مي دهند براي نشان دادن نتايج شبيه سازي براي اجراي آناليز هاي حساس و نا معلوم.مديريت محيط مدلينگ بوسيله دستوراتي براي ست كردن ، نشان دادن ، پاك كردن متغيرهاي محيط مدلينگ ، براي ويرايش سريع فايلهاي مدل ، براي ايجاد فايلهايي براي شبيه ساز چند رسانه اي ، براي نشان دادن فايلهاي SEMoLa  و براي سرعت سنجي جلسه كاري به انجام مي رسد.

همچنین دارای يك سيستم Error  يابي و يك on-line help   گسترده در دسترس ، می باشد. SEMoLa  يك شبيه ساز ساده فرا زبان است. كد هاي مدل شده در  SEMoLa  ، به زبان های Basic  و C++ ترجمه شده اند و سپس بصورت فايلهاي اجرائي کامپایل می شوند . كدهاي زبان Basic توسط  کنسول كامپايلر Basic 1.0 وكد هاي C++ بوسيله کامپایلر MinGW 2.0.0-3 كامپيل مي شوند.

يك مجموعه ای از ابزارها مانند ابزار های شبيه سازی  شبكه هاي عصبي ،ابزار های تجزيه تحليل  بصورت باز گشتي ،ابزارهاي چك كردن مدل و دیگر ابزار ها  براي گسترش دادن توانائي هاي SEMoLa  تجهیز شده اند و امكان مدلينگ و تجزيه و تحليل  بصورت قدرتمند تر را به كاربر،  مي دهد.

درصورت نیاز ، فايلهاي متغير خارجي (متغير هاي ورودي) نيزتوسط SEMoLa قادر به لود شدن و پردازش هستند . شبیه سازی های چند گانه یا دسته ای ممكن است در ارتباط با یکدیگر اجرا شوند ولی بدین صورت که مقادير دروني مختلف ، مجموعه پارامتر ها ، متغير هاي بيروني و يا سناريو هاي رخدادها  در نتیجه اجرای آنها بصورت خروجی مشترک ، قابل استفاده باشند . در فاز شبيه سازي براي بدست آوردن آناليز هاي حساس مانند پارامترهاي اندازه گيري خوشبينانه نيوتن ، و درستي مدل در مقابل داده هاي مستقل ، از این تکنیک استفاده می شود .

SEMoLa  به كاربر اجازه مي دهد تا ظاهر سيستم را بيشتر در قالب تصور نشان دهد تا محا سبات در خواستي. اين باعث مي شود كه كد بيشتر قابل خواندن باشد و نيز قابليت خطا يابي افزايش مي يابد.

یک مدل SEMoLa  ممکن است  بطور مستقيم  با استفاده از دستورات ویژه ای ، در خروجی ، جدولهاي قابل ارائه ، ليستي از متغير ها وپارامترها  را توليد كند.

اين دستورات جهت كامپايل و شبيه سازي ، از دستورات کامپایلر simula که توسط دانوسو در سال ۱۹۹۲ ساخته شده ، برگرفته شده اند.

ویژگی های كلي SEMoLa

 

  • زبان برنامه نويسي غير رويه اي براي مدلهاي پويا
  • ساخت مدلهای مستقل و کامل که بصورت هوشمند کار می کنند
  • یکپارچه سازی شمارشی معادلات دیفرانسیل معمولی(برشی و ذوزنقه ای)
  • قابلیت استفاده از متغیر های خارجی توسط کاربر
  • قابلیت مدیریت رویدادهای (شرطی،دوره ای و زمانبندی شده)
  • شبیه سازی چند گانه یا دسته ای
  • درجه بندی پارامتر ها و بهینه سازی آنها
  • درجه بندی چند گانه
  • تجزیه و تحلیل عمیق مسائل حساس
  • اعتبار سنجی مدلها
  • پشتیبانی شبیه سازی های تجربی و آزمایشی
  • پشتیبانی تحلیل سیستمهای غیر قطعی و نا مشخص به روش مونت کارلو(روش بررسی ایستا)
  • خطا یابی و بررسی آنها در زمان کامپایل و زمان اجرا
  • مستند سازی مدلها (جدول بندی ، لیست بندی ، محل اجرای شبیه سازی)
  • سازماندهی مدل با ساختار مرحله ای
  • مدیریت محیط مدلسازی
  • اتوماتیک کردن و زمانبندی رویه های اجرایی بوسیله دستورات اسکریپت
  • وجود Help جهت ساختار نحوی زبان ، رویه ها و دستورات شبیه سازی در این محیط
  • فایل های Log آماده جهت حالت های مختلف کاری SEMoLa و مدل های اجرایی آن
  • تحلیل چند بعدی پسرفت و نزول پروژه یا سیستم از نظر عملکرد
  • آموزش شبکه های عصبی و نمایش و ساختن آن بوسیله مجموعه ساده ای از مدلهای آماده
  • طرح ها و مثال های آماده از شبکه های عصبی در قالب سورس کد های آماده به زبانهای C++ و بیسیک
  • دارای محیط ویرایشگر کد با قابلیت مخصوص HighLight
  • قابلیت دیباگ کردن سورس برنامه از حیث معنایی و قالب دستوری و رویه ای
  • دارای واحد های اتوماتیک (بصورت ابعادی) و بررسی همنواختی و سازگاری
  • دارای قابلیت ذخیره سازی و مستندسازی مدل طراحی شده درقالب فرمت *.chm
  • آزمایش مدل شبیه سازی شده و تحلیل بصورت سناریو
  • قابلیت ایجادو توزیع بصورت تصدفی متغیرها از اجرای چندین مدل توصیفی
  • قابلیت تعریف توابع کاربردی توسط کاربر و مدیریت آنها
  • قابلیت تحلیل فنی منطق فازی و توسعه سیستمها توسط آن در قالب توابع تعریف شده
  • تحلیل نحوی بصورت شهودی و داده های شبیه سازی شده

محيط كارSEMoLa

SEMoLa يك محيط كار شبیه سازی و مدلسازی  است که براي یکپارچگی دانش بکارمی رود.

که شامل بخش های ذیل می باشد :

  1. يك نمونه غير رويه اي براي كد كردن مدل به زبان SEMoLa
  2. يك مجموعه از دستورات جهت پشتیبانی تمامی کارها در دو محیط Interactive  و دسته ای
  3. يك محیط GUI جهت مدیریت محیط شبیه سازی
  4. يك سيستم مديريت پايگاه داده داخلی
  5. قابليت طرح ريزي
  6. یک ويرايشگر ويژه به نام SemEdit

SEMoLa Model  يك فايل متني است كه هر سطر آن شرح كاملي از يك  جزء سيستم است (قسمتي از يك سيستم)

شمای کلی :

Console Version

SEMoLa editor (SemEdit)

دستورات

یک مزیت مهم SEMoLa  مي تواند استفاده کاربر از dialog  هاي GUI  (واسط گرافیکی کاربر)يا دستورات تعریف شده در آن ، به منظور ارتباط بهتر کاربر با نرم افزار  باشد.

Command ها دستورالعملهای كاربردي ای هستند كه به منظور درخواست عملیات اساسی از سیستم برای نرم افزار گرفته شده اند.

Command ها مي توانند بطور مؤثرتري بكار گرفته شوند بطوريكه كاربر بتواند متن دستور را با شرایط از قبل تعین شده اش بنويسد و Enter را فشار دهد  و نتيجه اعمال را ببيند و اعمال ديگر را به دستورات رویه های تعریف شده دیگر بسپارد .

معمولا دستورات مذکور ، مزایا و ویژگی های خود را در صورتیکه بصورت دسته ای و مجتمع نوشته شوند نمایان می سازند . پیشنهاد می شود حالت دسته ای مذکور را Procedural انتخاب کنید . بدینصورت که کاربر دستورات خود را در قالب پروسیجر های مجزا نوشته ، آنها را تثبیت کرده وبصورت یک فایل ذخیره می کند، سر انجام در یک مرحله آنها را اجرا می کند .

هيچ نيازي به صبر كردن براي ديدن نتيجه هر دستور نيست.Procdure  در مراحل مختلف زمانی که توسط کاربر تعیین می شود ، قابل اجراست و نوع اجرا و خروجی آن ، بسته به نحوه ارسال پارامتر های آن متفاوت خواهد بود.

پنجره ای از SEMoLa  که برای  وارد کردن و مدیریت  دستورات می باشد :

كاربرد پنجره Command  در بالا امكان ساخت ، مديريت و استفاده از ليستهاي دستورات و ذخيره كردن دستورات در قالب فايل می باشد.

فايلهاي command ليستی از دستورات در يك فايل متن هستند كه با پسوند cmf ذخیره می شوند.

ساخت يك فايل command :

         نحوه ایجاد یک  CommandFile در نسخه فعلی این سیستم بدین نحو است که : یک نام در فرم نمایش داده شده در قسمت بالا ، سمت چپ وارد نمایید و دکمه Save را فشار دهید .

برای ويرايش فايل command ، فايل command  را در combo box  انتخاب كرده و دكمه Edit  را فشار مي دهيد.

برای اجراي فايل command، فايل command را انتخاب كرده و دكمه Run را فشار مي دهيد.

فايلهاي command  هم چنين مي توانند بوسيله دستورات csave  وcrun  مديريت شوند.

يك فايل command هم چنين مي تواند با پارامتر هائي  كه دریک كد script  مانند ماكرو آمده، استفاده شود %۱%, %۲%, %۳&, ، غيره.

زبان

فرم SEMoLa Model  يك فايل متني تشکیل شده با خطوطی از دستورات است كه هریک رابطه ای از عنصر سيستم است.

هر خط بوسيله يك حرف مشخص ، اولين كلمه خط شناخته مي شود.

كامپايلر SEMoLa  ۹ نوع از وضعيتها را تشخيص مي دهد:

S : اعلام وضعيت

A :معادلات كمكي

R :نرخ معادلات

E :اعلام متغير بيروني

V :اعلام جريان

P :واگذاري مقدار پارامتر (انتساب)

$ :اختيارات زمان اجرا

@ : بخش تشخيص هويت

‘ : توضيحات خطي

 کد های مدل فعلی ممکن است بصورت بخشهاي منطقي ساخته شود. يك بخش مدل بعنوان يك زير سيستم از حالت خاصی ازتقسیم یک نوع سیستم کلی ،تلقی می شود.

@ اعلانات يك بخش در مدل جاري را مشخص می کند.

در صفحه بعدی جدول کاملی از این علامات نشان داده شده است :

State S declares a state of the system and initial value
Auxiliary A treats endogenous and exogenous information
Rate R declares a rate of the system, source and sink
Exovar E declares a needed exogenous variable (input)
Event V declares events and related actions on model
Parameter P declares value or expression for a parameter
Group G declares a group of elements
Options $ options to be used as default in run-time phase
Section $ indicates a new model section
Comment comments in the SEMoLa code

ساختار یک خط از کد :

که به معنی :

مثال کلی :

ساختارهای داده :

SEMoLa  از ساختارهای داده ای زیر استفاده می کند :

  1. Dataset جاري: جدولی از داده ها كه مي توانند روي ديسك ذخيره شوند. كه شبيه يك جدول شامل سطرها (گامهاي زماني ،مشاهدات يا ركوردها)و ستونها (متغير ها) می باشد . متغير ها مي تواننداز انواعزیر باشند: float(double),integer ,string
  2. محيط متغير ها : متغیر هایی هستند که در یک برهه زمانی مشخص ایجاد شده ، استفاده شده و از بین می روند . زمانی که از برنامه خارج می شویم بکلی از پاک می شوند . مگر اینکه آنها به Current Dataset تبدیل و ذخیره شوند . آنها می توانند از انواع: Scalar ، String و Matrix باشند .
  3. فايلهاي روي ديسك

 

متغيرهاي محدود

متغیر های محدود  ، متغیر هایی هستند که فقط دریک محدوده زمانی طی اجرای مدلینگ ساخته می شوند . مگراینکه به نوع Current Database تبدیل و ذخیره شوند . آنها میتوانند از نوع اسکالر (یک مقدار یکتای شمارشی ) ، رشته ای (کاراکتر های متنی) و نوع ماتریسی( داده های شمارشی در قالب آرایه های یک یا دو بعدی) تعریف شوند که این تعریف بوسیله دستوراتی همچون : scalar, string and matrix  انجام می گیرد .

اغلب دستورات شمارشی و آماری ، پس از اینکه ارسال شدند ، محتوای اجرای خود را درون یک متغیر مخصوص نگهداری می کنند تا اینکه بعدا هم قابل بازیابی باشند و هم توسط دیگر دستورات ،مجددا استفاده شوند . این مقادیر معمولا توسط همان دستورات بارها باز نویسی می شوند .

برای مثال دستور  summarize varnameیک نمونه از متغیر های نوع محدود ایجاد می کند که ،می تواند به همراه موارد زیر دیده شود :

. sca list

_nobs         =  ۲۰۶

_mean         =  ۳۳

_sum          =  ۶۷۹۸

_sd           =  ۰

_MS           =  ۰

_min          =  ۳۳

_max          =  ۳۳

برای مثال :

Examples:

. scalar k=10                      (creates a new scalar variable and set its value to 10)

. scalar b=2                        (creates another scalar variable and set its value to 2)

. scalar c=b*k                    (c is created and equals to 10)

. string abc=”SEMoLa”

. string cde=mid(”SEMoLa”,۲,۳)  (the value of cde is “EMo”)

قابلیت های متغیرهای محدود :

  • قابلیت محاسبات ، حتی با عبارات ترکیبی مانند :

sca x=sin(10-tan(50))/(sqrt(25))  (x = -.149875659218454)

  • قابلیت استفاده مجدد از نتایج دستورات قبلی .
  • ایجاد عملیات روی ماتریس ها مانند :

mat A=B·C  (matrix product);

mat C=A·trn(A)  (multiply a matrix by its transpose)

  • استفاده از متغیرهای محدود جهت تعریف انواع جدید current dataset  مانند:
  1. scalar a=5 (define the ambient variable a)
  2. generate newvar=_i*a        (generate a new column with values 5,10,15,20,25, …; _i is the running index of rows);

۵) تبدیل نوع ماتریس به نوع Dataset با استفاده از دستور :                            matrix set;

۶) تبدیل نوع Dataset به متغیر نوع ماتریس محدود با استفاده از  دستور :           matrix get;

۷) استفاده از جایگزینی ماکرو . یک ماکرو در یک عبارت یا دستور بعنوان Leading Percent شناخته شده است :

  1. scalar a=5
  2. string b=”Myfile”+str(a)+”.csv” (concatenate strings)
  3. use %b (the command loads the file csv);

مثالی از  شبیه سازی یک سیستم شبکه عصبی :

 

net  Creating, testing and saving Neural Networks

Syntax to train networks:

        . net [train] input(varlist) output(varname) [hidden(#)]

              [nobias] [lrate(#)] [maxrmse(#)] [niter(#)]

              [activ(sigmoid|tanh|linear)]  [test(#)]

              [netlabel] [saving(netname)] [help]

    Syntax to predict data:

        . net predict(varname) using(netname) input(varlist)

    Syntax to validate nets:

        . net valid(netname) input(varlist) output(varname)

    Syntax to list available networks:

        . net list [netname]

Examples:   . net train input(A,B,C) output(D) hidden(4) test(50) this is mynet

             .net predict(myvar) input(A,B,C) using(mynet)

             . net valid(mynet) input(A,B,C) output(E)

                . net list

برای دانلود این مطلب برروی لینک زیر کلیک کنید

بررسی نرم افزار شبیه سازی SEMoLa

این مقاله را چاپ کن این مقاله را چاپ کن

ممکن است این مطالب را هم دوست داشته باشید

پاسخ دهید

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


2 − = صفر