Одноиндексные задачи линейного программирования

Департамент кинематографии Министерства культуры РФ

Федеральное Государственное образовательное учреждение высшего профессионального образования Санкт-Петербургский Государственный Университет Кино и Телевидения. 

Институт  экономики и управления 

Кафедра управления экономическими и социальными процессами 
 
 

КУРСОВАЯ  РАБОТА

по  дисциплине

«Экономико-математические методы и модели» 

на  тему: 
 

Одноиндексные задачи линейного  программирования 
 
 
 

Выполнила:

студентка ФПК 17 гр.

Карышева  А.А.

Проверил:

                                                                                 к.э.н. доцент Булочников П.А. 
 

Санкт-Петербург

2009

 

Содержание 

Стр.                 

Введение………………………………………………………………….…..…….3

Теоретическая часть……………………….. ………………….………………….4

Практическая часть………………………………………….………………..…..14

Вывод…….………………………………………………………………….….….22

Список литературы……….………………………………………………...….….23 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Введение 

      Современная экономика как наука о рациональном ведении хозяйства должна давать ответы на следующие основные вопросы: что производить? где производить? какова цена продукции? как соизмерить настоящие и будущие издержки?

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

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

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

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

        Цель данной курсовой работы: приобретение навыков построения математических моделей одноиндексных задач и решение их симплексным методом.     

  

Теоретическая часть 

      Если в какой-либо системе (экономической, организационной, военной и

т.д.) имеющихся  в наличии ресурсов не хватает  для эффективного выполнения

каждой     из      намеченных       работ,      то    возникают    так       называемые

распределительные   задачи.   Цель    решения    распределительной задачи –

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

оптимальностью  распределения может пониматься,    например, минимизация

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

        Для   решения   таких   задач   используются   методы    математического

программирования.       Математическое    программирование –   это раздел

математики,   занимающийся   разработкой методов отыскания экстремальных

значений    функции,   на аргументы которой наложены ограничения. Слово

"программирование"   заимствовано    из  зарубежной литературы,   где   оно

используется  в смысле "планирование".

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

         Наиболее     простыми    и     лучше    всего    изученными    среди     задач математического       программирования      являются      задачи        линейного программирования.

        Характерные черты задач ЛП следующие:

1) показатель  эффективности L представляет собой  линейную функцию,

заданную  на элементах решения x1 , x2, xn;

2) ограничительные  условия, налагаемые на возможные  решения, имеют

вид линейных равенств или неравенств.

        В общей форме записи модель задачи ЛП имеет вид: 

целевая функция (ЦФ)

L=c1x1+c2x2+...+cnxn→max(min) ; 

при ограничениях

а11х1+а12х2+…+а1nxn≤(≥,=)b1,

а21х1+а22х2+…+а2nxn≤(≥,=)b2,

……………………………

аm1х1+аm2х2+…+аmnxn≤(≥,=)bm,

x1,  x2,…, xк ≥ (к ≤ n). 

              Любая задача линейного программирования приводится к стандартной (канонической) форме основной задачи линейного программирования. При этом также требуется, чтобы правые части равенств были неотрицательны.

     Приведение  к стандартной форме необходимо, так как большинство методов решения задач линейного программирования разработано именно для  
 

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

    - перейти  от минимизации целевой функции к ее максимизации;

    - изменить  знаки правых частей ограничений;

    - перейти  от ограничений-неравенств к равенствам;

    - избавиться  от переменных, не имеющих ограничений  на знак.

        Допустимое решение – это совокупность чисел X = (x1, x2,…, xn),

