Кіріспе

MPS (Mathematical Programming System) файл форматы — сызықтық бағдарламалау (LP) және аралас бүтін сандық бағдарламалау мәселелерін көрсету және сақтауға арналған файл форматы.

Шолу

Формат IBM LP өнімінің бірінші нұсқасының атымен аталып, көптеген коммерциялық LP шешімдері арасында кең таралған ASCII форматы ретінде пайда болды. Көбінесе барлық коммерциялық LP шешімдері осы форматты қабылдайды, сондай-ақ ол ашық кодты COIN OR жүйесімен де үйлесімді. Басқа бағдарламалық жасақтамалар MPS файлдарын оқу үшін арнайы модульді қажет етуі мүмкін. Дегенмен, алгебралық модельдеу тілдерінің қолданысқа енуімен MPS форматының қолданылуы азайды. Мысалы, NEOS серверінің 2011 жылғы қаңтар айындағы статистикасына сәйкес, MPS форматындағы жіберілген өтініштердің үлесі 1%-дан аспады, ал AMPL форматында – 59,4%, GAMS форматында – 29,7% құрады. MPS бағандарға бағдарланған (модельді теңдеулер түрінде енгізуден өзгеше), және модельдің барлық элементтері (айнымалылар, қатарлар және т.б.) аттармен белгіленеді. MPS – көне формат болғандықтан, ол перфокарталар үшін жасалған: өрістер 2, 5, 15, 25, 40 және 50-ші бағандардан басталады. MPS файлының бөлімдері тақырыптық карталар арқылы бөлінеді, олар 1-ші бағаннан басталады. Тарихи себептерге байланысты файлда әдетте үлкен әріптер қолданылса да, көптеген MPS оқырмандары тақырыптық карталардан басқа жағдайда әріптердің араласуын қабылдайды, ал кейбіреулері кез келген жерде аралас әріптерді қолдануға рұқсат береді. Сіз шешушіге (шектеулерге немесе айнымалыларға) таңдайтын атаулардың маңызы жоқ; мағыналы немесе кейін өңдеуге арналған кодтың оқуына ыңғайлы атауларды таңдаған жөн.

Өзгергіштер

