Математические методы и языки программирования: симплекс метод (CBRR2967)

Посмотреть архив целиком

- 25 -



КР 2203 – 81 11

Курсовой проект.









Тема:





Вариант 10.


СОДЕРЖАНИЕ:


Введение

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

  2. Математическая постановка задачи..

  3. Выбор метода реализации модели. Обоснование выбора..

  4. Схема алгоритма и его описание.

  5. Краткая характеристика ЭВМ и ее программного обеспечения.

  6. Обоснование выбора языка программирования.

  7. Решение задачи-теста для написания и отладки программы.

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

  9. Инструкции пользователю и описание программы.

Заключение.

Литература.

Приложение.


3

4

5

6

10

12

15

16

19

20

21

22

23


ВВЕДЕНИЕ

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

Большинство объектов, изучаемых экономической наукой, может быть охарактеризовано кибернетическим понятием сложная система.

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

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

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

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

2. ЭКОНОМИЧЕСКАЯ ПОСТАНОВКА ЗАДАЧИ


Цеху, располагающему тремя видами металлорежущего оборудования, планируется изготовить в течении определенного периода времени два изделия, причем первое изделие комплектуется на двух деталях А1 и А2, которые должны изготовляться в соответствии 2:1.

Второе изделие также комплектуется на двух деталях А3 и А4, которые изготовляются соответственно в соотношении 4:1

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


Таблица 2.1


Детали


Группы

оборудования

А1

А2

А3

А4

Эффективный фонд времени


Нормы трудоемкости


I

1.2

1.8

2.4

0

768

II

2.4

0

1.2

2.4

600

III

0

1.2

1.2

1.2

480


Определить производственную программу выпуска деталей А1, А2, А3, А4 при обеспечении заданной комплектности, а также максимально возможную загрузку наличных производственных мощностей.

3. МАТЕМАТИЧЕСКАЯ ПОСТАНОВКА ЗАДАЧИ



Общая модель:


m(i=1,2..m) - группы оборудования на цехе.

Ai - ресурсы по i-ой группе оборудования.

n(j=1,2..n) - виды деталей.

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

Xj - выпуск продукции j-го вида в оптимальном плане.

Kr - Соотношение деталей в изделии.




Система ограничений:


  1. Ресурсные ограничения:

n

a i j * x j A i (i=1,2,..,m)

j=1


  1. Реальность плана выпуска:

Xj 0


  1. Ограничение по комплектности:

Xk Kl (k=1,2,…,l); (r=1,2,….,p)

Xr Kp


Целевой функционал:

n

Fmax = Xj

j=1


3. ВЫБОР МЕТОДА РЕАЛИЗАЦИИ МОДЕЛИ.

ОБОСНОВАНИЕ МЕТОДА


Симплекс метод - универсальный метод для решения линейной системы уравнений или неравенств и линейного функционала.

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

  1. Ограничения вида «»- ресурсные ограничения. Справа находится то что мы используем на производстве, слева - то что получаем. При таких ограничения вводят дополнительные переменные с коэффициентом «+1», образующие единичный базис. В целевую функцию эти переменные войдут с коэффициентом «0».

  2. Ограничения вида «=». Часто бывает, что несмотря на то что ограничения имеют вид равенства, единичный базис не выделяется или трудно выделяется. В этом случае вводятся искусственные переменные для создания единичного базиса - Yi. В систему ограничений они входят с коэффициентом «1» , а в целевую функцию с коэффициентом «M», стремящимся к бесконечности (при Fmin - «+M», при Fmax - «-M»).

  3. Ограничения вида «» - Плановые ограничения. Дополнительные переменные (X), несущие определенный экономический смысл - перерасход ресурсов или перевыполнение плана, перепроизводство, добавляются с коэффициентом «-1», в целевую функцию - с коэффициентом «0». А искусственные переменные (Y) как в предыдущем случае.



Алгоритм симплекс метода.

(первая симплекс таблица)


Пусть система приведена к каноническому виду.


X1+ q1,m+1 Xm+1 + …. + q1,m+n Xm+n = h1

