Решение многокритериальных задач линейного программирования (ЗЛП) методом последовательных уступок в MatLab | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Автор:

Рубрика: Математика

Опубликовано в Молодой учёный №13 (147) март 2017 г.

Дата публикации: 30.03.2017

Статья просмотрена: 2496 раз

Библиографическое описание:

Омельяненко, М. В. Решение многокритериальных задач линейного программирования (ЗЛП) методом последовательных уступок в MatLab / М. В. Омельяненко. — Текст : непосредственный // Молодой ученый. — 2017. — № 13 (147). — С. 109-111. — URL: https://moluch.ru/archive/147/41206/ (дата обращения: 16.12.2024).



Ключевые слова: задача линейного программирования, многокритериальная оптимизация, метод последовательных уступок

Метод последовательных уступок решения многокритериальных задач применяется в случае, когда частные критерии могут быть упорядочены в порядке убывающей важности. Предположим, что все критерии максимизируются и пронумерованы в порядке убывания их важности. Сначала определяется максимальное значение , первого по важности критерия в области допустимых решений, решив задачу , при . Затем назначается, исходя из практических соображений и принятой точности, величина допустимого отклонения (уступка) критерия и отыскивается максимальное значение критерия при условии, что значение первого должно отклоняться от максимального не более чем на величину допустимой уступки, то есть решается задача:

Снова назначается величина уступки по второму критерию, которая вместе с первой используется при нахождении условного экстремума третьего частного критерия и т. д. Наконец, выявляется экстремальное значение последнего по важности критерия при условии, что значение каждого из первых частных критериев отличается от экстремального не более, чем на величину допустимой уступки. Получаемое на последнем этапе решение считается оптимальным. Средствами MatLab была разработана программа, позволяющая решать данные задачи любой размерности. Рассмотрим работу алгоритма на примере. Пусть даны:

Алгоритм основан на встроенной функции MatLab для решения задач линейного программирования — linprog. На вход программе подаются следующие значения:

FN — количество переменных задачи; FM — количество ограничений задачи; FF — количество целевых функций; US — вектор уступок; AF — матрица коэффициентов при переменных целевых функций; GF — вектор направлений ЦФ; OG — матрица коэффициентов при переменных ограничений; SO — вектор знаков ограничений; OF — вектор свободных коэффициентов ограничений:

FN = 3; FM = 3; FF = 3; AF = [2 1 -3; 1 3 -2; -1 2 4];

GF = [1 0 1]; US = [14 22]; OG = [1 3 2; 2 -1 1; 1 2 0];

SO = [1 0 0]; OF = [1 16 24];

Далее введённые данные адаптируются под синтаксис процедуры linprog (ограничения сводятся к «≤», ЦФ сводятся на max, путём домножения на -1 ЦФ, направленных на min) и выполняется непосредственный поиск решения:

%Настройка функции linprog на решение симплекс-методом

options = optimset('LargeScale', 'off','Simplex','on');

%Поиск решения текущей ЦФ — tAF (выбираются строки из AF)

[x,fval]=linprog(tAF,OG,OF, [], [],lb, [], [],options).

Производим поиск решения столько раз, сколько имеем ЦФ (FF). Функция linprog возвращает вектор значений для целевой функции Х и fval — значение ЦФ при таких X. Добавляем каждый найденный вектор решения в матрицу решений FS, добавляя полученное решение в качестве дополнительного ограничения.

Рассчитываем значение найденной ЦФ с учетом уступок. Выведем полученное решение, «распечатав» FS(i), FS(i)*US(i), x(i), где i = 1...FF, а также решение с учетом уступок (Рис. 1, 2).

Рис. 1. Оптимальное решение задачи

Таким образом, в среде программирования MatLab (R2015b) был разработан алгоритм, позволяющий решать задачи многокритериального линейного программирования методом последовательных уступок. Данный код универсален для любых размерностей: любого числа целевых функций, числа переменных и ограничений.

Литература:

  1. Штойер Р. Многокритериальная оптимизация / Штойер Р.: пер. с англ. — М.: Радио и связь, 1992. — 504 с. — (Теория, вычисления и приложения).
