بسته نرم افزاری Primitives
انیمیشنی که مشاهده میکنید، خروجی یک بسته نرمافزاری به نام Primitives است که به صورت متنباز در گیتهاب [+] در دسترس قرار دارد. کد این نرمافزار، با استفاده از زبان Go و توسط «مایکل فوگلمن» نوشته شده است.
انیمیشنی که مشاهده میکنید، خروجی یک بسته نرمافزاری به نام Primitives است که به صورت متنباز در گیتهاب [+] در دسترس قرار دارد. کد این نرمافزار، با استفاده از زبان Go و توسط «مایکل فوگلمن» نوشته شده است.
زمستان سال ۱۳۹۵ بود که پیادهسازی یکی از ایدههای قدیمیام را شروع کردم که سالها ذهنم را به خود مشغول کرده بود. هدفم ایجاد یک ساختار واحد و منسجم، برای مدلسازی، تعریف و حل «مسائل بهینهسازی» (Optimization Problem) با استفاده از روشهای «محاسبات تکاملی» (Evolutionary Algorithm) و «فراابتکاری» (Metaheuristic) بود. انگیزه اصلی من برای انجام این کار، طی ارتباطم با دانشجوها شکل گرفت. سالها، با صدها دانشجو به صورت مستقیم در ارتباط بودهام و میدانم که یکی از بزرگترین مشکلات محققین و دانشجویان، به ویژه افرادی که در برنامهنویسی چندان توانمند نیستند، تعریف ساختار مسأله و متغیرهای آن است.
پرسشی توسط یکی از دانشجویان پیرامون «الگوریتم ژنتیک و مسائل بهینهسازی» مطرح شده بود که در یک پادکست به آن پاسخ دادهام. نسخه متنی این پادکست نیز در همین مطلب قرار گرفته است. البته، منبع اصلی همچنان فایل صوتی محسوب میشود. خوشحال میشوم در صورتی که مساله خاصی در رابطه با نسخه متنی وجود داشت، آن را از طریق بخش نظرات با من در میان بگذارید.
ظاهرا از امروز، ۲۸ تیر ماه ۱۳۹۶، در اتوبانهای تهران، در محل خروجی اتوبانها، دوربینهایی تعبیه میشوند تا خروجهای غیر اصولی را ثبت کنند. با نصب این دوربینها، رانندگانی که بدون برنامهریزی قبلی، طوری تغییر مسیر میدهند که مجبورند از جناغیهای کنار اتوبان رد شوند، مشمول پرداخت جریمه خواهند شد. افرادی که ترافیکهای سنگین چند ساعته را تجربه کردهاند، میدانند که اغلب ریشه ترافیک، عدم رانندگی صحیح و تعیین مسیر در زمان مناسب است. هر جا که قرار باشد، تصمیمگیری و اقدام از طرف رانندگان باشد، اغلب شاهد کندی سرعت و راه بندان هستیم. راهاندازی این دوربینها، احتمالا باعث تصمیمگیری مناسبتر و به موقع توسط رانندگان خواهد شد.
تا کنون در نوشتههای متعددی، بیش از هر چیز دیگری، بر اهمیت کارهای کوچک تأکید کردهام؛ چه خوب و چه بد. معتقدم اگر قرار است بهبودی در چیزی ایجاد شود، بهتر است به تدریج با گامهای کوچک باشد. چرا که گامهای بزرگ و آنی، حتی اگر مقدور باشند، امکان شکست و ریسک بالایی دارند.
بخش مهمی از مسائل کاربردی در حوزههای مختلف علمی و فنی، مربوط به حوزه بهینهسازی و جستجو است. الگوریتمهای متنوعی هم برای حل این دسته از مسائل معرفی شدهاند، که نوع مهمی از آنها، الگوریتمهای تکاملی هستند که تشکیل دهنده مبحث محاسبات تکاملی در هوش مصنوعی میباشند. یکی از اصول کلی که لازمه عملکرد مناسب یک الگوریتم بهینهسازی است، ایجاد تعادل بین دو فاکتور مهم است: اکتشاف (Exploration) و استخراج (Exploitation). یک الگوریتم موثر و کارآمد، باید بتواند میان این دو مولفه، تعادل مناسبی را برقرار کند.