نکاتی از بهینهسازی مقید
ظاهرا از امروز، ۲۸ تیر ماه ۱۳۹۶، در اتوبانهای تهران، در محل خروجی اتوبانها، دوربینهایی تعبیه میشوند تا خروجهای غیر اصولی را ثبت کنند. با نصب این دوربینها، رانندگانی که بدون برنامهریزی قبلی، طوری تغییر مسیر میدهند که مجبورند از جناغیهای کنار اتوبان رد شوند، مشمول پرداخت جریمه خواهند شد. افرادی که ترافیکهای سنگین چند ساعته را تجربه کردهاند، میدانند که اغلب ریشه ترافیک، عدم رانندگی صحیح و تعیین مسیر در زمان مناسب است. هر جا که قرار باشد، تصمیمگیری و اقدام از طرف رانندگان باشد، اغلب شاهد کندی سرعت و راه بندان هستیم. راهاندازی این دوربینها، احتمالا باعث تصمیمگیری مناسبتر و به موقع توسط رانندگان خواهد شد.
بر مبنای تجارب چند ساله که در حوزه بهینهسازی مقید (Constrained Optimization) داشتهام، مایلم چند نکته را از این مبحث بیان کنم، که ارتباط جالبی با موضوع جرایم رانندگی دارند. در مسائل بهینهسازی مقید، علاوه بر این که مایلیم مقدار یک یا چند تابع هدف را بهینه کنیم، پاسخهای پیشنهادی باید در یک سری قید و محدودیت، صدق کنند. یعنی هدف در این نوع از مسائل، وسیله را توجیه نمیکند و بهینه کردن مقدار تابع هدف، به هر قیمتی، پذیرفته نیست.
برای حل مسائل بهینهسازی مقید، روشهای مختلفی وجود دارند، که یکی از آنها، توسل به تابع جریمه (Penalty Function) است. در این روش، اجازه تخطی از قیود مسأله به پاسخهای پیشنهادی داده میشود؛ اما هر پاسخ بسته به میزان تخطیاش، باید جریمهای را بپردازد. این جریمه، در قالب بدتر کردن کیفیت پاسخ، با دستکاری در مقدار تابع هدف، پیادهسازی میشود. مثلا، در مسائل کمینهسازی، تابع جریمه باعث افزایش مقدار تابع هدف و بدتر شدن پاسخ میشود. روشهای متعددی برای تعریف تابع جریمه وجود دارند؛ اما یک سری اصول کلی باید در طراحی این مکانیز جریمه، مد نظر قرار گیرند.
دقیقا مانند نظام حقوقی و جزایی ما انسانها، در دنیای بهینهسازی مقید نیز، باید مقدار جریمه متناسب با میزان تخطی و جرم اتفاق افتاده باشد. اگر جریمه کمتر از مقدار مناسب باشد، باعث تکرار جرم خواهد شد. در مقابل، اگر جریمه برای هر نوع جرمی، بسیار بالا در نظر گرفته شود، افراد در مقابل جریمه بیحس میشوند و تمایل به ارتکاب جرایم بزرگتر، بیشتر خواهد شد. تنظیم نوع و شکل تابع جریمه تا حدی سخت است که بعضا نمیتوان به راحتی از این روش نتیجه گرفت و به همین دلیل، افراد به روشهای دیگر روی میآورند.
تنظیم مقدار جریمه و موارد شامل جریمه در حوزه راهنمایی و رانندگی، واقعا موضوع پیچیدهای است. از طرفی، تعداد و تنوع جرایم به قدری بالاست، که احتمالا با کامل کردن کلکسیون جریمهها، همه ما هر روزه، با یک برگ جریمه مواجه شویم. از طرف دیگر، سیستم جریمه نویسی رایج نیز، کارایی لازم را نداشته است و حداقل به نظر من، تاثیر قابل توجهی در کاهش ناهنجاریهای رانندگی نداشته است. حتی با صرف هزینههای فراوان و نصب صدها دوربین کنترلی، باز هم روشهایی مانند آنچه در تصویر این نوشته دیده میشود، ابداع میشوند.
در مبحث طراحی تابع جریمه، اگر نوعی از تابع جریمه نتواند پاسخگو باشد، اغلب با تغییر پارامتر جریمه، کاری از پیش نمیبریم و باید به فکر تغییر نحوه اعمال جریمه باشیم. مثلا تابع جریمه جمع شونده، باید به تابع جریمه ضرب شونده تبدیل شود، تا به شکل بهتری تاثیر آن را در روند بهینهسازی مشاهده کنیم. به نظر میرسد در خصوص مشکلات رانندگی در ایران، جریمه نقدی و ریالی، چندان کارآمد نبوده است. در مقابل، میتوان جرایم غیر نقدی، مانند محرومیت موقت یا حتی دائمی از رانندگی، و یا محکومیت به ارائه خدمات اجتماعی را به کار گرفت، تا بازخورد مناسبتری داشته باشیم. فردی که ۲۰ سال است گواهینامه رانندگی دارد، اگر مجبور باشد که ۳ ماه از راننده دیگری برای حرکت دادن وسیله شخصیاش کمک بگیرد، یا مجبور به تردد با آژانس یا وسائل نقلیه عمومی باشد، احتمالا رغبت کمتری به تکرار شیوه رانندگی نامناسب قبلیاش خواهد داشت.
ميثم
سلام اقای دکتر
من اموزش php شمار را دیدم ولی در یادگیری مشکل دارم و خیلی زود مطالب فراموش میکنم و میبینم ک شما ب چند زبان برنامه نویسی سلط هستید
میخواستم بدونم چطور میشه برنامه نویسی را اصولی یادگرفت؟؟؟؟
شما چه روشی را پیشنهاد میکنید؟
ممنون
کلامی
با سلام.
پیشنهاد میکنم این مطلب را مطالعه نمایید: چطور برنامهنویس شویم؟
ضمنا، اخیرا یک کانال پرسش و پاسخ در تلگرام راهاندازی شده است که پاسخ سئوالات دانشجویان را ارائه میکنم. بخش قابل توجهی از سئوالات مشترکی که مطرح میشوند، در این کانال به صورت پادکست، پاسخ داده شده اند.
آدرس کانال: https://t.me/kalami_qa
موفق باشید.