Реферат

Реферат Оптимизация производственной программы заданной комплектности

Работа добавлена на сайт bukvasha.net: 2015-10-28

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 26.12.2024



Windows

Хорошие Товары от Спекулянта. Широкий выбор.



Приложение 3

ЛИСТИНГ РЕЗУЛЬТАТОВ ПРОГРАММЫ Simplex Method

     C      Б        H            X1          X2          X3          X4          X5          X6          X7          Y1          Y2         

      0.00  X5      760.00        1.20        1.80        2.40        0.00        1.00        0.00        0.00        0.00        0.00 

      0.00  X6      600.00        2.40        0.00        1.20        2.40        0.00        1.00        0.00        0.00        0.00 

      0.00  X7      480.00        0.00        1.20        1.20        1.20        0.00        0.00        1.00        0.00        0.00 

+M          Y1        0.00        1.00       -2.00        0.00        0.00        0.00        0.00        0.00        1.00        0.00 

+M          Y2        0.00        0.00        0.00        1.00       -4.00        0.00        0.00        0.00        0.00        1.00 

                      0.00        1.00       -2.00        1.00       -4.00        0.00        0.00        0.00        0.00        0.00  

Ключевой столбец: 3  Ключевая строка: 5 

     C      Б        H            X1          X2          X3          X4          X5          X6          X7          Y1         

      0.00  X5      760.00        1.20        1.80        0.00        9.60        1.00        0.00        0.00        0.00 

      0.00  X6      600.00        2.40        0.00        0.00        7.20        0.00        1.00        0.00        0.00 

      0.00  X7      480.00        0.00        1.20        0.00        6.00        0.00        0.00        1.00        0.00 

+M          Y1        0.00        1.00       -2.00        0.00        0.00        0.00        0.00        0.00        1.00 

     -1.00  X3        0.00        0.00        0.00        1.00       -4.00        0.00        0.00        0.00        0.00 

                      0.00        1.00       -2.00        0.00        0.00        0.00        0.00        0.00        0.00 

Ключевой столбец: 1  Ключевая строка: 4 

     C      Б        H            X1          X2          X3          X4          X5          X6          X7         

      0.00  X5      760.00        0.00        4.20        0.00        9.60        1.00        0.00        0.00 

      0.00  X6      600.00        0.00        4.80        0.00        7.20        0.00        1.00        0.00 

      0.00  X7      480.00        0.00        1.20        0.00        6.00        0.00        0.00        1.00 

     -1.00  X1        0.00        1.00       -2.00        0.00        0.00        0.00        0.00        0.00 

     -1.00  X3        0.00        0.00        0.00        1.00       -4.00        0.00        0.00        0.00 

                      0.00        0.00        3.00        0.00        5.00        0.00        0.00        0.00 

Ключевой столбец: 4  Ключевая строка: 1 

     C      Б        H            X1          X2          X3          X4          X5          X6          X7         

     -1.00  X4       79.17        0.00        0.44        0.00        1.00        0.10        0.00        0.00 

      0.00  X6       30.00        0.00        1.65        0.00        0.00       -0.75        1.00        0.00 

      0.00  X7        5.00        0.00       -1.43        0.00        0.00       -0.63        0.00        1.00 

     -1.00  X1        0.00        1.00       -2.00        0.00        0.00        0.00        0.00        0.00 

     -1.00  X3      316.67        0.00        1.75        1.00        0.00        0.42        0.00        0.00 

                   -395.83        0.00        0.81        0.00        0.00       -0.52        0.00        0.00 

Ключевой столбец: 2  Ключевая строка: 2 

     C      Б        H            X1          X2          X3          X4          X5          X6          X7         

     -1.00  X4       71.21        0.00        0.00        0.00        1.00        0.30       -0.27        0.00 

     -1.00  X2       18.18        0.00        1.00        0.00        0.00       -0.45        0.61        0.00 

      0.00  X7       30.91        0.00        0.00        0.00        0.00       -1.27        0.86        1.00 

     -1.00  X1       36.36        1.00        0.00        0.00        0.00       -0.91        1.21        0.00 

     -1.00  X3      284.85        0.00        0.00        1.00        0.00        1.21       -1.06        0.00 

                   -410.61        0.00        0.00        0.00        0.00       -0.15       -0.49        0.00 

