Возможна ли разработка приложения на Octave с GUI? |
Решение оптимизационных задач
Пример 10.6. Найти такие значения переменных при которых функция цели достигает своего минимального значения и удовлетворяются ограничения:
Сформируем параметры функции
— коэффициенты при неизвестных функции цели,
— матрица системы ограничений,
–– свободные члены системы ограничений,
— массив, определяющий тип ограничения4Первые три ограничения типа "меньше", четвёртое — типа "больше",
— массив, определяющий тип переменной, в данном случае все переменные вещественные,
–– задача на минимум.
Текст программы решения задачи приведён в листинге 10.8.
c = [0; -1; -2; 4]; a =[3 -1 0 0; 0 1 -2 0; 0 0 4 -1;5 0 0 1]; b = [2; -1; 3; 6]; ctype="UUUL"; vartype= "CCCC"; sense =1; [xmin, fmin, status] =glpk(c, a, b, [0; 0; 0; 0], [], ctype, vartype, sense) % Результаты решения xmin = 1.00000 1.00000 1.00000 1.00000 fmin = 1.00000 status = 180Листинг 10.8. Решение задачи из примера 10.6
Минимальное значение достигается при . Значение переменной равно 180, что свидетельствует о корректном решении задачи линейного программирования.
Пример 10.7. Найти такие значения переменных при которых функция цели достигает своего минимального значения и удовлетворяются ограничения:
Сформируем параметры функции :
— коэффициенты при неизвестных функции цели,
— матрица системы ограничений (три переменных и четыре ограничения),
— свободные члены системы ограничений,
— массив символов, определяющий тип ограничения5Первое и третье ограничения типа "больше", второе четвёртое — типа "меньше".,
— массив, определяющий тип переменной, в данном случае все переменные вещественные,
–– задача на максимум.
Текст программы решения задачи приведён в листинге 10.9.
c =[1; -1; -3]; a =[1 1 0; 1 -1 0; 1 0 1; 1 1 -1]; b = [2; 0; 2; 3]; ctype="LULU"; vartype= "CCC"; sense =-1; [xmax, fmax, status]= glpk(c, a, b, [ ], [ ], ctype, vartype, sense) % Результаты решения xmax = 1.66667 1.66667 0.33333 fmax = -1.0000 status = 180Листинг 10.9. Решение задачи из примера 10.7
Минимальное значение6Авторы обращают внимание читателей в Octave было равно -1, а потом к нему необходимо было прибавить -5 достигается при
Значение переменной равно 180, что свидетельствует о корректном решении задачи линейного программирования.
Решим задачу 10.7, как задачу целочисленного программирования (см. листинг 10.10)
c =[1; -1; -3]; a =[1 1 0; 1 -1 0; 1 0 1; 1 1 -1]; b = [2; 0; 2; 3]; ctype="LULU"; vartype= "III"; sense =-1; [xmax, fmax, status]= glpk(c, a, b, [ ], [ ], ctype, vartype, sense) % Результаты решения xmin = 2 2 1 fmin = -3 status = 171Листинг 10.10. Решение задачи из примера 10.7 в целых числах
Значение свидетельствует о корректном решении задачи целочисленного программирования, значение достигается при