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

Тип работы:
Дипломная
Предмет:
Экономические науки


Узнать стоимость

Детальная информация о работе

Выдержка из работы

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

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

СОДЕРЖАНИЕ

Введение

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

2. Математическая модель задачи

3. Определение опорного плана

4. Определение оптимального плана

5. Охрана труда

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

Приложение

математическая модель оптимизация прибыль производство

Введение

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

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

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

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

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

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

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

Фирма занимается производством 5 различных вариантов ковриков для манипуляторов (мыши). Для их производства используются 5 видов ресурсов: текстиль синтетический, резина, каучук, пробка, тифлон.

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

Таблица 1

Ресурсы

Нормы затрат сырья на одно изделие

Общее кол-во ресурсов

Арт1

Арт2

Арт3

Арт4

Арт5

Текстиль синтетический

10

12

11

5

7

990

Резина

6

8

2

3

4

620

Каучук

4

5

6

3

9

510

Пробка

1

2

5

4

3

390

Тифлон

12

6

5

1

2

900

Прибыль от реализации, р.

12

14

17

28

7

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

2. Математическая модель задачи

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

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

2. переход к форме основной задачи линейного программирования

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

4. запись задачи в векторной форме

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

Таблица 2

Ресурсы

Нормы затрат сырья на одно изделие

Общее кол-во ресурсов

Арт1

Арт2

Арт3

Арт4

Арт5

Текстиль синтетический

10

12

11

5

7

990

Резина

6

8

2

3

4

620

Каучук

4

5

6

3

9

510

Пробка

1

2

5

4

3

390

Тифлон

12

6

5

1

2

900

Прибыль от реализации, р.

12

14

17

28

7

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

Составим математическую модель задачи. Обозначим через х1- Арт1, х2- Арт2, х3- Арт3, х4-Арт4, х5-Арт5. Поскольку имеются ограничения на выделенный предприятию фонд сырья каждого вида, переменные x1, x2, x3, x4 и x5 должны удовлетворять следующей системе неравенств.

Общая прибыль произведенной предприятием продукции при условии выпуска x1- Арт1, x2— Арт2, x3— Арт3, x4— Арт4, x5 — Арт5 составляет:

F=12+14+17+28+7=78 рублей (2)

По своему экономическому содержанию переменные x1, x2, x3, x4 и x5 могут принимать только неотрицательные значения:

x1, x2, x3, x4, x50 (3)

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

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

Эти дополнительные переменные по экономическому смыслу означают не используемое при данном плане производства количество сырья того или иного вида, например, x6— неиспользуемое количество сырья 1-ого вида.

Преобразованную систему уравнений запишем в векторной форме:

3. Определение опорного плана

При решении задачи симплексным методом опорный план можно непосредственно записать, пользуясь векторной формой записи задачи. Система единичных векторов образует базис. В опорном плане базисные переменные равны нулю, а остальные равны соответствующим свободным членам b j системы уравнений. В примере первоначальный опорный план равен x0 = (0,0,0,0,0,990,620,510,390,900). Составим первую симплексную таблицу. В примере эта таблица имеет вид:

Таблица 3

I

БАЗИС

Cб

P0

12

14

17

28

7

0

0

0

0

0

P1

P2

P3

P4

P5

P6

P7

P8

P9

P10

1

P6

0

990

10

12

11

5

7

1

0

0

0

0

2

P7

0

620

6

8

2

3

4

0

1

0

0

0

3

P8

0

510

4

5

6

3

9

0

0

1

0

0

4

P9

0

390

1

2

5

4

3

0

0

0

1

0

5

P10

0

900

12

6

5

1

2

0

0

0

0

1

6

F0=0

-12

-14

-17

-28

-7

0

0

0

0

0

Исходя из таблицы делаем вывод, является ли найденный опорный план оптимальным. В примере план x0 оптимальным не является. Это видно из 6-й строки таблицы, так как в ней имеется пять отрицательных числа: z1— c1 = -12, z2— c2 = -14, z3— c3 = -17, z4— c4 = -28, z5— c5 = -7. Отрицательные числа не только свидетельствуют о возможности увеличения общей стоимости производимой продукции, но и показывают, насколько увеличится эта сумма при введении в план единицы того или иного вида продукции.

Если в основной форме задачи линейного программирования нет m единичных векторов среди Pj, то составляется расширенная задача. С помощью обычных вычислений симплекс — метода исключают искусственные векторы из базиса. Полученный после исключения искусственных векторов план и является опорным планом исходной задачи.

4. Определение оптимального плана

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

1. Если первоначальный план не является оптимальным, то изучить возможность улучшения оптимального плана. Если такая возможность имеется, т. е. есть хотя бы одно отрицательное число Дj, то составить 2-ю симплекс — таблицу или установить неразрешимость задачи.

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

3. По формулам (7) — (10) определить положительные компоненты нового опорного плана, коэффициенты разложения векторов Pj по векторам нового базиса и числа F0', Дj. Все эти числа записать в новой симплекс — таблице.

b0'= (7)

a'ij = (8)

F0' = F0 — (br / ark)*Дk (9)

Д'j = Дj — (arj / ark)*Дk (10)

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

5. Привести найденный оптимальный план, если он существует, и величину функции стоимости.

Для примера найдем оптимальный план. Как видно из таблицы план не оптимальный.

Таблица 4

I

БАЗИС

Cб

P0

12

14

17

28

7

0

0

0

0

0

P1

P2

P3

P4

P5

P6

P7

P8

P9

P10

1

P6

0

990

10

12

11

5

7

1

0

0

0

0

2

P7

0

620

6

8

2

3

4

0

1

0

0

0

3

P8

0

510

4

5

6

3

9

0

0

1

0

0

4

P9

0

390

1

2

5

4

3

0

0

0

1

0

5

P10

0

900

12

6

5

1

2

0

0

0

0

1

6

F0=0

-12

-14

-17

-28

-7

0

0

0

0

0

Это видно из 6-й строки таблицы, так как в ней имеется пять отрицательных числа: z1— c1 = -12, z2— c2 = -14, z3— c3 = -17, z4— c4 = -28, z5— c5 = -7. Отрицательные числа не только свидетельствуют о возможности увеличения общей стоимости производимой продукции, но и показывают, насколько увеличится эта сумма при введении в план единицы того или иного вида продукции. Так, число -2 означает, что при включении в план производства одного Арт1″, то обеспечивается увеличение выпуска продукции на 2 руб. Если включить в план производства по одному изделию Арт2, Арт3, Арт4 и Арт5, то общая стоимость изготовляемой продукции возрастет соответственно на 5, 6, 3 и 5 руб.

Поэтому с экономической точки зрения наиболее целесообразным является включение в план производства Арт3. Это же необходимо сделать и на основании формального признака симплексного метода, поскольку максимальное по абсолютной величине отрицательное число Дj стоит в 6-й строке столбца вектора P3. Определяем вектор, подлежащий исключению из базиса. Для этого находим и0 = min (bj / ai5) для ai5 > 0, т. е.

и0 = min (990/5; 620/3; 510/3; 390/4; 900/1) =390/4

Найдя число 390/4 = 97,5, мы тем самым с экономической точки зрения определили, какое количество Арт3 предприятие может изготавливать с учетом норм расхода и имеющихся объемов сырья каждого вида. Так как сырья данного вида соответственно имеется 990, 620, 510, 390 и 900, а на одно изделие Арт3 требуется затратить сырья каждого вида соответственно 3, 4, 2, 4 и 0, то максимальное число Арт3, которое может быть изготовлено предприятием, равно min (990/5; 620/3; 510/3; 390/4; 900/1) =390/4 = 97. 5, т. е. ограничивающим фактором для производства изделий Арт3 является имеющейся Пробкой. С учетом его наличия предприятие может изготовить 97.5 изделия Арт3. При этом Пробка будет полностью использована.

Следовательно, вектор P9 подлежит исключению из базиса. Столбец вектора P4 и 4-я строка являются направляющими. Составляем таблицу для 2-ой итерации.

Таблица 5

I

БАЗИС

Cб

P0

12

14

17

28

7

0

0

0

0

0

P1

P2

P3

P4

P5

P6

P7

P8

P9

P10

1

P6

0

502,5

8,75

9,5

4,75

0

3,25

1

0

0

-1,25

0

2

P7

0

327,5

5. 25

6,5

1,75

0

1,75

0

1

0

-0,75

0

3

P8

0

217,5

3. 25

3,5

2,25

0

2,25

0

0

1

0

4

P4

28

97. 5

¼

½

5/4

1

¾

0

0

0

¼

0

5

P10

0

802,5

11,75

5,5

3,75

0

3,75

0

0

0

-0,25

1

6

2730

-5. 5

0

18

0

14

0

0

0

7

0

Сначала заполняем строку вектора, вновь введенного в базис, т. е. строку, номер которой совпадает с номером направляющей строки. Здесь направляющей является 4-я строка. Элементы этой строки таблицы 5 получаются из соответствующих элементов таблицы 4 делением их на разрешающий элемент. При этом в столбце Сб записываем коэффициент С4 = 28, стоящий в столбце вводимого в базис вектора P4. Затем заполняем элементы столбцов для векторов, входящих в новый базис. В этих столбцах на пересечении строк и столбцов одноименных векторов проставляем единицы, а все остальные полагаем равными нулю.

P0 = 390/4 = 97,5; P1 = ¼; P2 = ½; P3 = 5/4; P4 = 1; P5 = ¾;

P6 =0; P7 =0; P8 =0; P9 = ¼; P10 = 0.

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

Вычислим элементы таблицы 5, стоящие в столбце вектора P0. Первый из них (P6) находится в 1-й строке этого столбца. Для его вычисления находим три числа:

1. число, стоящее в таблице 4 на пересечении столбца вектора P0 и 1-й строки (990);

2. число, стоящее в таблице 4 на пересечении столбца вектора P4 и 1-й строки (5);

