در این بخش هدف پیدا کردن ماتریس
V
ای بود که در قیدهای دادهشده صدق کند که این قیدها نسبت به
V
خطی بودند. همچنین میخواستیم
V
را بهگونهای پیدا کنیم که تا جای ممکن بیشترین تعداد سطر تمام صفر را داشته باشد.
برای حل این مساله، ابتدا بردار
vnorm
را به گونهای تعریف کردیم که درایه iام آن برابر با بزرگترین قدر مطلق مقادیر سطر iام V باشد.
به این ترتیب iامین سطر V تمام ۰ است اگر و تنها اگر iامین درایه این بردار برابر ۰ باشد و بنابراین تابع هدف به نرم l0 این بردار تغییر پیدا میکند.
به این شکل، این مساله بسیار شبیه به مساله دور قبل میشود و برای حل آن از ایدههای آن دور استفاده میکنیم.
مانند دور دوم، ابتدا نرم l0 را با نرم l1 تخمین زدیم. از آنجا که درایههای vnorm نامنفی هستند، نرم l1 آن برابر با جمع درایههای آن میشود و به این ترتیب مساله زیر به شکل تقریبی از مساله اصلی بهدست میآید.
مانند دور دوم، بعد از حل این مساله با استفاده از solver های Julia، به صورت گام به گام نتیجه را بهبود بخشیدیم. به این منظور، در هر گام با استفاده از نتایج گام قبل (و در گام اول با استفاده از نتایج تخمین l1 مساله)، وزن wi را به شکل زیر تولید کردیم:
با استفاده از این وزنها، مساله زیر را تعریف کرده و با حل آن به نتایج بهتری دست پیدا کردیم:
ایدهی پشت این روش نیز کاملا مشابه این روش در دور دوم است. تنها تفاوت این روش با روش دور دوم در این است که به دلیل این که مقادیر بردار
vnorm
نامنفی هستند، تابع sgn حذف شده چون همیشه مقدار ۱ را به ما میدهد و به دلیل مشابه قید نامنفی بودن vnorm نیز حذف شده است.
برای تعریف مساله MILP نیاز به بردار M داریم که درایه iام آن ماکسیمم قدر مطلق مقداری است که یک درایه در سطر iام V ممکن است بگیرد. به عبارت دیگر M به شکل زیر تعریف میشود:
در نهایت، مساله MILP زیر حل شده و جواب مساله را به ما میدهد:
- JuMP
- Cbc
- ECOS
- GLPK
- MAT
- SparseArrays
- DelimitedFiles
- LinearAlgebra
- MathOptInterface