- صورتبندی سوال
- الگوریتم بهینهسازی
- محدودیتها
- ایدههای گسترش
- روند اجرا
- نحوه استفاده
- وابستگیها
- نویسندگان
صورت برنامهریزی :
برای حل برنامه ریزی بالا ابتدا مطابق راهنمایی سوال نرم دو-صفر را با نرم دو یک جایگزین کردیم. سپس به تعداد ستون های ماتریس وی، برنامه ریزی بخش قبل را حل کردیم که هر برنامه ریزی یک ستون از وی را به ما داد. چون برنامه ریزی بخش قبل به گونه ای نوشته شده که تعداد سطر های صفر هر بردار زیاد شود، میتوان نتیجه گرفت که تعدادی برنامه ریزی خطی با تقریب سطر های صفر ماتریس وی را افزایش میدهد.
پس در نهایت برای هر ستون ماتریس وی برنامه ریزی زیر را حل کردیم و سپس ستون های به دستامده را با هم ادغام کردیم.
در این بخش از این کتاب استفاده کردیم که روش های کلی کمینه کردن نرم صفر را بررسی میکرد. ایده های مطرح شده در فصل اول و سوم این کتاب را مطالعه کردیم. تعدادی تابع هدف پیشنهادی در این کتاب مطرح شده بود که هر کدام از آن ها یا توسط سالور های موجود قابل اجرا نبودند و یا جواب مساله را بهتر نمیکردند. همچنین ایدهی
علاوه بر ان یک کد ناقص در کتابخانهی
البته در بخش چهارم مسابقه ایده ای پیدا کردیم که تعداد سطر های صفر در این بخش را به مقدار قابل توجهی افزایش میداد. اما چون زمان سابمیت این دور به پایان رسیده بود نتوانستیم آن را سابمیت کنیم.این ایده را در ریپازیتوری مربوط به بخش ۴ توضیح خواهیم داد.
محدودیتی در این بخش وجود ندارد و با نصب پکیج های مورد نظر میتوان یک جواب شدنی برای هر ۳ ورودی مسابقه به دست آورد. اما مدت زمان اجرا در دیتای دور سوم مسابقه قابل توجه است.
از آنجایی که در روش اولیه برنامه ریزی ها از یکدیگر مستقل هستند، میتوان آن ها به صورت موازی اجرا کرد تا در داده های بزرگ زمان اجرا به صورت قابل توجهی کاهش یابد.
میتوانید نوتبوک را به صورت یکجا یا سلول به سلول ران کنید و خروجی در همان مسیر ذخیره میشود.
برای گرفتن خروجی سابمیت شده از تابع
برای گرفتن خروجی از تابعی که پس از ددلاین این دور پیدا کردیم از تابع
برنامه در زبان جولیا نوشته شده و لیست پکیج های مورد نیاز در ادامه آمده است :
MAT
JuMP
GLPK
Ipopt
SparseArrays
DelimitedFiles
هر دو نفر از اعضای تیم تعدادی از مقاله های موجود در صورت سوال را بررسی کرده و تلاش به پیاده سازی تعداد از آن ایده ها کردند به طور دقیق تر ایدهی
کد های موجود در این ریپازیتوری برای ۳ ورودی کمی متفاوت هستند. بخشی از توابع توسط یک عضو و بخشی از توابع توسط عضو دیگر نوشته شده و به اشتراک گذاشته شدند تا نوت بوک های موجود آماده شدند