3. число, стоящее в таблице 5 на пересечении столбца вектора P0 и 4-й строки (97,5).

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

990 — 5 * 97,5 = 502,5; записываем его в 1-й строке столбца вектора P0 таблицы 5.

Четвёртый элемент столбца вектора P0 таблицы 5 был уже вычислен ранее (97,5). Для вычисления остальных элементов (P7, P8, P10) столбца вектора P0 также находим три числа и вычисляем их.

P7 = 620 — 3 * 97,5 = 327,5;

P8 = 510 — 3 * 97,5 = 217,5;

P10 = 900 — 1 * 97,5 = 802,5.

Значение F0 в 6-й строке столбца вектора P0 можно найти двумя способами:

1. по формуле F0 = (C, P0), т. е.

F0 = 0 * 502,5 + 0 * 327,5 + 0 * 217,5 + 28 * 97,5 + 0 * 802,5 = 2730

2. по правилу треугольника; в данном случае треугольник образован числами 0, -6, 97,5. Этот способ приводит к тому же результату:

0 — (-28) * 97,5 = 2730.

При определении по правилу треугольника элементов столбца вектора P0 третье число, стоящее в нижней вершине треугольника, все время оставалось неизменным, и менялись лишь первые два числа. Учтем это при нахождении элементов столбца вектора P1 таблицы 5. Для вычисления указанных элементов первые два числа берем из столбцов векторов P1 и P4 таблицы 4, а третье число — из таблицы 5. Это число стоит на пересечении 5-й строки и столбца вектора P1 последней таблицы. В результате получаем значения искомых элементов:

10 — 5 * ¼ = 8,75;

6 — 3 * ¼ = 5,25;

4 — 3 * ¼ = 3,25;

12 — 1 * ¼ = 11,75.

по правилу треугольника получим -12 — ¼* (-28) = -5,

Аналогично находим элементы столбцов векторов P2, P4, P5 и P9.

Элементы столбца вектора P2:

12 — 5 * ½= 9,5;

8 — 3 * ½= 6,5;

5 — 3 * ½= 3,5;

6 — 1 * ½= 5,5;

F2 = -14 — ½* (-28) = 0

Элементы столбца вектора P3:

11 — 5/4 * 5 = 4,75;

2 — 5/4* 3 = -1,75;

6 — 5/4 * 3 = -2,25;

5 — 5/4 * 1 =3,75;

F3= -17 — 5/4 * (-28) = 18.

Элементы столбца вектора P5:

7 — 5*¾ = 3,25;

4 — 3*¾ = 1,75;

9 — 3*¾ = 6,75;

2 — 1*¾ = 1,25;

F5= -7−¾*(-28) = 14.

Элементы столбца вектора P9:

0 — 5*¼ = 1,25;

0 — 3*¼ = -0,75;

0 — 3*¼ = -0,75;

0 — 1*¼ = -0,25;

F9= 0 — ¼*(-28) = 7.

Таблица 6

I

БАЗИС

Cб

P0

12

14

17

28

7

0

0

0

0

0

P1

P2

P3

P4

P5

P6

P7

P8

P9

P10

1

P6

0

502,5

8,75

9,5

4,75

0

3,25

1

0

0

-1,25

0

2

P7

0

327,5

5. 25

6,5

1,75

0

1,75

0

1

0

-0,75

0

3

P8

0

217,5

3. 25

3,5

2,25

0

2,25

0

0

1

0

4

P4

28

97. 5

¼

½

5/4

1

¾

0

0

0

¼

0

5

P10

0

802,5

11,75

5,5

3,75

0

3,75

0

0

0

-0,25

1

6

2730

-5. 5

0

18

0

14

0

0

0

7

0