В 5  -й итерации было получено оптимальное решение

т.к. при исследовании на МИНИМУМ индексная строка не содержит положительных элементов.

При этом:

Fmax=    410.61 

  X4=     71.21 

  X2=     18.18 

  X7=     30.91 

  X1=     36.36 

  X3=    284.85 

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

Тема:

“Оптимизация производственной программы заданной комплектности”




Вариант 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        

http://refak.ru/u/7/7619/Index1.files/image002.gifhttp://refak.ru/u/7/7619/Index1.files/image003.gifhttp://refak.ru/u/7/7619/Index1.files/image004.gif

Детали



http://refak.ru/u/7/7619/Index1.files/image005.gifhttp://refak.ru/u/7/7619/Index1.files/image006.gifhttp://refak.ru/u/7/7619/Index1.files/image007.gifhttp://refak.ru/u/7/7619/Index1.files/image008.gifГруппы

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

А1

А2

А3

А4

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

http://refak.ru/u/7/7619/Index1.files/image009.gifhttp://refak.ru/u/7/7619/Index1.files/image010.gifhttp://refak.ru/u/7/7619/Index1.files/image011.gifhttp://refak.ru/u/7/7619/Index1.files/image012.gifhttp://refak.ru/u/7/7619/Index1.files/image013.gif

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



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

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

Xj ³ 0

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

http://refak.ru/u/7/7619/Index1.files/image014.gif                   Xk         Kl              (k=1,2,…,l);   (r=1,2,….,p)

http://refak.ru/u/7/7619/Index1.files/image015.gifhttp://refak.ru/u/7/7619/Index1.files/image016.gifhttp://refak.ru/u/7/7619/Index1.files/image017.gif                    Xr         Kp

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

                                n

Fmax  = å Xj

                           j=1

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


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

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

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

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

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

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

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

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

http://refak.ru/u/7/7619/Index1.files/image018.gifПусть система приведена к каноническому виду.

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.

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

http://refak.ru/u/7/7619/Index1.files/image019.gifhttp://refak.ru/u/7/7619/Index1.files/image020.gifhttp://refak.ru/u/7/7619/Index1.files/image021.gifhttp://refak.ru/u/7/7619/Index1.files/image022.gifhttp://refak.ru/u/7/7619/Index1.files/image023.gifhttp://refak.ru/u/7/7619/Index1.files/image024.gifhttp://refak.ru/u/7/7619/Index1.files/image025.gifhttp://refak.ru/u/7/7619/Index1.files/image026.gifhttp://refak.ru/u/7/7619/Index1.files/image027.gifhttp://refak.ru/u/7/7619/Index1.files/image028.gifC

Б

H

C1

C2



Cm

Cm+1



Cm+k

http://refak.ru/u/7/7619/Index1.files/image029.gif





X1

X2



Xm

Xm+1



Xm+k

http://refak.ru/u/7/7619/Index1.files/image030.gifC1

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

http://refak.ru/u/7/7619/Index1.files/image031.gif

F=

F0

D1

D2



Dm

Dm+1



Dm+k

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

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

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

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

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

        

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

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

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

D1, D2, D3,..., Dm - оценки они рассчитываются по формуле:

D j = å ciqij-cj.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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





http://refak.ru/u/7/7619/Index1.files/image033.gif







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

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

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

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

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

Замечания:

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

Fmax = - Fmin.

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

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

     D j = å qij.

å yi = y1+y2+…+yR.

åHi=F0.

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

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

D j = å ciqij-cj.




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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 


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. РЕШЕНИЕ ЗАДАЧИ ТЕСТА ДЛЯ

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

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

http://refak.ru/u/7/7619/Index1.files/image034.gif1.2X1     +  1.8X2   + 2.4X3                    £ 768                                               

2.4X1     +                 1.2X3 + 2.4X4           £ 600                                               

                 1.2X2   + 1.2X3  + 1.2X4           £ 480

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

