В современном мире, где экономические процессы постоянно усложняются, а конкуренция возрастает, способность принимать оптимальные управленческие решения становится критически важной. Особенно это касается выбора технологий, который может кардинально повлиять на эффективность производства, конкурентоспособность продукции и устойчивость бизнеса в целом. Курсовая работа, посвященная принятию оптимальных решений в задачах выбора технологий с использованием методов математического программирования, приобретает особую актуальность, поскольку она не только демонстрирует глубокое понимание студентом теоретических основ, но и его способность применять их на практике.
Целью данной курсовой работы является разработка комплексной методологии и структурированного плана для эффективного решения задач выбора технологий, опираясь на аппарат математического программирования. Для достижения этой цели ставятся следующие задачи:
- Раскрыть теоретические основы оптимального принятия решений и математического программирования, включая исторический контекст и ключевые понятия.
- Детально рассмотреть методы формализации задач линейного программирования в контексте выбора технологий.
- Проанализировать основные методы решения задач линейного программирования, акцентируя внимание на их применимости и вычислительной сложности.
- Показать практическое применение специализированного программного обеспечения, в частности, Microsoft Excel Solver, для решения оптимизационных задач и интерпретации полученных результатов.
- Обосновать значимость анализа чувствительности и экономической интерпретации двойственных оценок для повышения качества принимаемых решений.
- Представить реальные кейсы применения математических методов для выбора технологий и сформулировать выводы, полезные для студентов.
Структура курсовой работы будет включать последовательное изложение теоретических положений, методического аппарата, практических примеров и аналитических выводов, что позволит сформировать глубокое и всестороннее представление о предмете исследования. Методологической основой работы станут принципы системного анализа, математического моделирования и оптимизации, опирающиеся на работы ведущих отечественных и зарубежных ученых в области исследования операций и математического программирования.
Теоретические основы оптимального принятия решений и математического программирования
Математическое программирование, зародившееся в начале XX века и получившее мощный импульс к развитию в середине столетия, является краеугольным камнем в арсенале инструментов для принятия оптимальных решений. Это дисциплина, которая позволяет находить экстремум (максимум или минимум) функции при наличии определенных ограничений, что делает ее незаменимой для формализации и решения широкого круга экономических и технических задач.
История развития и основные понятия исследования операций и линейного программирования
История исследования операций (ИО) тесно связана с развитием математического программирования. ИО — это не просто набор методов, а системный подход к поиску оптимальных решений в условиях неопределенности и ограниченности ресурсов. Оно возникло в годы Второй мировой войны, когда перед учеными и военными встала задача эффективного распределения ограниченных ресурсов для достижения стратегических целей. Операция в этом контексте определяется как любое мероприятие или система действий, объединенная единым замыслом и направленная на достижение определенной цели. Цель ИО — это применение математических, количественных методов для обоснования решений во всех областях целенаправленной человеческой деятельности.
Центральное место в ИО занимает математическое программирование. Его разновидность — линейное программирование (ЛП) — сфокусировано на задачах, где как целевая функция, так и ограничения выражены линейными зависимостями. Термин «программирование» в этом контексте означает «планирование», что отражает его первоначальное предназначение.
Огромный вклад в становление линейного программирования внесли два выдающихся ученых:
- Леонид Витальевич Канторович. В 1939 году он опубликовал работу «Математические методы организации и планирования производства», где представил основы линейного программирования, показав, как с его помощью можно оптимизировать производственные процессы. За эти работы, значительно опередившие свое время, он был удостоен Нобелевской премии по экономике в 1975 году.
- Джордж Бернард Данциг. В 1947 году Данциг, работая над военными задачами и проблемами планирования в США, сформулировал общую задачу линейного программирования и разработал симплекс-метод, который стал универсальным алгоритмом для ее решения.
Благодаря трудам этих ученых, линейное программирование превратилось в мощный инструмент, способный решать широкий круг задач от планирования производства до логистики и распределения ресурсов.
Формализация критериев оптимальности: целевая функция и ограничения
Суть оптимального решения заключается в выборе наилучшего варианта среди всех допустимых. Для этого необходимо иметь четкое правило предпочтения, которое называется критерием оптимальности. Этот критерий математически формализуется в виде целевой функции.
Целевая функция (или функция цели, показатель эффективности) — это математическое выражение, количественно отражающее цель лица, принимающего решение (ЛПР). Ее значение оптимизируется, то есть максимизируется (например, прибыль, выпуск продукции) или минимизируется (например, затраты, время, риски). Целевая функция зависит от набора управляемых переменных (или переменных решения), которые могут изменяться в процессе поиска оптимального варианта.
Например, если предприятие производит n видов продукции, и прибыль от единицы j-го вида продукции составляет cj, а объем производства j-го вида продукции равен xj, то общая прибыль, которую нужно максимизировать, будет выражена целевой функцией:
F(x) = Σnj=1 cjxj → max
Однако процесс выбора никогда не происходит в условиях абсолютной свободы. Всегда существуют ограничения, которые накладываются на переменные решения. Эти ограничения могут быть связаны с:
- Доступностью ресурсов: количество сырья, машинное время, рабочая сила, финансовые средства.
- Технологическими нормами: требования к качеству, производственные стандарты.
- Рыночными условиями: спрос, производственные мощности, конкуренция.
- Юридическими или экологическими нормами.
Ограничения формируют область допустимых решений — множество всех возможных значений управляемых переменных, которые удовлетворяют всем заданным условиям. Если, например, для производства продукции j требуется aij единиц ресурса i, а общий запас ресурса i составляет bi, то ограничение по ресурсу i примет вид:
Σnj=1 aijxj ≤ bi
Таким образом, задача оптимизации сводится к поиску таких значений xj, которые удовлетворяют всем ограничениям и обеспечивают экстремальное (максимальное или минимальное) значение целевой функции. Кроме того, практически всегда накладывается условие неотрицательности переменных: xj ≥ 0, поскольку объемы производства или распределения не могут быть отрицательными. Это фундаментальное требование, гарантирующее физическую реализуемость решений.
Математические модели в задачах выбора технологий
Математическая модель — это абстрактное, упрощенное представление реального явления или процесса с использованием математических соотношений (формул, уравнений, неравенств). В задачах выбора технологий математические модели играют ключевую роль, позволяя формализовать сложные экономические процессы и найти наиболее эффективные решения.
Выбор технологий — это, по сути, задача распределения ресурсов между различными возможными технологическими вариантами с целью достижения максимальной эффективности или минимизации затрат. Математические модели помогают:
- Систематизировать данные: Собрать и структурировать информацию о доступных технологиях, требуемых ресурсах, их стоимости, потенциальной производительности и ожидаемых результатах.
- Формализовать связи: Описать взаимосвязи между переменными (например, объемом выпуска продукции по каждой технологии) и ресурсами, а также выразить целевые показатели в виде математических функций.
- Оценить альтернативы: Проанализировать множество возможных комбинаций технологий и выбрать ту, которая наилучшим образом соответствует поставленным целям при заданных ограничениях.
Например, при выборе между несколькими видами оборудования для нового производственного цеха, математическая модель может учитывать:
- Переменные решения: Количество единиц каждого типа оборудования, которое будет закуплено.
- Целевая функция: Минимизация общих капитальных и эксплуатационных затрат, или максимизация совокупной производительности.
- Ограничения: Бюджетные лимиты, доступная площадь цеха, требования к квалификации персонала, сроки поставки оборудования, а также технологические ограничения на совместимость различных типов оборудования.
Таким образом, математическая модель становится мощным инструментом для превращения сложной, многофакторной проблемы выбора технологии в четко определенную задачу оптимизации, которую можно решить с помощью соответствующих математических методов.
Постановка задач линейного программирования в контексте выбора оптимальных технологий
Переход от абстрактной экономической проблемы к конкретной математической модели — это один из важнейших этапов в процессе принятия оптимальных решений. Линейное программирование предоставляет мощный аппарат для формализации задач, где и цель, и ограничения могут быть выражены линейными зависимостями.
Общие принципы формализации задач оптимизации ресурсов
Основная задача линейного программирования заключается в поиске наилучшего способа распределения ограниченных ресурсов для достижения некоторой цели. Эта цель, как правило, выражается в максимизации прибыли, выпуска продукции, эффективности использования ресурсов или минимизации издержек, потерь, времени.
Процесс формализации включает следующие шаги:
- Определение переменных решения (управляемых переменных): Это величины, значения которых мы должны найти для достижения оптимума. Они должны быть количественными и однозначно влиять на целевую функцию и ограничения. Например, объемы производства различных видов продукции, количество закупленных единиц оборудования, объемы инвестиций в разные проекты.
- Формулировка целевой функции: Определяется критерий оптимальности (максимизация или минимизация) и выражается в виде линейной функции от переменных решения. Например, если xj — объем производства j-го продукта, а cj — прибыль от его единицы, то целевая функция будет:
F(x) = Σ cjxj → max
- Определение системы ограничений: Все ограничения, накладываемые на ресурсы, технологии, спрос и другие факторы, формулируются в виде линейных уравнений или неравенств. Они отражают доступность ресурсов, производственные мощности, технологические требования и т.д.
Например, если для производства j-го продукта требуется aij единиц i-го ресурса, а общий запас i-го ресурса составляет bi, то ограничение по ресурсу i будет:
Σ aijxj ≤ bi
- Условие неотрицательности переменных: В большинстве экономических задач объемы производства, ресурсы и другие переменные не могут быть отрицательными: xj ≥ 0.
Таким образом, стандартная задача линейного программирования выглядит как:
Найти x1, x2, …, xn, такие что:
F(x) = c1x1 + c2x2 + ... + cnxn → max (или min)
При ограничениях:
a11x1 + a12x2 + ... + a1nxn ≤ b1
a21x1 + a22x2 + ... + a2nxn ≤ b2
…
am1x1 + am2x2 + ... + amnxn ≤ bm
xj ≥ 0, для всех j = 1, …, n
Любая задача ЛП может быть приведена к канонической форме (где все ограничения являются равенствами, а переменные неотрицательны) путем введения дополнительных балансовых переменных (например, переменных избытка или дефицита).
Типовые задачи выбора технологий и их математическая формализация
Линейное программирование находит широкое применение в различных областях для решения задач выбора оптимальных технологий. Рассмотрим несколько типовых примеров:
1. Оптимальное планирование производства.
Предприятие выпускает несколько видов продукции (например, A и B), каждый из которых требует определенного количества сырья, рабочей силы и машинного времени. Цель — максимизировать прибыль.
- Переменные решения: xA — количество продукта A, xB — количество продукта B.
- Целевая функция: Максимизация прибыли. Если прибыль от единицы A составляет PA, от B — PB:
F(x) = PAxA + PBxB → max
- Ограничения:
- По сырью: Если для A требуется SA кг, для B — SB кг, а общий запас сырья Sобщ:
SAxA + SBxB ≤ Sобщ
- По рабочей силе: Если для A требуется LA чел.-часов, для B — LB чел.-часов, а общий фонд рабочего времени Lобщ:
LAxA + LBxB ≤ Lобщ
- По машинному времени: Аналогично.
- Неотрицательность: xA ≥ 0, xB ≥ 0.
- По сырью: Если для A требуется SA кг, для B — SB кг, а общий запас сырья Sобщ:
Пример: Производство хлебобулочных изделий. Хлебозавод выпускает два вида хлеба: «Дарницкий» (x1) и «Пшеничный» (x2). Прибыль от «Дарницкого» — 100 руб/ед., от «Пшеничного» — 120 руб/ед.
Ресурсы: мука, рабочее время, машинное время.
Ресурс | «Дарницкий» (ед.) | «Пшеничный» (ед.) | Доступно ресурса |
---|---|---|---|
Мука (кг/ед.) | 0.5 | 0.4 | 2000 кг |
Рабочее время (ч/ед.) | 0.2 | 0.3 | 800 ч |
Машинное время (ч/ед.) | 0.1 | 0.15 | 400 ч |
Математическая модель:
Целевая функция (максимизация прибыли):
F(x) = 100x1 + 120x2 → max
Ограничения:
0.5x1 + 0.4x2 ≤ 2000
(по муке)
0.2x1 + 0.3x2 ≤ 800
(по рабочему времени)
0.1x1 + 0.15x2 ≤ 400
(по машинному времени)
x1 ≥ 0, x2 ≥ 0
2. Распределение инвестиций.
Компания имеет ограниченный бюджет B и рассматривает несколько инвестиционных проектов (например, P1, P2, P3), каждый из которых имеет свою ожидаемую доходность и требует определенной доли бюджета. Цель — максимизировать общую доходность.
- Переменные решения: x1, x2, x3 — доли бюджета, выделяемые на проекты.
- Целевая функция: Максимизация общей доходности. Если доходность проекта Pj составляет Rj:
F(x) = R1x1 + R2x2 + R3x3 → max
- Ограничения:
- Бюджет: x1 + x2 + x3 ≤ B
- Дополнительные условия: Например, ограничение на максимальную долю инвестиций в один проект: x1 ≤ 0.5B
- Неотрицательность: x1 ≥ 0, x2 ≥ 0, x3 ≥ 0
3. Расчет потребностей в персонале.
Организация планирует распределить задачи между сотрудниками с разной квалификацией и рабочим временем, чтобы максимизировать прибыль от проектов.
- Переменные решения: xij — объем работы i-го типа, выполняемый j-м сотрудником.
- Целевая функция: Максимизация общей прибыли (или минимизация затрат на персонал).
- Ограничения:
- Рабочее время каждого сотрудника: Общее время, потраченное j-м сотрудником на все задачи, не должно превышать его доступного рабочего времени.
- Требования к объему работ: Общий объем работы i-го типа должен быть выполнен.
- Квалификация: Определенные задачи могут быть выполнены только сотрудниками с соответствующей квалификацией.
- Неотрицательность: xij ≥ 0.
Эти примеры показывают, что линейное программирование является универсальным инструментом для формализации и решения широкого круга задач выбора оптимальных технологий, позволяя ЛПР принимать обоснованные решения на основе количественного анализа.
Методы решения задач линейного программирования: от графики до современных алгоритмов
После того как задача линейного программирования сформулирована в математическом виде, следующим ��агом является ее решение, то есть нахождение оптимальных значений переменных и соответствующего значения целевой функции. Существует несколько методов для этого, каждый со своей областью применимости и вычислительной эффективностью.
Графический метод: визуализация решения для двух переменных
Графический метод — это самый наглядный способ решения задач линейного программирования, однако он применим только для задач с двумя переменными решения. В редких случаях его можно использовать для трех переменных, но тогда наглядность сильно снижается из-за необходимости построения трехмерного пространства.
Алгоритм графического метода:
- Построение координатной системы: Для двух переменных x1 и x2 используется двухмерная система координат.
- Построение прямых ограничений: Каждое неравенство-ограничение преобразуется в равенство (уравнение прямой) и строится на графике. Например, для ограничения a1x1 + a2x2 ≤ b сначала строится прямая a1x1 + a2x2 = b.
- Определение полуплоскостей: Каждое неравенство делит плоскость на две полуплоскости. Необходимо определить, какая из них содержит допустимые решения. Обычно для неравенства типа «≤» это полуплоскость, содержащая начало координат (0,0), если оно удовлетворяет неравенству. Для «≥» — противоположная.
- Построение области допустимых решений (ОДР): ОДР представляет собой многоугольник (или неограниченную область), образованный пересечением всех полуплоскостей, удовлетворяющих ограничениям, включая условия неотрицательности (x1 ≥ 0, x2 ≥ 0). Если такая область не существует, задача не имеет допустимых решений.
- Построение линии уровня целевой функции: Целевая функция F(x) = c1x1 + c2x2. Чтобы ее визуализировать, выбирается произвольное значение F0 (например, 0) и строится прямая c1x1 + c2x2 = F0. Это «линия уровня» или «изолиния» целевой функции.
- Определение вектора градиента: Вектор N = (c1, c2) указывает направление быстрейшего возрастания целевой функции (для максимизации) или быстрейшего убывания (для минимизации). Этот вектор перпендикулярен линии уровня.
- Поиск оптимального решения: Линия уровня целевой функции перемещается параллельно самой себе в направлении вектора градиента (для максимизации) или против него (для минимизации) до тех пор, пока она не достигнет самой крайней точки ОДР. Эта точка будет оптимальным решением.
Виды решений:
- Единственное решение: Достигается в одной вершине многоугольника решений.
- Бесконечно много решений: Если линия уровня совпадает с одним из ребер ОДР в точке оптимума.
- Отсутствие оптимального плана: Если ОДР пуста (нет допустимых решений) или если целевая функция может неограниченно возрастать (убывать) в пределах ОДР (неограниченная задача).
Преимущества: Наглядность, позволяет легко понять логику оптимизации, а также одновременно найти решения для максимума и минимума.
Недостатки: Строго ограничен двумя переменными, что делает его неприменимым для большинства реальных задач.
Метод перебора вершин: концепция и причины неэффективности
Метод перебора вершин основывается на фундаментальной теореме линейного программирования: если целевая функция имеет максимум (или минимум) в задаче ЛП, то он достигается в одной из крайних точек (вершин) области допустимых решений.
Концепция метода:
Алгоритм сводится к следующему:
- Определение всех вершин ОДР: Каждая вершина многогранника (или многоугольника для двух переменных) допустимых решений представляет собой точку пересечения n ограничений (где n — число переменных), которые рассматриваются как равенства. Для получения координат вершины из системы ограничений выбирается количество ограничений, равное числу переменных, они записываются как равенства и решается соответствующая система линейных уравнений.
- Проверка допустимости: Для каждой найденной точки пересечения необходимо проверить, удовлетворяет ли она всем остальным ограничениям. Только те точки, которые удовлетворяют всем ограничениям и условиям неотрицательности, являются вершинами ОДР.
- Вычисление значения целевой функции: Для каждой допустимой вершины рассчитывается значение целевой функции.
- Выбор оптимального решения: Среди всех рассчитанных значений выбирается то, которое соответствует экстремуму (максимуму или минимуму) целевой функции.
Причины неэффективности:
Метод перебора вершин, хоть и прост в концепции, крайне неэффективен для задач с большим числом переменных и ограничений. Эта неэффективность обусловлена его комбинаторной природой.
Если у нас есть N переменных и M ограничений, то количество возможных комбинаций N ограничений из M (для нахождения потенциальных вершин) равно числу сочетаний из M по N:
CNM = M! / (N!(M-N)!)
Эта величина может быть астрономически большой. Например, для задачи с 10 переменными и 20 ограничениями число сочетаний составит:
C1020 = 20! / (10!(20-10)!) = 184 756
Для каждой из этих потенциальных вершин необходимо решить систему уравнений и проверить допустимость. При увеличении числа переменных и ограничений количество возможных вершин растет экспоненциально, что делает этот метод практически неприменимым для задач с числом переменных более десяти, не говоря уже о сотнях или тысячах, которые встречаются в реальной практике. Таким образом, несмотря на его теоретическую значимость, метод перебора вершин является слишком трудоемким и ресурсозатратным для решения большинства практических задач оптимизации.
Симплекс-метод: универсальный алгоритм для многомерных задач
Симплекс-метод — это наиболее известный и широко используемый алгоритм для решения задач линейного программирования любой размерности. Он был разработан Джорджем Бернардом Данцигом в 1947 году и представляет собой итерационный процесс последовательного перехода от одного базисного допустимого решения (вершины многогранника решений) к другому, при этом каждый новый базис улучшает (или по крайней мере не ухудшает) значение целевой функции, пока не будет достигнут оптимум.
Алгоритм симплекс-метода:
- Приведение задачи к каноническому виду: Все ограничения-неравенства преобразуются в равенства путем введения неотрицательных балансовых переменных. Например, a1x1 + a2x2 ≤ b становится a1x1 + a2x2 + x3 = b, где x3 ≥ 0 — переменная избытка (slack variable). Если ограничение «≥», то вводится переменная дефицита (surplus variable) со знаком минус и, возможно, искусственная переменная для поиска начального базисного решения. Целевая функция при этом может быть также преобразована.
- Построение начального опорного плана (базисного допустимого решения): Это набор значений переменных, удовлетворяющих всем ограничениям и условиям неотрицательности, а также являющийся вершиной многогранника решений. Часто балансовые переменные формируют начальный базис.
- Проверка плана на оптимальность: Используя специальный критерий (например, для задачи максимизации — все оценки свободных переменных в индексной строке должны быть неотрицательны), определяется, является ли текущий опорный план оптимальным. Если да, процесс завершается.
- Определение ведущих столбца и строки: Если план не оптимален, выбирается переменная, которую следует ввести в базис (ведущий столбец) — обычно это переменная с наибольшей отрицательной оценкой для максимизации. Затем определяется переменная, которую следует вывести из базиса (ведущая строка), используя правило минимального отношения (тета-правило), чтобы сохранить допустимость нового плана.
- Построение нового опорного плана: С помощью элементарных преобразований симплекс-таблицы (метод Жордана-Гаусса) обновляются значения переменных базиса и оценок, переходя к новой вершине многогранника решений.
- Повторение: Шаги 3-5 повторяются до достижения оптимального решения.
Модификации симплекс-метода:
- Двухфазный симплекс-метод: Используется, когда невозможно сразу найти начальный базисный допустимый план. В первой фазе минимизируется сумма искусственных переменных, чтобы найти допустимый базис, а во второй фазе решается исходная задача.
- Модифицированный симплекс-метод: Повышает вычислительную эффективность за счет хранения и обновления только обратной матрицы базиса.
- Двойственный симплекс-метод: Применяется, когда начальный базис является оптимальным, но не допустимым (например, при добавлении новых ограничений). Он работает с двойственными переменными и двойственными ценами.
Вычислительная сложность:
Несмотря на свою практическую эффективность и способность решать задачи с тысячами переменных и ограничений, симплекс-метод имеет экспоненциальную вычислительную сложность в худшем случае. Это означает, что для некоторых специально сконструированных задач время вычислений может экспоненциально расти с увеличением размерности задачи (например, для «кубов Клее-Минти»). Однако на практике такие «худшие» случаи встречаются крайне редко, и симплекс-метод обычно работает значительно быстрее, показывая полиномиальное поведение для большинства реальных задач.
Современные методы внутренней точки: альтернатива для крупномасштабных задач
Симплекс-метод, несмотря на свою универсальность, не всегда является наиболее эффективным для задач очень большой размерности. В 1984 году Нарендра Кармаркар предложил новый класс алгоритмов — методы внутренней точки, которые стали мощной альтернативой симплекс-методу, особенно для крупномасштабных задач.
Ключевое отличие от симплекс-метода:
Симплекс-метод «скользит» по ребрам многогранника допустимых решений, переходя от одной вершины к другой. Методы внутренней точки, как следует из их названия, движутся по внутренней части области допустимых решений, приближаясь к оптимуму по специальной траектории, проходящей через ее «центр».
Принцип работы:
Методы внутренней точки используют барьерные функции, которые добавляются к целевой функции. Эти функции штрафуют решения, приближающиеся к границам допустимой области, тем самым «отталкивая» алгоритм от границ и направляя его к оптимальному решению через внутреннюю часть многогранника. По мере того как параметр барьерной функции стремится к нулю, решение приближается к истинному оптимуму.
Преимущества методов внутренней точки:
- Полиномиальная вычислительная сложность: В отличие от симплекс-метода, методы внутренней точки гарантируют полиномиальное время выполнения в худшем случае, что делает их более предсказуемыми и, зачастую, более быстрыми для очень больших задач.
- Высокая эффективность для крупномасштабных задач: На практике методы внутренней точки демонстрируют отличную производительность для задач с десятками и сотнями тысяч переменных и ограничений, превосходя симплекс-метод.
- Отсутствие проблемы вырождения: Методы внутренней точки менее чувствительны к вырождению, которое может замедлять симплекс-метод.
Одним из наиболее известных и практически важных методов внутренней точки является алгоритм Кармаркара. Его появление ознаменовало прорыв в области оптимизации, показав, что существуют полиномиальные алгоритмы для линейного программирования.
Например, в таких областях, как планирование логистических сетей для крупных компаний, управление производством с сотнями продуктов и ресурсов, или оптимизация электроэнергетических систем, где размерность задач исчисляется миллионами переменных, методы внутренней точки становятся предпочтительным выбором, в то время как симплекс-метод может оказаться слишком медленным или вовсе не справиться с поставленной задачей.
Таким образом, выбор метода решения зависит от размерности задачи, ее специфики и доступных вычислительных ресурсов. Для небольших задач графический метод обеспечивает наглядность, для средних симплекс-метод остается универсальным инструментом, а для крупномасштабных систем оптимальным выбором часто становятся методы внутренней точки.
Практическое применение: Решение задач выбора технологий с помощью Excel Solver
В современном мире нет необходимости вручную выполнять итерации симплекс-метода или сложные построения графического метода. Специализированное программное обеспечение значительно упрощает процесс решения задач линейного программирования, делая его доступным даже для тех, кто не является профессиональным математиком. Одним из наиболее распространенных и удобных инструментов является надстройка «Поиск решения» (Solver) в Microsoft Excel.
Функционал и настройка «Поиска решения» в Microsoft Excel
«Поиск решения» — это мощный инструмент оптимизационного моделирования, встроенный в Microsoft Excel, который позволяет находить оптимальное (максимальное или минимальное) значение для целевой ячейки (формулы) путем изменения значений в других ячейках (переменных решения) при соблюдении заданных ограничений.
Активация надстройки:
Начиная с Excel 2007, «Поиск решения» не активирован по умолчанию. Для его включения необходимо:
- Перейти во вкладку «Файл» (File).
- Выбрать «Параметры» (Options).
- В открывшемся окне «Параметры Excel» выбрать «Надстройки» (Add-Ins).
- В нижней части окна, в поле «Управление» (Manage), выбрать «Надстройки Excel» (Excel Add-ins) и нажать «Перейти…» (Go…).
- В списке доступных надстроек установить флажок напротив «Поиск решения» (Solver Add-in) и нажать «ОК».
После активации кнопка «Поиск решения» появится на вкладке «Данные» (Data) в группе «Анализ» (Analyze).
Ввод условий задачи в табличной форме:
Для решения задачи в Excel необходимо тщательно структурировать данные:
- Ячейки переменных решения: Выделить диапазон ячеек, которые будут содержать значения переменных (например,
B4:C4
). Эти ячейки должны быть пустыми или содержать начальные предположения. - Ячейка целевой функции: Создать ячейку, содержащую формулу целевой функции, ссылающуюся на ячейки переменных решения. Например, если прибыль от продукта A в ячейке
B1
, от продукта B вC1
, а объемы производства вB4
иC4
соответственно, то целевая функция (общая прибыль) в ячейкеD1
будет=B1*B4+C1*C4
. - Ячейки ограничений: Для каждого ограничения создать формулу, которая рассчитывает левую часть ограничения, ссылаясь на ячейки переменных решения. Затем в соседней ячейке указать правую часть ограничения.
Например, для ограничения по муке0.5x1 + 0.4x2 <= 2000
:- В ячейке
E1
ввести=0.5*B4+0.4*C4
(левая часть). - В ячейке
F1
ввести2000
(правая часть). - В ячейке
G1
ввести знак<=
.
- В ячейке
Задание параметров в окне "Поиск решения":
После ввода данных на листе Excel, необходимо открыть окно "Поиск решения" (Solver) и заполнить следующие поля:
- Установить целевую ячейку (Set Objective): Указать ссылку на ячейку, содержащую целевую функцию (например,
$D$1
). - К (To): Выбрать "Максимум" (Max), "Минимум" (Min) или "Значению" (Value Of) для достижения конкретного значения.
- Изменяя ячейки переменных (By Changing Variable Cells): Указать диапазон ячеек, содержащих переменные решения (например,
$B$4:$C$4
). - В соответствии с ограничениями (Subject to the Constraints): Добавить каждое ограничение, указывая ссылку на ячейку с левой частью, знак ограничения (<=, =, >=) и ссылку на ячейку с правой частью или прямое значение. Обязательно добавить ограничение "Сделать переменные без ограничений неотрицательными" (Make Unconstrained Variables Non-Negative).
- Выбрать метод решения (Select a Solving Method): Для задач линейного программирования всегда выбирается "Симплекс-метод LP" (Simplex LP), так как он является наиболее эффективным для этого класса задач.
После заполнения всех параметров можно нажать кнопку "Найти решение" (Solve).
Пошаговое решение типовых задач и интерпретация основных результатов
Рассмотрим пример с хлебозаводом из раздела 2.2:
Целевая функция: F(x) = 100x1 + 120x2 → max
Ограничения:
0.5x1 + 0.4x2 ≤ 2000
0.2x1 + 0.3x2 ≤ 800
0.1x1 + 0.15x2 ≤ 400
x1 ≥ 0, x2 ≥ 0
Этапы в Excel:
- Подготовка таблицы:
Ячейка Значение/Формула Описание B1 100 Прибыль от x1 C1 120 Прибыль от x2 B4 (пусто) x1 (Переменная) C4 (пусто) x2 (Переменная) D1 =B1*B4+C1*C4
Целевая функция (Прибыль) E7 =0.5*B4+0.4*C4
Левая часть 1-го ограничения F7 2000 Правая часть 1-го ограничения G7 <= Знак 1-го ограничения E8 =0.2*B4+0.3*C4
Левая часть 2-го ограничения F8 800 Правая часть 2-го ограничения G8 <= Знак 2-го ограничения E9 =0.1*B4+0.15*C4
Левая часть 3-го ограничения F9 400 Правая часть 3-го ограничения G9 <= Знак 3-го ограничения - Запуск "Поиска решения":
- Целевая ячейка:
$D$1
- К: Максимум
- Изменяя ячейки переменных:
$B$4:$C$4
- Ограничения:
$E$7 <= $F$7
$E$8 <= $F$8
$E$9 <= $F$9
- Сделать переменные без ограничений неотрицательными: Отметить флажок.
- Выбрать метод решения: Симплекс-метод LP.
- Целевая ячейка:
- Интерпретация результатов:
После нажатия "Найти решение", Excel найдет оптимальные значения x1 и x2, которые будут записаны в ячейкиB4
иC4
, а максимальная прибыль — вD1
.
Например, если Excel выдаст: x1 = 2000, x2 = 0, то это означает, что для максимизации прибыли необходимо производить 2000 единиц "Дарницкого" хлеба и ни одной единицы "Пшеничного". Максимальная прибыль составит100 * 2000 + 120 * 0 = 200 000
рублей.
Важно отметить, что Excel также предложит создать отчеты: Отчет по результатам, Отчет по устойчивости и Отчет по пределам. Эти отчеты являются ключевыми для глубокого анализа решения.
Глубокий анализ отчетов "Поиска решения": Устойчивость и пределы
Просто получение оптимальных значений недостаточно для полноценного анализа. Отчеты "Поиска решения" предоставляют ценную информацию, которая помогает ЛПР принимать более обоснованные и устойчивые решения.
1. Отчет по результатам (Answer Report):
Этот отчет суммирует основную информацию:
- Целевая ячейка: Конечное значение целевой функции.
- Ячейки переменных: Оптимальные значения переменных решения.
- Ограничения: Для каждого ограничения указывается его статус ("связывающее" или "несвязывающее") и "запас" (slack) — разница между правой и левой частями ограничения. Связывающее ограничение (slack = 0) означает, что ресурс полностью исчерпан и его изменение повлияет на оптимальное решение. Несвязывающее ограничение (slack > 0) означает, что ресурс не использован полностью.
2. Отчет по устойчивости (Sensitivity Report):
Это один из наиболее важных отчетов для анализа. Он показывает, насколько устойчиво найденное оптимальное решение к изменениям во входных данных модели. Отчет по устойчивости предоставляет информацию об интервалах, в которых могут изменяться:
- Коэффициенты целевой функции (например, прибыль от единицы продукции) без изменения оптимального базисного решения (т.е. без изменения набора переменных, входящих в оптимальный план). Для каждой переменной он показывает "допустимое увеличение" и "допустимое уменьшение" коэффициента.
Например, если для x1 допустимое увеличение коэффициента прибыли составляет 10 руб., это означает, что если прибыль от x1 увеличится на 10 руб. (или меньше), то оптимальный набор продуктов для производства не изменится, изменится лишь общее значение прибыли. - Правые части ограничений (например, запасы ресурсов) без изменения оптимального базиса. Для каждого ограничения также указывается "допустимое увеличение" и "допустимое уменьшение".
Например, если для ограничения по муке допустимое увеличение составляет 500 кг, это означает, что мы можем увеличить запас муки на 500 кг, и при этом оптимальный набор производимых продуктов не изменится.
Отчет по устойчивости также содержит значения двойственных цен (Shadow Price), о которых будет подробно рассказано в следующем разделе. Эти цены указывают на экономическую ценность дополнительной единицы ресурса.
3. Отчет по пределам (Limits Report):
Этот отчет показывает верхние и нижние границы, которые могут принимать значения каждой изменяемой ячейки (переменной решения) при сохранении оптимального значения целевой функции и соблюдении всех установленных ограничений. Он полезен для понимания гибкости решения:
- Для каждой переменной решения указывается ее текущее оптимальное значение.
- Показываются "нижний предел" и "верхний предел" для каждой переменной, а также значение целевой функции при достижении этих пределов. Это позволяет увидеть, как сильно может измениться объем производства одного продукта, если мы хотим сохранить ту же максимальную прибыль, и какие другие переменные при этом корректируются.
Использование этих отчетов позволяет не только найти оптимальное решение, но и глубоко проанализировать его, оценить риски, связанные с неопределенностью входных данных, и принять более взвешенные управленческие решения в задачах выбора технологий. Это критически важно для студента, пишущего курсовую работу, так как демонстрирует способность к комплексному анализу, выходящему за рамки простого нахождения чисел.
Анализ чувствительности и экономическая интерпретация двойственных оценок (теневых цен)
После нахождения оптимального решения методом линейного программирования важно не останавливаться на достигнутом, а углубиться в анализ его устойчивости и экономической значимости. Это достигается через анализ чувствительности и интерпретацию двойственных оценок, что позволяет ЛПР принимать более обоснованные и гибкие решения.
Концепция анализа чувствительности: оценка устойчивости оптимального решения
Анализ чувствительности (или анализ устойчивости) — это ключевой компонент исследования операций, который позволяет оценить, как изменение исходных параметров модели (коэффициентов целевой функции, правых частей ограничений) повлияет на оптимальное решение и оптимальное значение целевой функции. Это особенно важно, поскольку исходные данные в реальных задачах часто являются приближенными или подвержены изменениям.
Почему анализ чувствительности важен?
- Оценка надежности решения: Если небольшие изменения в исходных данных приводят к кардинальному изменению оптимального решения, это указывает на его неустойчивость и требует более тщательной проверки исходных данных или рассмотрения альтернативных сценариев.
- Выявление критических параметров: Анализ чувствительности помогает определить, какие параметры модели являются наиболее влиятельными. Управление ими требует особого внимания.
- Поддержка принятия решений в условиях неопределенности: В условиях, когда точность некоторых параметров неизвестна или они могут меняться (например, цены на сырье, спрос на продукцию), анализ чувствительности позволяет определить "допустимые коридоры" для этих изменений, в пределах которых оптимальное решение остается прежним.
- Планирование и прогнозирование: Результаты анализа чувствительности могут быть использованы для разработки стратегий, учитывающих возможные изменения внешней среды.
Анализ чувствительности показывает, в каких пределах могут меняться коэффициенты целевой функции или значения правых частей ограничений, не влияя на оптимальный базис (т.е. на набор базисных переменных). Это позволяет оценить устойчивость найденного решения к изменениям внешних условий. Например, если отчет по устойчивости показывает, что коэффициент прибыли для продукта A может измениться на ±15% без изменения оптимального производственного плана, это дает уверенность в стабильности выбранной стратегии даже при небольших колебаниях рыночных цен.
Двойственные переменные и теневые цены: экономический смысл и практическое применение
Одним из наиболее глубоких и экономически значимых результатов анализа чувствительности являются двойственные переменные, которые также известны как теневые цены (Shadow Price) ресурсов. Каждому ограничению прямой задачи линейного программирования соответствует своя двойственная переменная.
Экономический смысл теневых цен:
Теневая цена ресурса показывает, на сколько единиц (например, рублей) изменится оптимальное значение целевой функции прямой задачи при увеличении соответствующего ресурса на одну единицу, при условии, что остальные параметры модели остаются неизменными и это изменение не выводит нас за пределы допустимых интервалов, указанных в отчете по устойчивости.
Если теневая цена ресурса положительна и значительна, это означает, что данный ресурс является "узким местом" (связывающим ограничением) и его дополнительная единица принесет существенное улучшение целевой функции (например, увеличение прибыли или снижение затрат). Это сигнал для ЛПР о целесообразности инвестиций в увеличение этого ресурса.
Если теневая цена ресурса равна нулю, это означает, что ресурс не является "узким местом" (является несвязывающим ограничением), и его дополнительная единица не приведет к улучшению целевой функции, поскольку он уже имеется в избытке.
Если теневая цена отрицательна (что возможно в задачах минимизации), это означает, что уменьшение ресурса на единицу приведет к увеличению целевой функции (например, к увеличению затрат).
Практическое применение теневых цен:
- Принятие решений об инвестициях: Теневые цены помогают определить, в какие ресурсы целесообразно инвестировать, чтобы максимально увеличить прибыль или снизить издержки. Если теневая цена машинного времени составляет 50 руб./час, а стоимость дополнительного часа машинного времени (например, за счет сверхурочной работы) — 30 руб., то покупка дополнительного часа машинного времени экономически выгодна.
- Ценообразование: Теневые цены могут служить основой для внутреннего ценообразования на ресурсы.
- Оценка эффективности использования ресурсов: Они позволяют понять, насколько эффективно используются имеющиеся ресурсы и где существуют резервы для улучшения.
- Перераспределение ресурсов: При ограниченности бюджета теневые цены могут указать на приоритетные направления для перераспределения ресурсов.
Например, в задаче о производстве хлеба: если теневая цена муки составляет 200 руб./кг, а закупочная цена муки — 50 руб./кг, это означает, что каждый дополнительный килограмм муки может принести 200 руб. дополнительной прибыли, что значительно превышает его стоимость. Это указывает на высокую ценность муки как ограничивающего ресурса и целесообразность поиска дополнительных поставщиков или увеличения закупок. Таким образом, теневые цены являются неотъемлемым инструментом для выявления скрытых возможностей и принятия стратегически важных решений.
Ограничения и допущения моделей линейного программирования в реальных условиях
Несмотря на свою мощь и универсальность, модели линейного программирования не лишены ограничений и строятся на определенных допущениях, которые необходимо учитывать при их применении к реальным задачам выбора технологий.
Основные допущения:
- Линейность: Предполагается, что все зависимости между переменными решениями, целевой функцией и ограничениями являются линейными. Это означает, что:
- Прибыль (затраты) от каждой единицы продукции постоянна и не зависит от объема производства.
- Потребление ресурсов на единицу продукции также постоянно.
- Отсутствуют эффекты масштаба (снижение затрат на единицу при увеличении объема производства) или синергии.
В реальном мире эти зависимости часто нелинейны. Например, оптовые скидки на сырье или увеличение производительности при росте опыта.
- Делимость: Предполагается, что переменные решения могут принимать любые дробные значения (например, 2.5 автомобиля, 0.75 рабочего часа). Это допущение часто неприемлемо, когда речь идет о целых единицах (количество станков, число сотрудников, завершенных проектов). В таких случаях необходимо использовать целочисленное программирование, которое является более сложным разделом математического программирования.
- Определенность: Все параметры модели (коэффициенты целевой функции, коэффициенты ограничений, правые части ограничений) известны с абсолютной точностью и не меняются в течение периода планирования. В реальности же многие параметры стохастичны (подвержены случайным колебаниям) или неопределенны. Для учета этого используются методы стохастического программирования или программирования в условиях неопределенности.
- Независимость цен от объемов: Предполагается, что цены на продукцию и ресурсы не зависят от объемов производства или закупок. В действительности, крупные объемы производства могут влиять на рыночные цены.
Влияние допущений на достоверность решения:
Нарушение этих допущений может привести к тому, что оптимальное решение, полученное с помощью ЛП, будет неоптимальным или даже нереализуемым в реальной практике.
Однако многие задачи, которые в первоначальной формулировке не являются линейными, после ряда дополнительных ограничений и допущений могут быть успешно аппроксимированы линейными моделями. Задача ЛПР заключается в том, чтобы понимать эти ограничения и использовать модели ЛП там, где они применимы, или применять более сложные методы (например, нелинейное, целочисленное или динамическое программирование) при необходимости.
Таким образом, глубокое понимание анализа чувствительности и экономической интерпретации двойственных переменных, а также осознание ограничений моделей ЛП, является неотъемлемой частью компетенции аналитика и позволяет создавать по-настоящему ценные и применимые курсовые работы.
Примеры практического применения и выводы для курсовой работы
Математическое программирование, в частности линейное, является не просто теоретической дисциплиной, но и мощным практическим инструментом, позволяющим решать сложнейшие задачи оптимизации в самых разных сферах человеческой деятельности.
Реальные кейсы применения методов оптимизации в различных отраслях
Применение методов оптимизации охватывает широкий спектр отраслей, демонстрируя их универсальность и высокую экономическую эффективность:
1. Производство и Промышленность:
- Оптимальное планирование производства: Заводы по производству химикатов, металлоконструкций, потребительских товаров используют ЛП для определения объемов выпуска каждого продукта, минимизируя затраты на сырье и рабочую силу при максимизации прибыли. Например, на хлебозаводе ЛП помогает формировать оптимальный план выпуска хлебобулочных изделий, максимизируя прибыль с учетом ограничений по муке, дрожжам, энергии и труду.
- Задача о раскрое материалов: Оптимизация раскроя листов металла, тканей, стекла или древесины для минимизации отходов. Это классическая задача ЛП, где переменные — это количество каждого типа шаблона раскроя.
- Выбор оптимального машинного парка: Определение количества и типов машин, необходимых для выполнения определенного объема работ, с учетом их производительности, стоимости и эксплуатационных расходов, чтобы минимизировать общие затраты или максимизировать пропускную способность.
2. Логистика и Транспорт:
- Транспортная задача: Определение оптимальных маршрутов и объемов перевозок грузов от поставщиков к потребителям с целью минимизации общих транспортных расходов. Это основа всей современной логистики.
- Планирование маршрутов доставки: Компании-перевозчики используют оптимизационные модели для построения наиболее эффективных маршрутов для своих автопарков, учитывая временные окна доставки, объемы грузов и ограничения на вместимость.
3. Финансы и Инвестиции:
- Оптимизация инвестиционного портфеля: Распределение инвестиций между различными активами с целью максимизации доходности при заданном уровне риска или минимизации риска при заданной доходности.
- Бюджетирование капитала: Распределение ограниченного бюджета между различными проектами для максимизации совокупной чистой приведенной стоимости.
4. Управление Персоналом:
- Расчет потребностей в персонале: Оптимальное распределение сотрудников по сменам или проектам для обеспечения необходимого уровня обслуживания при минимизации затрат на оплату труда.
- Задача о назначениях: Эффективное распределение сотрудников на различные должности или задачи с учетом их квалификации и предпочтений.
5. Энергетика:
- Оптимизация производства электроэнергии: Определение оптимального режима работы электростанций для удовлетворения спроса с минимальными затратами, учитывая стоимость топлива, выбросы и ограничения мощности.
Эти примеры ярко демонстрируют, что математическое программирование не просто теоретическая концепция, а мощный инструмент, позволяющий решать сложные проблемы и принимать обоснованные решения в самых разных сферах, обеспечивая значительную экономическую выгоду.
Заключение и рекомендации по оформлению курсовой работы
Курсовая работа по оптимальному принятию решений в задачах выбора технологий с использованием методов математического программирования — это не только проверка знаний, но и возможность продемонстрировать глубокое понимание предмета и навыки аналитической работы. В ходе данного исследования мы проанализировали фундаментальные концепции, исторические предпосылки и методологический аппарат линейного программирования, а также его практическое применение с использованием современных программных средств.
Основные выводы:
- Теоретическая база: Математическое программирование, заложенное Канторо��ичем и Данцигом, является краеугольным камнем для поиска оптимальных решений, где целевая функция и ограничения линейны. Понимание ключевых терминов (операция, оптимальное решение, целевая функция, ограничения) критически важно.
- Формализация задач: Способность переводить реальные экономические проблемы (например, оптимальное планирование производства, распределение инвестиций) в строго формализованные математические модели линейного программирования — это ключевой навык, позволяющий применять методы оптимизации.
- Методы решения: От наглядного, но ограниченного графического метода, до универсального симплекс-метода и современных, полиномиально сложных методов внутренней точки для крупномасштабных задач — каждый метод имеет свою область применимости и особенности вычислительной эффективности. Особое внимание следует уделять пониманию причин неэффективности переборных методов и преимуществ методов внутренней точки.
- Практические инструменты: Excel Solver является мощным и доступным инструментом для решения оптимизационных задач, но его ценность значительно возрастает при глубокой интерпретации отчетов по устойчивости и пределам, включая экономический смысл теневых цен.
- Анализ решений: Недостаточно просто найти оптимальные числа. Критически важен анализ чувствительности, который позволяет оценить устойчивость решения к изменениям внешних факторов и понять экономическую интерпретацию двойственных переменных (теневых цен), что дает ЛПР ценную информацию для принятия стратегических решений.
- Ограничения и допущения: Важно осознавать, что модели ЛП строятся на допущениях (линейность, делимость, определенность), и понимание их влияния на достоверность решения является признаком высокого уровня аналитической работы.
Рекомендации по оформлению курсовой работы:
Для того чтобы курсовая работа была комплексной, глубоко проработанной и соответствовала академическим стандартам, рекомендуется придерживаться следующей структуры и подходов:
- Введение: Четко сформулировать актуальность темы (с конкретными примерами из реальной жизни), цель, задачи, объект и предмет исследования, методологическую базу и структуру работы.
- Теоретический раздел:
- Представить исторический обзор и вклад ключевых ученых.
- Дать исчерпывающие определения всех основных понятий.
- Продемонстрировать общее математическое описание задачи ЛП.
- Использовать авторитетные источники (монографии, научные статьи).
- Методический раздел (Постановка задач):
- Выбрать один-два типовых примера задачи выбора технологий (например, оптимизация производственной программы или распределение инвестиций).
- Подробно расписать процесс формализации: определение переменных, целевой функции, всех ограничений (с пояснениями).
- Привести конкретные числовые данные для примера.
- Аналитический раздел (Методы решения):
- Последовательно рассмотреть графический метод (для двух переменных), симплекс-метод.
- Ключевое: Обязательно провести сравнение методов, уделив особое внимание вычислительной сложности (экспоненциальный рост для перебора и худшего случая симплекс-метода против полиномиальной сложности методов внутренней точки).
- Включить описание современных методов внутренней точки как альтернативы для крупномасштабных задач.
- Практический раздел (Excel Solver):
- Пошагово описать процесс решения выбранной задачи в Excel с использованием надстройки "Поиск решения".
- Привести скриншоты или подробные таблицы с настройками Solver.
- Особое внимание уделить детальной интерпретации "Отчета по устойчивости" и "Отчета по пределам", объясняя экономический смысл теневых цен и допустимых интервалов изменений.
- Дискуссионный/Критический раздел:
- Обсудить ограничения и допущения моделей линейного программирования в контексте выбранной задачи.
- Предложить возможные пути для дальнейшего исследования (например, переход к целочисленному или нелинейному программированию, учет неопределенности).
- Заключение: Сформулировать краткие и емкие выводы по каждому разделу работы, обобщить полученные результаты и подчеркнуть их практическую значимость.
- Список литературы: Оформить согласно ГОСТу, используя только авторитетные источники (научные монографии, статьи из рецензируемых журналов, учебники ведущих вузов).
- Приложения: Включить все вспомогательные материалы: таблицы исходных данных, полные отчеты Excel Solver, подробные расчеты (если приводились вручную), графики.
Следуя этим рекомендациям, вы сможете создать не просто курсовую работу, а глубокое, аналитически строгое исследование, демонстрирующее как теоретические знания, так и практические навыки в области оптимального принятия решений и математического программирования.
Список использованной литературы
- Бодров В.И., Лазарева Т.Я., Мартемьянов Ю.Ф. Математические методы принятия решений: Учеб. пособие. Тамбов: Изд-во Тамб. гос. тех. ун-та, 2004. 124 с.
- Линейная и нелинейная оптимизация (в задачах инженерно-строительного профиля): Учебное пособие / В. А. Фролькис; СПб гос. архит.-строит. ун-т. – СПб., 2001. – 306 с.
- Гераськин М.И., Клентак Л.С. Линейное программирование. Выполнение расчетов в табличном процессоре Excel: учеб. пособие. Самара: Изд-во Самар. гос. аэрокосм. ун-та, 2012. 148 с.
- ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ. Высшая школа экономики. URL: https://www.hse.ru/data/2013/10/31/1283623910/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B5%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5.pdf (дата обращения: 13.10.2025).
- Переборный метод решения задачи линейного программирования. Новосибирский государственный университет. URL: https://www.nsu.ru/education/teaching/lectures/perebornyj-metod-resheniya-zadachi-linejnogo-programmirovaniya/ (дата обращения: 13.10.2025).
- Графический метод решения задачи линейного программирования. Политехнический Колледж № 50. URL: https://politeh50.mskobr.ru/attach_files/upload_users/1/81/2569566270381_1660140411739.pdf (дата обращения: 13.10.2025).
- Исследование операций. Факультет компьютерных наук, Высшая школа экономики. URL: https://www.hse.ru/our/departments/se/courses/59232328/ (дата обращения: 13.10.2025).
- Основные понятия и определения исследования операций. Уфимский государственный авиационный технический университет. URL: https://avia.ugatu.su/index.php/component/attachments/download/363 (дата обращения: 13.10.2025).
- Методы оптимальных решений. Казанский федеральный университет. URL: https://kpfu.ru/docs/F615632426/metody_optimalnyh_reshenij_lekcii_s_primerami.pdf (дата обращения: 13.10.2025).
- Методы оптимальных решений. Краткий конспект лекций Тема 1. Линейное п. Воронежский государственный архитектурно-строительный университет. URL: https://edu.vgasu.ru/upload/iblock/c38/kratkij-konspekt-lekcij-tema-1-linejnoe-p.pdf (дата обращения: 13.10.2025).
- Высшая математика (4 часть – математическое программирование). Московский государственный университет имени М.В.Ломоносова. URL: https://www.econ.msu.ru/ext/download/12306/ (дата обращения: 13.10.2025).
- Математическое программирование Каждый человек ежедневно, не всегд. Красноярский государственный педагогический университет им. В.П. Астафьева. URL: http://www.krasnoyarsk.ru/inf/education/uchebniki/ekonomika_optimizatsiya_upravl_resheniy.pdf (дата обращения: 13.10.2025).
- ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ В ЭКОНОМИКЕ. КиберЛенинка. URL: https://cyberleninka.ru/article/n/lineynoe-programmirovanie-v-ekonomike (дата обращения: 13.10.2025).
- Линейное программирование в MS Excel. Российский экономический университет имени Г.В. Плеханова. URL: https://www.rea.ru/ru/org/managements/umo/Documents/%D0%A3%D0%9C%D0%9A%20%D0%92%D0%9C%20(%D1%87%D0%B0%D1%81%D1%82%D1%8C%202).pdf (дата обращения: 13.10.2025).
- РЕШЕНИЕ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В MICROSOFT EXCEL. Курганский государственный университет. URL: https://dspace.kgu.edu.ru/xmlui/bitstream/handle/123456789/2202/%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5%20%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8%20%D0%B2%20%D1%8D%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BA%D0%B5.pdf?sequence=1&isAllowed=y (дата обращения: 13.10.2025).
- Духанов А.В. РЕШЕНИЕ ЗАДАЧ ОПТИМИЗАЦИИ С ПОМОЩЬЮ MICROSOFT EXCEL. Университет ИТМО. URL: https://dl.itmo.ru/pluginfile.php/310373/mod_resource/content/1/Dukhanov_Reshenie_zadach_optimizacii_s_pomoshchyu_MS_Excel.pdf (дата обращения: 13.10.2025).
- Постановка и решение задачи с помощью надстройки "Поиск решения". Служба поддержки Майкрософт. URL: https://support.microsoft.com/ru-ru/office/%D0%BF%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E-%D0%BD%D0%B0%D0%B4%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F-9d107997-b11f-459e-af27-edd7d154490f (дата обращения: 13.10.2025).
- Поиск оптимальных альтернативных решений с помощью Excel в задачах целочисленного программирования. Интернет-журнал «Науковедение». URL: https://naukovedenie.ru/PDF/20EVN415.pdf (дата обращения: 13.10.2025).
- К вопросу использования надстройки Excel «Поиск решения» в задачах линейного программирования. КиберЛенинка. URL: https://cyberleninka.ru/article/n/k-voprosu-ispolzovaniya-nadstroyki-excel-poisk-resheniya-v-zadachah-lineynogo-programmirovaniya (дата обращения: 13.10.2025).
- Excel в решении экономических задач. Казанский государственный технологический университет. URL: https://docs.kstu.ru/doc/2957 (дата обращения: 13.10.2025).
- Линейное программирование. Systems analysis wiki. URL: https://systems-analysis.ru/ru/linear-programming/ (дата обращения: 13.10.2025).
- Тема 1 Математические методы и основные классы задач оптимизации. Московский государственный университет управления. URL: https://www.mguu.ru/assets/files/materials/math-programming/tema-1.pdf (дата обращения: 13.10.2025).
- Целевая функция. Systems analysis wiki. URL: https://systems-analysis.ru/ru/objective-function/ (дата обращения: 13.10.2025).
- Оптимальное решение. Systems analysis wiki. URL: https://systems-analysis.ru/ru/optimal-solution/ (дата обращения: 13.10.2025).
- Линейное программирование. ACCA Global. URL: https://www.accaglobal.com/ru/ru/student/exam-support-resources/fundamentals-exams/f5/articles/linear-programming.html (дата обращения: 13.10.2025).