По окончании расчета всех элементов таблицы 6 в ней получены новый опорный план и коэффициенты разложения векторов Рj(j=1,10) через базисные векторы P6, Р7, Р8, Р4и Р10 и значения? j' и Fo'. Как видно из этой таблицы, новым опорным планом задачи является план: F= (0; 0; 97,5; 0; 0; 502,5; 327,5; 217,5; 0; 802,5). При данном плане производства изготовляется 97,5 изделия Арт3 и остается неиспользованным 502,5 м текстиля, 327,5 кг резины, 217,5 кг каучука и 802,5 тифлона. Стоимость всей производимой при этом плане продукции равна 2730 у.е. Указанные числа записаны в столбце вектора Ро таблицы 6. Как видно, данные этого столбца по-прежнему представляют собой параметры рассматриваемой задачи, хотя они претерпели значительные изменения. Изменились данные и других столбцов, а их экономическое содержание стало более сложным. Так, например, возьмем данные столбца вектора Р5. Число ¾ в 4-й строке этого столбца показывает, на сколько следует уменьшить изготовлениеАрт3, если запланировать выпуск одного изделияАрт5. Числа 3,25; 1,75; 2,25 и 3,75 в 1,2,3,5-й строках вектора Р5 показывают соответственно, сколько потребуется текстиля, резины, каучука, пробки при включении в план производства одного изделия Арт5, а число 14 в 6-й строке показывает, что если будет запланирован выпуск одного изделия водоэмульсионной краски, то это обеспечит увеличение выпуска продукции в стоимостном выражении на 14 у.е. Иными словами, если включить в план производства продукции одно изделиеАрт5 , то это потребует уменьшения выпуска изделия Арт3 на ¾ ед. и потребует дополнительных затрат 3,25 м текстиля; 1,75 кг резины; 2,25 кг каучука и 3,75 м тифлона, а общая стоимость изготовляемой продукции в соответствии с новым оптимальным планом возрастет на 14 у.е. Таким образом, числа ¾; 1,75; 2,25 и 3,75 выступают как бы новыми «нормами» затрат цемента, извести, растворителя, колера на изготовление одного изделия краски водоэмульсионной (как видно из таблицы 4, ранее они были равны 4; 4; 8 и 3), что объясняется уменьшением выпуска алебастра. Такой же экономический смысл имеют и данные столбца вектора P1 таблицы 6. Несколько иное экономическое содержание имеют числа, записанные в столбце вектора P9. Число ¼ в 4-й строке этого столбца, показывает, что увеличение объемов пробки на 1 кг позволило бы увеличить объем выпуска Арт3 на ¼ ед. Одновременно потребовалось бы дополнительно 1,25; 0,75; ½ и 0,25 м текстиля, кг резины, кг каучука, м тифлона соответственно. Увеличение выпуска алебастра на ¼ ед. приведет к росту выпуска продукции на 7 у.е. Из изложенного выше экономического содержания данных таблицы 6 следует, что найденный на 2-ой итерации план задачи не является оптимальным. Для этого рассмотрим 6-ю строку табл.6. В этой строке среди чисел ?j есть отрицательные числа. Это означает, что найденный опорный план не является оптимальным. Отрицательное число находится в 6-ой строке вектора P1. Определяем вектор, подлежащий исключению из базиса.

Для этого находим и0 = min (bj / ai1) для ai1 > 0, т. е.

и0 = min 502,5/8,75; 327/5,25; 217,5/3,25; 97,5/¼; 802,5/11,75

Таблица 7

I

БАЗИС

Cб

P0

12

14

17

28

7

0

0

0

0

0

P1

P2

P3

P4

P5

P6

P7

P8

P9

P10

1

P1

12

54,7

1

1,08

0,54

0

0,37

0,114

0

0

-0,14

0

2

P7

0

26,15

0

0,83

-1,085

0

-0,1925

-0,5985

1

0

-0,015

0

3

P8

0

30,97

0

-0,01

0,495

0

5,5475

-0,3705

0

1

-0,295

0

4

P4

28

83,15

0

0,23

1,115

1

-3,5975

-0,0285

0

0

0,285

0

5

P10

0

128,05

0

-7,19

-2,595

0

-3,0975

-1,3395

0

0

1,365

1

6

F0=3017

0

5,94

15,03

0

16,035

0,627

0

0

6,23

0

Сначала заполняем строку вектора, вновь введенного в базис, т. е. строку, номер которой совпадает с номером направляющей строки. Здесь направляющей является 1-я строка. Элементы этой строки таблицы 7 получаются из соответствующих элементов таблицы 6 делением их на разрешающий элемент. При этом в столбце Сб записываем коэффициент С1 = 12, стоящий в столбце вводимого в базис вектора P1. Затем заполняем элементы столбцов для векторов, входящих в новый базис. В этих столбцах на пересечении строк и столбцов одноименных векторов проставляем единицы, а все остальные полагаем равными нулю.

P0 = 57,5; P1 =1; P2 =1,08;

P3 = 0,54; P4 = 0; P5 = 0,37; P6=0,114

P7 = 0; P8 = 0; P9 = -0,14; P10 = 0.

Значение F0 в 6-й строке столбца вектора P0 определим по формуле F0 = (C, P0), т. е.

F0 = 12*57,4 + 28*83,15=688,8+2328,2=3017

Элементы столбца вектора P2:

6,5 — 1,08 * 5,25 = 0,83

3,5 — 1,08 * 3,25 = -0,01

0,5 — 1,08 * 0,25 = 0,23

5,5 — 1,08 * 11,75 = -7,19

F2= 0 — 1,08 * (-5,5) = 5,94.

Элементы столбца вектора P3:

1,75 — 0,54 * 5,25 = -1,085

2,25 — 0,54 * 3,25 = 0,495

1,25 — 0,54 * 0,25 = 1,115

3,75 — 0,54 * 11,75 = -2,595

F3=18 — 0,54 * (-5,5) = 15,03

Элементы столбца вектора P5:

1,75 — 0,37 * 5,25 = -0,1925

6,75 — 0,37 * 3,25 = 5,5475

0,75 — 0,37 * 0,25 = -3,5975

1,25 — 0,37 * 11,75 = -3,0975

F5=14 — 0,37 * (-5,5) = 16,035.

Элементы столбца вектора P6:

0 — 0,114 * 5,25 = -0,5985

0 — 0,114 * 3,25 = -0,3705

0 — 0,114 * 0,25 = -0,0285