http://refak.ru/u/7/7619/Index1.files/image035.gifhttp://refak.ru/u/7/7619/Index1.files/image036.gifhttp://refak.ru/u/7/7619/Index1.files/image037.gifhttp://refak.ru/u/7/7619/Index1.files/image038.gifhttp://refak.ru/u/7/7619/Index1.files/image039.gifhttp://refak.ru/u/7/7619/Index1.files/image040.gifhttp://refak.ru/u/7/7619/Index1.files/image041.gifhttp://refak.ru/u/7/7619/Index1.files/image042.gifA1     2

A2     1

A1 = 2A2

A3      4

A4      1

A3 = 4A4

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

http://refak.ru/u/7/7619/Index1.files/image043.gif




X1         -      2X2                                                         = 0                                                  

                                     X3  -    4X4          = 0                                                  

        

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

Fmax = X1+X2+X3+X4

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

http://refak.ru/u/7/7619/Index1.files/image044.gif1.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

http://refak.ru/u/7/7619/Index1.files/image045.gifhttp://refak.ru/u/7/7619/Index1.files/image046.gifhttp://refak.ru/u/7/7619/Index1.files/image047.gifhttp://refak.ru/u/7/7619/Index1.files/image048.gifhttp://refak.ru/u/7/7619/Index1.files/image049.gifhttp://refak.ru/u/7/7619/Index1.files/image050.gifhttp://refak.ru/u/7/7619/Index1.files/image051.gifhttp://refak.ru/u/7/7619/Index1.files/image052.gifhttp://refak.ru/u/7/7619/Index1.files/image053.gifhttp://refak.ru/u/7/7619/Index1.files/image054.gifhttp://refak.ru/u/7/7619/Index1.files/image055.gifhttp://refak.ru/u/7/7619/Index1.files/image056.gifСимплекс таблица

http://refak.ru/u/7/7619/Index1.files/image057.gif





-1

-1

-1

-1

0

0

0

M

M

C

Б

H

X1

X2

X3

X4

X5

X6

X7

Y1

Y2

http://refak.ru/u/7/7619/Index1.files/image058.gifhttp://refak.ru/u/7/7619/Index1.files/image059.gif0

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

http://refak.ru/u/7/7619/Index1.files/image060.gifhttp://refak.ru/u/7/7619/Index1.files/image061.gif



0

1

-2

1

-4

0

0

0

0

0

http://refak.ru/u/7/7619/Index1.files/image062.gifhttp://refak.ru/u/7/7619/Index1.files/image063.gif0

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



http://refak.ru/u/7/7619/Index1.files/image064.gif



0

1

-2

0

0

0

0

0

0



http://refak.ru/u/7/7619/Index1.files/image065.gif0

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





http://refak.ru/u/7/7619/Index1.files/image066.gif



0

0

3

0

5

0

0

0





http://refak.ru/u/7/7619/Index1.files/image067.gifhttp://refak.ru/u/7/7619/Index1.files/image068.gif0

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





http://refak.ru/u/7/7619/Index1.files/image069.gifhttp://refak.ru/u/7/7619/Index1.files/image070.gif



-400

0

2

0

0

0

0

-0.83





http://refak.ru/u/7/7619/Index1.files/image071.gifhttp://refak.ru/u/7/7619/Index1.files/image072.gif-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





http://refak.ru/u/7/7619/Index1.files/image073.gifhttp://refak.ru/u/7/7619/Index1.files/image074.gif



-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

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

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




ПРИЛОЖЕНИЯ

PROGRAM SIMPLEX_METOD;

USES CRT;

LABEL ZN,ST,ELL,_END;

  TYPE MAS=ARRAY[1..30] OF REAL;

       MASB=ARRAY[1..30] OF STRING[3];

       MASX=ARRAY[1..30,1..30] OF REAL;

VAR Fo,FunctPr,B,H,Hnew,C,Cnew,CPr,CPrnew,FX:MAS;

    X,Xnew:MASX;

    BS,Bvsp,ZNAC:MASB;

    MIN,I1,I,J,Kx,Ky,Kit,NachKell,NachY,K_st:INTEGER;

    PriznacY,KLstr,KLst,ErrCode,Dop_X:INTEGER;

    P,P1,Mo,F0,Epsilon,Z:REAL;

    VSP,S,PrGomory:STRING;

    F:TEXT;

    DPx,DPy,Fm,Kell,Kstr:INTEGER;

                     { Функция создания индексов }