X2+ q1,m+1 Xm+1 + …. + q1,m+n Xm+n = h1

X3+ q1,m+1 Xm+1 + …. + q1,m+n Xm+n = h1

……………………………………………………………….

Xm+ qm,m+1 Xm+1 + …. + qm,m+n Xm+n =hm


В ней m базисных переменных, k свободных переменных. m+k=n - всего переменных.

Fmin= C1X1+ C2X2+ C3X3+....+ CnXn

Все hi должны быть больше либо равны нулю, где i=1,2...m. На первом шаге в качестве допустимого решения принимаем все Xj=0 (j=m+1,m+2,...,m+k). При этом все базисные переменные Xi=Hi.

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

Таблица 3.1.

Симплекс таблица.

C

Б

H

C1

C2

Cm

Cm+1

Cm+k




X1

X2

Xm

Xm+1

Xm+k

C1

C2

C3

:

:

Cm

X1

X2

X3

:

:

Xm

h1

h2

h3

:

:

hm

1

0

0

:

:

0

0

1

0

:

:

0

:

:

:

:

:

:

0

0

0

:

:

0

q1,m+1

q2,m+1

q3,m+1

:

:

qm,m+1

:

:

:

:

:

:

q1,m+k

q2,m+k

q3,m+k

:

:

qm,m+k


F=

F0





m

m+1

m+k



Первый столбец- коэффициенты в целевой функции при базисных переменных.

Второй столбец - базисные переменные.

Третий столбец - свободные члены (hi0).

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

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

Основное поле симплекс метода - система коэффициентов из уравнения.

Последняя строка - служит для того, чтобы ответить на вопрос: «оптимален план или нет».


Для первой итерации F0= ci*hi.

m - оценки они рассчитываются по формуле:

j = ciqij-cj.


Индексная строка позволяет нам судить об оптимальности плана:

  1. При отыскании Fmin в индексной строке должны быть отрицательные и нулевые оценки.

  2. При отыскании Fmax в индексной строке должны быть нулевые и положительные оценки.


Переход ко второй итерации:

Для этого отыскиваем ключевой (главный) столбец и ключевую (главную) строку.

Ключевым столбцом является тот в котором находится наибольший положительный элемент индексной строки при отыскании Fmin или наименьший отрицательный элемент при отыскании Fmax.

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

На пересечении строки и столбца находится разрешающий элемент.

На этом этапе осуществляется к переходу к последующим итерациям.


Переход к итерациям:

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

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

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

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

  5. Остальные элементы переносятся по формуле:




Метод искусственного базиса.

(Вторая симплекс таблица)


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

  1. Построение искусственного базиса и оптимизация функции суммы искусственных переменных, т.е. F0=Y1+Y2+…+Yn = 0 (Fmin). Если при этом F0=0, то искусственный базис мы вывели из состава переменных, переходим ко второй фазе – решаем задачу по первой симплекс таблице с действительными переменными. Если же F00, т.е. искусственный базис не выведен из состава переменных – ОЗЛП решений не имеет.

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


Замечания:

  1. При решении задач на max с искусственным базисом следует переходить к решению на min, меняя лишь только целевую функцию:

Fmax = - Fmin.

  1. При решении ОЗЛП с искусственным базисом особое внимание следует обратить на вычисление элементов индексных строк.

a) Для столбцов X вычисление элементов идет по формулам:

j = qij.

yi = y1+y2+…+yR.

Hi=F0.


Примечание: только для строк Y.


б) Для столбцов Y работает старая формула:

j = ciqij-cj.


  1. СХЕМА АЛГОРИТМА И ЕЕ ОПИСАНИЕ


1. Начало программы

  1. Процедура ввода данных

  2. Процедура привидения к каноническому виду

  3. Процедура построения симплекс таблицы

  4. Функция поиска ключевого столбца

  5. Функция поиска ключевой строки

  6. Проверка условия: Если в главной строке нулевой элемент.

  7. Процедура переноса в следующую итерацию главной строки.

  8. Проверка условия: Если в главном столбце нулевые элементы.

  9. Процедура переноса столбца в следующую итерацию.