удовлетворяющих ограничениям задачи.

        Оптимальное решение   – это  план   X* = (x*1, x*2,…, x*n),   при   котором ЦФ принимает свое максимальное (минимальное) значение.

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

     Оптимизация - целенаправленная деятельность, заключающаяся в получении наилучших результатов при соответствующих условиях.

     Поиски  оптимальных решений привели  к созданию специальных математических методов и уже в 18 веке были заложены математические основы оптимизации (вариационное исчисление, численные методы и др). Однако до второй половины 20 века методы оптимизации во многих областях науки и техники применялись очень редко, поскольку практическое использование математических методов оптимизации требовало огромной вычислительной работы, которую без ЭВМ реализовать было крайне трудно, а в ряде случаев - невозможно.

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

   · количество продукции - расход сырья

   · количество продукции - качество продукции  
 

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

   При постановке задачи оптимизации необходимо:

     1. Наличие объекта оптимизации и цели оптимизации. При этом формулировка каждой задачи оптимизации должна требовать экстремального значения лишь одной величины, т.е. одновременно системе не должно приписываться два и более критериев оптимизации, т.к. практически всегда экстремум одного критерия не соответствует экстремуму другого. Приведем примеры.

   Типичный  пример неправильной постановки задачи оптимизации:

   «Получить максимальную производительность при  минимальной себестоимости».

     Ошибка  заключается в том, что ставится задача поиска оптимальности 2-х величин, противоречащих друг другу по своей сути.

   Правильная  постановка задачи могла  быть следующая:

   а) получить максимальную производительность при заданной себестоимости;

   б) получить минимальную себестоимость при заданной производительности;

     В первом случае критерий оптимизации - производительность а во втором - себестоимость.

     2. Наличие ресурсов оптимизации, под которыми понимают возможность выбора значений некоторых параметров оптимизируемого объекта.

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

   4. Учет ограничений.  

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

     Критерием оптимальности  называется количественная оценка оптимизируемого качества объекта.

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

     Таким образом, задача оптимизации сводится к нахождению экстремума целевой функции.

        Для     построения      математической    модели   необходимо  ответить  на

следующие три вопроса.

        1.    Что   является   искомыми   величинами,   то   есть   переменными этой

задачи?

        2.   В   чем   состоит   цель,   для  достижения  которой   из всех допустимых

значений   переменных   нужно   выбрать  те,   которые   будут  соответствовать

наилучшему, то есть оптимальному, решению?

        3.   Какие   ограничения   должны  быть  наложены  на  переменные, чтобы

выполнялись условия, описанные в задаче?

     Линейное  программирование - один из первых и наиболее подробно изученных разделов математического программирования. Именно линейное программирование явилось тем разделом, с которого начала развиваться сама дисциплина «математическое программирование». Термин «программирование» в названии дисциплины ничего общего с термином «программирование (т.е. составление программ) для ЭВМ» не имеет, так как дисциплина «линейное программирование» возникла еще до того времени, когда ЭВМ стали широко применяться при решении математических,  
 

инженерных, экономических и др. задач. Термин «линейное программирование» возник в результате неточного перевода английского «linear programming». Одно из значений слова «programming» - составление планов, планирование. Следовательно, правильным переводом «linear programming» было бы не «линейное программирование», а «линейное планирование», что более точно отражает содержание дисциплины. Однако, термин линейное программирование, нелинейное программирование и т.д. в нашей литературе стали общепринятыми. 
            Итак, линейное программирование возникло после Второй Мировой Войны и стал быстро развиваться, привлекая внимание математиков, экономистов и инженеров благодаря возможности широкого практического применения, а так же математической «стройности».  
            Можно сказать, что линейное программирование применимо для построения математических моделей тех процессов, в основу которых может быть положена гипотеза линейного представления реального мира: экономических задач, задач управления и планирования, оптимального размещения оборудования и пр.

   Задачами  линейного программирования называются задачи, в которых линейны как  целевая функция, так и ограничения в виде равенств и неравенств. Кратко задачу линейного программирования можно сформулировать следующим образом: найти вектор значений переменных, доставляющих экстремум линейной целевой функции при m ограничениях в виде линейных равенств или неравенств.

       Линейное программирование представляет  собой наиболее часто используемый  метод оптимизации. К числу  задач линейного программирования  можно отнести задачи:

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

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

    Первые  постановки задач линейного программирования были сформулированы известным советским  математиком Л.В.Канторовичем, которому за эти работы была присуждена Нобелевская  премия по экономике.

      Значительное  развитие теория и алгоритмический  аппарат линейного программирования получили с изобретением и распространением ЭВМ и формулировкой американским математиком Дж. Данцингом симплекс-метода.

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

      В развитие и совершенствование этих систем вложен труд и талант многих матеметиков, аккумулирован опыт решения тысяч задач. Владение аппаратом линейного программирования необходимо каждому специалисту в области математического программирования. Линейное программирование тесно связано с другими методами математического программирования (например, нелинейного программирования, где целевая функция нелинейна). 

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

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

        В   данной лабораторной работе рассматривается одноиндексная задача