FUNCTION SIMVB(V:INTEGER;S:CHAR):STRING;

  VAR M,Z:STRING;

BEGIN

 STR(V,M);

 Z:=S+M;

 SIMVB:=Z;

END;

                     { Процедура записи данных в файл }

PROCEDURE SAVE(X1:REAL;K:STRING;Mstr:INTEGER);

VAR V:STRING;

BEGIN

ASSIGN(F,'SIMPLEX.DAT');

APPEND(F);

CASE Mstr OF

 0:WRITELN(F,'');

 1:BEGIN

   IF K=' ' THEN STR(X1:1:0,V) ELSE STR(X1:10:4,V);

    WRITE(F,V);

    WRITE(F,'  ');

   END;

 2:WRITE(F,K);

 3:WRITELN(F,K);

END;

CLOSE(F);

END;

                     { Определение дополнительных переменных }

PROCEDURE DOP_PER;

 BEGIN

   IF ZNAC[I1]='=' THEN

      BEGIN

       Kell:=Kell+1;Bvsp[Kell]:=SIMVB(DPy,'Y');

       DPy:=DPy+1;

       Xnew[I1,Kell]:=1;

       IF Fm=1 THEN FX[Kell]:=-1 ELSE FX[Kell]:=1;

       FunctPr[Kell]:=1;

       FOR I:=1 TO Kstr DO

        IF I<>I1 THEN Xnew[I,Kell]:=0;

      END;

   IF ZNAC[I1]='>=' THEN

      BEGIN

       Kell:=Kell+1;Bvsp[Kell]:=SIMVB(DPx,'X');

      DPx:=DPx+1;Dop_X:=Dop_X+1;

       Xnew[I1,Kell]:=-1;FX[Kell]:=0;

       FOR I:=1 TO Kstr DO

        IF I<>I1 THEN Xnew[I,Kell]:=0;

       Kell:=Kell+1;Bvsp[Kell]:=SIMVB(DPy,'Y');

       DPy:=DPy+1;

       Xnew[I1,Kell]:=1;

       IF Fm=1 THEN FX[Kell]:=-1 ELSE FX[Kell]:=1;

       FunctPr[Kell]:=1;

       FOR I:=1 TO Kstr DO

        IF I<>I1 THEN Xnew[I,Kell]:=0;

      END;

   IF ZNAC[I1]='<=' THEN

      BEGIN

      Kell:=Kell+1;Bvsp[Kell]:=SIMVB(DPx,'X');

      DPx:=DPx+1;Dop_X:=Dop_X+1;

       Xnew[I1,Kell]:=1;FX[Kell]:=0;

       FOR I:=1 TO Kstr DO

        IF I<>I1 THEN Xnew[I,Kell]:=0;

      END;

 END;

                     { Процедура сокращения Y }

PROCEDURE SOKR;

VAR P:INTEGER;

 BEGIN

  Kell:=Kell-1;

  FOR P:=NachKell+DOP_X TO Kell DO

   IF Bvsp[P]=BS[KLstr] THEN BEGIN

                         FOR J:=P TO Kell DO

                         Bvsp[J]:=Bvsp[J+1];

                         FunctPr[J]:=FunctPr[J+1];

                         Fx[J]:=Fx[J+1];

                         FOR I:=1 TO Kstr DO

                         Xnew[I,J]:=Xnew[I,J+1]

                             END;

 END;

                     { Процедура, выполняющая метод Гомори }

PROCEDURE GOMORY;

VAR MAX,Z:REAL;

BEGIN

 KLstr:=1;

  MAX:=H[1]-INT(H[1]);

 FOR I1:=2 TO Kstr DO

   IF (H[I1]-INT(H[I1]))>=MAX THEN BEGIN MAX:=H[I1]; KLstr:=I1;END;

  Kstr:=Kstr+1;

 Hnew[Kstr]:=H[KLstr]-INT(H[KLstr]);

  FOR I1:=1 TO Kell DO

   BEGIN

    Z:=INT(X[KLstr,I1]);

    IF X[KLstr,I1]<0 THEN Z:=Z-1;

    Xnew[Kstr,I1]:=X[KLstr,I1]-Z;

   END;

