سلام، من یوری ویلِنسکی از دانشگاهِ Northwestern، و بانیِ نِت‌لوگو (NetLogo) هستم. خوشحالم از اینکه با شما هستم. خوش‌شانس هستید که با فرد شایسته‌ای چون Bill Rand این دوره را می‌گذرانید. بیل با من در دانشگاه Northwestern کار کرده، و ما با همکاریِ هم یک کتاب راهنما در مورد مدلسازی عامل‌بنیان با نت‌لوگو نوشتیم. نکاتی را پیرامون آشنایی با مدلسازی عامل‌بنیان و نِت‌لوگو مطرح می‌کنم. از یک مثال خاص برای این آشناسازی استفاده می‌کنم. فرض کنید در اوایل هزاره‌ی دوم، یعنی حدود سال‌های ۱۰۰۰ بعد از میلاد هستیم؛ زمانی که اعداد هندی-عربی برای اولین بار وارد اروپا شده بود. تا آن‌زمان، اروپایی‌ها از اعداد رومی استفاده کرده بودند. در ارتباط با استفاده از اعداد رومی می‌دانیم که، جایگاهِ ارقام رومی در یک عدد چندرقمی گویای ارزش آن رقم نیست، به‌عبارتی فاقد ویژگیِ «مکان-نمادی» است. به این دلیل، اعداد رومی می‌توانند بسیار طولانی شوند. به‌علاوه، انجام عملیات ضرب و به‌ویژه تقسیم با اعداد رومی بسیار بسیار سخت بود. اگرچه دانشمندان خیلی زود متوجه مزایای ریاضیات‌پردازی با اعداد هندی-عربی شدند، زمان زیادی طول کشید تا این ایده‌ها در سراسر اروپا عملیاتی شود. من و همکارم (Seymour Rapert) این پدیده‌ی کدگذاریِ دانشی را بازساختاری (Restructuration) می‌نامیم. «ساختاردهی» فرایند کدگذاری یک حیطه‌ی دانشی به عنوان تابعی از سیستمی بازنمایانه است، و «بازساختاری» تغییر از یک سیستم کدگذاری به سیستم کدگذاری دیگر. یکی از مزایای بازساختاری و گذار از اعداد رومی به هندی-عربی این بود که پیش‌تر افراد کمی می‌توانستند ضرب و تقسیم انجام دهند. باید محاسبات‌شان را نزد افراد خاصی می‌بردند تا آنها بعد از صرف زمان زیادی پاسخ را آماده کنند. در حالی که بعد از این بازساختاری تقریبا هر فردی قادر به انجام محاسبات ریاضی ساده بود. و با این گذار، به دلیل سهولت پردازش اعداد بزرگ و استفاده از ویژگی مکان-نمادی پیشرفت علم سرعت گرفت. با این مقدمه، می‌پرسیم: مسائل مهم امروزی که مردم با آن مشکل دارند کدامند؟ سیستم‌های پیچیده یکی از حیطه‌های مهمی است که در فهم آن دچار مشکل هستیم، و حیطه‌ای است که برای این‌گونه «بازساختاری» مناسب است. با سیستم‌های پیچیده منظورم (به بیانی ساده) سیستم‌هایی است متشکل از اجزای مختلف، که این اجزا با یکدیگر در تعامل هستند، و بدون هرگونه طراح یا کنترل مرکزی، از تعامل‌های خُرد در سیستم‌ها و تصمیم‌ها، الگوهای کلان پدیدار می‌شود. برخی مثال‌ها عبارتند از اکوسیستم‌ها، سیستم‌های اقتصادی، سیستم‌های ایمنی، و بازار سهام. در تمامی این مثال‌ها، تعاملات اجزا به خلقِ برخی الگوهای کلان می‌انجامد. من از واژه‌ی «برآینده» (emergent) استفاده می‌کنم: امرِ برآیندهْ چگونگی توصیف ما از پیدایش الگوهای سازمان‌یافتهْ از تعاملات شمار زیادی اجزا است، و آشکارا بسیار دشوارفهم هستند. برآینده‌ها به دو شیوه‌ی متمایز دشوار‌فهم هستند: با دانستن رفتار خُرد اجزا می‌توانید شیوه‌ی تعامل آنها را بفهمید، اما همچنان پیش‌بینی ماهیت الگوی کلان بسیار مشکل است. و بالعکس، اگر الگوی کلان را بدانید، یافتنِ ساختار خُرد، یا قوانین حاکم بر روابط آنها، که به آن الگو منجر می‌شود بسیار دشوار است؛ در حقیقت، مورد دوم را می‌توان بخش بزرگی از پروژه‌ی علم دانست: اینکه با مشاهده‌ی قوانین کلان در جهان، در پی فهم اجزایی که به بروز آن الگوها می‌انجامند برمی‌آییم. فناوری می‌تواند ما را در ساخت بازنمایی‌های جدید یاری کند، همان‌طور که بازنمایی هندی-عربی به مردم در حل مسائل ریاضی و علمی پیچیده کمک کرد. فناوری محاسباتی نیز به ما امکان ساخت بازنمایی‌های جدیدی از این سیستم‌های پیچیده و فهم آنها را می‌هد. اکنون ما با شبیه‌سازی این سیستم‌های پیچیده و ایجاد عوامل و اجزای خُرد، و تعیین قوانین حاکم بر تعاملات‌شان می‌توانیم شاهد بروز نتایج این تعاملات شویم. بنابراین، مدلسازی عامل‌بنیان دقیقا این است. یک عامل (agent) جزئی خودمختار در شبیه‌سازی است که دارای مشخصه‌ها، کنش‌ها و ویژگی‌های رفتاری است. مدلسازی عامل‌بنیانْ مشاهده‌ی پدیده‌های پیرامونی و سعی در موشکافی این اجزا و عوامل است، و اعمال قوانینی به آن عوامل که به پیدایش پدیده‌ی هدف می‌انجامد. اکنون از مدلسازی عامل‌بنیان در علوم طبیعی، علوم اجتماعی، و حیطه‌های مهندسی به شیوه‌های گوناگونی استفاده می‌شود. من حدود ۲۰ سال پیش زبان نِت‌لوگو را به‌عنوان شیوه‌ای برای مدلسازی عامل‌بنیان نوشتم. و در این راه به دو اصل پایبند بودم: آستانه‌ی پایین، بدین معنی که باید بسیار دسترس‌پذیر بوده و افراد بتوانند به‌سرعت شروع به مدلسازی کنند. و فکر می‌کنم قضاوت با شماست که آیا موفق بوده‌ام یا نه. و اصل دیگر اینکه توانمند باشد، تا قادر باشیم در این محیطِ مدلسازی عامل‌بنیان به مسائل دانشی پیچیده، دشوار و پیشرفته بپردازیم. با هم سه مثال از نحوه‌ی مدلسازی سیستم‌های پیچیده با نِت‌لوگو را می‌بینیم. نمونه‌ی اول مربوط به آتش‌سوزیِ جنگلی است. مدلی که می‌بینید مربوط به آتش‌سوزی در یک جنگل است. پیکسل‌های سبز نمایانگر درختان هستند. این نواز لغزشی (slider) «تراکم» نام دارد و روی ٪۵۷ تنظیم شده است. و بدین معنی است که ٪۵۷ فضای جنگل با درختان پوشیده شده است (حدودا ٪۵۷). و خط قرمزی که در لبه‌ی سمت چپ می‌بینید خط آتش است. این مدل از قوانین بسیار ساده‌ای تبعیت می‌کند. هر درختْ شمال، شرق، جنوب و غرب خود را می‌پاید. اگر در هر کدام از این جهات آتشی یافت، آتش می‌گیرد، در غیر این صورت واکنشی ندارد. این تنها قانون حاکم بر این مدل است، البته علاوه بر کمی قوانین رنگ‌پردازی. با فشردن دکمه‌ی «اجرا» (go) مدل اجرا می‌شود. همان‌طور که می‌بینید آتش تا حدودی می‌گسترد، و خاموش می‌شود. و همان‌طور که می‌بینید بخش زیادی از جنگل را نمی‌سوزاند. می‌توانیم با همان میزان تراکم جنگلی (٪۵۷) دوباره مدل را اجرا کنیم. هر بار شاهد تفاوتی جزئی خواهیم بود، زیرا چینش درختان، و آتش در هر اجرا متفاوت‌اند. اما آنچه که مشخص است، این است که در هر دو بار (با تراکم ٪۵۷) بخش کمی از جنگل سوخت. اگر تراکم را به ٪۶۴ افزایش دهم، و مدل را اجرا کنم، میزان آتش‌سوزی به نحو شگرفی افزایش پیدا می‌کند. این نتیجه ممکن است کمی عجیب باشد، زیرا ما گمان می‌کنیم با کمی افزایش تراکم یا کمی تغییر در مولفه‌ی x، تغییر اندکی را در مولفه‌ی y شاهد خواهیم بود. یعنی افزایش اندکی در تراکم، سوختگی را کمی بیشتر خواهد کرد. ما با این تغییر شگرف ناآشناییم. اما در سیستم‌های پیچیده این پدیده‌ای رایج است. آستانه یا نقطه‌ی بحرانی، یا به بیانی «بزنگاه» (tipping point)، مفهومی است که طبق آن اندکی افزایش تراکم به تغییری ژگرف و کیفی در آتش یا سوزانندگی آن می‌انجامد. مثال بعدی شکار گرگ-گوسفند نامیده می‌شود. که در آن گرگ‌ها و گوسفندانی را داریم که در یک اکوسیستم در تعامل‌اند. قوانین این مدل کمی پیچیده‌ترند. هر گرگ و گوسفند با میزان کمی از ذخیره‌ی انرژی شروع می‌کنند و حرکت‌شان موجب از دست دادن انرژی می‌شود. اگر گرگی گوسفندی را بر سر راه خود بیابد آن را می‌خورد (یک ساده‌سازی در این مدل این است که گرگ‌ها و گوسفندها به‌نحو تصادفی حرکت می‌کنند). اگر انرژی گرگ‌ها به زیر صفر برسد می‌میرند، و اگر گوسفندی را بخورند (بدیهتاً) انرژی به دست می‌آورند. ببینیم وقتی مدل را اجرا می‌کنیم چه اتفاقی می‌افتد. هم در نمودار پایین-چپ و هم در پنجره‌ی اصلی روندی چرخه‌وار را (لااقل در ابتدا) از شمار گرگ‌ها و گوسفندها مشاهده می‌کنیم. اما الان تمام گرگ‌ها تلف شدند، زیرا شمار گوسفندان کافی نبود. گوسفندها افزایش پیدا می‌کنند، چون گرگی نیست. و چون قیدی برای افزایش گوسفندها وجود ندارد آنها کل زمین و مدل را فرامی‌گیرند. با بازاجراییِ مدل، ممکن است مدلْ مسیری یکسان یا متفاوت را طی کند؛ ممکن است گرگ‌ها تمام گوسفندان را بخورند و گوسفندی باقی نماند. در این‌صورت چیزی برای خوردن پیدا نمی‌کنند، بنابراین منقرض می‌شوند. بنابراین دو پایان برای این مدل وجود دارد. آن‌طور که می‌بینیم، این بار هم گوسفندها عاقبت بخیر می‌شوند. پس شما می‌توانید برای گرگ‌ها و گوسفندها قوانینی نعریف کنید و نظاره‌گر تغییرات جمعیتی‌شان باشید. مثال پایانی‌ام از حیطه‌ی علوم اجتماعی است، و در اصل مربوط به اقتصاددانی به نام توماس شلینگ است، که در دهه‌ی ۶۰میلادی در دانشگاه هاروارد تدریس می‌کرد و کتاب معروفی به نام «خُردانگیزه‌ها و کلان‌رفتارها» دارد، که در آن به مسائل این‌چنینی می‌پردازد، اینکه چگونه تعاملات فردی به بروندادهایی در سطوح کلان جمعیتی منجر می‌شود. در این موردِ مشخص او به پدیده‌ی تفکیک مسکن علاقه‌مند بود. سوال او از خودش این بود: اگر دو گونه عامل داشته باشیم، قرمزها و سبزها، که با وجود اینکه مایل‌اند در کنار یکدیگر زندگی کنند، اما آستانه‌ی تحملی دارند، یعنی اگر همسایگی آنها مملو از عاملی دیگر شد (برای مثال، یک عامل سبز با تعداد زیادی عامل قرمز احاطه شد، یا بالعکس)، سبب نارضایتی‌شان شده و از آنجا نقل مکان می‌کنند. او علاقه‌مند بود بداند چه اتفاقی در سطح کلان می‌افتد. نوار لغزشی «similar-wanted-%» روی ٪۳۰ قرار دارد، یعنی عاملین قرمز و سبز همسایگیِ ناهمسان تا سقف ٪۷۰ را تحمل می‌کنند، اما اگر عدم تشابه بیشتر از ٪۷۰ شد، نقل مکان می‌کنند. اگر مدل را اجرا کنیم می‌بینیم که به همسایگی‌هایی به‌شدت منفک از هم می‌رسیم. شلینگ این کار را با سکه‌های ۵، ۱۰ و ۲۵ سِنتی، بر روی صفحه‌ی شطرنجی انجام داده، و ماه‌ها طول کشیده تا به این نتایج برسد. اما با مدلسازی عامل‌بنیان به‌سرعت می‌توانیم این گسستگی همسایگی‌ها را ببینیم. این شیوه‌ی کاربست مدلسازی عامل‌بنیان در علوم اجتماعی بسیار بحث‌برانگیز بوده، و شاید اکنون هم تا حدودی این‌گونه باشد. ممکن است برخی استدلال کنند که: انسان‌ها مانند مورچه‌ها نیستند، و قوانین ساده‌ای ندارند، و در این حالت ممکن است تعصبِ افراد نقش مهمی در این فرایند تفکیکی داشته باشد؛ اما دغدغه‌ی شلینگ این بود که اگر هدف اجتماعی ما حذف گسستگی در همسایگی‌ها باشد، استفاده از خصیصه‌ی تعصب به‌عنوان اهرم به تنهایی کافی نخواهد بود. زیرا تا زمانی که اندکی اولویت برای بودن در همسایگی هم‌نوع‌تان داشته باشید، بحث گسستگی در همسایگی‌ها مطرح خواهد بود. سه مثال از کاربردهای نت‌لوگو را در بازنمایی پدیده‌هایی کمابیش پیچیده مرور کردیم. یادآور می‌شوم که معادلات پیچیده‌ای برای مدلسازی قوانین حاکم بر این پدیده‌ها وجود دارد. این نمونه، مربوط به گسترش آتش است که شامل معادله‌ی جریان سیال و معادله‌ی حرارت است. که معادلات دیفرانسیل جزئی هستند. و در نت‌لوگو اینها را می‌توان به قوانین و کدهای ساده بازنمایی کرد. این توضیح برای مثالِ شکار-شکارگر نیز صادق است، معادلات دیفرانسیلی که می‌توانند با کدهای ساده بازنمایی شوند. در مجموع، دیدگاه مدلسازی عامل‌بنیان بر این است که الگوهای کلان در طبیعت و جامعه معمولا (و شاید همیشه) نتیجه‌ی تعامل و انباشت شمار زیادی عامل است، که هر کدام قوانین کنش و تعامل خود را دارند. برای فهم بسیاری از پدیده‌های این جهان، می‌توانیم آنها را در قالب عواملی که از شمار کمی قوانین ساده پیروی می‌کنند مدلسازی و شبیه‌سازی کنیم. خیلی ممنون، و می‌دانم از کلاس‌های بیل لذت خواهید برد.