ЛП, представляющая собой   общую   распределительную задачу,  которая

характеризуется различными единицами измерения  работ и ресурсов.

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

наибольшим. Процесс перебора угловых точек  области допустимых решений повторяется, пока не будет найдена точка, которой  соответствует экстремум целевой  функции Е.

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

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

     1. Задача линейного программирования сводится к стандартной форме.

     2. Строится искусственный базис.

     3. Составляется искусственная целевая  функция: сумма всех искусственных  переменных.

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

     5. Реализуется второй этап двухэтапного  метода: найденное на шаге 4 допустимое решение используется в качестве начального решения исходной задачи для поиска ее оптимального решения.

                Для того чтобы решить задачу ЛП в табличном редакторе Microsoft Excel, необходимо выполнить следующие действия: 

1. Ввести условие задачи:

a) создать экранную форму для ввода условия задачи:

• переменных,

• целевой  функции (ЦФ),

• ограничений,

• граничных  условий;

b) ввести исходные данные в экранную форму:

• коэффициенты ЦФ,

• коэффициенты при переменных в ограничениях,

• правые части ограничений;

c) ввести зависимости из математической модели в экранную форму:

• формулу  для расчета ЦФ,

• формулы  для расчета значений левых частей ограничений;

d) задать ЦФ (в окне "Поиск решения"):

• целевую  ячейку,

• направление  оптимизации ЦФ;

e) ввести ограничения и граничные условия (в окне "Поиск решения"):

• ячейки со значениями переменных,

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

• соотношения  между правыми и левыми частями  ограничений.

2. Решить задачу:

a) установить параметры решения задачи (в окне "Поиск решения");

b) запустить задачу на решение (в окне "Поиск решения");

c) выбрать формат вывода решения (в окне "Результаты поиска решения"). 
 
 
 

Практическая  часть

        Мебельный комбинат   выпускает   книжные полки   А из   натурального

Дерева со с теклом,   полки B 1 из полированной   ДСП (древесно-стружечной

плиты) без стекла и полки B2 из полированной ДСП   со с теклом.   Габариты

полок А, B1 и В2 следующие: длина 1260 (d) мм, ширина 270 (w) мм, высота 320 (h) мм. Размер листа ДСП 2*3 м.

        При изготовлении полок А выполняются следующие работы:   столярные,

покрытие  лаком, сушка, резка стекла, упаковка. Все операции, производимые в

ходе  столярных  работ и   упаковки,   выполняются вручную.   Полки B1 и В2

поставляются  в торговую сеть в разобранном  виде.  За исключением операции

упаковки, все остальные операции (производство комплектующих полки, резка

стекла) при изготовлении полок B1 и В2, выполняются  на специализированных

автоматах.

        Трудоемкость столярных работ по выпуску одной полки А   составляет 2,4

(Тр1) ч. Производительность  автомата,   покрывающего   полки А лаком – 4

(Пр1) полок в час,   автомата,   режущего стекло –   200 (Пp2)   стекол   в час.

Сменный фонд времени автомата для покрытия лаком – 7,1 (ФВ1) ч, автомата для резки стекла – 7,5 (ФВ2) ч.   Сушка полок, покрытых лаком, происходит в

Одноиндексные задачи линейного программирования