ZNAC[Kstr]:='>=';

END;

                     { Процедура, выполняющая Симплекс метод }

PROCEDURE SIMPLEX;

  LABEL POVZNAC,NACH;

BEGIN

         { Подготовка к вводу данных }

NachKell:=Kell;

DPx:=Kell+1;DPy:=1;

Kx:=1;Ky:=4;

Epsilon:=0.00001;

CLRSCR;

WRITELN('Введите систему уравнений:');

WRITELN('(коэффициенты при всех Х,знак и свободные члены)');

         { Ввод данных }

  FOR I:=1 TO Kstr DO

   BEGIN

POVZNAC:

    WRITELN('Введите ',I,'-е уравнение:');

         { Ввод коэффициентов при X в I-том уравнении }

    FOR J:=1 TO Kell DO

     BEGIN

      GOTOXY(Kx,Ky);Kx:=Kx+6;

      READLN(Xnew[I,J]);

     END;

         { Ввод знака в I-том уравнении }

    Kx:=Kx+6;GOTOXY(Kx,Ky);READLN(ZNAC[I]);

              {Проверка введенного знака на правильность}

    IF (ZNAC[I]<>'>=') AND (ZNAC[I]<>'=') AND (ZNAC[I]<>'<=')

    THEN BEGIN

          WRITELN('Неправильно задан знак');

          Ky:=Ky+3;Kx:=1;

          GOTO POVZNAC;

         END;

    IF (ZNAC[I]='=') OR (ZNAC[I]='>=') THEN PriznacY:=1;

         { Ввод свободного члена в I-том уравнении }

    Kx:=Kx+6;GOTOXY(Kx,Ky);READ(B[I]);

    Kx:=1;

    Ky:=Ky+2;

   END;

WRITELN('Введите коэффициенты при Х в целевой функции:');

         { Ввод коэффициентов при Х в целевой функции }

   FOR J:=1 TO Kell DO

    BEGIN

     GOTOXY(Kx,Ky);Kx:=Kx+6;

     READ(FX[J]);

    END;

         { Подготовка  индексации X }

FOR J:=1 TO Kell DO

 Bvsp[J]:=SIMVB(J,'X');

         { Определение дополнительных переменных }

FOR I1:=1 TO Kstr DO

 DOP_PER;

         { Замена оптимальной функции с MAX на MIN при наличии

           в базисе Y-ков если идет исследование на минимум    }

MIN:=0;

IF (Fm=1) AND (PriznacY=1) THEN

   BEGIN

    MIN:=Fm;Fm:=2;

     FOR J:=1 TO Kell DO

      FX[J]:=-FX[J];

   END;

         { Сортировка дополнительных переменных по индексу }

FOR I1:=NachKell+1 TO Kell DO

  FOR J:=I1+1 TO Kell DO

  IF Bvsp[J]<Bvsp[I1] THEN

     BEGIN

      VSP:=Bvsp[J];Bvsp[J]:=Bvsp[I1];Bvsp[I1]:=VSP;

      P:=FX[J];FX[J]:=FX[I1];FX[I1]:=P;

      P:=FunctPr[J];FunctPr[J]:=FunctPr[I1];FunctPr[I1]:=P;

      FOR I:=1 TO Kstr DO

      BEGIN

       P:=Xnew[I,I1];Xnew[I,I1]:=Xnew[I,J];Xnew[I,J]:=P;

      END;

     END;

Kit:=1;

CLRSCR;

         { Подготовка столбцов C,B,H }

     FOR I:=1 TO Kstr DO

      BEGIN

       Hnew[I]:=B[I];

      FOR J:=NachKell+1 TO Kell DO

          IF Xnew[I,J]=1 THEN

             BEGIN

              BS[I]:=Bvsp[J];

              Cnew[I]:=FX[J];

              CPrnew[I]:=FunctPr[J];

        END;

             END;

NACH:;

REPEAT

