stringtranslate.com

Программирование целей

Целевое программирование является ветвью многокритериальной оптимизации , которая, в свою очередь, является ветвью многокритериального анализа решений (MCDA). Его можно рассматривать как расширение или обобщение линейного программирования для обработки нескольких, обычно конфликтующих объективных мер. Каждой из этих мер задается цель или целевое значение, которое должно быть достигнуто. Отклонения от этих целей измеряются как выше, так и ниже цели. Нежелательные отклонения от этого набора целевых значений затем минимизируются в функции достижения. Это может быть вектор или взвешенная сумма в зависимости от используемого варианта целевого программирования. Поскольку удовлетворение цели считается удовлетворением лица(лиц), принимающего(их) решения, предполагается базовая философия удовлетворения . Целевое программирование используется для выполнения трех типов анализа:

  1. Определите необходимые ресурсы для достижения желаемого набора целей.
  2. Определить степень достижения целей при имеющихся ресурсах.
  3. Предоставление наилучшего удовлетворяющего решения в условиях различного объема ресурсов и приоритетов целей.

История

Целевое программирование впервые было использовано Чарнесом, Купером и Фергюсоном в 1955 году [1], хотя само название впервые появилось в тексте Чарнеса и Купера 1961 года. [2] Затем последовали основополагающие работы Ли [3] , Игницио [4], Игницио и Кавалье [5] и Ромеро [6] . Шнидерджанс приводит библиографию большого количества статей до 1995 года, касающихся целевого программирования [7], а Джонс и Тамиз дают аннотированную библиографию периода 1990-2000 годов. [8] Недавний учебник Джонса и Тамиза [9] дает всесторонний обзор современного состояния целевого программирования.

Первым инженерным применением целевого программирования, предложенным Игницио в 1962 году, стала разработка и размещение антенн, используемых на второй ступени ракеты Сатурн V. Она использовалась для запуска космической капсулы «Аполлон», которая высадила первых людей на Луне.

Варианты

Первоначальные формулировки целевого программирования упорядочивали нежелательные отклонения в ряд уровней приоритета, причем минимизация отклонения на более высоком уровне приоритета была бесконечно важнее любых отклонений на более низких уровнях приоритета. Это известно как лексикографическое или упреждающее целевое программирование. Игницио [4] дает алгоритм, показывающий, как лексикографическая целевая программа может быть решена как ряд линейных программ. Лексикографическое целевое программирование используется, когда существует четкий приоритетный порядок среди целей, которые должны быть достигнуты.

Если лицо, принимающее решение, больше заинтересовано в прямом сравнении целей, то следует использовать взвешенное или неупреждающее программирование целей. В этом случае все нежелательные отклонения умножаются на веса, отражающие их относительную важность, и складываются в единую сумму для формирования функции достижения. Отклонения, измеренные в разных единицах, не могут быть суммированы напрямую из-за явления несоизмеримости .

Следовательно, каждое нежелательное отклонение умножается на константу нормализации, чтобы обеспечить прямое сравнение. Популярными вариантами констант нормализации являются целевое значение соответствующей цели (следовательно, превращая все отклонения в проценты) или диапазон соответствующей цели (между наилучшими и наихудшими возможными значениями, следовательно, отображая все отклонения в диапазон от нуля до единицы). [6] Для лиц, принимающих решения, более заинтересованных в получении баланса между конкурирующими целями, используется программирование целей Чебышева . Представленный Флавеллом в 1976 году, [10] этот вариант стремится минимизировать максимальное нежелательное отклонение, а не сумму отклонений. При этом используется метрика расстояния Чебышева .

Сильные и слабые стороны

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

Следовательно, целевое программирование может обрабатывать относительно большое количество переменных, ограничений и задач. Обсуждаемым недостатком является способность целевого программирования выдавать решения, которые не являются эффективными по Парето . Это нарушает фундаментальную концепцию теории принятия решений , согласно которой ни один рациональный принимающий решения человек не выберет сознательно решение, которое не является эффективным по Парето. Однако существуют методы [6] [11] [12], позволяющие обнаружить, когда это происходит, и спроецировать решение на эффективное по Парето решение соответствующим образом.

Установка соответствующих весов в модели программирования целей — еще одна область, которая вызвала споры, и некоторые авторы [13] предлагают использовать для этой цели процесс аналитической иерархии или интерактивные методы [14] . Кроме того, веса целевых функций можно рассчитать на основе их предпочтений с использованием подхода порядкового приоритета . [15]

Смотрите также

Внешние ссылки

Ссылки

  1. ^ A Charnes, WW Cooper , R Ferguson (1955) Оптимальная оценка вознаграждения руководителей методом линейного программирования, Management Science, 1, 138-151.
  2. ^ A Charnes, WW Cooper (1961) Модели управления и промышленные приложения линейного программирования, Wiley, Нью-Йорк
  3. ^ SM Lee (1972) Целевое программирование для анализа решений, Auerback, Филадельфия
  4. ^ ab JP Ignizio (1976) Целевое программирование и расширения, Lexington Books, Лексингтон, Массачусетс.
  5. ^ JP Ignizio, TM Cavalier (1994) Линейное программирование, Прентис Холл.
  6. ^ abc C Romero (1991) Справочник по критическим вопросам целевого программирования, Pergamon Press, Оксфорд.
  7. ^ MJ Scniederjans (1995) Методология и применение целевого программирования, издательство Kluwer, Бостон.
  8. ^ DF Jones, M Tamiz (2002) Целевое программирование в период 1990-2000 гг., в книге «Оптимизация по нескольким критериям: современные аннотированные библиографические обзоры», M. Ehrgott и X. Gandibleux (ред.), 129-170. Kluwer
  9. ^ Джонс Д.Ф., Тамиз М. (2010) Практическое целевое программирование, Springer Books.
  10. ^ Р. Б. Флавелл (1976) Новая формулировка целевого программирования, Омега, 4, 731-732.
  11. ^ EL Hannan (1980) Недоминирование в целевом программировании, INFOR, 18, 300-309
  12. ^ М. Тамиз, С. К. Мирразави, Д. Ф. Джонс (1999) Расширение анализа эффективности по Парето для целочисленного целевого программирования, Омега, 27, 179-188.
  13. ^ SI Gass (1987) Процесс определения приоритетов и весов для крупномасштабных линейных целевых программ, Журнал Общества операционных исследований, 37, 779-785.
  14. ^ Б. Дж. Уайт (1996) Разработка продуктов и их риторики на основе единой иерархической модели, Труды ежегодной конференции Общества технической коммуникации 1996 г., 43, 223-224.
  15. ^ Тафаккори, Кейван; Тавакколи-Могаддам, Реза; Сиадат, Али (2022). «Устойчивое согласование вложенности и планирования в системах аддитивного производства: исследование случая и многоцелевые метаэвристические алгоритмы». Инженерные приложения искусственного интеллекта . 112 : 104836. doi : 10.1016/j.engappai.2022.104836 . ISSN  0952-1976.