11, 12. Процедура расчета остальных элементов по формуле.

13, 14. Функция исследования на max.

15, 16. Функция исследования на min.

  1. Процедура вывода оптимального решения.

  2. Конец программы.






5. КРАТКАЯ ХАРАКТЕРИСТИКА ЭВМ И ЕЕ

ПРОГРАМНОГО ОБЕСПЕЧЕНИЯ



Общие сведения о IBM PC


Когда произносят слова "персональный компьютер", обычно подразумевается не что иное, как компьютер типа IBM PC. Именно американская компания IBM в августе 1981 года объявила о выпуске самого первого компьютера, получившего название Personal Computer, или просто PC.


Впрочем, еще до создания IBM PC множеством разных фирм вы пускались компьютеры, которые было бы вполне уместно называть персональными. Даже весьма далекая от электроники фирма Coca - Cola пыталась выпускать собственную модель персонального компьютера!


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


Когда IBM вышла на рынок настольных компьютеров, казавшийся сомнительным и рискованным, разнобой среди персональных компьютеров довольно быстро пошел на убыль. Маленький персональный компьютер IBM PC на процессоре 8088 фирмы Intel оказался тем долгожданным стандартом, который с радостью поддержали многочисленные программисты и фирмы - изготовители прикладного программного обеспечения: наконец - то появился компьютер солидной фирмы, для которого можно было разрабатывать и успешно продавать большими тиражами достаточно сложные, совершенные и универсальные программы. По сути дела, компьютер IBM PC создал не только стабильный и обширный рынок персональных компьютеров, но и огромный рынок прикладного программного обеспечения, на котором за последние полтора десятилетия разбогатело множество венчурных фирм.


Вот яркий тому пример. Компьютер IBM PC почти с самого начала работал под управлением дисковой операционной системы DOS, которую разработала для IBM маленькая и никому тогда не известная фирма Microsoft. Сегодня Microsoft - бесспорный флагман индустрии программного обеспечения, одна из богатейших фирм мира, выпускающая не только операционные средства MS - DOS и Windows для управления компьютерами, но и различные прикладные пакеты. А основатель и руководитель Microsoft Билл Гейтс, несмотря на молодость, один из самых богатых людей.

Разумеется, персоналка IBM PC оказалась только первым шагом в верном направлении. Затем фирма IBM выпустила множество моделей персональных компьютеров XT, AT, PS/2 и PS/1 на различных процессорах Intel 80286, 80386, 80486, Pentium. Все эти компьютеры предназначены для работы под управлением операционных систем DOS, WINDOW’95, OS/2.


Основной поставщик процессоров для IBM-совместимых компьютеров является фирма INTEL. В последнее время многие другие фирмы, такие как AMD, CYREX стали выпускать собственные процессоры, которые полностью совместимы с процессорами фирмы INTEL.


Фирма AMD выпускает более дешевые, но не уступающие по качеству, а иногда и превосходящие процессоры (например процессоры серии K6). И многие фирмы, которые выпускают персональные компьютеры, стали переходить с процессоров фирмы INTEL на процессоры фирмы AMD.


Операционная система MS DOS и другие


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

Главным достоинством MS DOS является ее способность управлять устройствами памяти на магнитных дисках (именно поэтому она названа - дисковая операционная система).


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

В настоящее время существуют более современные операционные системы, с гораздо большим набором возможностей. Это WINDOWS’ 95, OS/2. Но так как эти операционные системы диктуют пользователю «свои условия», такие как работать в окне, программы должны иметь стандартные меню и общий вид, многие программисты делают свои программы по DOS, так как она позволяет более гибко использовать возможности компьютера.



Рекомендуемая конфигурация для программы SIMPLEX METHOD:


Данной программе требуется минимальная конфигурация:


Процессор 386 (рекомендуется 486 or high)

1М оперативной памяти.

2М жесткого диска.

VGA monitor

6. ОБОСНОВАНИЕ ВЫБОРА ЯЗЫКА ПРОГРАММИРОВАНИЯ



