Задача о замене оборудования

Курсовая работа

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

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

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

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

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

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

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

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

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

1.1 Понятия динамического программирования. Составление математической модели динамического программирования

17 стр., 8341 слов

O Л. В. Канторовиче и линейном программировании

... методе разрешающих множителей для решения задач, которые позже стали называть задачами линейного программирования. Все это я узнал чуть ... обсуждались проблемы функционального анализа, был известный семинар Фихтенгольца-Канторовича на математико-механическом факультете ЛГУ, который я ... у истоков которого стояли В.И.Смирнов, Г.М.Фихтенгольц и, как основной мотор, - Л.В., а позже Г.П.Акилов, имел свою ...

Словосочетание «динамическое программирование» впервые было использовано в 1940-х годах Р. Беллманом для описания процесса нахождения решения задачи, где ответ на одну задачу может быть получен только после решения задачи, «предшествующей» ей. В 1953 г. он уточнил это определение до современного. Первоначально эта область была основана, как системный анализ и инжиниринг, которая была признана IEEE. Вклад Беллмана в динамическое программирование был увековечен в названии уравнения Беллмана, центрального результата теории динамического программирования, который переформулирует оптимизационную задачу в рекурсивной форме. замена оборудование программирование

Слово «программирование» в словосочетании «динамическое программирование» в действительности к «традиционному» программированию (написанию кода) почти никакого отношения не имеет и имеет смысл как в словосочетании «математическое программирование», которое является синонимом слова «оптимизация». Поэтому слово «программа» в данном контексте скорее означает оптимальную последовательность действий для получения решения задачи. К примеру, определенное расписание событий на выставке иногда называют программой. Программа в данном случае понимается как допустимая последовательность событий.

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

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

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

8 стр., 3693 слов

Информация в процессе принятия управленческих решений

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

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

Под этапом обычно понимают хозяйственный год.

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

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

Однако динамическое программирование имеет и свои недостатки. В отличие от линейного программирования, в котором симплексный метод является универсальным, в динамическом программировании такого метода не существует. Каждая задача имеет свои трудности, и в каждом случае необходимо найти наиболее подходящую методику решения. Недостаток динамического программирования заключается также в трудоемкости решения многомерных задач. При очень большом числе переменных решение задачи даже на современных ЭВМ ограничивается памятью и быстродействием машины. Например, если для исследования каждой переменной одномерной задачи требуется 10 шагов, то в двумерной задаче их количество увеличивается до 100, в трехмерной -до 1000 и т.д.

Составление математической модели динамического программирования:

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

  • S — Состояние процесса;

S i — множество возможных состояний процесса перед i-м шагом;

W i — выигрыш с i-го шага до конца процесса, i=

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

1. Разбиение задачи на шаги (этапы).

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

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

3. Определение множества шаговых управлений xi , i= и налагаемых на них ограничений, т.е. области допустимых управлений x.

4. Определение выигрыша

ц i (s, xi ), (1.1)

который принесет на i-м шаге управление x i , если система перед этим находилась в состоянии s.

5. Определение состояния s’, в которое переходит система из состояния s под влиянием управления xi ,

s’=f i (s, xi ),(1.2)

где f i — функция перехода на i-м шаге из состояния s в состояние s’.

4 стр., 1727 слов

Сущность и задачи кассационного производства в уголовном процессе

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

6. Составление уравнения, определяющего условный оптимальный выигрыш на последнем шаге, для составления s моделируемого процесса

W m (S)=max{цm (s,xm )}. (1.3)

x m €X

7. Составление основного функционального управления динамического программирования, определяющего условный оптимальный выигрыш для данного состояния s с i-го шага и до конца процесса через уже известный условный оптимальный выигрыш с (i+1)-го шага и до конца:

Wi(S) = max{ ц i (s,xi )+ Wi+1 (fi(s,xi ))}.(1.4)

x m €X

В это уравнение в уже известную функцию W i+1 (s), характеризующую условный оптимальный выигрыш с (i+1)-го шага до конца процесса, вместо состояния s подставлено новое состояние s’=fi (s,xi ), в которое система переходит на i-м шаге под влиянием управления xi.

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

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

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

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

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

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

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

1.2 Этапы решения задачи динамического программирования. Формулировка задачи о замене оборудования

После того как выполнены пункты 1-7, и математическая модель составлена, приступают к ее расчету.

Основные этапы решения задачи динамического программирования:

1. Определение множества возможных состояний Sm для последнего шага.

2. Проведение условной оптимизации для каждого состояния s€ Sm на последнем m-м шаге по формуле (1.3) и определение условного оптимального управления x(s), s€ Sm

3. Определение множества возможных состояний Si для i-го шага, i=2,3…,m-1.

