در این بخش هدف پیدا کردن بردار
v
ای بود که در قیدهای دادهشده صدق کند که این قیدها نسبت به
v
خطی بودند. برای حل این مساله، جمع تمام درایههای
v
را به عنوان تابع هدف یک مساله بهینهسازی در نظر گرفته که در آن بهدنبال پیدا کردن
v
ای هستیم که تابع هدف مذکور را کمینه کرده و در قیدهای دادهشده نیز صدق کند. از آنجا که هم تابع هدف و هم قیدها خطی هستند، این مساله یک
LP
است. با حل این
LP
جواب مساله را بهدست میآوریم.
همانطور که گفتهشد، مساله فوق یک برنامه خطی است و برای حل آن از ECOS که یکی از solverهای جولیا است استفاده شده است.
محدودیت خاصی برای کد این دور از مسابقه وجود ندارد.
با توجه به ساده بودن این دور از مسابقه، ایدهای برای گسترش بیشتر وجود ندارد.
کافیست آن را در کنار فایل ورودی قرار داده، نام فایل ورودی را در کد در خط اول سلول دوم به نام فایل ورودی مورد نظر تغییر داده؛ مقدار n را نیز که سایز بردار v خروجی است، در خطهای سوم و چهارم از سلول سوم، با توجه به ابعاد دادهی ورودی بهروزرسانی کنید. در نهایت سلولها را به ترتیب اجرا کنید. پس از اتمام اجرا، خروجی مورد نظر در فایل output.txt در کنار کد ذخیره خواهد شد.
از آنجا که در کد از زبان جولیا استفاده شدهاست، نیاز است این زبان نصب شود. همچنین بستههایی که در سلول اول کد استفاده شدهاند نیز باید نصب شود. برای نصب جولیا و بستههای مورد نظر میتوانید به وبسایت جولیا مراجعه کنید.
همانطور که در بخش پیشنیازها گفته شد، باید زبان Julia نصب شود.
همچنین پکیجهای زیر نیز باید در Julia نصب شوند:
- JuMP
- ECOS
- MAT
- DataFrames
- SparseArrays
- DelimitedFiles
احمد رحیمی و دیبا هاشمی