Контрольная работа по дисциплине «ИССЛЕДОВАНИЕ ОПЕРАЦИЙ В ЭКОНОМИКЕ» (ИО 00) Вопрос №1. Какие Вы знаете математические методы, которые помогают находить оптимальные решения в различных производственных процессах? Решение. При решении конкретной задачи оптимизации исследователь прежде всего должен выбрать математический метод, который приводил бы к конечным результатам с наименьшими затратами на вычисления или же давал возможность получить наибольший объем информации об искомом решении. Выбор того или иного метода в значительной степени определяется постановкой оптимальной задачи, а также используемой математической моделью объекта оптимизации. В настоящее время для решения оптимальных задач применяют в основном следующие методы: методы исследования функций классического анализа; методы, основанные на использовании неопределенных множителей Лагранжа; вариационное исчисление; динамическое программирование; принцип максимума; линейное программирование; нелинейное программирование. В последнее время разработан и успешно применяется для решения определенного класса задач метод геометрического программирования. Как правило, нельзя рекомендовать какой-либо один метод, который можно использовать для решения всех без исключения задач, возникающих на практике. Одни методы в этом отношении являются более общими, другие - менее общими. Наконец, целую группу методов (методы исследования функций классического анализа, метод множителей Лагранжа, методы нелинейного программирования) на определенных этапах решения оптимальной задачи можно применять в сочетании с другими методами, например динамическим программированием или принципом максимума. Некоторые методы специально разработаны или наилучшим образом подходят для решения оптимальных задач с математическими моделями определенного вида. Так, математический аппарат линейного программирования, специально создан для решения задач с линейными критериями оптимальности и линейными ограничениями на переменные и позволяет решать большинство задач, сформулированных в такой постановке. Так же и геометрическое программирование предназначено для решения оптимальных задач, в которых критерий оптимальности и ограничения представляются специального вида функциями полиномами. Динамическое программирование хорошо приспособлено для решения задач оптимизации многостадийных процессов, особенно тех, в которых состояние каждой стадии характеризуется относительно небольшим числом переменных состояния. Однако при наличии значительного числа этих переменных, т. е. при высокой размерности каждой стадии, применение метода динамического программирования затруднительно вследствие ограниченных быстродействия и объема памяти вычислительных машин. Наилучшим путем при выборе метода оптимизации, наиболее пригодного для решения соответствующей задачи, следует признать исследование возможностей и опыта применения различных методов оптимизации. Вопрос №2. Какие вы знаете способы решения задач нелинейного программирования? Решение. Методы нелинейного программирования применяют для решения оптимальных задач с нелинейными функциями цели. На независимые переменные могут быть наложены ограничения также в виде нелинейных соотношений, имеющих вид равенств или неравенств. По существу методы нелинейного программирования используют, если ни один из перечисленных выше методов не позволяет сколько-нибудь продвинуться в решении оптимальной задачи. Поэтому указанные методы иногда называют также прямыми методами решения оптимальных задач. Названием “методы нелинейного программирования” объединяется большая группа численных методов, многие из которых приспособлены для решения оптимальных задач соответствующего класса. Выбор того или иного метода обусловлен сложностью вычисления критерия оптимальности и сложностью ограничивающих условий, необходимой точностью решения, мощностью имеющейся вычислительной машины и т.д. Основные методы решения задач нелинейного программирования: метод Лагранжа метод допустимых (возможных) направлений или метод Зойтендейка выбор оптимального шага методы безусловной оптимизации: методы безусловной оптимизации первого порядка: метод прямого поиска (метод Хука - Дживса) метод деформируемого многогранника (метод Нелдера - Мида) метод вращающихся координат (метод Розенброка) метод параллельных касательных (метод Пауэлла) методы безусловной оптимизации первого порядка: метод наискорейшего спуска метод сопряженных градиентов методы безусловной оптимизации второго порядка: метод Ньютона Вопрос №3. В чем суть методов динамического программирования? Решение. Некоторые задачи математического программирования обладают специфическими особенностями, которые позволяют свести их решение к рассмотрению некоторого множества более простых «подзадач». В результате вопрос о глобальной оптимизации некоторой функции сводится к поэтапной оптимизации некоторых промежуточных целевых функций. В динамическом программировании рассматриваются методы, позволяющие путем поэтапной (многошаговой) оптимизации получить общий (результирующий) оптимум. Обычно методами динамического программирования оптимизируют работу некоторых управляемых систем, эффект которой оценивается аддитивной, или мультипликативной, целевой функцией. По существу метод динамического программирования представляет собой алгоритм определения оптимальной стратегии управления на всех стадиях процесса. При этом закон управления на каждой стадии находят путем решения частных задач оптимизации последовательно для всех стадий процесса с помощью методов исследования функций классического анализа или методов нелинейного программирования. Результаты решения обычно не могут быть выражены в аналитической форме, а получаются в виде таблиц. Ограничения на переменные задачи не оказывают влияния на общий алгоритм решения, а учитываются при решении частных задач оптимизации на каждой стадии процесса. При наличии ограничений типа равенств иногда даже удается снизить размерность этих частных задач за счет использования множителей Лагранжа. Применение метода динамического программирования для оптимизации процессов с распределенными параметрами или в задачах динамической оптимизации приводит к решению дифференциальных уравнений в частных производных. Вместо решения таких уравнений зачастую значительно проще представить непрерывный процесс как дискретный с достаточно большим числом стадий. Подобный прием оправдан особенно в тех случаях, когда имеются ограничения на переменные задачи и прямое решение дифференциальных уравнений осложняется необходимостью учета указанных ограничений. При решении задач методом динамического программирования, как правило, используют вычислительные машины, обладающие достаточным объемом памяти для хранения промежуточных результатов решения, которые обычно получаются в табличной форме Вопрос №4. Что такое случайный процесс? Что такое Марковский случайный процесс? Какие виды Марковских случайных процессов Вы знаете? Приведите хотя бы по одному примеру для каждого вида случайных процессов? Решение. Случайный (стохастический) процесс – это случайная функция x(t ) аргумента t, который истолковывается как время. Например, если самолет должен лететь с заданной постоянной скоростью, то в действительности вследствие воздействия случайных факторов (колебание температуры, изменение силы ветра и др.), учесть влияние которых заранее нельзя, скорость изменяется. В этом примере скорость самолета – случайная функция от непрерывно изменяющегося аргумента (времени), т.е. скорость есть случайный процесс. Пусть в каждый момент времени некоторая система может находиться в одном из состояний E1 , E2 ,... (число состояний конечно или счетно). Если система случайно переходит из одного состояния Ei в другое состояние, например E j , то, говорят, что в системе происходит случайный процесс. Если при этом вероятность перехода из состояния Ei в состояние E j зависит только от состояния Ei и не зависит от того, когда и как система приш8ла в это состояние, то случайный процесс X (t ) называется Марковским. Другими словами, если для каждого момента времени t 0 протекание случайного процесса X (t ) в будущем (при t > t0 ) определяется его настоящим (значение X (t0 ) ) и не зависит от прошлого (от значений X (t ) при t < t0 ), то X (t ) - Марковский случайный процесс. Виды Марковских случайных процессов. Различают Марковские случайные процессы: с дискретным множеством состояний (число состояний конечно или счетно, переходы из состояния в состояние происходит скачком) с непрерывным множеством состояний а также различают процессы: * с дискретным временем (моменты переходов фик5сированы) * с непрерывным временем (моменты переходов случайны) Примеры для каждого вида случайных Марковских процессов. 1.) Случайный Марковский процесс с дискретным состоянием и дискретным временем: Выборочный контроль продукции: дискретное состояние: S1 – годная продукция, S2 – негодная продукция, дискретное время: t1, t2 – время проверки. 2.) Случайный Марковский процесс с дискретным состоянием и непрерывным временем: Случай отказа станка, машины, оборудования. 3.) Случайный Марковский процесс с непрерывным состоянием и дискретным временем: Проверки термометра через определенное время. 4.) Случайный Марковский процесс с непрерывным состоянием и непрерывным временем: Процесс разливки металл при контролируемой температуре Вопрос №5. В каком из методов исследования операций используется термин «седловая точка»? Что это такое? Всегда ли она существует? Решение. Термин «седловая точка» используется в теории игр, разделе прикладной математики, который изучает оптимальные стратегии в играх. Под игрой понимается процесс, в котором участвует две или более сторон, ведущих борьбу за реализацию своих интересов. Каждая из сторон имеет свою цель и использует некоторую стратегию, которая может вести к проигрышу или выигрышу – в зависимости от поведения других игроков. Теория игр помогает выбрать лучшие стратегии с учётом представлений о других участниках, их ресурсах и их возможных поступках. Матричная игра – это конечная игра двух игроков с нулевой суммой, в которой задаётся выигрыш игрока 1 в виде матрицы (строка матрицы соответствует номеру применяемой стратегии игрока 2, столбец – номеру применяемой стратегии игрока 2; на пересечении строки и столбца матрицы находится выигрыш игрока 1, соответствующий применяемым стратегиям). Игры с нулевой суммой – это игры, в которых общий капитал всех игроков не меняется, а перераспределяется между игроками; сумма выигрышей всех игроков равна нулю. Для матричных игр доказано, что любая из них имеет решение и оно может быть легко найдено путём сведения игры к задаче линейного программирования. Матричная игра двух игроков с нулевой суммой может рассматриваться как следующая абстрактная игра двух игроков. Первый игрок имеет m стратегий i = 1,2,...,m, второй имеет n стратегий j = 1,2,...,n. Каждой паре стратегий (i,j) поставлено в соответствие число аij, выражающее выигрыш игрока 1 за счёт игрока 2, если первый игрок примет свою i-ю стратегию, а 2 – свою j-ю стратегию. Каждый из игроков делает один ход: игрок 1 выбирает свою i-ю стратегию (i= ), 2 – свою j-ю стратегию (j= ), после чего игрок 1 получает выигрыш аij за счёт игрока 2 (если аij<0, то это значит, что игрок 1 платит второму сумму | аij|). На этом игра заканчивается. Каждая стратегия игрока i= стратегией. Если рассмотреть матрицу, ; j = часто называется чистой А= то проведение каждой партии матричной игры с матрицей А сводится к выбору игроком 1 i-й строки, а игроком 2 j-го столбца и получения игроком 1 (за счёт игрока 2) выигрыша аij. Если в игре с матрицей А = , то говорят, что эта игра имеет седловую точку в чистых стратегиях и чистую цену игры = = . Седловая точка– это пара чистых стратегий (iо,jо) соответственно игроков 1 и 2, при которых достигается равенство = . В это понятие вложен следующий смысл: если один из игроков придерживается стратегии, соответствующей седловой точке, то другой игрок не сможет поступить лучше, чем придерживаться стратегии, соответствующей седловой точке. Математически это можно записать и иначе: где i, j– любые чистые стратегии соответственно игроков 1 и 2; (iо,jо)– стратегии, образующие седловую точку. Седловая точка - (x* , y* ) Таким образом, седловой элемент является минимальным в iо-й строке и максимальным в jо-м столбце в матрице А. Отыскание седловой точки матрицы А происходит следующим образом: в матрице А последовательно в каждой строке находят минимальный элемент и проверяют, является ли этот элемент максимальным в своём столбце. Если да, то он и есть седловой элемент, а пара стратегий, ему соответствующая, образует седловую точку. æ1 0ö÷ «Седловая точка» существует далеко не всегда. Так, например, для матрицы çç ÷ ÷ такой çè0 1ø÷ точки не существует. Вопрос 6. Для производства двух видов изделий А и В используются три типа технологического оборудования. На производство единицы изделия А используется 16 ч оборудования I типа, 8 ч оборудования II типа и 5 ч оборудования III типа. На производство единицы изделия В используется 4 ч оборудования I типа, 7 ч оборудования II типа и 9 ч оборудования III типа. На изготовление всех изделий администрация предприятия может представить оборудование первого типа не более чем на 784 часа, оборудование второго типа - не более чем на 552 часа, а оборудование третьего типа - не более чем на 567 часов. Прибыль от реализации готового изделия А составляет 4 рубля, а изделия В - 6 рублей. 1. Сформулируйте математическую модель задачи линейного программирования по данному условию. 2. Является ли она задачей целочисленного программирования? Почему? 3. Решите данную задачу любым известным Вам способом. 4. Дайте словесный ответ на вопрос: «При каком выпуске изделий А и В прибыль предприятия будет наибольшей?» Решение. Вид ресурса Объем ресурса Оборудование 1 Оборудование 2 Оборудование 3 784 552 567 Нормы расхода на одно изделие А В 16 4 8 7 5 9 Пусть x1 – объем производства товара А (шт.); x2 – объем производства товара В (шт.). Тогда доход от продажи товара А - 4x1 (руб.), а от продажи товара В – 6x2 (руб.). L( X ) = 4 x1 + 6 x2 ® max( руб.) - целевая функции в виде суммы дохода от продажи товаров А и В. Ограничения: - Количество часов, которое может отработать оборудование 1, не превышает 784 часа. - Количество часов, которое может отработать оборудование 2, не превышает 552 часа. - Количество часов, которое может отработать оборудование 3, не превышает 567 часов. - Объемы производств не могут быть отрицательными. Следовательно: 16 x1 + 4 x2 £ 784 (час.) 8x1 + 7 x2 £ 552 (час.) 5x1 + 9 x2 £ 567 (час.) x1 ³ 0, x2 ³ 0. Полученная математическая модель называется экономико-математической моделью задачи линейного программирования. Решим задачу графическим способом. Для этого сначала определим координаты точек пересечения прямых ограничений с осями координат: ìï ìï x1 = ïï ïí ïï ï x 2 = îï ïìï 16x1 + 4x 2 £ 784 ïïï ïï ï ìï x1 = í 8x1 + 7x 2 £ 552 Þ í ïí ïï ï ï x2 = ïïî 5x1 + 9x 2 £ 567 ïïï ïî ïï ïìï x1 = ïï í ïïî ïîï x 2 = ìï x1 = 49 ; ïí 196 ïîï x 2 = 0 ìï x1 = 69 0 ; ïí 78,86 ïïî x 2 = 0 0 ïì x1 = 113, 4 ; ïí 63 ïîï x 2 = 0 0 Построение прямых ограничений: Е А Д С В Подставив точку (0;0) в исходные ограничения получим истинные неравенства и определим допустимые полуплоскости для ограничений, указав их стрелками у соответствующих прямых ограничений. В результате общей областью, разрешенной всеми ограничениями является многоугольник ABCДЕ. L = 4 x1 + 6 x2 - целевая прямая, где L (произвольное число, например, кратное 3 и 8). Следовательно, ïì x1 = 0, → ïí ïïî x2 = 4, 4 x1 + 6 x2 = 24. L = 4 x1 + 6 x2 , Помимо целевой прямой строим вектор ïìï x1 = 6, í ïïî x2 = 0, из точки (0;0) в точку (4;6). При поиске max целевой функции передвигаем целевую прямую в направлении вектора Точкой max ЦФ будет последняя по ходу движения вершина ОДР. Точка пересечения прямых: 8x1 + 7x 2 = 552, 5x1 + 9x 2 = 567 → 567 5x1 552 8x1 = , ® x1 = 27, x 2 = 48. 9 9 7 7 . Е А Д С В Итак, точки максимума целевой функции (27, 48). Следовательно, прибыль предприятия будет наибольшей при выпуске 27 изделий А и 48 изделий В. Вопрос 7. Найдите верхнюю цену и нижнюю цену игры, заданной матрицей А. Укажите оптимальные стратегии игроков и седловую точку, если она существует. Опишите словесно, что означают полученные результаты. 3 4 2 5 1. А = 5 1 2. А = 4 2 2 3 2 2 3. А = 2 2 1 1 1 2 1 1 2 3 Решение. 3 4 1. А = 2 5 Аi \ Вi В1 В2 min(aij )по строке(a i ) А1 3 4 3 А2 2 5 2 max(aij )по столбцу (bi ) 3 5 Следовательно, b = min bi = min max(a ij ) = min(3,5) = 3 (верхняя цена или минимакс) Верхняя цена игры показывает, какой максимальный выигрыш за счёт своих стратегий может себе гарантировать игрок 1: b = 3 . a = max a i = max min(a ij ) = max(3, 2) = 3 (нижняя цена или максимин) Нижняя цена игры показывает, какой минимальный выигрыш может гарантировать себе игрок 1, применяя свои чистые стратегии при всевозможных действиях игрока 2: a = 3 . (i0 = 1, j0 = 1) v = a = b = 3 (седловая точка), i0 = 1 и j0 = 1 (оптимальные стратегии игроков 1 и 2). Таким образом, если один из игроков придерживается стратегии, соответствующей седловой точке (i0 = 1, j0 = 1) , то другой игрок не сможет поступить лучше, чем придерживаться стратегии, соответствующей седловой точке, так как в этой точке достигается равенство цен игры. 5 1 2. А = 4 2 2 3 Аi \ Вi А1 А2 А3 max(aij )по столбцу (bi ) В1 В2 min(aij )по строке(a i ) 5 1 1 4 2 2 2 3 2 2 3 Следовательно, b = min bi = min max(a ij ) = min(2,3) = 2 (верхняя цена или минимакс) Верхняя цена игры показывает, какой максимальный выигрыш за счёт своих стратегий может себе гарантировать игрок 1: b = 2 . a = max a i = max min(a ij ) = max(1, 2, 2) = 2 (нижняя цена или максимин) Нижняя цена игры показывает, какой минимальный выигрыш может гарантировать себе игрок 1, применяя свои чистые стратегии при всевозможных действиях игрока 2: a = 2 . (i0 = 3, j0 = 1) v = a = b = 2 (седловая точка), i0 = 3 и j0 = 1 (оптимальные стратегии игроков 1 и 2). При этом заметим, что хотя выигрыш в ситуации (2;2) также равен 2, она не является седловой точкой, т.к. этот выигрыш не является максимальным среди выигрышей второго столбца. Таким образом, если один из игроков придерживается стратегии, соответствующей седловой точке (i0 = 3, j0 = 1) , то другой игрок не сможет поступить лучше, чем придерживаться стратегии, соответствующей седловой точке, так как в этой точке достигается равенство цен игры. 2 2 3. А = 2 2 1 1 1 2 1 1 2 3 Аi \ Вi В1 В2 В3 min(aij )по строке(a i ) А1 2 -1 1 -1 А2 -2 1 -1 -2 А3 -2 1 -2 -2 А4 2 -2 3 -2 max(aij )по столбцу (bi ) 2 1 3 Следовательно, b = min bi = min max(a ij ) = min(2,1,3) = 1 (верхняя цена или минимакс) Верхняя цена игры показывает, какой максимальный выигрыш за счёт своих стратегий может себе гарантировать игрок 1: b = 1 . a = max a i = max min(a ij ) = max(- 1, - 2, - 2, - 2) = - 1 (нижняя цена или максимин) Нижняя цена игры показывает, какой минимальный выигрыш может гарантировать себе игрок 1, применяя свои чистые стратегии при всевозможных действиях игрока 2: a = - 1 . Получили, a = - 1 < b = 1 , следовательно, матрица не имеет седловой точки. В данном случае наилучшие гарантированные выигрыши не равны и оптимальных стратегий не существует. Вопрос 8. Изготовление деталей А и В состоит из двух операций, происходящих последовательно на станках I и II, и прохождения ОТК на приборе III. Время работы каждого станка для изготовления одной детали (в минутах) указаны в таблице. С помощью диаграммы Ганта укажите оптимальный порядок прохождения деталей по указанным операциям. I II III А 15 15 10 В 10 20 15 Решение. Для данной задачи есть два варианта выполнения операций. С помощью диаграммы Ганта проанализируем каждый из них. Первый вариант: Задача Начало Конец Обработка А на 1 Обработка А на 1 0 15 Обработка В на 1 Обработка В на 1 15 25 Обработка А на 2 Обработка А на 2 15 30 Обработка В на 2 Обработка В на 2 30 50 А на ОТК А на ОТК 30 40 В на ОТК 50 65 В на ОТК 0 10 20 30 40 50 60 70 общее время - 65 минут Второй вариант: Задача Начало Конец Обработка В на 1 Обработка В на 1 0 10 Обработка А на 1 Обработка А на 1 10 25 Обработка А на 2 Обработка А на 2 30 45 Обработка В на 2 Обработка В на 2 10 30 А на ОТК А на ОТК 45 55 В на ОТК В на ОТК 30 45 0 10 20 30 40 50 60 общее время - 55 минут Следовательно, оптимальный порядок выполнения операций: обработка детали В на станке 1 → обработка детали А на станке 1 → обработка детали В на станке 2 → обработка детали А на станке 1→ деталь В на ОТК → деталь А на ОТК.