Язык Borland Pascal 7.0 обладает свойствами использования графики, строковых типов и констант, любых видов переменных, имеет возможность использования модулей (как уже существующих, так и созданных пользователями). Язык Borland Pascal 7.0 - язык высокого уровня, на нем писать программы намного удобнее так, как языки высокого уровня имеют резервированные слова, которые замещают ряд кодовых символов на языках низкого уровня. Язык Borland Pascal 7.0 имеет практичный интерфейс, который позволяет быстро и удобно совершить те или иные действия. Мой выбор остановился на этом языке.



7. РЕШЕНИЕ ЗАДАЧИ ТЕСТА ДЛЯ

НАПИСАНИЯ И ОТЛАДКИ ПРОГРАММЫ




Для нашей конкретной задачи ресурсные ограничения имеют вид:


1.2X1 + 1.8X2 + 2.4X3 768

2.4X1 + 1.2X3 + 2.4X4 600

1.2X2 + 1.2X3 + 1.2X4 480



Ограничения по комплектности:

A1 2

A2 1

A1 = 2A2

A3 4

A4 1

A3 = 4A4


Отсюда составляем систему уравнений:


X1 - 2X2 = 0

X3 - 4X4 = 0


Итак, система ограничений задачи состоит из 5 уравнений и целевой функции:

Fmax = X1+X2+X3+X4


Приводим систему к каноническому виду:


1.2X1 + 1.8X2 + 2.4X3 +X5 768

2.4X1 + 1.2X3 + 2.4X4 +X6 600

1.2X2 + 1.2X3 + 1.2X4 +X7 480

X1 - 2X2 +Y1 = 0

X3 - 4X4 +Y2 = 0


Приводим целевую функцию к каноническому виду:

Fmax = X1+X2+X3+X4 + 0X5+0X6+0X7-My1-My2


Так как введены искусственные переменные – исследуем на минимум.

Fmin = -X1-X2-X3-X4 - 0X5-0X6-0X7+My1+My2




Таблица 7.1

Симплекс таблица



-1

-1

-1

-1

0

0

0

M

M

C

Б

H

X1

X2

X3

X4

X5

X6

X7

Y1

Y2

0

0

0

M

M

X5

X6

X7

Y1

Y2

768

600

480

0

0

1.2

2.4

0

1

0

1.8

0

1.2

-2

0

2.4

1.2

1.2

0

1

0

2.4

1.2

0

-4

1

0

0

0

0

0

1

0

0

0

0

0

1

0

0

0

0

0

1

0

0

0

0

0

1



0

1

-2

1

-4

0

0

0

0

0

0

0

0

M

-1

X5

X6

X7

Y1

X3

768

600

480

0

0

1.2

2.4

0

1

0

1.8

0

1.2

-2

0

0

0

0

0

1

9.6

7.2

6.0

0

-4

1

0

0

0

0

0

1

0

0

0

0

0

1

0

0

0

0

0

1

0




0

1

-2

0

0

0

0

0

0


0

0

0

-1

-1

X5

X6

X7

X1

X3

768

600

480

0

0

0

0

0

1

0

4.2

4.8

1.2

-2

0

0

0

0

0

1

9.6

7.2

6.0

0

-4

1

0

0

0

0

0

1

0

0

0

0

0

1

0

0





0

0

3

0

5

0

0

0



0

0

-1

-1

-1

X5

X6

X4

X1

X3

0

24

80

0

320

0

0

0

1

0

2.28

3.36

0.2

-2

0.8

0

0

0

0

1

0

0

1

0

0

1

0

0

0

0

0

1

0

0

0

-1.6

-1.2

0.16

0

0.66





-400

0

2

0

0

0

0

-0.83



-1

0

-1

-1

-1

X2

X6

X4

X1

X3

0

24

80

0

320

0

0

0

1

0

1

0

0

0

0

0

0

0

0

1

0

0

1

0

0

0.43

-1.47

-0.08

0.87

-0.35

0

1

0

0

0

-0.7

1.15

0.3

-1.4

1.22





-400

0

0

0