4. Проведение условной оптимизации i-го шага, i=2,3…,m-1 для каждого состояния s€ Sm по формуле (1.4) и определение условного оптимального управления xi (s), s€ Sm , i=2,3…,m-1.

5. Определение начального состояния системы s1 , оптимального выигрыша W1(S1) и оптимального управления x1(S1) по формуле (1.4) при i=1. Это есть оптимальный выигрыш для всей задачи W* =W1 (x1 *).

6. Проведение безусловной оптимизации управления. Для проведения безусловной оптимизации необходимо найденное на первом шаге оптимальное управление x1 *=x1 (s1 ) подставить в формулу (1.2) и определить следующее состояние системы s1 =f1 (s1 ,x1 ).

Для измененного состояния найти оптимальное управление x2 *=x2 (s2 ), подставить в формулу (1.2) и т.д. Для i-го состояния s1 найти si+1 =fi+1 (si ,xi *) и x*i+1 (si+1 ) и т.д.

Динамическое программирование обычно придерживается двух подходов к решению задач:

  • нисходящее динамическое программирование: задача разбивается на подзадачи меньшего размера, они решаются и затем комбинируются для решения исходной задачи. Используется запоминание для решений часто встречающихся подзадач;
  • восходящее динамическое программирование: все подзадачи, которые впоследствии понадобятся для решения исходной задачи просчитываются заранее и затем используются для построения решения исходной задачи.

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

Задача о замене оборудования состоит в определении оптимальных сроков замены старого оборудования. Критерием оптимальности являются либо доход от эксплуатации оборудования (задача максимизации), либо суммарные затраты на эксплуатацию (задача минимизации) в течение планируемого периода. Мы будем рассматривать задачу максимизации, и критерием оптимальности будет доход от эксплуатации оборудования.

Принцип оптимальности Беллмана — важнейшее положение динамического программирования, которое гласит: оптимальное поведение в задачах динамического программирования обладает тем свойством, что каковы бы ни были первоначальное состояние и решение (т. е. “управление”), последующие решения должны составлять оптимальное поведение относительно состояния, получающегося в результате первого решения. Этот принцип можно выразить и рассуждая от противного: если не использовать наилучшим образом то, чем мы располагаем сейчас, то и в дальнейшем не удастся наилучшим образом распорядиться тем, что мы могли бы иметь.

Следовательно, если имеется оптимальная траектория, то и любой ее участок представляет собой оптимальную траекторию.

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

Под функцией Беллмана в текущий момент времени понимаем минимальное значение критерия качества в текущий момент времени: Если t=0, то

Таким образом, значение функции Беллмана S(x,t) определяет минимальную величину функционала для любого начального состояния x(t) в любой момент времени t . С другой стороны, значение функции Беллмана совпадает со значением, так называемых текущих потерь на управление:

Эксплуатация оборудования планируется в течение n лет, но оборудование имеет тенденцию с течением времени стареть и приносить все меньшую годовую прибыль r(t) , где t — возраст оборудования. При этом есть выбор: либо в начале любого года продать устаревшее оборудование за цену S(t) , которая также зависит от возраста, и купить новое оборудование за цену P , либо оставить оборудование в эксплуатации. Требуется найти оптимальный план замены оборудования с тем, чтобы суммарная прибыль за все n лет была максимальной, учитывая, что к началу эксплуатационного периода возраст оборудования составляет t 0 лет.

Входными данными к этой задаче являются:

r(t) — доход от эксплуатации в течение одного года оборудования возраста t лет;

S(t) — остаточная стоимость оборудования;

P — цена нового оборудования;

t 0 — начальный возраст оборудования.

Переменной управления на k -м шаге является логическая переменная, которая может принимать два значения: С — сохранить , З — заменить оборудование в начале k -го года. Переменной состояния системы на k -м шаге является переменная t .

Функцию Беллмана F k (t) определим как максимально возможную прибыль от эксплуатации оборудования за годы с k -го по n -й, если к началу k -го года возраст оборудования составлял t лет. Применяя то или иное управление, мы переводим систему в некоторое новое состояние, а именно, если в начале k -го года мы оборудование сохраняем, то к началу следующего (k+1) -го года его возраст увеличится на 1 (состояние системы станет равно t +1), за год оно принесет прибыль r(t) , и максимально возможная прибыль за оставшиеся годы (с (k+1) -го по n -й) составит F k+1 (t+1) . Если же в начале k -го года принимаем решение на замену оборудования, то мы продаем старое оборудование возраста t лет за цену S(t) , покупаем новое оборудование за цену P и эксплуатируем его в течение k -го года, что приносит за этот год прибыль r(0) . К началу следующего года возраст оборудования составит 1 год, и за все годы с (k+1) -го по n -й максимально возможная прибыль будет F k+1 (1) .

