Пакет решения задач линейной оптимизации simplex
Обзор средств пакета
Задачи линейной оптимизации важны как в фундаментальных, так и в прикладных приложениях математики. В пакете simplex имеется небольшой, но достаточно представительный набор функций и определений для решения таких задач:
> with(simplex); Warning, the protected names maximize and minimize have been redefined and unprotected [basis, convexhull, cterm, deftne_zero, display, dual, feasible, maximize, minimize,pivot, pivoteqn, pivotvar, ratio, setup, standardize ]
Приведем краткое назначение этих функций:
- basis – возврат списка основных переменных для множества линейных уравнений;
- convexhull – вычисление выпуклой оболочки для набора точек;
- cterm – задание констант для системы уравнений или неравенств;
- define_zero – определение наименьшего значения, принимаемого за ноль (по умолчанию увязано со значением системной переменной Digits);
- display – вывод системы уравнений или неравенств в матричной форме;
- dual – выдача сопряженных выражений;,
- equality – параметр для функции convert, указывающий на эквивалентность;
- feasible – выяснение возможности решения заданной задачи:
- maximize – вычисление максимума функции;
- minimize – вычисление минимума функции;
- pivot – создание новой системы уравнений с заданным главным элементом;
- pivoteqn – выдача подсистемы уравнений для заданного главного элемента;
- pivotvar – выдача переменных с положительными коэффициентами в целевой функции;
- ratio – выдача отношений для определения наиболее жесткого ограничения;
- setup – задание системы линейных уравнений;
- standardize – приведение заданной системы уравнений или неравенств к стандартной форме неравенств типа "меньше или равно".
Функции maximize и minimize
Главными из этих функций являются maximize и minimize, оптимизирующие задачу симплекс-методом. Они записываются в следующих формах:
maximize(f, С) minimize(f, С) maximize(f, С, vartype) minimize(f, С, vartype) maximize(f, С, vartype, 'NewC', 'transform') minimize(f, C, vartype, 'NewC', 'transform')
Здесь f – линейное выражение, С – множество или список условий, vartype – необязательно задаваемый тип переменных NONNEGATIVE или UNRESTRICTED, NewC и transform – имена переменных, которым присваиваются соответственно оптимальное описание и переменные преобразования.
Ниже даны примеры применения этих функций: