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

Программирование целей это филиал многокритериальная оптимизация, который, в свою очередь, является ветвью многокритериальный анализ решений (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] для этого.

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

внешняя ссылка

  • LiPS - Бесплатная простая в использовании программа с графическим интерфейсом, предназначенная для решения задач линейного, целочисленного и целевого программирования.
  • ЛИНСОЛЬВ - Бесплатное линейное программирование окна командной строки Windows и программирование линейных целей]

Рекомендации

  1. ^ Чарнз, У.В. Купер, Р. Фергюсон (1955) Оптимальная оценка вознаграждения руководителей с помощью линейного программирования, Наука управления, 1, 138-151.
  2. ^ А. Чарнс, В. В. Купер (1961) Модели управления и промышленные приложения линейного программирования, Вили, Нью-Йорк
  3. ^ С. М. Ли (1972) Программирование целей для анализа решений, Ауэрбек, Филадельфия
  4. ^ а б JP Ignizio (1976) Целевое программирование и расширения, Lexington Books, Lexington, MA.
  5. ^ JP Ignizio, TM Cavalier (1994) Линейное программирование, Prentice Hall.
  6. ^ а б c C Romero (1991) Справочник по критическим вопросам целевого программирования, Pergamon Press, Oxford.
  7. ^ MJ Scniederjans (1995) Методология программирования целей и приложения, издательство Kluwer, Бостон.
  8. ^ Д. Ф. Джонс, М. Тамиз (2002) Программирование целей в период 1990-2000 гг., Оптимизация по множественным критериям: современные аннотированные библиографические обзоры, М. Эрготт и X. Гандибле (ред.), 129-170. Kluwer
  9. ^ Джонс Д.Ф., Тамиз М. (2010) Программирование практических целей, Springer Books.
  10. ^ РБ Флэйвелл (1976) Новая формулировка программирования целей, Омега, 4, 731-732.
  11. ^ Э.Л. Ханнан (1980) Недоминантность в целевом программировании, ИНФОР, 18, 300-309
  12. ^ М. Тамиз, С. К. Мирразави, Д. Ф. Джонс (1999) Расширения анализа эффективности Парето на целочисленное целевое программирование, Омега, 27, 179-188.
  13. ^ С. И. Гасс (1987) Процесс определения приоритетов и весов для крупномасштабных линейных целевых программ, Журнал Общества операционных исследований, 37, 779-785.
  14. ^ Б. Дж. Уайт (1996) Разработка продуктов и их риторика на основе единой иерархической модели, 1996 г., Материалы ежегодной конференции Общества технической коммуникации, 43, 223-224.