Из этих двух вариантов управления выбираем тот, который приносит большую прибыль. Уравнение Беллмана на каждом шаге имеет вид:

  • (1)

Функцию Беллмана для первого шага ( k=n ) легко вычислить — это максимально возможная прибыль только за последний n -й год:

  • (2)

Вычислив значение функции F n (t) по формуле (2), далее можно посчитать F n-1 (t) , затем F n-2 (t) и так далее до F 1 (t 0 ) . Функция F 1 (t 0 ) представляет собой максимально возможную прибыль за все годы (с 1-го по n -й).

Этот максимум достигается при некотором управлении, применяя которое в течение первого года, мы определяем возраст оборудования к началу второго года (в зависимости от того, какое управление является для первого года оптимальным, это будет 1 или t 0 +1).

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

2.1 Постановка и условие задачи. Решение задачи о замене оборудования

Программа «Решение задач о замене оборудования» предназначена для предприятий, занимающихся каким-либо родом деятельности, требующего использования определенного оборудования. В силу ряда причин, оборудование изнашивается физически, т.е. ломается и не подлежит ремонту или возникают такие неисправности, при которых проще купить новое оборудование, чем ремонтировать старое, либо изнашивается морально, т.е. темпы роста экономического развития отрасли производства этого оборудования очень велики. Таким образом, для того, чтобы «производство продукции» на таком оборудовании достигало максимального эффекта, его необходимо периодически менять. Эта программа подсчитывает количество лет, через которое нужно сменить оборудование, чтобы получить максимальную прибыль.

Для разработки программы «Решение задач о замене оборудования» был использован язык программирования Delphi XE3. В настоящее время эта среда объектно-ориентированного программирования очень популярна, ее основой является язык Object Pascal. Она позволяет создавать приложения различной степени сложности — от простейших программ до профессиональных, предназначенных для работы с базами данных. Кроме того, помощь по программе оформлена в виде chm документа с помощью программы HelpNDoc.

Вся работа с программой основана на работе с меню, с его описанием можно ознакомиться в пункте меню «Помощь/Содержание/Работа с меню».

Условие задачи

Таблица 1.

t

0

1

2

3

4

5

6

r(t)

10

10

9

8

8

7

6

S(t)

11

8

7

7

6

6

5

P = 11 — цена нового оборудования

Решение задачи:

1. Задать предполагаемый срок эксплуатации

2. Определить входные параметры ( r(t) — доход от эксплуатации в течение одного года оборудования возраста t лет и S(t) — остаточную стоимость оборудования)

3. Задать цену нового оборудования ( P)

Рассчитать функцию Беллмана F k (t) для каждого года эксплуатации по формуле: и определить, следует ли заменять используемое оборудование.

На первом шаге, где k = 6 и возможные состояния системы t = 1, 2, …, 6, расчет будем вести по формуле (2):

Полученные значения: F 6 (1) = 10, F6 (2) = 9, F6 (3) = 8, F6 (4) = 8, и т.д.

Далее расчет ведется по формуле(1):

Составим матрицу значений функции Беллмана:

Таблица 2. Матрица функций Беллмана.

k

t

1

2

3

4

5

6

1

52

2

44

42

3

35

34

33

4

27

25

25

24

5

19

17

16

15

15

6

10

9

8

8

7

6

Теперь составим матрицу логических значений (Сохранить/Заменить), следуя правилу:

  • ЕСЛИ >= то значение = «Сохранить», иначе, значение «Заменить».

Результат представлен в таблице 3:

Таблица 3. Матрица логических значений

k

t

1

2

3

4

5

6

1

С

2

С

С

3

С

С

З

4

С

С

З

З

5

С

С

С

С

З

6

С

С

С

С

С

С

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

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

2.2 Состав и структура ПО

Разработка программы производилась на языке программирования BorlandDelphi XE3 при помощи операционной системы Microsoft Windows XP Professional

При разработке программы, использовались компоненты Delphi:

String Grid — для заполнения справочников и отображения результатов

Edit — для ввода значений

Button — для создания кнопки

Label — создание меток, для удобства использования

Image — изображения

MainMenu — Меню программы

SaveDialog — сохранить диалог

OpenDialog — открыть диалог

GroupBox

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

Антивирусные программа (Dr.Web 4.44)

Программы архиваторы (WinRar v3.45).

утилиты Microsoft Office (Microsoft Word, Excel).

графические редакторы (PhotoShop v CS3)

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

Процессор:Intel Pentium(R) 3.00 GHz

Оперативная память: 1Gb DDR2 PC 533

Видео карта:NVIDIA Gee Force FX 6600 128Mb

Жесткий диск: 200 Gb

Монитор: 17″ 1280×1025@75Hz

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

n — планируемое время эксплуатации оборудования;

r(t) — доход от эксплуатации в течение одного года оборудования возраста t лет;