0

-0.87

0

0.57



-1

0

-1

-1

-1

X2

X7

X4

X1

X3

14.54

20.72

73.63

29.08

294.5

0

0

0

1

0

1

0

0

0

0

0

0

0

0

1

0

0

1

0

0

-0.45

-1.27

0.3

-0.9

1.21

0.6

0.86

-0.26

1.21

-1.06

0

1

0

0

0





-410

0

0

0

0

-0.15

-0.49

0





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


Fmax = - Fmin = 410 – максимально возможный выпуск продукции (шт).

X1 = 29, 08 – Детали А1 (шт).

X2 = 14, 54 – Детали А2 (шт).

X3 = 294, 52 – Детали А3 (шт).

X4 = 73, 63 – Детали А4 (шт).

X7 = 20, 72 – Недостающие ресурсы (станко-часы).


8. АНАЛИЗ ПОЛУЧЕННЫХ РЕЗУЛЬТАТОВ



Решая задачу симплекс методом мы получили:


Детали A1 так относятся к деталям A2, как 2:1, т.е. деталей A1 – 30 штук, а деталей A2 – 15 штук. Соотношение, поставленное условием задачи, выполнено.

Соотношение между деталями A3 и A4 тоже выполнено. Детали A3 должны относиться к деталям A4 как 4:1. Это верно, так как деталей A3 – 292 штуки, а деталей A4 – 73 штуки.


Но на третьей группе оборудования идет недоиспользование ресурсов на 20 станко-часов.


Максимально возможная загрузка имеющегося оборудования – 410 деталей.



При решении с помощью компьютера получились более точные результаты, которые приблизительно равны ручным.


9. ИНСТРУКЦИИ ПОЛЬЗОВАТЕЛЮ И ОПИСАНИЕ

ПРОГРАММЫ


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

К данной курсовой работе прилагается инсталляционная дискета с данной оболочкой и программой SIMPLEX.


Она может быть установлена в двух типах:

  • Для преподавателя, устанавливается с текстами программ.

  • Для пользователей, только запускаемые модули.


В любом случае вы запускаете ТОЛЬКО файл KoSer.EXE. У вас запустится графическая оболочка.

В этой оболочке будут следующие иконки:


  • Simplex Method, это сама программа для решения уравнений.

  • Просмотр результатов, Чтобы просмотреть результат после решения.

  • Tetris, обычная игра для развлечения.

  • MsDos, Временный выход в DOS

  • Exit, выход из оболочки KoSer.


В программе «Simplex Method» есть кнопки «Добавить строку», «Добавить столбец», «Удалить строку», «Удалить столбец», «Рассчитать», «Решить на MAX или MIN», «Решение ЦЕЛОЧИСЛЕННОЕ или НЕ ЦЕЛОЧИСЛЕННОЕ».

Переход к этим кнопкам осуществляется клавишей «TAB» или (рекомендуется) с помощью мышки.

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

Смена знака осуществляется клавишей «пробел».

Выход – крестик в верхнем углу экрана или клавиша «ESC».



ЗАКЛЮЧЕНИЕ


Данная курсовая работа включает в себя два предмета: «языки программирования» и «математические методы в экономике».


В курсовой работе были рассмотрены следующие вопросы:

  • Рассмотрен и дан алгоритм симплекс метода.

  • Дана краткая характеристика ЭВМ, включая историю появления и описание операционной системы MSDOS.

  • Рассмотрен выбор языка программирования.

  • Написана программа для решения данной и многих других задач.

  • Даны инструкции пользователю.


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


Единственное ограничение, количество столбцов не должно превышать 7 и строк не должно превышать 10.


Программа считает с точностью 2 знака после запятой.



Список используемой литературы:


  1. Лищенко «Линейное и нелинейное программирование», 1987


  1. А.Н. Карасев, Н.Ш. Кремер, Т.Н. Савельева

«Математические методы в экономике», 1987




















ПРИЛОЖЕНИЯ


Случайные файлы

Файл
14996.rtf
37005.rtf
19817.rtf
154706.rtf
150836.rtf