NAME жазбасы 15-бағаннан бастап кез келген мәнді қабылдай алады. ROWS бөлімі барлық шектеулердің атауларын анықтайды; 2 немесе 3-бағандағы жазбалар теңдік (=) үшін E, кіші (<=) үшін L, үлкен (>=) үшін G және шектеусіз N болып табылады. Осы бөлімде аталған қатарлардың реті маңызды емес, N белгісі қойылған шектеусіз қатарларды қоспағанда, олардың біріншісі мақсаттық функция ретінде қарастырылады. COLUMNS бөлімі A матрицасының элементтерін қамтиды. Белгілі бір бағанның барлық элементтері тізбектей орналасуы керек, бірақ баған ішінде элементтердің (қатарлардың) реті маңызды емес. Баған үшін көрсетілмеген қатарлардың коэффициенті нөл деп есептеледі. RHS бөлімі бір немесе бірнеше оң жақ векторларын анықтауға мүмкіндік береді, көбінесе олардың саны біреуден аспайды. Жоғарыдағы мысалда RHS векторының атауы RHS1, және ол проблеманың барлық 3 шектеу қатарында нөлдік емес мәндерге ие. RHS векторында көрсетілмеген қатарлардың оң жағы нөлге тең деп есептеледі. BOUNDS бөлімінде матрицадағы қатарлар арқылы берілмеген жеке айнымалылардың ең төменгі және ең жоғарғы шектері көрсетіледі. 5-бағанда аталған барлық шектер жиын ретінде қарастырылады. Белгілі бір BOUNDS жиынында аталмаған айнымалылар теріс емес деп есептеледі (ең төменгі шек нөл, ең жоғарғы шек жоқ). UP типіндегі шектеу айнымалыға ең жоғарғы шек қояды. LO типіндегі шектеу ең төменгі шек қояды. FX ("бекітілген") типіндегі шектеу айнымалының ең жоғарғы және ең төменгі шектері бір мәнге тең екенін білдіреді. FR ("еркін") типіндегі шектеу айнымалының ең төменгі де, ең жоғарғы да шектері болмайды, сондықтан ол теріс мәндерді қабылдауы мүмкін. Осыған ұқсас MI, еркін теріс үшін, 0 ең жоғарғы шегін береді, бірақ ең төменгі шегі жоқ. PL типіндегі шектеу нөлден плюс шексіздікке дейінгі еркін оң мән үшін, бірақ бұл әдеттегі дефолт болғандықтан, сирек қолданылады. MIP модельдерінде қолданылатын шектеу түрлері де бар – BV, 0 немесе 1 болатын екілік үшін, UI жоғарғы бүтін сан үшін және LI төменгі бүтін сан үшін. SC – жартылай үзділіссіз, яғни айнымалы нөл болуы мүмкін, бірақ нөл болмаса, берілген мәнге тең немесе одан үлкен болуы керек. RANGES деп аталатын қосымша бөлімде екі есе теңсіздіктер көрсетіледі, бірақ олардың ерекшеліктері бұл жерде сипатталмайды. Бүтін сандық айнымалыларды белгілеу тәсілдері де осы мақаланың шегінен тыс (MARKER кілт сөзі және мүмкін SOS қолданылады). Соңғы жазба ENDATA болуы керек (әріптемеге назар аударыңыз). MPS стандартының кейбір ерекше жағдайлары жүзеге асыру кезінде дұрыс өңделмеуі мүмкін. BOUNDS бөлімінде, егер айнымалыға оң емес ең жоғарғы шек берілсе, бірақ ең төменгі шек берілмесе, оның ең төменгі шегі нөлге немесе минус шексіздікке тең болуы мүмкін (сондай-ақ, егер ең жоғарғы шек нөл ретінде берілсе, ең төменгі шек нөл немесе теріс шексіздік болуы мүмкін). Егер бүтін сан айнымалының ең жоғарғы шегі көрсетілмесе, оның ең жоғарғы шегі плюс шексіздікке емес, бірге тең болуы мүмкін.

Шектеулер

МПС-тің көптеген шектеулері бар. Ол оңтайландыру бағытын көрсетпейді, оны шешушілер әртүрлі жолдармен жүзеге асырады. Сандық өрістердің ені 12 символға дейін шектелгендіктен, бұл дәлдікті азайтады. Бұл форматты адамдарға түсіну қиын, сонымен қатар ол ықшам емес (дегенмен, бағана/жол реті туралы ақпаратты сақтайды, бұл LP шешушінің мінез-құлқының қайталанатындығы үшін жиі пайдалы болады). МПС-ке альтернатива болып табылатын, оның шектеулері жоқ және көптеген шешушілер қолдайтын nl файл форматы бар.

Ұзартулар

Көптеген LP өнімдері MPS форматына қосымшалар кіреді. Бос форматтағы MPS ұзын атауларға және дәл деректерге мүмкіндік береді, себебі бастапқы стандартта анықталған бағаналардан асып түсетін өрістерге рұқсат етіледі және белгілі бағана позицияларының орнына бос орындар бөлгіштер ретінде қолданылады (назарда болсын, бұл кейбір MPS файлдарындағы атаудың бөлігі ретінде қолданылған бос орындарды жарамсыз етеді). Кейбір қосымшалар MPS файлына жаңа дерек түрлерін қосуды қамтиды (мысалы, мақсат функциясының бағытын, толықтық талаптарын, квадратық деректерді немесе MIP-тің кеңейтілген модельдеу құрылымдарын қамтитын бөлімдер). Сонымен қатар, сығылған MPSC файл форматы да бар. SMPS – бұл ерекше қосымша, ол әсіресе ғылыми-зерттеу орталарында қолданылатын, стохастикалық бағдарламалау мәселелерін бейнелеуге арналған. Кейбір қосымшалар стандартталмаған болса да, бұл формат әлі де кеңінен қолданылады.