0 — 0,114 * 11,75 = -1,3395

F9= 0 — 0,114 * (-5,5) = 0,627.

Элементы столбца вектора P9:

-0,75 + 0,114 * 5,25 = -0,015

-0,75 + 0,114 * 3,25 = -0,295

0,25 + 0,114 * 0,25 = 0,285

-0,28 + 0,114 * 11,75 = 1,365

F9= 7 — (-0,14) * (-5,5) = 6,23.

Проверяем, является ли данный опорный план оптимальным или нет. Для этого рассмотрим 6-ю строку таблицы 8. В этой строке среди чисел ?j нет отрицательных чисел. Это означает, что найденный опорный план является оптимальным.

X*=(57,4; 0; 0; 83,15; 0; 0; 26,15; 30,95; 0; 128,05) Fmax= 3017.

Следовательно, план выпуска продукции, включающий изготовление 83,15 Арт4 и 57,4 Арт1, является оптимальным. При данном плане выпуска изделий полностью используются запасы каучука и пробки, и остается неиспользованным 26,15; 30,95; 128,05 м текстиля, кг резины, м тифлона, а стоимость производимой продукции равна 3017 руб. Оптимальным планом производства продукции не предусматривается изготовление Арт2″, Арт3 и Арт5. Введение в план выпуска продукции грунтовка «M-2», привело бы к уменьшению указанной общей стоимости. Это видно из 6-й строки столбца вектора P1, где число 5,94 показывает, что при данном плане включение в него выпуска единицы изделия стали, приводит лишь к уменьшению общей величины стоимости на 5,94 руб.

5. Охрана труда

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

* относительная влажность окружающего воздуха 50±5%;

* для питания ПК необходимо использовать отдельную электролинию, к которой не должно подсоединяться сильноточное и коммутационное оборудование;

* необходимо соблюдение санитарных норм СН-245−71 (расстояние между компьютерами не менее 2 метров, безопасное с точки зрения радиации, продолжительность непрерывной работы 2 часа и т. д.);

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

Системный блок и монитор должны подключаться к сети электропитания через специальные электрические розетки, имеющие заземляющие контакты. Заземляющие контакты розеток должны быть объединены и надежно заземлены.

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

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

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

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

размещением разъёмов электропитания на тыльной стороне системного блока и монитора;

1. применением надежных изоляционных материалов;

2. использованием кабелей электропитания с заземляющими проводниками;

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

1. Запрещается во время работы ПК размыкать и замыкать разъемные соединения.

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

3. Не размещайте ПК вблизи нагревательных приборов и под прямыми солнечными лучами;

4. Источники света должны быть расположены так, чтобы не засвечивать экран монитора, не создавать резких бликов на экране и не светить из-за монитора в глаза человека, работающего с ПК;

5. Не размещайте ПК там, где есть возможность попадания влаги на компьютер

6. при размещении ПК интерфейсные кабели и кабели электропитания не должны быть под ногами и мешать передвижению людей.

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

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

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

Сначала рекомендуется включить питание периферийных устройств (принтера, монитора и т. п.). Затем включается питание системного блока, и начинается самотестирование (POST). При начальной загрузке системы POST проверяет установки памяти CMOS RAM и сравнивает их с действительной конфигурацией системы.

Включение ПК должно производиться в следующей последовательности:

1. Включить принтер (если он нужен);

2. Включить монитор;

3. Включить системный блок.

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

Далее необходимо:

1. Выключить системный блок;

2. Выключить принтер (если он был включен) и монитор;

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

1. Акулич И. Л. Математическое программирование в примерах и задачах М.: «Высшая школа», 1986.

2. Венцель Е. С. Исследование операций. — М.: «Высшая школа», 1980.

3. Дегтярев Ю. И. Исследование операций. — М.: «Высшая школа», 1986.

4. Кузнецов Ю. Н. Математическое программирование. — М.: «Высшая школа», 1980.

Приложение

Dim mas_Bazis (1 To 5) As Byte

Dim mas_P0(1 To 5) As Single

Dim mas_Sb (1 To 5) As Byte

Dim mas_P110(1 To 5, 1 To 10) As Single

Dim mas_Delti (1 To 10) As Single

Dim mas_Prib (1 To 10) As Single

Public optima As String

Public raz_elem, nap_stl_el As Single

Public nap_str, nap_stl As Byte

Public kol_iter, kol_iter_nado As Byte

Public str_F As String

Public nomer As Boolean

Public F As Integer

Public vid_resch As Byte

Dim mas_mesto_x (1 To 5) As Byte

Public str_opt_x As String

Public Sub Reschenie (vid_resch As Byte, kol_iter As Byte)

If ((vid_resch = 1) Or (vid_resch = 2 And kol_iter = 1)) Then

Заполняем данные

kol_iter_nado = 1

For i = 1 To 5

mas_mesto_x (i) = 0

Next i

'-----

mas_P0(1) = CDbl (GL. T_kol_res1. Text): mas_P0(2) = CDbl (GL. T_kol_res2. Text)

