مدلسازی اعلانی با CP-SAT (کتاب رایگان انگلیسی)
کتاب رایگان Declarative Modeling with CP-SAT اثر دومینیک کروپکه: روشی منظم برای تبدیل مسئلهٔ واقعی به مدل درست CP-SAT، از نمادگذاری تا وریفایر.
Declarative Modeling with CP-SAT کتابی کوتاه و رایگان به زبان انگلیسی، نوشتهٔ دومینیک کروپکه (Dominik Krupke) از بخش الگوریتمهای دانشگاه فنی براونشوایگ آلمان است. این کتاب همراه مستقل راهنمای شناختهشدهٔ «CP-SAT Primer» نوشته شده و روی یک مهارت تمرکز دارد: تبدیل یک مسئلهٔ واقعی و نامرتب به مدلی درست، پیش از آنکه به سالور سپرده شود.
این کتاب چه چیزی یاد میدهد؟
پیام اصلی کتاب این است که بهجای نوشتن الگوریتم برای حل مسئله، مسئله را «توصیف» کنید و جستوجو را به سالور بسپارید. نویسنده این تغییر نگاه را با مقایسهٔ حل مسئلهٔ کولهپشتی به دو روش نشان میدهد: یک برنامهریزی پویای دستنویس، و یک مدل سهخطی که مستقیم به CP-SAT داده میشود. مزیت دوم فقط سرعت نیست؛ اضافه کردن یک قید جدید در آن فقط یک خط است.
کتاب چهار ایدهٔ اصلی را دنبال میکند:
- نمادگذاری ریاضی ابزار است، نه مانع. فصل دوم زبان مشترک مدلسازی را مرور میکند: مجموعهها، پارامترها، گرافها، دامنهٔ متغیرها، عبارتهای خطی و غیرخطی، قیدها و منطق گزارهای.
- هر مدل از پنج جزء ساخته میشود: موجودیتها، پارامترها، متغیرهای تصمیم، قیدها و تابع هدف. این روش با یک مثال کامل زمانبندی پرستاران بخش بیمارستان، گامبهگام آموزش داده میشود.
- وریفایر (Verifier): یک تابع ساده و مستقل پایتون که یک جواب پیشنهادی را میگیرد و میگوید معتبر است یا نه، و چقدر خوب است. این ایده تعریف مسئله را در کد ثابت میکند تا تغییرات بعدی مدل از آن منحرف نشوند.
- زبان سالور مهم است. فصلهای پایانی واژگان CP-SAT را بهصورت مرجع معرفی میکنند: انواع متغیر (عدد صحیح، بولی، بازهای)، قیدهای سراسری مثل
add_circuit،add_no_overlapوadd_cumulative، و نحوهٔ خواندن وضعیت سالور و فاصلهٔ بهینگی.
مناسب چه کسانی است؟
مخاطب اصلی کتاب برنامهنویسان و مهندسانیاند که پایتون بلدند و میخواهند مسائل زمانبندی، تخصیص، مسیریابی و بستهبندی را بهشکل منظم مدل کنند. اگر با مدلسازی ریاضی آشنا هستید، بیشتر مفاهیم برایتان آشناست، ولی ایدهٔ وریفایر و فهرست واژگان CP-SAT همچنان ارزشمند است.
چطور کنار آموزشهای سایت از آن استفاده کنیم؟
این کتاب مکمل خوبی برای راهنمای جامع آموزش OR-Tools است. اگر تازه شروع کردهاید، پیش از کتاب یادداشت مدلسازی ریاضی و اهمیت آن برای برنامهنویسی را بخوانید. فصلهای قیدها و زمانبندی کتاب با یادداشت آموزش کامل CP-SAT در OR-Tools همپوشانی دارند، و بخش وضعیتهای سالور (OPTIMAL، INFEASIBLE، MODEL_INVALID) با یادداشت عیبیابی خطای MODEL_INVALID در CP-SAT کامل میشود.
برای مثالهای فارسی همان مسائلی که کتاب به آنها اشاره میکند، یادداشتهای مکانیابی انبار و زمانبندی شیفت کارکنان با CP-SAT را ببینید. برای یادگیری پروژهمحور، دورههای مدلسازی مسائل بهینهسازی و مسیریابی وسایل نقلیه با پایتون همین مهارتها را روی مسائل کامل تمرین میدهند.
مجوز و منبع اصلی
- نویسنده: Dominik Krupke، Algorithms Division, TU Braunschweig
- مجوز: این اثر تحت مجوز Creative Commons Attribution 4.0 (CC BY 4.0) منتشر شده است. فایل PDF این صفحه نسخهٔ اصلی و بدون تغییر کتاب است.
- منبع اصلی و نسخههای بهروز: github.com/d-krupke/cpsat-primer
متن این صفحه معرفی و خلاصهٔ فارسی کتاب است که توسط optexpert.org نوشته شده و ترجمهٔ متن کتاب نیست.
دانلود رایگان کتاب
PDF (انگلیسی) · 57 صفحه · ۳٫۳ مگابایت