Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭММ: Методичка Забуга С.И.doc
Скачиваний:
20
Добавлен:
12.11.2018
Размер:
2.28 Mб
Скачать

Министерство образования и науки Украины

Харьковский национальный университет

им. В. Н. Каразина

С. И. Забуга, Н. П. Дидиченко

МАТЕМАТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ

Учебный материал для студентов

економических специальностей

Харьков – 2010

УДК 519.85 (075.8)

ББК 22.18 я 73 - 1

З 12

Рекомендовано к печати ученым советом экономического факультета

Харьковского национального университета имени В. Н. Каразина

(протокол № .)

Рецензенти:

Забуга С. И.,

З 12

Дидиченко Н. П., Математическое программирование. Учебный материал для студентов экономических специальностей. – Х.: ХНУ имени В. Н. Каразина , 2010. – с.

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

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

УДК 519.85 (075.8)

ББК 22.18 я 73 - 1

© Харьковский национальный университет

имени В. Н. Каразина, 2009

© Забуга С. И., Дидиченко Н. П., Иващенко П. А.

© макет обложки, 2009

Введение

МАТЕМАТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ – раздел математики, который посвящен разработке теории и практики решения задач нахождения экстремумов функций многих переменных на множествах их возможных значений, определяемых линейными и нелинейными ограничениями (равенствами и неравенствами).

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

Формальная постановка задачи математического программирования такова:

D:

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

ИЗ ИСТОРИИ. Приоритет в разработке методов линейного программирования принадлежит советскому математику Л. В. Канторовичу, который в 1937 г. рассмотрел специальный класс экономико–математических задач и предложил алгоритмы их решения. Знаменательным явлением следует признать изобретение симплекс–метода решения задач линейного программирования американским математиком Дж. Данцигом в 1947 г. Сам же термин «математическое программирование» впервые ввел другой американец Р. Дорфман в 1950 г. Следует заметить, что этот термин не имеет ничего общего с программированием на ЭВМ, а происходит от понятия «оптимальная программа», которое было более распространено в годы становления данной математической дисциплины, а теперь заменено на термин «оптимальный план» или «оптимальное решение».

Использование методов математического программирования для решения экономических задач состоит из следующих этапов:

  1. Словесная постановка задачи.

  2. Построение математической модели явления (определение целевой функции, ограничений и параметров (переменных), подлежащих оптимизации).

  3. Выбор метода решения.

  4. Непосредственное нахождение экстремума целевой функции.

  5. Анализ полученных результатов.

  6. Внедрение результатов решения и управление процессом его реализации.

Естественно, что реализация п.п. 1, 2, 5, 6 должна проводиться математиками совместно со специалистами конкретной отрасли.

Классификация задач математического программирования предусматривает два основных направления:

А. Детерминированные задачи, т. е. задачи, в которых вся исходная информация определена.

В. Стохастическое программирование (исходная информация частично или полностью не определена).

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

В свою очередь, задачи группы А делятся на задачи:

  1. Линейного программирования (целевая функция и ограничения линейны).

  2. Дискретного (целочисленного) программирования – если на часть переменных или на все наложены условия дискретности (целочисленности).

  3. Параметрического программирования (целевая функция и (или) ограничения содержат параметры, заданные на некоторых множествах).

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

    1. Выпуклое программирование (Z и D выпуклы).

    2. Квадратичное программирование (Z – квадратичная, ограничения – линейные).

5. Динамического программирования (задачи, описывающие процессы, протекающие во времени или основанные на идее рекуррентного подхода).

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

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

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