mas_P0(3) = CDbl (GL. T_kol_res3. Text): mas_P0(4) = CDbl (GL. T_kol_res4. Text)

mas_P0(5) = CDbl (GL. T_kol_res5. Text)

'-----

mas_P110(1, 1) = CDbl (GL. T_a11. Text): mas_P110(1, 2) = CDbl (GL. T_a12. Text)

mas_P110(1, 3) = CDbl (GL. T_a13. Text): mas_P110(1, 4) = CDbl (GL. T_a14. Text)

mas_P110(1, 5) = CDbl (GL. T_a15. Text): mas_P110(1, 6) = 1

mas_P110(1, 7) = 0: mas_P110(1, 8) = 0

mas_P110(1, 9) = 0: mas_P110(1, 10) = 0

mas_P110(2, 1) = CDbl (GL. T_a21. Text): mas_P110(2, 2) = CDbl (GL. T_a22. Text)

mas_P110(2, 3) = CDbl (GL. T_a23. Text): mas_P110(2, 4) = CDbl (GL. T_a24. Text)

mas_P110(2, 5) = CDbl (GL. T_a25. Text): mas_P110(2, 6) = 0

mas_P110(2, 7) = 1: mas_P110(2, 8) = 0

mas_P110(2, 9) = 0: mas_P110(2, 10) = 0

mas_P110(3, 1) = CDbl (GL. T_a31. Text): mas_P110(3, 2) = CDbl (GL. T_a32. Text)

mas_P110(3, 3) = CDbl (GL. T_a33. Text): mas_P110(3, 4) = CDbl (GL. T_a34. Text)

mas_P110(3, 5) = CDbl (GL. T_a35. Text): mas_P110(3, 6) = 0

mas_P110(3, 7) = 0: mas_P110(3, 8) = 1

mas_P110(3, 9) = 0: mas_P110(3, 10) = 0

mas_P110(4, 1) = CDbl (GL. T_a41. Text): mas_P110(4, 2) = CDbl (GL. T_a42. Text)

mas_P110(4, 3) = CDbl (GL. T_a43. Text): mas_P110(4, 4) = CDbl (GL. T_a44. Text)

mas_P110(4, 5) = CDbl (GL. T_a45. Text): mas_P110(4, 6) = 0

mas_P110(4, 7) = 0: mas_P110(4, 8) = 0

mas_P110(4, 9) = 1: mas_P110(4, 10) = 0

mas_P110(5, 1) = CDbl (GL. T_a51. Text): mas_P110(5, 2) = CDbl (GL. T_a52. Text)

mas_P110(5, 3) = CDbl (GL. T_a53. Text): mas_P110(5, 4) = CDbl (GL. T_a54. Text)

mas_P110(5, 5) = CDbl (GL. T_a55. Text): mas_P110(5, 6) = 0

mas_P110(5, 7) = 0: mas_P110(5, 8) = 0

mas_P110(5, 9) = 0: mas_P110(5, 10) = 1

'------

mas_Bazis (1) = 6: mas_Bazis (2) = 7

mas_Bazis (3) = 8: mas_Bazis (4) = 9: mas_Bazis (5) = 10

'------

For i = 1 To 5

mas_Sb (i) = 0

Next i

'------

mas_Delti (1) = -CDbl (GL. T_prib1. Text)

mas_Delti (2) = -CDbl (GL. T_prib2. Text)

mas_Delti (3) = -CDbl (GL. T_prib3. Text)

mas_Delti (4) = -CDbl (GL. T_prib4. Text)

mas_Delti (5) = -CDbl (GL. T_prib5. Text)

mas_Delti (6) = 0

mas_Delti (7) = 0: mas_Delti (8) = 0

mas_Delti (9) = 0: mas_Delti (10) = 0

'------

mas_Prib (1) = CDbl (GL. T_prib1. Text)

mas_Prib (2) = CDbl (GL. T_prib2. Text)

mas_Prib (3) = CDbl (GL. T_prib3. Text)

mas_Prib (4) = CDbl (GL. T_prib4. Text)

mas_Prib (5) = CDbl (GL. T_prib5. Text)

mas_Prib (6) = 0

mas_Prib (7) = 0: mas_Prib (8) = 0

mas_Prib (9) = 0: mas_Prib (10) = 0

' Заполнение данных закончено.

End If

' Вычисление оптимальности

Do

optima = «y»

' Проверяем на оптимальность план:

For i = 1 To 10

If (mas_Delti (i) < 0) Then

optima = «n»

End If

Next i

' Проверка на оптимальность окончена

' Если план не оптимален выщитываем симплексные таблицы:

If optima = «n» Then

kol_iter = kol_iter + 1

' направляющие элементы

nap_stl_el = 0

For i = 1 To 10

If nap_stl_el > mas_Delti (i) Then

nap_stl_el = mas_Delti (i)

nap_stl = i

End If

Next i

'-----

i = 0

Do

i = i + 1

If (mas_P0(i) > 0 And mas_P110(i, nap_stl) > 0) Then

