شیوه های مدل سازی خوب

برخی از افکاری که من جمع‌آوری کرده‌ام، عمدتاً به سمت مدل‌سازی دینامیک سیستم در Vensim، اما مربوط به هر تلاش مدل‌سازی است:

  1. بدانید که چرا مدل را می سازید.
    • اگر یک ارائه یا مقاله را هدف قرار می دهید، ابتدا اسکلت را بنویسید، تا بدانید مدل چگونه پاسخ ها را در حین حرکت پر می کند.
  2. ابتدا داده های خود را سازماندهی کنید.
    • داده ای وجود ندارد؟ مشکلی نیست. اما مطمئناً شما یک حالت مرجع در ذهن دارید، و برخی محدودیت‌ها در رفتار، حداقل در شرایط شدید.
    • در Vensim، همه آن را در یک صفحه گسترده، پایگاه داده یا فایل متنی ریخته و با استفاده از ویژگی Model>Import data…، توابع GET XLS DATA یا ODBC آن را به یک مدل داده وارد کنید.
    • داده ها را در جستجوها (توابع جدول) قرار ندهید، مگر اینکه به دلایل فنی مجبور باشید. آنها برای ویرایش و به روز رسانی مشکل دارند و در تشخیص نقاط داده واقعی از درون یابی مشکل دارند.
  3. یک دفترچه آزمایشگاهی نگه دارید. یک پردازشگر کلمه باز در حین کار مفید است. قبل از دویدن فرضیه ها را بنویسید تا شگفتی ها را منطقی نکنید.
  4. مدل‌های خود را مرتب نگه دارید و نسخه‌ها را در حین حرکت نگه دارید.
    • راه ساده: تمام فایل های مرتبط با یک مدل را در یک فهرست نگه دارید. هر بهبود مدل اصلی را با یک شماره جدید (mymodel v16.mdl) ذخیره کنید. به طور دوره ای کل دایرکتوری را کپی کنید و تازه شروع کنید، تا مدل ها و فایل های جانبی زیادی را در یک مکان نداشته باشید.
    • راه پیچیده: از آپاچی ساب‌ورژن استفاده کنید
  5. در حین حرکت، واحدها را وارد کرده و متعادل کنید. آنها از بسیاری از خطاها جلوگیری می کنند. واقعا.
  6. حداقل برای معادلات غیر ضروری، هر طور که می‌روید، مستند کنید. در غیر این صورت صبح ها از خودتان متنفر خواهید شد، زمانی که باید این کار را یکباره انجام دهید.
  7. از نام متغیرهای شفاف با تفسیر جهتی واضح استفاده کنید.
  8. نمودارهای خود را مرتب و سازماندهی شده نگه دارید.
    • هر از گاهی اسپاگتی را تمیز کنید.
    • از رنگ و سبک ها برای شناسایی ثابت های کلیدی، داده های رانندگی و غیره استفاده کنید.
  9. نمودارهایی بسازید تا خروجی های خود را با داده ها و انتظارات مقایسه کنید.
  10. ساختارهای جدید را در مدل های فرعی تست کنید، نه در زمینه بازخورد کامل آنها. به این ترتیب شما به راحتی می توانید تست های تعادل و شرایط شدید را بدون سربار یک مدل کامل انجام دهید.
  11. هر از گاهی به خروجی هر متغیر نگاه کنید. اگر نمی توانید این کار را انجام دهید، احتمالا مدل شما خیلی بزرگ است.
  12. یک لیست “todo” را در مدل خود یا در دفترچه یادداشت آزمایشگاه خود نگه دارید. معماها و ناهنجاری ها را در نظر بگیرید تا بعداً حل شوند.
  13. مکرر بدوید سازه های بزرگ را به صورت تدریجی بسازید تا آنچه دارید همیشه آزمایش و درک شود.
  14. در صورت امکان از منطق تودرتو و IF…THEN و دیگر ساختارهای گیج کننده و گسسته اجتناب کنید.
  15. معادلات طولانی را به قطعات قابل هضم تقسیم کنید. اگر در قسمت متن ویرایشگر معادله قرار نگیرد، هیچ انسانی نمی تواند آن را درک کند.
  16. هرگز ثابت‌های غیر ضروری – به ویژه آنهایی که واحدهای ضمنی دارند – را در معادلات قرار ندهید. آنها را به عنوان ثابت های جداگانه بیرون بکشید.
    • بد: قیمت = متغیر_هزینه*1.234
    • بهتر: قیمت = متغیر_هزینه*(1+ نشانه گذاری)
    • خوب: Time_Constant = 1/Fractional_Rate
  17. آن ثابت های غیر ضروری را برای حساسیت تست کنید.
    • شما می توانید بسیاری از تست ها را به صورت دستی، در Synthesim، با تکان دادن اسلایدرها انجام دهید.
    • با استفاده از بهینه‌ساز، تست‌های brute force هر پارامتر در مدل خود را خودکار کنید.
  18. ورودی های تصمیم گیری را با دقت خاصی آزمایش کنید.
    • هر کنترلی را در نهایت و در ترکیب با دیگران امتحان کنید.
    • سعی کنید تصمیمات خود را مختل کنید، به دنبال عملکرد بهبود یافته باشید یا تعیین کنید که آیا عوامل شبیه سازی شده شما به طور سیستماتیک مغرضانه یا بیش از حد گنگ هستند.
  19. همه چیز را در شرایط سخت آزمایش کنید. لغو Synthesim یک راه مفید برای انجام این کار است – یک سهام را در سطح اولیه آن منجمد کنید، و voila – شما تمام حلقه های بازخورد مربوط به آن را شکسته اید.
  20. جمع‌های کنترلی برای عملیات‌های آرایه پیچیده بسازید (مثلاً اشتراک‌هایی که مجموع آنها برابر با 1 است). محدودیت هایی را برای متغیرهای مربوطه تنظیم کنید، به طوری که در صورت نقض چک جمع، یک هشدار زمان اجرا دریافت کنید.
  21. چک های واقعیت را بنویسید تا چک جمع های خود را تماشا کنید و انواع دیگر تست ها را خودکار کنید. احتمالاً فقط یک بار آزمایش را به صورت دستی انجام می دهید، اما اگر به صورت خودکار خودکار باشد، تکرار آن آسان است. همچنین، RC ها سرعت اجرای مدل های معمولی را کاهش نمی دهند.
  22. قوانین ساخته می شوند که شکسته شوند.

سوالات؟ اضافات؟ نظر بده

keyboard_arrow_up