S(t) — остаточная стоимость оборудования;

P — цена нового оборудования.

Рисунок 1 — Внешний вид программы при запуске

Цифрами на рисунке отмечено:

1. Текстовое поле для ввода планируемого времени эксплуатации оборудования (n) ;

2. Кнопка «Далее», при нажатии на эту кнопку выстраивается таблица, состоящая из (n+2) колонок для ввода значений r(t) и S(t) ;

3. Таблица для ввода значений r(t) — доход от эксплуатации в течение одного года оборудования возраста t лет и S(t) — остаточная стоимость оборудования;

4. Текстовое поле для ввода цены;

5. Кнопка «Рассчитать», для начала расчета.

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

Введя все необходимые данные, пользователь нажимает кнопку «Рассчитать» и видит результат:

Рисунок 2 — Результат вычислений

В результате работы во второй таблице отображаются результаты вычисления функции Беллмана, а в третьей таблице значения «Сохранить/Заменить».

Если пользователь хочет изменить параметры задачи, необходимо нажать кнопку «Сначала».

Рассмотрим примеры использования программы:

Задача:

r(0) =10; r(1) =10; r(2) =9; r(3) =8; r(4) =8; r(5) =7; r(6) =6;

и остаточная стоимость оборудования S(t) в зависимости от возраста:

  • S(0)=11;
  • S(1)=8;
  • S(2)=7;
  • S(3)=7;
  • S(4)=6;
  • S(5)=6;
  • S(6)=5;

стоимость нового оборудования P =11.

Запускаем программу. Вводим данные.

Рисунок 3 — Демонстрация примера 1

Рассчитываем:

Рисунок 4 — Демонстрация примера 1

В третьей таблице в ячейке (3,3) водим значение «З». Это значит, что для максимизации прибыли оборудование необходимо заменить в третий год использования. Функция Беллмана при этом достигает значения 33 (из таблицы 2).

Пример 2.

Рисунок 5 — Демонстрация примера 2

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

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

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

Для отладки и тестирования алгоритма использовался табличный процессор MS Excel 2003.

Для разработки программного обеспечения использовалась среда программирования Delphi.

Программа имеет простой, интуитивно понятный интерфейс. Программа предусматривает защиту от ввода некорректных данных.

1. Адамадзиев К.Р. Магомедгаджиев Ш.М. Математическая экономика: Учебное пособие. — Махачкала: Издательско-полиграфический центр ДГУ, 2009.-117 с.

2. Адамадзиев К.Р., Адамадзиева А.К., Экономико-математические методы и модели: учебно-методическое пособие для практических и лабораторных занятий. — Махачкала: Изд. ДГУ, 2003.

3. Исследование операций в экономике /Н.Ш. Кремер, Б.А. Путко, И.М. Тришин, М.Н. Фридман; Под ред. проф. Н.Ш. Кремера. — М.: ЮНИТИ, 2000

4. Кузнецов А.В., Холод Н.И., Костевич Л.С. Руководство к решению задач по математическому программированию.- Мн.: Выш. шк., 2001.

5. Хазанова Л.Э. Математические методы в экономике: Учебное пособие.- М.: Издательство БЕК, 2002.

6. Шапкин А.С., Мазаева Н.П. Математические методы и модели исследования операций: Учебник.-М.: Издательско — торговая корпорация «Дашков и К о », 2003.

7. Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К. Глава 15. Динамическое программирование // Алгоритмы: построение и анализ = Introduction to Algorithms / Под ред. И. В. Красикова. — 2-е изд. — М.: Вильямс, 2005. — 1296 с. — ISBN 5-8459-0857-4

8. Sanjoy Dasgupta , Christos H. Papadimitriou, Umesh Vazirani Algorithms = Algorithms. — 1-е изд. — McGraw-Hill Science/Engineering/Math, 2006. — С. 336. — ISBN 0073523402

9. Щербина О. А. Методологические аспекты динамического программирования // Динамические системы, 2007, вып. 22. — c.21-36.

10. Щербина О.А. О несериальной модификации локального алгоритма декомпозиции задач дискретной оптимизации // Динамические системы, 2005, вып. 19-179 с.

11. Конюховский П.В. Математические методы исследования операций: пособие для подготовки к экзамену. — Спб.:Питер, 2001-192 с.

12. Давыдов, Э.Г. Исследование операций : учеб. пособие для студ. вузов / Э.Г. Давыдов. — М. : Высш. школа, 1990. — 383 с.

13. Курицкий Б.К. Поиск оптимальных решений средствами Excel 7.0. — Спб.: BHV, 1997.-384 с.

14. Шикин Е.В. Чхартишвили А.Г. Математические методы и модели в управлении: Учебник для ВУЗов. — М.: Дело, 2000.-440 с.