nap_str_el = mas_P0(i) / mas_P110(i, nap_stl)

End If

Loop While (mas_P110(i, nap_stl) <= 0 Or mas_P0(i) <= 0)

'-----

For i = 1 To 5

If (mas_P0(i) > 0 And mas_P110(i, nap_stl) > 0) Then

If (nap_str_el >= (mas_P0(i) / mas_P110(i, nap_stl))) Then

nap_str_el = mas_P0(i) / mas_P110(i, nap_stl)

nap_str = i

End If

End If

Next i

'-----

raz_elem = mas_P110(nap_str, nap_stl)

'-----

mas_P0(nap_str) = mas_P0(nap_str) / raz_elem

For i = 1 To 5

If (mas_P110(i, nap_stl) < > 0 And i < > nap_str) Then

mas_P0(i) = mas_P0(i) — (mas_P110(i, nap_stl) * mas_P0(nap_str))

End If

Next i

mas_Bazis (nap_str) = nap_stl

mas_Sb (nap_str) = mas_Prib (nap_stl) 'Delti (nap_stl) '-CDbl (mas_Delti (nap_stl)) 'Ошибка ===== raz_elem

For i = 1 To 10

mas_P110(nap_str, i) = mas_P110(nap_str, i) / raz_elem

Next i

For i = 1 To 5

If (nap_str < > i) Then

Y = mas_P110(i, nap_stl)

For x = 1 To 10

mas_P110(i, x) = mas_P110(i, x) — (Y * mas_P110(nap_str, x))

Next x

End If

Next i

For i = 1 To 10

mas_Delti (i) = 0

For x = 1 To 5

If (mas_Sb (x) < > 0) Then

mas_Delti (i) = mas_Delti (i) + (mas_Sb (x) * mas_P110(x, i))

End If

Next x

mas_Delti (i) = mas_Delti (i) — mas_Prib (i)

Next i

End If

Loop While ((vid_resch = 1 And optima = «n») Or (vid_resch = 2 And optima = «n» And kol_iter < > kol_iter_nado + 1))

' Вычисление оптимальности окончено.

optima = «y»

' Проверяем на оптимальность план:

For i = 1 To 10

If (mas_Delti (i) < 0) Then

optima = «n»

End If

Next i

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

If (optima = «y» Or kol_iter = kol_iter_nado) Then

main. Command1. Enabled = False

'Command2. Enabled = True

End If

' Вывод результатов

main. T_bas1. Text = «P» + Str (mas_Bazis (1))

main. T_bas2. Text = «P» + Str (mas_Bazis (2))

main. T_bas3. Text = «P» + Str (mas_Bazis (3))

main. T_bas4. Text = «P» + Str (mas_Bazis (4))

main. T_bas5. Text = «P» + Str (mas_Bazis (5))

' -----------------

main. T_sb1. Text = Str (mas_Sb (1))

main. T_sb2. Text = Str (mas_Sb (2))

main. T_sb3. Text = Str (mas_Sb (3))

main. T_sb4. Text = Str (mas_Sb (4))

main. T_sb5. Text = Str (mas_Sb (5))

' -----------------