PriznacY:=0;

         { Передача данных в исходные переменные c обнулением чисел,

           по модулю меньших чем 0.00001                            }

FOR I:=1 TO Kstr DO

 BEGIN

 IF INT(10000*Hnew[I])=0 THEN H[I]:=+0 ELSE H[I]:=Hnew[I];

 C[I]:=Cnew[I];

 CPr[I]:=CPrnew[I];

 IF BS[I][1]='Y' THEN PriznacY:=1;

 FOR J:=1 TO Kell DO

  IF INT(10000*Xnew[I,J])=0 THEN X[I,J]:=+0 ELSE X[I,J]:=Xnew[I,J];

   END;

         { Обнуление и вывод индексации элементов индексной строки }

SAVE(0,'     C      Б        H            ',2);

FOR J:=1 TO Kell DO

 BEGIN

 SAVE(0,Bvsp[J],2);

 P1:=LENGTH(Bvsp[J]);

 IF P1=2 THEN SAVE(0,' ',2);

 SAVE(0,'         ',2);

 Fo[J]:=0;

 END;

 SAVE(0,'',0);

         { Вывод Симплекс-таблицы }

P1:=0;

FOR I:=1 TO Kstr DO

 BEGIN

  IF CPr[I]=1 THEN

      IF C[I]<0 THEN SAVE(0,'-M          ',2)

                ELSE SAVE(0,'+M          ',2)

  ELSE SAVE(C[I],'',1);

  SAVE(0,BS[I],2);

  P1:=LENGTH(BS[I]); IF P1=2 THEN SAVE(0,' ',2);

  SAVE(0,' ',2);SAVE(H[I],'',1);

  FOR J:=1 TO Kell DO

   SAVE(X[I,J],'',1);

  SAVE(0,'',0);

 END;

         { Вычисление значений в индексной строке }

F0:=0;

FOR J:=1 TO Kell DO

       Fo[J]:=0;

FOR I1:=1 TO Kstr DO

  BEGIN

  IF PriznacY=1 THEN

      IF BS[I1][1]='Y' THEN

         BEGIN

          F0:=F0+H[I1];

          FOR J:=1 TO Kell DO


            Fo[J]:=Fo[J]+X[I1,J];

         END;

  IF PriznacY=0 THEN

     BEGIN

      F0:=F0+H[I1]*C[I1];

      FOR J:=1 TO Kell DO

        Fo[J]:=Fo[J]+C[I1]*X[I1,J];

     END;

FOR J:=1 TO Kell DO

 IF Bvsp[J][1]='Y' THEN Fo[J]:=+0

                   ELSE IF ABS(Fo[J])<Epsilon THEN Fo[J]:=+0;

  END;

         { Вывод значений целевой функции }

SAVE(0,'                ',2);SAVE(F0,'',1);

FOR J:=1 TO Kell DO

 BEGIN

  IF PriznacY<>1 THEN Fo[J]:=Fo[J]-FX[J];

  SAVE(Fo[J],'',1);

 END;

SAVE(0,'',0);

         { Проверка условия оптимальности }

P:=0;

FOR J:=1 TO Kell DO

  IF Fm=1 THEN IF Fo[J]<-Epsilon THEN

                  BEGIN

                   P:=1;

                   CONTINUE;

                  END  ELSE

          ELSE IF Fo[J]>Epsilon THEN

                  BEGIN

                   P:=1;

                   CONTINUE;

                  END;

IF P<>1 THEN

   BEGIN

    SAVE(0,'В ',2);SAVE(Kit,' ',1);

    SAVE(0,'-й итерации было получено оптимальное решение',3);

    SAVE(0,'т.к. при исследовании на ',2);

    IF Fm=1 THEN

     SAVE(0,'МАКСИМУМ индексная строка не содержит отицательных элементов.',3)

            ELSE

     SAVE(0,'МИНИМУМ индексная строка не содержит положительных элементов.',3);

    FOR I1:=1 TO Kstr DO

     IF BS[I1][1]='Y' THEN

        BEGIN

         SAVE(0,'Но т.к. из базиса не выведены все Y, то ',3);

         SAVE(0,'можно сделать вывод, что РЕШЕНИЙ НЕТ',3);

         HALT;

        END;

         { Округление значений массива Х до целого числа,

           если разность округленного и обычного значений

           по модулю меньше чем 0.00001                   }

