Метод отсекающих плоскостей
Постановка и описание процесса построения математической модели задачи. Обоснование выбора метода реализации модели, разработка алгоритма решения задачи. Характеристика программного обеспечения и особенности инструкции пользователя по работе с программой.
Рубрика | Экономико-математическое моделирование |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 08.04.2014 |
Размер файла | 69,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Государственное образовательное учреждение
среднее профессиональное образование
«Нижегородский экономико-правовой колледж»
Цикловая комиссия спецдисциплины программирования
МЕТОД ОТСЕКАЮЩИХ ПЛОСКОСТЕЙ
КУРСОВАЯ РАБОТА
по дисциплине «Математические методы»
Студентка Е.С.Ковалева 26.05.2005
Специальность, группа: 2203, 32-П
Допущена к защите
преподаватель
О.В. Волкова
Нижний Новгород 2005
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
1. ПОСТАНОВКА ЗАДАЧИ
2. ОПИСАНИЕ ПРОЦЕССА ПОСТРОЕНИЯ МАТЕМАТИЧЕСКОЙ МОДЕЛИ ЗАДАЧИ
3. ОБОСНОВАНИЕ ВЫБОРА МЕТОДА РЕАЛИЗАЦИИ МОДЕЛИ
4. РАЗРАБОТКА АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ
5. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
6. ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЮ ПО РАБОТЕ С ПРОГРАММОЙ
ЛИТЕРАТУРА
ПРИЛОЖЕНИЕ
ВВЕДЕНИЕ
В планировании часто встречаются задачи, требующие отыскания целочисленного решения. Округление не целочисленного решения в ряде случаев оказывается чрезмерно грубым и ведет к большим погрешностям. Такая ситуация встречается, если продукция изготавливается малыми сериями, а нормы затрат на нее достаточно велики. В этом случае округление может привести к недопустимым нарушениям ограничений по произведенным возможностям предприятия.
Задача целочисленного линейного программирования состоит в том, чтобы найти оптимальное целочисленное решение.
Моделирование в научных исследованиях стало применяться еще в глубокой древности и постепенно захватывало все новые области научных знаний: техническое конструирование, строительство и архитектуру, астрономию, физику, химию, биологию и, наконец, общественные науки. Большие успехи и признание практически во всех отраслях современной науки принес методу XX век. Однако методология моделирования долгое время развивалась независимо отдельными науками. Отсутствовала единая система понятий, единая терминология. Лишь постепенно стала осознаваться роль моделирования как универсального метода научного познания.
Термин «модель» широко используется в различных сферах человеческой деятельности и имеет множество смысловых значений.
Модель-это система способная замещать реальный объект таким образом, чтобы давать новую информацию о нем.
Под моделированием понимается процесс построения, изучения и применения моделей. Оно тесно связано с такими категориями как абстракция, аналогия, гипотеза и др. Главная особенность моделирования в том, что это метод непосредственного познания с помощью объектов-заместителей. Модель выступает как своеобразный инструмент познания, который исследователь ставит между собой и объектом и с помощью которого изучает интересующий его объект.
Именно эта особенность метода моделирования определяет специфические формы использования абстракций, аналогий, гипотез и других категорий и методов познания.
Необходимость использования метода моделирования определяется тем, что многие объекты (или проблемы, относящиеся к этим объектам) непосредственно исследовать невозможно или это исследование требует много времени и средств.
Моделирование - это циклический процесс. А это означает, что за первым шестиэтапным циклом может последовать второй, третий и т.д. При этом знание об исследуемом объекте расширяются и уточняются, а исходная модель постепенно совершенствуется. Недостатки, обнаруженные после первого цикла моделирования, обусловленные малым знанием объекта и ошибками в построение модели, можно исправить в последующих циклах. В методологии моделирования, заложены большие возможности саморазвития.
математический моделирование программный пользователь
1. ПОСТАНОВКА ЗАДАЧИ
Предприятие приобретает оборудование для нового производственного участка. Для этого ему выделено 36000 рублей. Площадь для размещения оборудования должна быть не менее 6 м2 .
Можно купить оборудование двух видов:
- станки типа А стоимостью 3000 рублей, требующие производственную площадь 1 м2 и производящие 3000 единиц продукции за смену;
- станки типа Б стоимостью 2000 рублей, требующие производственную площадь 3 м2 и производящие 3000 единиц продукции за смену;
Нужно рассчитать оптимальный вариант приобретения оборудования, обеспечивающий при данных ограничениях максимум общей производительности участка за смену. Решить задачу по методу Гомори (отсекающих плоскостей).
Условие: машин типа Б может быть произведено не больше 13 штук.
2. ОПИСАНИЕ ПРОЦЕССА ПОСТРОЕНИЯ МАТЕМАТИЧЕСКОЙ МОДЕЛИ ЗАДАЧИ
Определение оптимального целочисленного решения методом Гомори начинают с отыскания оптимального плана поставленной задачи без учета ограничений на целочисленность неизвестных. Это решение легко определяется с помощью одного из вариантов симплекс-метода. Затем найденный план анализируется на целочисленнсть. Если все переменные приняли целые значения, то оптимальный план задачи линейного целочисленного программирования найден; если хотя бы одна компонента плана имеет дробную часть, к исходной системе ограничений добавляется неравенство
Математическая модель -это описание на языке математических соотношений, основных черт и свойств объекта, которое отображая и воспроизводя объект исследования дает новую информацию об объекте.
Она составляется для того, чтобы:
- определить, как устроен конкретный объект, т.е. какова его структура, свойства, законы развития и взаимодействия с окружающим миром.
управлять реально существующими объектами и процессами.
Прогнозировать поведение развитие тех или иных объектов и процессов.
Для решения данной задачи нам дано:
F=3X1+3X2->max
3X1+2X2<=36
X1+3X2>=6
X2<=13
X1,X2>=0-целые
Из исходной математической модели переходим к канонической задаче минимизации(КМЗ):
F'=-(3X1+3X2)->min
3X1+2X2+X3=36
X1+3X2-X4=6
X2+X5=13
X1,X2,X3,X4,X5-целые
3. ОБОСНОВАНИЕ ВЫБОРА МЕТОДА РЕАЛИЗАЦИИ МОДЕЛИ
Одним из методов решения задач является метод отсекающих плоскостей, который опирается на использование симплекс-метода (Метод Гомори). Этот метод используется для решения поставленной задачи.
При решении задач методом отсекающих плоскостей первый этап вычислений не отличается от обычного расчета по симплекс алгоритму. Полученный оптимальный план будет удовлетворять всем условиям задачи, кроме требования целочисленности.
Если среди значений переменных в оптимальном плане есть дробные, то составляется дополнительное ограничение, как бы «отсекающее» дробную часть решения, но оставляющее в силе все прочие условия, которым должен удовлетворять оптимальный план. Дополнительное ограничение присоединяется к исходным ограничениям задачи и к расширенной системе вновь применяется симплексная процедура.
Если и в этот раз оптимальное решение окажется нецелочисленным, то добавляется еще одно дополнительное ограничение и процесс вычислений повторяется.
Этот алгоритм позволяет за конечное число шагов прийти к оптимальному целочисленному решению, если оно существует.
Рассмотрим суть метода на примере задачи курсового проекта.
Во втором разделе я составили математическую модель рассматриваемой задачи дискретного программирования:
F=3X1+3X2->max
3X1+2X2<=36
X1+3X2>=6
X2<=13
X1,X2>=0-целые
Для решения задачу приводим к канонической задаче минимизации. Заменим функции F на F', где F'=-F.
Тогда F'= - (3X1+3X2)->min
Перейдем от неравенств в ограничениях к равенствам, для этого в первое и третье ограничения добавим, а во второй вычтем по одной дополнительной фиктивной переменной.
В данной задаче имеется 3 ограничения, требующие приведения к равенству. Добавим в первое ограничение переменную X3, во втором вычтем переменную X4, в третье ограничение добавим переменную X5.
Имеем:
3X1+2X2+X3=36
X1+3X2-X4=6
X2+X5=13
Получаем:
F'=-(3X1+3X2)->min
3X1+2X2+X3=36
X1+3X2-X4=6
X2+X5=13
X1,X2,X3,X4,X5-целые
Математическая модель задачи является канонической задачей минимизации.
F' = - (3X1 + 3X2) -> min
3X1 + 2X2 + X3 = 36
- X1 - 3X2 + X4 = 6
X2 + X5 = 13
X1,X2,X3,X4,X5-целые
Далее переходим непосредственно к решению. Задача решается двумя способами, так как определено наличие двух одинаковых оценок в строке оценок. Решим первым способом, взяв в качестве главного первый столбец.
1 Симплекс - таблица
X1 |
X2 |
X3 |
X4 |
X5 |
В |
|
3 |
2 |
1 |
0 |
0 |
36 |
|
-1 |
-3 |
0 |
1 |
0 |
-6 |
|
0 |
1 |
0 |
0 |
1 |
13 |
|
3 |
3 |
0 |
0 |
0 |
0 |
Промежуточные значения определяются по методу Гаусса. По данной таблице они будут следующие:
x1 = 0, x2 = 0, x3 = 36, x4 = 6, x5 = 13
F' = 0; F = 0
2 Симплекс - таблица
X1 |
X2 |
X3 |
X4 |
X5 |
В |
|
1 |
2/3 |
1/3 |
0 |
0 |
12 |
|
0 |
-7/3 |
1/3 |
1 |
0 |
6 |
|
0 |
1 |
0 |
0 |
1 |
13 |
|
0 |
1 |
-1 |
0 |
0 |
-36 |
Промежуточные значения:
x1 = 12, x2 = 0, x3 = 0, x4 = 6, x5 = 13
F' = -36; F = 36
3 Симплекс - таблица
X1 |
X2 |
X3 |
X4 |
X5 |
В |
|
1 |
0 |
1/3 |
0 |
-2/3 |
10/3 |
|
0 |
0 |
1/3 |
1 |
7/3 |
25/3 |
|
0 |
1 |
0 |
0 |
1 |
13 |
|
0 |
0 |
-1 |
0 |
-1 |
-49 |
Итак, в оптимальном плане для целочисленной задачи:
x1 = 10/3, x2 = 13, x3 = 0, x4 = 25/3, x5 = 0, а максимум целевой функции F = 49
Но x1 = 10/3 и x4 = 25/3являются нецелыми числами, поэтому составляется дополнительное ограничение к исходным.
В данной задаче рассматривается строка 1 и для нее составляется неравенство, в котором в левой части записывается сумма всех переменных со специальными коэффициентами, составленными из разности между действительным значением коэффициента и его целой частью в последней симплекс-таблице.
Целая часть числа - это ближайшее целое число, не превосходящее данного. В правой части неравенства записывается разность между свободным членом в данной строке и его целой частью.
Таким образом, дополнительное неравенство имеет вид:
A(i,j)* · X(j)>= B*(i),
Где i - номер строки, для которой составляется дополнительное ограничение;
A(i,j) и B(i) - величины, взятые из строки в последней симплекс-таблице;
A(i,j)* и B*(i) - дробные части чисел A(i,j) и B(i)
Для рассматриваемой задачи:
(1 -[1])X1 + (0 - [0])X2 +(1/3 - [1/3])X3 + (0 - [0])X4 + (-2/3 - [-2/3])X5 >= (10/3 - 3)
или получаем:
1.3X3 +1/3X5 >= 1/3 /*3
иначе:
X3 + X5 >= 1 (*)
Теперь неравенство (*) добавляется в последнюю ММ и снова решается задача симплекс-методом:
ММ:
F=3X1+3X2->max
3X1+2X2<=36
X1+3X2>=6
X2<=13
X3 + X5 >= 1
X1,X2,X3,X4,X5>=0
КЗМ
F'=-(3X1+3X2)->min
3X1+2X2+X3=36
- X1 - 3X2+X4= - 6
X2+X5=13
- X3 - X5 + X6 = - 1
X1,X2,X3,X4,X5,X6>=0
Решение опять делится на два способа, которые решаются аналогично друг другу. Решим первым способом, взяв в качестве главного первый столбец.
В симплекс-таблицах:
1 Симплекс - таблица
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
В |
|
3 |
2 |
1 |
0 |
0 |
0 |
36 |
|
-1 |
-3 |
0 |
1 |
0 |
0 |
-6 |
|
0 |
1 |
0 |
0 |
1 |
0 |
13 |
|
0 |
0 |
- 1 |
0 |
- 1 |
1 |
- 1 |
|
3 |
3 |
0 |
0 |
0 |
0 |
0 |
Промежуточные значения:
x1 = 0, x2 = 0, x3 = 0, x4 = - 6, x5 = 0, x6 = = 1
F' = 0; F = 0
2 Симплекс - таблица
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
В |
|
3 |
2 |
1 |
0 |
0 |
0 |
36 |
|
-1 |
-3 |
0 |
1 |
0 |
0 |
-6 |
|
0 |
1 |
0 |
0 |
1 |
0 |
13 |
|
0 |
0 |
- 1 |
0 |
0 |
1 |
12 |
|
3 |
3 |
0 |
0 |
0 |
0 |
0 |
Промежуточные значения:
x1 = 0, x2 = 0, x3 = 0, x4 = - 6, x5 = 13, x6 = 12
F' = 0; F = 0
3 Симплекс - таблица
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
В |
|
3 |
2 |
1 |
0 |
0 |
0 |
36 |
|
-1 |
-3 |
0 |
1 |
0 |
0 |
-6 |
|
0 |
1 |
0 |
0 |
1 |
0 |
13 |
|
3 |
3 |
0 |
0 |
0 |
1 |
48 |
|
3 |
3 |
0 |
0 |
0 |
0 |
0 |
Промежуточные значения:
x1 = 0, x2 = 0, x3 = 36, x4 = - 6, x5 = 13, x6 = 48
F' = 0; F = 0
4 Симплекс - таблица
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
В |
|
1 |
2/3 |
1/3 |
0 |
0 |
0 |
12 |
|
0 |
-7/3 |
1/3 |
1 |
0 |
0 |
6 |
|
0 |
1 |
0 |
0 |
1 |
0 |
13 |
|
0 |
1 |
- 1 |
0 |
0 |
1 |
12 |
|
0 |
1 |
- 1 |
0 |
0 |
0 |
- 36 |
Промежуточные значения:
x1 = 12, x2 = 0, x3 = 0, x4 = 6, x5 = 13, x6 = 12
F' = - 36; F = 36
5 Симплекс - таблица
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
В |
|
1 |
0 |
1 |
0 |
0 |
- 2/3 |
4 |
|
0 |
0 |
- 2 |
1 |
0 |
7/3 |
34 |
|
0 |
0 |
1 |
0 |
1 |
- 1 |
1 |
|
0 |
1 |
- 1 |
0 |
0 |
1 |
12 |
|
0 |
0 |
0 |
0 |
0 |
- 1 |
- 48 |
Таким образом, повторив процесс решения симплексным методом применительно к расширенной системе ограничений, получим новый оптимальный план, в котором значения переменных, входящих в базис, равны:
x1 = 4, x2 = 12, x3 = 0, x4 = 34, x5 = 1, x6 = 0
Максимум целевой функции: F' = - 48; F = 48
Решение исходной математической модели вторым способом аналогично.
4. РАЗРАБОТКА АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ
5. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Visual Basic (VB)- это легкий способ разработки собственных программ для Windows, передовая и высокоэффективная система разработки приложений Windows, требующая минимум средств и усилий. Созданные на VB приложения и компоненты можно компилировать с помощью оптимизирующего компилятора, ядро которого идентично применяемому в языке программирования Microsoft C.
VB предоставляет команды для создания и управления необходимыми элементами программы в Windows: диалогами, окнами, линейками меню, раскрывающимися списками, командными списками, панелями инструментов и так далее.
В частности VB включает необходимые команды для использования Object Linking and Embedding (OLE) и Dynamic Data Exchange (DDE) для связи или совместного использования данных с другими приложениями Windows. VB является существенно новым языком программирования для Windows со своими корнями в Basic.
С помощью VB можно создавать приложения практически для любой области современных компьютерных технологий: бизнес - приложения, игры, мультимедиа, базы данных. При этом приложения могут быть как просты, так и очень сложными, в зависимости от поставленной задачи. Мастера VB дают возможность быстро создавать прототипы приложений, готовых для обсуждения и согласования с заказчиком.
Простота и мощность языка VB позволит сделать его встроенным языком для приложений Microsoft Office, т.е. он работает с пакетом Microsoft Office и ресурсами Internet. Многие усовершенствованные средства VB поддерживают загрузку и развертывание по сети, а также все возможности ActiveX-документов с применением технологий Internet Explorer 4.
6. ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЮ ПО РАБОТЕ С ПРОГРАММОЙ
Для работы данной программы необходимо как минимум процессор Pentium II , приложение Visual Basic и операционную систему Windows 95
После запуска файла Kursovik.exe загрузится окно Меню, в котором вы сможете работать с программой. Перед вами будет отображено следующие кнопки. Следует начать работу с кнопки «Постановка задачи и ввод переменных».После нажатия этой кнопки в этом же окне будет отображена постановка задачи и вам будет предложено ввести функции затрат на производство и хранение продукции. Одновременно с появлением нового окна кнопка меню «Постановка задачи и ввод переменных» заменяется на кнопку «Очистить», т.е. если ввели не те значения, то можно очистить поля при помощи этой кнопки.
После ввода следует нажать на следующую кнопку меню «Решить задачу», после чего на экране отобразится решение задачи управления запасами на основе введенных затрат.
Если вы хотите просмотреть, отредактировать или ввести новые значения затрат, то вам необходимо нажать снова на кнопку «Постановка задачи и ввод переменных».
Также можно просмотреть информацию об авторе при помощи кнопки «Об авторе». А если вы захотите завершить работу с программой, то нажмите на кнопку «Выход».
ЛИТЕРАТУРА
1. А.В. Горстко “Познакомьтесь с математическим моделированием”. - Москва, Знания, 1991 год
2. И.А.Калихман “Сборник задач по математическому программированию”. - Москва, Высшая школа, 1975 год
3. А.И.Карасев, И.Ш.Крамер, Т.И.Савельева ”Математические методы и модели в планировании”. - Москва, Экономика, 1987 год
4. Ларионов А.И., Юрченко Т.И., Новоселов А.А. “Экономико-математические методы в планировании”Москва 1991г.
5. Малик Г.С. “Основы экономики и математические методы в планировании” Москва 1988г.
ПРИЛОЖЕНИЕ
Option Base 1
Option Explicit
Dim I(7), II(7), III(7), IV(7), V(7) As Single 'Массивы для считывания значений из матрицы по строкам
Dim max, min, rasel, St(2), Delen(5) As Single
Dim k, ct, ctr, ext, slct As Integer
Dim ochist As Boolean
Private Sub CommandButton1_Click()
Dim TxtBx As Object
Dim pstr As String
Dim w, q, j As Integer
w = 0
For Each TxtBx In frmNach.Controls
w = w + 1
If w > 7 And w < 22 Then
pstr = CStr(TxtBx.Text)
q = Len(pstr)
For j = 1 To q
If Mid(pstr, j, 1) = "." Then
Mid(pstr, j, 1) = ","
End If
Next j
TxtBx.Text = pstr
End If
Next TxtBx
If IsNumeric(TextBox1) = False Or IsNumeric(TextBox2) = False _
Or IsNumeric(TextBox3) = False Or IsNumeric(TextBox4) = False _
Or IsNumeric(TextBox5) = False Or IsNumeric(TextBox6) = False _
Or IsNumeric(TextBox7) = False Or IsNumeric(TextBox8) = False _
Or IsNumeric(TextBox9) = False Or IsNumeric(TextBox10) = False _
Or IsNumeric(TextBox11) = False Or IsNumeric(TextBox12) = False _
Or IsNumeric(TextBox13) = False Or IsNumeric(TextBox14) = False _
Then
MsgBox "Не введены или неверно введены данные" _
, vbOKOnly, "ВВедите данные"
Else
Решение
End If
End Sub
Private Sub ПерваяТаблица()
Dim j, l As Integer
'Заполнение 1-ой симплекс таблицы
For j = 1 To 7
Cells(4, j) = I(j)
Cells(5, j) = II(j)
Cells(6, j) = III(j)
Cells(7, j) = IV(j)
Cells(8, j) = V(j)
Next j
For l = 1 To 2
For j = 1 To 4
If Cells(3 + j, l) = 1 Then
St(l) = Cells(3 + j, 7)
ElseIf Cells(3 + j, l) <> 0 Then
St(l) = 0
Exit For
End If
Next j
Next l
For j = 1 To 7
If V(j) > 0 Then
Exit For
End If
If j = 7 Then
Ответ "A9", V(7), St(1), St(2)
ext = 1
End If
Next j
End Sub
Private Sub ВтораяТаблица()
Всю строку с разрешающим элементом делим на разрешающий элемент и заносим полученные значения во вторую симплекс-таблицу
Dim j, l As Integer
Модуль1.Копирование "A10:G16"
Cells(10, 1) = "Вторая симплекс-таблица"
For j = 1 To 7
If ctr = 1 Then
I(j) = I(j) / rasel
End If
If ctr = 2 Then
II(j) = II(j) / rasel
End If
If ctr = 3 Then
III(j) = III(j) / rasel
End If
If ctr = 4 Then
IV(j) = IV(j) / rasel
End If
Next j
Вычитаем из остальных строк разрешающую строку, так чтобы получить в столбце, выбранном главным в 1-ой симплекс таблице, нулевые значения.
For j = 1 To 7
If ctr = 1 Then
Cells(12, j) = I(j)
II(j) = II(j) - Delen(2) * I(j)
Cells(13, j) = II(j)
III(j) = III(j) - Delen(3) * I(j)
Cells(14, j) = III(j)
IV(j) = IV(j) - Delen(4) * I(j)
Cells(15, j) = IV(j)
V(j) = V(j) - Delen(5) * I(j)
Cells(16, j) = V(j)
End If
If ctr = 2 Then
I(j) = I(j) - Delen(1) * II(j)
Cells(12, j) = I(j)
Cells(13, j) = II(j)
III(j) = III(j) - Delen(3) * II(j)
Cells(14, j) = III(j)
IV(j) = IV(j) - Delen(4) * II(j)
Cells(15, j) = IV(j)
V(j) = V(j) - Delen(5) * II(j)
Cells(16, j) = V(j)
End If
If ctr = 3 Then
I(j) = I(j) - Delen(1) * III(j)
Cells(12, j) = I(j)
II(j) = II(j) - Delen(2) * III(j)
Cells(13, j) = II(j)
Cells(14, j) = III(j)
IV(j) = IV(j) - Delen(4) * IV(j)
Cells(15, j) = IV(j)
V(j) = V(j) - Delen(5) * III(j)
Cells(16, j) = V(j)
End If
If ctr = 4 Then
I(j) = I(j) - Delen(1) * IV(j)
Cells(12, j) = I(j)
II(j) = II(j) - Delen(2) * IV(j)
Cells(13, j) = II(j)
III(j) = III(j) - Delen(3) * IV(j)
Cells(14, j) = III(j)
Cells(15, j) = IV(j)
V(j) = V(j) - Delen(5) * IV(j)
Cells(16, j) = V(j)
End If
Next j
For l = 1 To 2
For j = 1 To 4
If Cells(11 + j, l) = 1 Then
St(l) = Cells(11 + j, 7)
ElseIf Cells(11 + j, l) <> 0 Then
St(l) = 0
Exit For
End If
Next j
Next l
For j = 1 To 7
If V(j) > 0 Then
Exit For
End If
If j = 7 Then
Ответ "A17", V(7), St(1), St(2)
ext = 1
End If
Next j
End Sub
Private Sub ТретьяТаблица()
Всю строку с разрешающим элементом делим на разрешающий элемент и заносим полученные значения во вторую симплекс-таблицу
Dim j, l As Integer
Модуль1.Копирование "A18:G24"
Cells(18, 1) = "Третья симплекс-таблица"
For j = 1 To 7
If ctr = 1 Then
I(j) = I(j) / rasel
End If
If ctr = 2 Then
II(j) = II(j) / rasel
End If
If ctr = 3 Then
III(j) = III(j) / rasel
End If
If ctr = 4 Then
IV(j) = IV(j) / rasel
End If
Next j
Вычитаем из остальных строк разрешающую строку, так чтобы получить в столбце, выбранном главным в 1-ой симплекс таблице, нулевые значения.
For j = 1 To 7
If ctr = 1 Then
Cells(20, j) = I(j)
II(j) = II(j) - Delen(2) * I(j)
Cells(21, j) = II(j)
III(j) = III(j) - Delen(3) * I(j)
Cells(22, j) = III(j)
IV(j) = IV(j) - Delen(4) * I(j)
Cells(23, j) = IV(j)
V(j) = V(j) - Delen(5) * I(j)
Cells(24, j) = V(j)
End If
If ctr = 2 Then
I(j) = I(j) - Delen(1) * II(j)
Cells(20, j) = I(j)
Cells(21, j) = II(j)
III(j) = III(j) - Delen(3) * II(j)
Cells(22, j) = III(j)
IV(j) = IV(j) - Delen(4) * II(j)
Cells(23, j) = IV(j)
V(j) = V(j) - Delen(5) * II(j)
Cells(24, j) = V(j)
End If
If ctr = 3 Then
I(j) = I(j) - Delen(1) * III(j)
Cells(20, j) = I(j)
II(j) = II(j) - Delen(2) * III(j)
Cells(21, j) = II(j)
Cells(22, j) = III(j)
IV(j) = IV(j) - Delen(4) * IV(j)
Cells(23, j) = IV(j)
V(j) = V(j) - Delen(5) * III(j)
Cells(24, j) = V(j)
End If
If ctr = 4 Then
I(j) = I(j) - Delen(1) * IV(j)
Cells(20, j) = I(j)
II(j) = II(j) - Delen(2) * IV(j)
Cells(21, j) = II(j)
III(j) = III(j) - Delen(3) * IV(j)
Cells(22, j) = III(j)
Cells(23, j) = IV(j)
V(j) = V(j) - Delen(5) * IV(j)
Cells(24, j) = V(j)
End If
Next j
For l = 1 To 2
For j = 1 To 4
If Cells(19 + j, l) = 1 Then
St(l) = Cells(19 + j, 7)
ElseIf Cells(19 + j, l) <> 0 Then
St(l) = 0
Exit For
End If
Next j
Next l
For j = 1 To 7
If V(j) > 0 Then
Exit For
End If
If j = 7 Then
Ответ "A25", V(7), St(1), St(2)
Next = 1
End If
Next j
End Sub
Private Sub ЧетвертаяТаблица()
Всю строку с разрешающим элементом делим на разрешающий элемент и заносим полученные значения во вторую симплекс-таблицу
Dim j, l As Integer
Модуль1.Копирование "A26:G32"
Cells(26, 1) = "Четвертая симплекс таблица"
For j = 1 To 7
If ctr = 1 Then
I(j) = I(j) / rasel
End If
If ctr = 2 Then
II(j) = II(j) / rasel
End If
If ctr = 3 Then
III(j) = III(j) / rasel
End If
If ctr = 4 Then
IV(j) = IV(j) / rasel
End If
Next j
Вычитаем из остальных строк разрешающую строку, так чтобы получить в столбце, выбранном главным в 1-ой симплекс таблице, нулевые значения.
For j = 1 To 7
If ctr = 1 Then
Cells(28, j) = I(j)
II(j) = II(j) - Delen(2) * I(j)
Cells(29, j) = II(j)
III(j) = III(j) - Delen(3) * I(j)
Cells(30, j) = III(j)
IV(j) = IV(j) - Delen(4) * I(j)
Cells(31, j) = IV(j)
V(j) = V(j) - Delen(5) * I(j)
Cells(32, j) = V(j)
End If
If ctr = 2 Then
I(j) = I(j) - Delen(1) * II(j)
Cells(28, j) = I(j)
Cells(29, j) = II(j)
III(j) = III(j) - Delen(3) * II(j)
Cells(30, j) = III(j)
IV(j) = IV(j) - Delen(4) * II(j)
Cells(31, j) = IV(j)
V(j) = V(j) - Delen(5) * II(j)
Cells(32, j) = V(j)
End If
If ctr = 3 Then
I(j) = I(j) - Delen(1) * III(j)
Cells(28, j) = I(j)
II(j) = II(j) - Delen(2) * III(j)
Cells(29, j) = II(j)
Cells(30, j) = III(j)
IV(j) = IV(j) - Delen(4) * IV(j)
Cells(31, j) = IV(j)
V(j) = V(j) - Delen(5) * III(j)
Cells(32, j) = V(j)
End If
If ctr = 4 Then
I(j) = I(j) - Delen(1) * IV(j)
Cells(28, j) = I(j)
II(j) = II(j) - Delen(2) * IV(j)
Cells(29, j) = II(j)
III(j) = III(j) - Delen(3) * IV(j)
Cells(30, j) = III(j)
Cells(31, j) = IV(j)
V(j) = V(j) - Delen(5) * IV(j)
Cells(32, j) = V(j)
End If
Next j
For l = 1 To 2
For j = 1 To 4
If Cells(27 + j, l) = 1 Then
St(l) = Cells(27 + j, 7)
ElseIf Cells(27 + j, l) <> 0 Then
St(l) = 0
Exit For
End If
Next j
Next l
For j = 1 To 7
If V(j) > 0 Then
Exit For
End If
If j = 7 Then
Ответ "A33", V(7), St(1), St(2)
ext = 1
End If
Next j
End Sub
Private Sub ПятаяТаблица()
Всю строку с разрешающим элементом делим на разрешающий элемент и заносим полученные значения во вторую симплекс-таблицу
Dim j, l As Integer
Модуль1.Копирование "A34:G40"
Cells(34, 1) = "Пятая симплекс-таблица"
For j = 1 To 7
If ctr = 1 Then
I(j) = I(j) / rasel
End If
If ctr = 2 Then
II(j) = II(j) / rasel
End If
If ctr = 3 Then
III(j) = III(j) / rasel
End If
If ctr = 4 Then
IV(j) = IV(j) / rasel
End If
Next j
Вычитаем из остальных строк разрешающую строку, так чтобы получить в столбце, выбранном главным в 1-ой симплекс таблице, нулевые значения.
For j = 1 To 7
If ctr = 1 Then
Cells(36, j) = I(j)
II(j) = II(j) - Delen(2) * I(j)
Cells(37, j) = II(j)
III(j) = III(j) - Delen(3) * I(j)
Cells(38, j) = III(j)
IV(j) = IV(j) - Delen(4) * I(j)
Cells(39, j) = IV(j)
V(j) = V(j) - Delen(5) * I(j)
Cells(40, j) = V(j)
End If
If ctr = 2 Then
I(j) = I(j) - Delen(1) * II(j)
Cells(36, j) = I(j)
Cells(37, j) = II(j)
III(j) = III(j) - Delen(3) * II(j)
Cells(38, j) = III(j)
IV(j) = IV(j) - Delen(4) * II(j)
Cells(39, j) = IV(j)
V(j) = V(j) - Delen(5) * II(j)
Cells(40, j) = V(j)
End If
If ctr = 3 Then
I(j) = I(j) - Delen(1) * III(j)
Cells(36, j) = I(j)
II(j) = II(j) - Delen(2) * III(j)
Cells(37, j) = II(j)
Cells(38, j) = III(j)
IV(j) = IV(j) - Delen(4) * IV(j)
Cells(39, j) = IV(j)
V(j) = V(j) - Delen(5) * III(j)
Cells(40, j) = V(j)
End If
If ctr = 4 Then
I(j) = I(j) - Delen(1) * IV(j)
Cells(36, j) = I(j)
II(j) = II(j) - Delen(2) * IV(j)
Cells(37, j) = II(j)
III(j) = III(j) - Delen(3) * IV(j)
Cells(38, j) = III(j)
Cells(39, j) = IV(j)
V(j) = V(j) - Delen(5) * IV(j)
Cells(40, j) = V(j)
End If
Next j
For l = 1 To 2
For j = 1 To 4
If Cells(36 + j, l) = 1 Then
St(l) = Cells(36 + j, 7)
ElseIf Cells(36 + j, l) <> 0 Then
St(l) = 0
Exit For
End If
Next j
Next l
For j = 1 To 7
If V(j) > 0 Then
Exit For
End If
If j = 7 Then
Ответ "H40", V(7), St(1), St(2)
ext = 1
End If
Next j
End Sub
Private Sub ШестаяТаблица()
Всю строку с разрешающим элементом делим на разрешающий элемент и заносим полученные значения во вторую симплекс-таблицу
Dim j, l As Integer
Модуль1.Копирование "A42:G48"
Cells(42, 1) = "Шестая симплекс-таблица"
For j = 1 To 7
If ctr = 1 Then
I(j) = I(j) / rasel
End If
If ctr = 2 Then
II(j) = II(j) / rasel
End If
If ctr = 3 Then
III(j) = III(j) / rasel
End If
If ctr = 4 Then
IV(j) = IV(j) / rasel
End If
Next j
Вычитаем из остальных строк разрешающую строку, так чтобы получитьmв столбце, выбранном главным в 1-ой симплекс таблице, нулевые значения.
For j = 1 To 7
If ctr = 1 Then
Cells(44, j) = I(j)
II(j) = II(j) - Delen(2) * I(j)
Cells(45, j) = II(j)
III(j) = III(j) - Delen(3) * I(j)
Cells(46, j) = III(j)
IV(j) = IV(j) - Delen(4) * I(j)
Cells(47, j) = IV(j)
V(j) = V(j) - Delen(5) * I(j)
Cells(48, j) = V(j)
End If
If ctr = 2 Then
I(j) = I(j) - Delen(1) * II(j)
Cells(44, j) = I(j)
Cells(45, j) = II(j)
III(j) = III(j) - Delen(3) * II(j)
Cells(46, j) = III(j)
IV(j) = IV(j) - Delen(4) * II(j)
Cells(47, j) = IV(j)
V(j) = V(j) - Delen(5) * II(j)
Cells(48, j) = V(j)
End If
If ctr = 3 Then
I(j) = I(j) - Delen(1) * III(j)
Cells(44, j) = I(j)
II(j) = II(j) - Delen(2) * III(j)
Cells(45, j) = II(j)
Cells(46, j) = III(j)
IV(j) = IV(j) - Delen(4) * IV(j)
Cells(47, j) = IV(j)
V(j) = V(j) - Delen(5) * III(j)
Cells(48, j) = V(j)
End If
If ctr = 4 Then
I(j) = I(j) - Delen(1) * IV(j)
Cells(44, j) = I(j)
II(j) = II(j) - Delen(2) * IV(j)
Cells(45, j) = II(j)
III(j) = III(j) - Delen(3) * IV(j)
Cells(46, j) = III(j)
Cells(47, j) = IV(j)
V(j) = V(j) - Delen(5) * IV(j)
Cells(48, j) = V(j)
End If
Next j
For l = 1 To 2
For j = 1 To 4
If Cells(43 + j, l) = 1 Then
St(l) = Cells(43 + j, 7)
ElseIf Cells(43 + j, l) <> 0 Then
St(l) = 0
Exit For
End If
Next j
Next l
For j = 1 To 7
If V(j) > 0 Then
Exit For
End If
If j = 7 Then
Ответ "H48", V(7), St(1), St(2)
ext = 1
End If
Next j
End Sub
Private Sub Решение()
Worksheets("Решение").Activate
Модуль1.Очистка
frmNach.Hide
ПервыйШаг
End Sub
Private Sub ПервыйШаг()
Передаем начальные значения в массивы, которые соответствуют строкам таблицы. I - первая строка, II - вторая строка и т.д.
ext = 0
I(1) = CSng(TextBox5.Text)
I(2) = CSng(TextBox9.Text)
I(3) = 1
I(4) = 0
I(5) = 0
I(6) = 0
I(7) = CSng(TextBox1.Text)
II(1) = CSng(TextBox6.Text)
II(2) = CSng(TextBox10.Text)
II(3) = 0
II(4) = 1
II(5) = 0
II(6) = 0
II(7) = CSng(TextBox2.Text)
III(1) = CSng(TextBox7.Text)
III(2) = CSng(TextBox11.Text)
III(3) = 0
III(4) = 0
III(5) = 1
III(6) = 0
III(7) = CSng(TextBox3.Text)
IV(1) = CSng(TextBox8.Text)
IV(2) = CSng(TextBox12.Text)
IV(3) = 0
IV(4) = 0
IV(5) = 0
IV(6) = 0
IV(7) = CSng(TextBox4.Text)
V(1) = CSng(TextBox13.Text)
V(2) = CSng(TextBox14.Text)
V(3) = 0
V(4) = 0
V(5) = 0
V(6) = 0
V(7) = 0
ПерваяТаблица
Модуль1.Ixes 3
If ext = 1 Then
Exit Sub
End If
slct = 3
Расчеты
ВтораяТаблица
Модуль1.Ixes 11
If ext = 1 Then
Exit Sub
End If
slct = 11
Расчеты
ТретьяТаблица
Модуль1.Ixes 19
If ext = 1 Then
Exit Sub
End If
slct = 19
Расчеты
ЧетвертаяТаблица
Модуль1.Ixes 27
If ext = 1 Then
Exit Sub
End If
'Расчеты
'ПятаяТаблица
'If ext = 1 Then
' Exit Sub
'End If
'Расчеты
'ШестаяТаблица
'Loop While ext <> 1
End Sub
Private Sub Расчеты()
Обнуление масива преобразованных столбцов
For k = 1 To 2
St(k) = 0
Next k
Нахождение главного столбца
max = 0
For k = 1 To 6
If V(k) > max Then max = V(k): ct = k
Next k
Переменная ct является номером главного столбца
Нахождение разрешающей строки
min = 100000
If I(ct) > 0 Then min = I(7) / I(ct): ctr = 1
If II(ct) > 0 Then If min > II(7) / II(ct) Then min = II(7) / II(ct): ctr = 2
If III(ct) > 0 Then If III(7) / III(ct) < min Then min = III(7) / III(ct): ctr = 3
If IV(ct) > 0 Then If IV(7) / IV(ct) < min Then min = IV(7) / IV(ct): ctr = 4
Переменная ctr является номером разрешающей строки
Нахождение разрешающего элемента
If ctr = 1 Then rasel = I(ct)
If ctr = 2 Then rasel = II(ct)
If ctr = 3 Then rasel = III(ct)
If ctr = 4 Then rasel = IV(ct)
Delen(1) = I(ct)
Delen(2) = II(ct)
Delen(3) = III(ct)
Delen(4) = IV(ct)
Delen(5) = V(ct)
Модуль1.Borders slct + 1, ct, slct + 5, ct
Модуль1.Borders slct + ctr, ct, slct + ctr, 7
Cells(slct + ctr, ct).Select
Selection.Interior.ColorIndex = 22
End Sub
Private Sub CommandButton2_Click()
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox7 = ""
TextBox8 = ""
TextBox9 = ""
TextBox10 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
TextBox14 = ""
End Sub
Private Sub CommandButton3_Click()
frmNach.Hide
frmStart.Show
End Sub
Private Sub CommandButton4_Click()
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox7 = ""
TextBox8 = ""
TextBox9 = ""
TextBox10 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
TextBox14 = ""
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub UserForm_Activate()
Top = 0
Left = 0
'Height = screen
'Width = screen
End Sub
Private Sub UserForm_Initialize()
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox7 = ""
TextBox8 = ""
TextBox9 = ""
TextBox10 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
TextBox14 = ""
End Sub
Private Sub CommandButton1_Click()
Me.Hide
frmNach.Show
End Sub
Private Sub CommandButton2_Click()
Me.Hide
frmZadacha.Show
End Sub
Private Sub CommandButton3_Click()
MsgBox "Программу составила Ковалева Елена" _
, vbOKOnly, "Об авторе"
End Sub
Private Sub CommandButton4_Click()
Me.Hide
Worksheets("Старт").CommandButton1.Visible = True
End Sub
Sub Макрос1()
Макрос1 Макрос
Макрос записан 08.03.2004 (HaV)
Cells.Select
With Selection.Interior
ColorIndex = 15
.Pattern = xlSolid
End With
Selection.Interior.ColorIndex = 15
Range("D4").Select
Sheets("Решение").Select
End Sub
Sub ФорматЯч()
ФорматЯч Макрос
Макрос записан 08.03.2004 (HaV)
Range("A4:G8").Select
Selection.NumberFormat = "0.00"
End Sub
Sub Макрос3()
Макрос3 Макрос
Макрос записан 08.03.2004 (HaV)
Application.CutCopyMode = False
Range("A2:G8").Select
Selection.Copy
Range("C12").Select
Application.CutCopyMode = False
End Sub
Sub Border()
Border Макрос
Макрос записан 21.03.2004 (HaV)
Range("A12:A16").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("A12:G12").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Range("K10").Select
End Sub
Sub Bordr()
Bordr Макрос
Макрос записан 21.03.2004 (HaV)
Range("D20:D24").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 19
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 19
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 19
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 19
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Range("D21:G21").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 19
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 19
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 19
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 19
End With
Range("D21").Select
With Selection.Interior
.ColorIndex = 22
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Range("J24").Select
End Sub
Option Explicit
Sub Очистка()
Worksheets("Решение").Cells.Select
Selection.Clear
Selection.Interior.ColorIndex = 15
Worksheets("СимплТабл").Range("A2:G8").Copy
Worksheets("Решение").Range("A2:G8").Insert
Application.CutCopyMode = False
Range("A1").Select
End Sub
Sub Копирование(ByVal rng As String)
Worksheets("СимплТабл").Range("A2:G8").Copy
Range(rng).Insert
Application.CutCopyMode = False
End Sub
Sub Ответ(ByVal rng As String, ByVal rez, ByVal Ix1, ByVal Ix2 As Single)
Dim fopt, x1, x2 As String
fopt = CStr(Abs(rez))
x1 = CStr(Ix1)
x2 = CStr(Ix2)
fopt = Mid(fopt, 1, 5)
x1 = Mid(x1, 1, 5)
x2 = Mid(x2, 1, 5)
Range(rng) = "Ответ:" + " Fопт.=" + fopt + " X1=" + x1 + " X2=" + x2
With frmNach
.Label9.Caption = x1 * CSng(.TextBox13.Text)
.Label10.Caption = x2 * CSng(.TextBox14.Text)
End With
End Sub
Public Sub Ixes(ByVal stroka As Integer)
Dim p, j As Integer
Dim vspom, str As Integer
Dim znach, ixs, fs As String
For p = 1 To 6
vspom = 0
For j = 1 To 4
If Worksheets("Решение").Cells(stroka + j, p).Value <> 0 Then
vspom = vspom + 1
If Worksheets("Решение").Cells(stroka + j, p).Value = 1 Then
str = j
End If
End If
Next j
If vspom = 1 Then
ixs = CStr(Worksheets("Решение").Cells(stroka + str, 7).Value)
ixs = Mid(ixs, 1, 5)
znach = "x" + CStr(p) + "=" + ixs
Worksheets("Решение").Cells(stroka + (p - 2), 9).Value = znach
Else
Worksheets("Решение").Cells(stroka + (p - 2), 9).Value = "x" + CStr(p) + "=" + CStr(0)
End If
Next p
fs = CStr(Worksheets("Решение").Cells(stroka + 5, 7).Value)
fs = Mid(fs, 1, 5)
Worksheets("Решение").Cells(stroka + 5, 9).Value = "F'=" + fs
End Sub
Public Sub Borders(ByVal strk1 As Integer, ByVal Stlb1 As Integer, ByVal strk2 As Integer, ByVal Stlb2 As Integer)
Range(Cells(strk1, Stlb1), Cells(strk2, Stlb2)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
' .LineStyle = xlContinuous
' .Weight = xlThick
.ColorIndex = 19
End With
With Selection.Borders(xlEdgeTop)
' .LineStyle = xlContinuous
' .Weight = xlThick
.ColorIndex = 19
End With
With Selection.Borders(xlEdgeBottom)
'.LineStyle = xlContinuous
'.Weight = xlThick
.ColorIndex = 19
End With
With Selection.Borders(xlEdgeRight)
'.LineStyle = xlContinuous
'.Weight = xlThick
.ColorIndex = 19
End With
With Selection.Borders(xlInsideHorizontal)
' .LineStyle = xlContinuous
' .Weight = xlThin
' .ColorIndex = xlAutomatic
End With
End Sub
Private Sub Workbook_Open()
Worksheets("Старт").Activate
End Sub
Private Sub CommandButton1_Click()
CommandButton1.Visible = False
frmStart.Show
End Sub
Private Sub CommandButton1_Click()
Worksheets("Старт").Activate
frmNach.Show
End Sub
Первая симплекс таблица |
x1=0 |
||||||||
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
B |
x2=0 |
||
3,00 |
2,00 |
1,00 |
0,00 |
0,00 |
0,00 |
36,00 |
x3=36 |
||
-1,00 |
-3,00 |
0,00 |
1,00 |
0,00 |
0,00 |
-6,00 |
x4=-6 |
||
0,00 |
1,00 |
0,00 |
0,00 |
1,00 |
0,00 |
13,00 |
x5=13 |
||
3,00 |
3,00 |
0,00 |
0,00 |
0,00 |
0,00 |
0,00 |
F'=0 |
||
Вторая симплекс-таблица |
x1=12 |
||||||||
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
B |
x2=0 |
||
1,00 |
0,67 |
0,33 |
0,00 |
0,00 |
0,00 |
12,00 |
x3=0 |
||
0,00 |
-2,33 |
0,33 |
1,00 |
0,00 |
0,00 |
6,00 |
x4=6 |
||
0,00 |
1,00 |
0,00 |
0,00 |
1,00 |
0,00 |
13,00 |
x5=13 |
||
0,00 |
1,00 |
-1,00 |
0,00 |
0,00 |
0,00 |
-36,00 |
F'=-36 |
||
Третья симплекс-таблица |
x1=3,333 |
||||||||
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
B |
x2=13 |
||
1,00 |
0,00 |
0,33 |
0,00 |
-0,67 |
0,00 |
3,33 |
x3=0 |
||
0,00 |
0,00 |
0,33 |
1,00 |
2,33 |
0,00 |
36,33 |
x4=36,33 |
||
0,00 |
1,00 |
0,00 |
0,00 |
1,00 |
0,00 |
13,00 |
x5=0 |
||
0,00 |
0,00 |
-1,00 |
0,00 |
-1,00 |
0,00 |
-49,00 |
F'=-49 |
||
Ответ: Fопт.=49 X1=3,333 X2=13 |
Размещено на Allbest.ru
Подобные документы
Особенности формирования математической модели принятия решений, постановка задачи выбора. Понятие оптимальности по Парето и его роль в математической экономике. Составление алгоритма поиска парето-оптимальных решений, реализация программного средства.
контрольная работа [1,2 M], добавлен 11.06.2011Формулировка проблемы в практической области. Построение моделей и особенности экономико-математической модели транспортной задачи. Задачи линейного программирования. Анализ постановки задач и обоснования метода решения. Реализация алгоритма программы.
курсовая работа [56,9 K], добавлен 04.05.2011Составление математической модели задачи. Расчёт оптимального плана перевозок с минимальной стоимостью с использованием метода потенциалов. Оптимальный вариант специального передвижного оборудования для технического обеспечения управления производством.
контрольная работа [135,3 K], добавлен 01.06.2014История создания средств цифровой вычислительной техники. Методы и модели линейного программирования. Экономическая постановка задачи. Выбор метода реализации задачи. Особенности выбора языка программирования. Решение задачи сетевым методом планирования.
курсовая работа [842,1 K], добавлен 19.02.2015Роль экономико-математических методов в оптимизации экономических решений. Этапы построения математической модели и решение общей задачи симплекс-методом. Составление экономико-математической модели предприятия по производству хлебобулочных изделий.
курсовая работа [1,3 M], добавлен 09.07.2015Построение математической модели, максимизирующей прибыль фирмы от реализации всех сделок в виде задачи линейного программирования. Сущность применения алгоритма венгерского метода. Составление матрицы эффективности, коэффициентов затрат и ресурсов.
контрольная работа [168,7 K], добавлен 08.10.2009Математическая формулировка экономико-математической задачи. Вербальная постановка и разработка задачи о составлении графика персонала. Решение задачи о составлении графика персонала с помощью программы Microsoft Excel. Выработка управленческого решения.
курсовая работа [1,2 M], добавлен 12.01.2018Основные методы решения задачи оптимального закрепления операций за станками. Разработка экономико-математической модели задачи. Интерпретация результатов и выработка управленческого решения. Решение задачи "вручную", используя транспортную модель.
курсовая работа [1,0 M], добавлен 25.01.2013Построение и обоснование математической модели решения задачи по составлению оптимального графика ремонта инструмента. Использование табличного симплекс-метода, метода искусственных переменных и проверка достоверности результата. Алгоритм решения задачи.
курсовая работа [693,1 K], добавлен 04.05.2011Графический метод решения задачи оптимизации производственных процессов. Применение симплекс-алгоритма для решения экономической оптимизированной задачи управления производством. Метод динамического программирования для выбора оптимального профиля пути.
контрольная работа [158,7 K], добавлен 15.10.2010