Основные термины (генерируются автоматически): важность критерия, допустимая уступка, задача, критерий, линейное программирование, матрица коэффициентов, поиск решения, полученное решение, учет уступок.


Ключевые слова

многокритериальная оптимизация, задача линейного программирования, метод последовательных уступок

Похожие статьи

Реализация поиска минимума функции методом градиентного спуска в среде MatLab

В данной статье описана реализация метода градиентного спуска в программе MatLab.

Реализация численного алгоритма метода вариаций в пространстве управлений

В статье разработан алгоритм и реализована программа решения задачи оптимального управления на основе метода вариаций. Реализованный алгоритм был апробирован на тестовых примерах.

Разработка приложения для решения задачи о максимальном потоке

В статье представлена процесс разработки пользовательского приложения, решающего задачу поиска максимального потока алгоритмами Форда-Фалкерсона и Эдмонса-Карпа.

Сравнительный анализ численного решения задач оптимального управления

Данная работа посвящена анализу численных методов решения задач оптимального управления: метода последовательных приближений и метода вариации. Работа данных алгоритмов была апробирована на конкретном тестовом примере с известным аналитическим решени...

Разработка алгоритма быстрого преобразования Фурье на базе модели акторов

В данной работе авторами представлен параллельный алгоритм быстрого преобразования Фурье, универсальным примитивом выполнения вычислений которого является семейство акторов.

Линейное программирование

В данной статье рассматривается задача линейного программирования и возможный способ её решения — симплекс метод. Приведены примеры, поясняющие, что такое линейное программирование и симплекс метод.

Разбиение многосвязного ортогонального полигона с минимизацией протяженности стыков на основе линейного программирования

Рассматривается задача разбиения многосвязного ортогонального полигона на прямоугольные области. Критерием оптимизации является минимизация протяженности стыков между прямоугольниками, образующими разбиение. Предложена модификация модели Бизли для ре...

Топологическая оптимизация с использованием TOPY

Комбинированный алгоритм линейной оптимизации с поиском максимального потока на графе

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

Ранжирование и выбор наиболее важных критериев для решения многокритериальной задачи

В статье решена задача ранжирования и выбора наиболее важных критериев для решения многокритериальной задачи.

Похожие статьи

Реализация поиска минимума функции методом градиентного спуска в среде MatLab

В данной статье описана реализация метода градиентного спуска в программе MatLab.

Реализация численного алгоритма метода вариаций в пространстве управлений

В статье разработан алгоритм и реализована программа решения задачи оптимального управления на основе метода вариаций. Реализованный алгоритм был апробирован на тестовых примерах.

Разработка приложения для решения задачи о максимальном потоке

В статье представлена процесс разработки пользовательского приложения, решающего задачу поиска максимального потока алгоритмами Форда-Фалкерсона и Эдмонса-Карпа.

Сравнительный анализ численного решения задач оптимального управления

Данная работа посвящена анализу численных методов решения задач оптимального управления: метода последовательных приближений и метода вариации. Работа данных алгоритмов была апробирована на конкретном тестовом примере с известным аналитическим решени...

Разработка алгоритма быстрого преобразования Фурье на базе модели акторов

В данной работе авторами представлен параллельный алгоритм быстрого преобразования Фурье, универсальным примитивом выполнения вычислений которого является семейство акторов.

Линейное программирование

В данной статье рассматривается задача линейного программирования и возможный способ её решения — симплекс метод. Приведены примеры, поясняющие, что такое линейное программирование и симплекс метод.

Разбиение многосвязного ортогонального полигона с минимизацией протяженности стыков на основе линейного программирования

Рассматривается задача разбиения многосвязного ортогонального полигона на прямоугольные области. Критерием оптимизации является минимизация протяженности стыков между прямоугольниками, образующими разбиение. Предложена модификация модели Бизли для ре...

Топологическая оптимизация с использованием TOPY

Комбинированный алгоритм линейной оптимизации с поиском максимального потока на графе

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

Ранжирование и выбор наиболее важных критериев для решения многокритериальной задачи

В статье решена задача ранжирования и выбора наиболее важных критериев для решения многокритериальной задачи.

Задать вопрос