FOR I:=1 TO Kstr DO

 BEGIN

       Z:=ROUND(H[I]);

       IF ABS(Z-H[I])<Epsilon THEN H[I]:=ROUND(H[I]);

  FOR J:=1 TO Kell DO

   BEGIN

          IF X[I,J]<0 THEN Z:=ROUND(X[I,J]);

          IF ABS(Z-X[I,J])<Epsilon THEN X[I,J]:=ROUND(X[I,J]);

   END;

 END;

         { Проверка целочисленности решения }

P1:=0;

FOR I:=1 TO Kstr DO

 BEGIN

 IF INT(10000*FRAC(H[I]))<>0 THEN BEGIN P1:=1;CONTINUE; END;

        FOR J:=1 TO Kell DO

         IF BS[I]=Bvsp[J] THEN

            FOR I1:=1 TO Kstr DO

             IF ABS(FRAC(X[I1,J]))>=Epsilon THEN BEGIN P1:=1;CONTINUE; END;

 END;

         { Составление новой базисной строки для целочисленного решения }

    IF (PrGomory='Y') AND (P1=1) THEN

       BEGIN

                          GOMORY;

                          NachKell:=Kell;

                          I1:=Kstr;DPy:=1;

                          DOP_PER;

                          BS[Kstr]:=Bvsp[Kell];

                          CPrnew[Kstr]:=FunctPr[Kell];

                          Cnew[Kstr]:=FX[Kell];

                          GOTO NACH;

      END;

      IF P1=0 THEN SAVE(0,'Данное решение является целочисленым.',3);

    SAVE(0,'При этом:',3);

    IF MIN=1 THEN BEGIN F0:=-F0;Fm:=MIN; END;

    IF Fm=1 THEN

            SAVE(0,'Fmax=',2)

            ELSE

            SAVE(0,'Fmin=',2);

            SAVE(F0,'',1);

            SAVE(0,'',0);

    FOR I1:=1 TO Kstr DO

     BEGIN

      SAVE(0,'  ',2);

      SAVE(0,BS[I1],2);SAVE(0,'=',2);

      SAVE(H[I1],'',1);

      SAVE(0,'',0);

     END;

    HALT;

   END;

         { Нахождение ключевого столбца }

KLst:=1;Mo:=0;

FOR J:=1 TO Kell DO

 IF Fm=1 THEN

    IF Fo[J]<Mo THEN Mo:=Fo[J];

FOR J:=1 TO Kell DO

 BEGIN

  IF Bvsp[J][1]<>'Y' THEN

     IF Fm=1 THEN

        BEGIN

         IF Fo[J]<0 THEN

            IF Fo[J]>=Mo THEN

               BEGIN

                Mo:=Fo[J]; KLst:=J;

               END;

        END

             ELSE

        BEGIN

         IF Fo[J]>0 THEN

            IF Fo[J]>=Mo THEN

               BEGIN

                Mo:=Fo[J]; KLst:=J;

               END;

        END;

 END;

 SAVE(0,'Ключевой столбец: ',2);SAVE(KLst,' ',1);

         { Нахождение ключевой строки }

P1:=0;K_st:=0;

FOR J:=1 TO Kell DO

 IF ABS(Mo-Fo[J])<Epsilon THEN

  BEGIN

   K_st:=K_st+1;

   FOR I:=1 TO Kstr DO

    IF X[I,KLst]>0 THEN BEGIN B[I]:=H[I]/X[I,KLst]; P:=B[I];KLstr:=I; END

                   ELSE BEGIN B[I]:=-1; P1:=P1+1; END;

  END;

IF P1=Kstr*K_st THEN

   BEGIN

    SAVE(0,'',0);

    SAVE(0,'РЕШЕНИЙ НЕТ т.к. невозможно определить ключевую строку',3);

    HALT;

   END;

P1:=0;