main. T_P01. Text = Str (Format (mas_P0(1), «#. 00»))

main. T_P02. Text = Str (Format (mas_P0(2), «#. 00»))

main. T_P03. Text = Str (Format (mas_P0(3), «#. 00»))

main. T_P04. Text = Str (Format (mas_P0(4), «#. 00»))

main. T_P05. Text = Str (Format (mas_P0(5), «#. 00»))

' -----------------

main. T_P11. Text = Format (mas_P110(1, 1), «0. ##»)

main. T_P12. Text = Format (mas_P110(1, 2), «0. ##»)

main. T_P13. Text = Format (mas_P110(1, 3), «0. ##»)

main. T_P14. Text = Format (mas_P110(1, 4), «0. ##»)

main. T_P15. Text = Format (mas_P110(1, 5), «0. ##»)

main. T_P16. Text = Format (mas_P110(1, 6), «0. ##»)

main. T_P17. Text = Format (mas_P110(1, 7), «0. ##»)

main. T_P18. Text = Format (mas_P110(1, 8), «0. ##»)

main. T_P19. Text = Format (mas_P110(1, 9), «0. ##»)

main. T_P110. Text = Format (mas_P110(1, 10), «0. ##»)

main. T_P21. Text = Format (mas_P110(2, 1), «0. ##»)

main. T_P22. Text = Format (mas_P110(2, 2), «0. ##»)

main. T_P23. Text = Format (mas_P110(2, 3), «0. ##»)

main. T_P24. Text = Format (mas_P110(2, 4), «0. ##»)

main. T_P25. Text = Format (mas_P110(2, 5), «0. ##»)

main. T_P26. Text = Format (mas_P110(2, 6), «0. ##»)

main. T_P27. Text = Format (mas_P110(2, 7), «0. ##»)

main. T_P28. Text = Format (mas_P110(2, 8), «0. ##»)

main. T_P29. Text = Format (mas_P110(2, 9), «0. ##»)

main. T_P210. Text = Format (mas_P110(2, 10), «0. ##»)

main. T_P31. Text = Format (mas_P110(3, 1), «0. ##»)

main. T_P32. Text = Format (mas_P110(3, 2), «0. ##»)

main. T_P33. Text = Format (mas_P110(3, 3), «0. ##»)

main. T_P34. Text = Format (mas_P110(3, 4), «0. ##»)

main. T_P35. Text = Format (mas_P110(3, 5), «0. ##»)

main. T_P36. Text = Format (mas_P110(3, 6), «0. ##»)

main. T_P37. Text = Format (mas_P110(3, 7), «0. ##»)

main. T_P38. Text = Format (mas_P110(3, 8), «0. ##»)

main. T_P39. Text = Format (mas_P110(3, 9), «0. ##»)

main. T_P310. Text = Format (mas_P110(3, 10), «0. ##»)

main. T_P41. Text = Format (mas_P110(4, 1), «0. ##»)

main. T_P42. Text = Format (mas_P110(4, 2), «0. ##»)

main. T_P43. Text = Format (mas_P110(4, 3), «0. ##»)

main. T_P44. Text = Format (mas_P110(4, 4), «0. ##»)

main. T_P45. Text = Format (mas_P110(4, 5), «0. ##»)

main. T_P46. Text = Format (mas_P110(4, 6), «0. ##»)

main. T_P47. Text = Format (mas_P110(4, 7), «0. ##»)

main. T_P48. Text = Format (mas_P110(4, 8), «0. ##»)

main. T_P49. Text = Format (mas_P110(4, 9), «0. ##»)

main. T_P410. Text = Format (mas_P110(4, 10), «0. ##»)

main. T_P51. Text = Format (mas_P110(5, 1), «0. ##»)

main. T_P52. Text = Format (mas_P110(5, 2), «0. ##»)

main. T_P53. Text = Format (mas_P110(5, 3), «0. ##»)

main. T_P54. Text = Format (mas_P110(5, 4), «0. ##»)

main. T_P55. Text = Format (mas_P110(5, 5), «0. ##»)

main. T_P56. Text = Format (mas_P110(5, 6), «0. ##»)

main. T_P57. Text = Format (mas_P110(5, 7), «0. ##»)

main. T_P58. Text = Format (mas_P110(5, 8), «0. ##»)

main. T_P59. Text = Format (mas_P110(5, 9), «0. ##»)

main. T_P510. Text = Format (mas_P110(5, 10), «0. ##»)

' -----------------

main. L_F_max. Caption = «F =»

str_F = ««

nomer = False

F = 0

For i = 1 To 5

If mas_Sb (i) < > 0 Then

If nomer = False Then

str_F = str_F + Str (mas_Sb (i)) + «*» + Str (Format (mas_P0(i), «#. 00»))

nomer = True

F = F + mas_Sb (i) * mas_P0(i)

Else

str_F = str_F + «+» + Str (mas_Sb (i)) + «*» + Str (Format (mas_P0(i), «#. 00»))

F = F + mas_Sb (i) * mas_P0(i)

End If

End If

Next i

main. T_F = «F=» & Str (F)

main. L_F_max. Caption = main. L_F_max. Caption & str_F & «=» & Str (F)

' -----------------

main. T_delt1. Text = Format (mas_Delti (1), «0. ##»)

main. T_delt2. Text = Format (mas_Delti (2), «0. ##»)

main. T_delt3. Text = Format (mas_Delti (3), «0. ##»)

main. T_delt4. Text = Format (mas_Delti (4), «0. ##»)

main. T_delt5. Text = Format (mas_Delti (5), «0. ##»)

main. T_delt6. Text = Format (mas_Delti (6), «0. ##»)

main. T_delt7. Text = Format (mas_Delti (7), «0. ##»)

main. T_delt8. Text = Format (mas_Delti (8), «0. ##»)

main. T_delt9. Text = Format (mas_Delti (9), «0. ##»)

main. T_delt10. Text = Format (mas_Delti (10), «0. ##»)

' -----------------

main. L_kol_iter. Caption = Str (kol_iter)

If optima = «y» Then

main. L_opt_d. Caption = «да»

str_opt_x = «{»

For i = 1 To 5

If mas_Sb (i) > 0 Then

mas_mesto_x (mas_Bazis (i)) = mas_P0(i)

End If

Next i

For i = 1 To 5

If mas_mesto_x (i) > 0 Then

str_opt_x = str_opt_x + Str (mas_mesto_x (i)) + «; «

Else

str_opt_x = str_opt_x + Str (0) + «; «

End If

Next i

main. L_opt. Caption = str_opt_x + «}»

Else: main. L_opt_d. Caption = «нет»

End If

' Вывод результатов окончен.

End Sub

Private Sub Command1_Click ()

main. Show

main. L_opt. Caption = ««

Call Reschenie (2, 1)

'Command2. Enabled = False

main. Command1. Enabled = True

End Sub

Private Sub Command2_Click ()

Unload GL

End Sub

ПоказатьСвернуть
Заполнить форму текущей работой