mpsread

Считайте файл MPS для LP и данных об оптимизации MILP

Синтаксис

problem = mpsread(mpsfile)

Описание

пример

problem = mpsread(mpsfile) считывает данные для проблем линейного программирования (LP) и смешано-целочисленного линейного программирования (MILP). Это возвращает данные в структуре, которую принимают intlinprog или решатели linprog.

Примеры

свернуть все

Загрузите файл mps и решите проблему, которую он описывает.

Загрузите файл eil33-2.mps от общедоступного репозитория. Просмотрите проблемный тип.

gunzip('http://miplib.zib.de/download/eil33-2.mps.gz')
problem = mpsread('eil33-2.mps')
problem = 

          f: [4516x1 double]
      Aineq: [0x4516 double]
      bineq: [0x1 double]
        Aeq: [32x4516 double]
        beq: [32x1 double]
         lb: [4516x1 double]
         ub: [4516x1 double]
     intcon: [4516x1 double]
     solver: 'intlinprog'
    options: [1x1 optim.options.Intlinprog]

Заметьте, что problem.intcon не пуст, и problem.solver является 'intlinprog'. Проблемой является целочисленная линейная проблема программирования.

Измените опции, чтобы подавить итеративное отображение и сгенерировать график, в то время как решатель прогрессирует.

options = optimoptions('intlinprog','Display','final','PlotFcn',@optimplotmilp);
problem.options = options;

Решите проблему путем вызова intlinprog.

[x,fval,exitflag,output] = intlinprog(problem);
Optimal solution found.

Intlinprog stopped because the objective value is within a gap tolerance of the optimal
value, options.RelativeGapTolerance = 0.0001 (the default value). The intcon variables are
integer within tolerance, options.IntegerTolerance = 1e-05 (the default value).

Входные параметры

свернуть все

Путь к файлу MPS, заданному как вектор символов. mpsfile должен быть файлом в формате MPS.

Примечание

  • mpsread не поддерживает полунепрерывные ограничения или ограничения SOS.

  • mpsread поддерживает файлы “фиксированного формата”.

  • mpsread не поддерживает расширения, такие как objsense и objname.

  • mpsread тихо игнорирует переменные в разделе BOUNDS, которые ранее не появляются в разделе COLUMNS файла MPS.

Пример: 'documents/optimization/milpproblem.mps'

Типы данных: char

Выходные аргументы

свернуть все

Структура задачи, возвращенная как структура с полями:

fВектор, представляющий объективный f'*x
intconПеременные указания вектора, которые принимают целочисленные значения (пустой для LP, непустого для MILP)
AineqМатрица в линейных ограничениях неравенства  Aineq*x  bineq

bineq

Вектор в линейных ограничениях неравенства  Aineq*x  bineq

Aeq

Матрица в линейных ограничениях равенства   Aeq*x = beq

beq

Вектор в линейных ограничениях равенства   Aeq*x = beq
lbВектор нижних границ
ubВектор верхних границ
solver'intlinprog' (если intcon непуст), или 'linprog' (если intcon пуст),

options

Опции по умолчанию, как возвращено командой

optimoptions(solver)

mpsread возвращает problem.Aineq и problem.Aeq как разреженные матрицы.

Введенный в R2015b