FOR J:=1 TO Kell DO

 IF ABS(Mo-Fo[J])<Epsilon THEN

  FOR I:=1 TO Kstr DO

    IF B[I]>=0 THEN BEGIN

       IF B[I]<P THEN IF Bvsp[KLst]<>BS[I] THEN BEGIN P:=B[I]; KLstr:=I; END;

        IF INT(10000*B[I])=INT(10000*P) THEN

         IF (BS[I][1]='Y') AND (BS[KLstr][1]='X') THEN

          IF Bvsp[KLst]<>BS[I] THEN BEGIN P:=B[I]; KLstr:=I; END;

                    END;

SAVE(0,'Ключевая строка: ',2);SAVE(KLstr,' ',1);

SAVE(0,'',0);

FOR I:=1 TO Kstr DO

 IF Bvsp[KLst]=BS[I] THEN

    BEGIN

     SAVE(0,'РЕШЕНИЙ НЕТ т.к. в базисном столбце уже есть ',3);

     SAVE(0,'такая переменная.',3);

     HALT;

    END;

         { Вызов процедуры сокращения Y }

IF CPr[KLstr]=1 THEN SOKR;

         { Построение следующей Симплекс-таблицы }

BS[KLstr]:=Bvsp[KLst];

Cnew[KLstr]:=FX[KLst];

CPrnew[KLstr]:=FunctPr[KLst];

FOR I:=1 TO Kstr DO

    BEGIN

     IF I=KLstr THEN Hnew[I]:=H[I]/X[KLstr,KLst]

                ELSE Hnew[I]:=H[I]-(H[KLstr]*X[I,KLst]/X[KLstr,KLst]);

     FOR J:=1 TO Kell DO

         BEGIN

          IF (I=KLstr) AND (J=KLst) THEN Xnew[I,J]:=1;

          IF (I=KLstr) AND (J<>KLst) THEN Xnew[I,J]:=X[I,J]/X[KLstr,KLst];

          IF (I<>KLstr) AND (J=KLst) THEN Xnew[I,J]:=0;

          IF (I<>KLstr) AND (J<>KLst) THEN

             Xnew[I,J]:=X[I,J]-(X[KLstr,J]*X[I,KLst]/X[KLstr,KLst]);

         END;

    END;

KLst:=0;KLstr:=0;

Kit:=Kit+1;

UNTIL (Kit=0);

END;

         { Основная программа }

BEGIN

CLRSCR;

Kit:=0;Dop_X:=0;

ASSIGN(F,'SIMPLEX.DAT');

REWRITE(F);

CLOSE(F);

ST:;

 WRITE('Введите кол-во строк:');READLN(Kstr);

 IF Kstr>10 THEN

    BEGIN

     WRITELN('Программа не расчитана на введенное кол-во строк!');

     GOTO ST;

    END;

ELL:

 WRITE('Введите кол-во элементов:');READLN(Kell);

 IF Kell>10 THEN

    BEGIN

     WRITELN('Программа не расчитана на введенное кол-во элементов!');

     GOTO ELL;

    END;

ZN:

 WRITE('Исследуем на МАКСИМУМ(1) или МИНИМУМ(2):');READLN(Fm);

 IF (Fm<>1) AND (Fm<>2) THEN

                         BEGIN

                          WRITELN('Введите снова');GOTO ZN;

                         END;

 WRITE('Целочисленное решение(Y/N): ');READLN(PrGomory);

 IF (PrGomory='Y') OR (PrGomory='y') THEN PrGomory:='Y' ELSE PrGomory:='N';

         { Вызов процедуры SIMPLEX}

SIMPLEX;

END.

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

1. Задача Экономическая политика германского фашизма
2. Реферат на тему Breaking Up Essay Research Paper Once in
3. Реферат на тему Дискинезия желчевыводящих путей
4. Курсовая на тему Расч т настроек ПИ регулятора методом РЧХ
5. Реферат Христианское душепопечительство определение понятия и сферы применения
6. Реферат на тему Treligon Essay Research Paper Is there One
7. Реферат Роль Российской армии в первой мировой войне
8. Реферат на тему Основные принципы и функции маркетинга
9. Реферат Цена земли, подходы к анализу факторов и современных тенденций
10. Курсовая Математическое моделирование и оптимизация системы массового обслуживания