Целями курсового проекта являются: закрепление и систематизация теоретического материала по дисциплине «Моделирование производственных и экономических процессов», расширение и углубление знаний по данной теме, развитие самостоятельности при подборе материала и решении поставленных задач.
Задачи курсового проекта: Разработать алгоритм для решения поставленных задач, составить программу для реализации поставленных задач.
Актуальность темы. Анализ сетевой модели, представленной в графической или табличной (матричной) форме, позволяет:
1. Более четко выявить взаимосвязи этапов реализации проекта;
2. Определить наиболее оптимальный порядок выполнения этих этапов в целях, например, сокращения сроков выполнения всего комплекса работ.
Таким образом, методы сетевого моделирования относятся к методам принятия оптимальных решений, что оправдывает рассмотрение этого типа моделей в данной курсовой работе.
Постановка задачи.
Кондитерская фабрика решила освоить новый вид продукции подарочный набор шоколадных конфет «Юбилейный». В состав входят шесть видов шоколадных конфет. Данные для производства набора «Юбилейный» приведены в таблице 1. Рассчитать временные параметры и поместить результат вычислений в таблицу.
Проложить водопроводные трубы между девятью объектами кратчайшим путём (в экономическом смысле).
Объект 0 — водопроводная башня. Данные приведены на рисунке 1, где на рёбрах графа — стоимость работ по прокладке водопровода на данном участке (ребре).
1. Теоретическая часть
1.1 Основные определения
Событиями — называются результаты выполнения одной или нескольких работ. Они не имеют протяженности во времени. Событие свершается в тот момент, когда оканчивается последняя из работ, входящая в него. События обозначаются одним числом и при графическом представлении сетевая модель изображаются кружком (или иной геометрической фигурой), внутри которого проставляется его порядковый номер (i = 1, 2, …, n).
В сетевой модели имеется начальное событие (с номером 1), из которого работы только выходят, и конечное событие (с номером N), в которое работы только входят.
Путь — это цепочка следующих друг за другом работ, соединяющих начальную и конечную вершины, например, в приведенной выше модели путями являются L1 = (1, 2, 3, 7, 10, 11), L2 = (1, 2, 4, 6, 11) и др.
Продолжительность пути — определяется суммой продолжительностей составляющих его работ. Путь, имеющий максимальную длину, называют критическим и обозначают LKp, а его продолжительность — tкр. Работы, принадлежащие критическому пути, называются критическими. Их несвоевременное выполнение ведет к срыву сроков всего комплекса работ.
Сравнительный анализ эконометрических моделей регрессии
... моделирования, а также получение практических навыков построения и исследования эконометрических моделей. Задача курсового проекта - использование на практике знаний и навыков в построении и ... снизить влияние ошибок измерения на полученные результаты. Главный инструмент эконометрики - эконометрическая модель, то есть формализованное описание количественных взаимосвязей между переменными. В ...
Сетевой моделью (другие названия: сетевой график, сеть) называется экономико-компьютерная модель, отражающая комплекс работ (операций) и событий, связанных с реализацией некоторого проекта (научно-исследовательского, производственного и др.), в их логической и технологической последовательности и связи.
Математический аппарат сетевых моделей базируется на теории графов.
Графом называется совокупность двух конечных множеств точек, которые называются вершинами, и множества пар вершин, которые называются ребрами. Если рассматриваемые пары вершин являются упорядоченными, т. е. на каждом ребре задается направление, то граф называется ориентированным; в противном случае — неориентированным. Последовательность неповторяющихся ребер, ведущая от некоторой вершины к другой, образует путь.
Граф называется связным, если для любых двух его вершин существует путь, их соединяющий; в противном случае граф называется несвязным.
В экономике чаще всего используются два вида графов: дерево и сеть.
Дерево представляет собой связный граф без циклов, имеющий исходную вершину (корень) и крайние вершины; пути от исходной вершины к крайним вершинам называются ветвями.
Сеть — это ориентированный конечный связный граф, имеющий начальную вершину (источник) и конечную вершину (сток).
Таким образом, сетевая модель представляет собой граф вида «сеть».
1.2 Построение сетевой модели
В экономических исследованиях сетевые модели возникают при моделировании экономических процессов методами сетевого планирования и управления (СПУ).
Объектом управления в системах сетевого планирования и управления являются коллективы исполнителей, располагающих определенными ресурсами и выполняющих определенный комплекс операций, который призван обеспечить достижение намеченной цели, например, разработку нового изделия, строительства объекта и т.п.
Основой сетевого планирования и управления является сетевая модель (СМ), в которой моделируется совокупность взаимосвязанных работ и событий, отображающих процесс достижения определенной цели. Она может быть представлена в виде графика или таблицы.
На рисунке 1 графически представлена сетевая модель, состоящая из 11 событий и 16 работ, продолжительность выполнения которых указана над работами.
Рисунок 1- Сеть
Работа характеризует материальное действие, требующее использования ресурсов, или логическое, требующее лишь взаимосвязи событий. При графическом представлении работа изображается стрелкой, которая соединяет два события. Она обозначается парой заключенных в скобки чисел (i,j), где i — номер события, из которого работа выходит, а j — номер события, в которое она входит. Работа не может начаться раньше, чем свершится событие, из которого она выходит. Каждая работа имеет определенную продолжительность t (i,j)-Например, запись t (2,5) = 4 означает, что работа (2,5) имеет продолжительность 5 единиц. К работам относятся также такие процессы, которые не требуют ни ресурсов, ни времени выполнения. Они заключаются в установлении логической взаимосвязи работ и показывают, что одна из них непосредственно зависит от другой; такие работы называются фиктивными и на графике изображаются пунктирными стрелками.
Практическая работа «Рациональное экономическое поведение…»
... экономики существует суверенитет потребителя. 2. Главная цель потребителя - извлечение максимальной прибыли. А. верно только 1. Б. верно только 2. В. верны оба суждения. Г. оба суждения неверны. Практические ... продавца) в области установления срока службы, срока годности товара (работы), а также гарантийного срока на товар (работу) На товар (работу), предназначенный для длительного использования, ...
Сетевая модель имеют ряд характеристик, которые позволяют определить степень напряженности выполнения отдельных работ, а также всего их комплекса и принять решение о перераспределении ресурсов.
Перед расчетом СМ следует убедиться, что она удовлетворяет следующим основным требованиям:
1. События правильно пронумерованы, т. е. для каждой работы (i, j) i < j (см. на рисунок 2 работы (4,3) и (3,2)).
При невыполнении этого требования необходимо использовать алгоритм пере нумерации событий, который заключается в следующем:
- Нумерация событий начинается с исходного события, которому присваивается № 1;
- Из исходного события вычеркивают все исходящие из него работы (стрелки), и на оставшейся сети находят событие, в которое не входит ни одна работа, ему и присваивают № 2;
— Затем вычеркивают работы, выходящие из события № 2, и вновь находят событие, в которое не входит ни одна работа, и ему присваивают № 3, и так продолжается до завершающего события, номер которого должен быть равен количеству событий в сетевом графике. Если при очередном вычеркивании работ одновременно несколько событий не имеют входящих в них работ, то их нумеруют очередными номерами в произвольном порядке.
2. Отсутствуют тупиковые события (кроме завершающего), т. е. такие, за которыми не следует хотя бы одна работа (событие 5, рисунок 2);
3. Отсутствуют события (за исключением исходного), которым не предшествует хотя бы одна работа (событие 7, рисунок 2);
4. Отсутствуют циклы, т. е. замкнутые пути, соединяющие событие с ним же самим (см. путь (2,4,3) рисунок 2).
Рисунок 2 — Сетевая модель
При невыполнении указанных требований бессмысленно приступать к вычислениям характеристик событий, работ и критического пути.
1.3 Оптимизация сетевой модели.
Для событий рассчитывают три характеристики: ранний и поздний срок совершения события, а также его резерв.
Ранний срок свершения события определяется величиной наиболее длительного отрезка пути от исходного до рассматриваемого события, причем tр(1) = 0, a tр (N) = tKp(L) : tр(j)=max tр(j) +(i,j); j=2,N
Поздний срок свершения события характеризует самый поздний допустимый срок, к которому должно совершиться событие, не вызывая при этом срыва срока свершения конечного события:
- tn (i) = min { tn (i) — t(i,j); j=2,N-1
Этот показатель определяется «обратным ходом», начиная с завершающего события, с учетом соотношения tn (N) = tp (N).
Все события, за исключением событий, принадлежащих критическому пути, имеют резерв R(i):
R(i) = tn (i) — tp (i)
сетевой модель график программирование
Резерв показывает, на какой предельно допустимый срок можно задержать наступление этого события, не вызывая при этом увеличения срока выполнения всего комплекса работ. Для всех работ (i,j) на основе ранних и поздних сроков свершения всех событий можно определить показатели:
Ранний срок начала — tpn(i,j) = p(i),
Ранний срок окончания — tpo(i,j) = tp(i) +t(i,j)
Поздний срок окончания — tno(U)=tn(j)
Поздний срок начала —tпн(i,j) = tn(j) — t(i,j)
Полный резерв времени —Rn(i,j) = tn(j) — tp(i) — t(i,j),
Независимый резерв — Rн(i,j)=max0;tp(j)-tn(i) — t(i,j)=
= max {0; Rn(i,j)-R(i)-R(j)}.
Полный резерв времени показывает, на сколько можно увеличить время выполнения конкретной работы при условии, что срок выполнения всего комплекса работ не изменится.
Независимый резерв времени соответствует случаю, когда все предшествующие работы заканчиваются в поздние сроки, а все последующие — начинаются в ранние сроки. Использование этого резерва не влияет на величину резервов времени других работ.
Путь характеризуется двумя показателями — продолжительностью и резервом. Продолжительность пути определяется суммой продолжительностей составляющих его работ.
Резерв определяется как разность между длинами критического и рассматриваемого путей. Из этого определения cледует, что работы, лежащие на критическом пути, и сам критический путь имеют нулевой резерв времени. Резерв времени пути показывает, на сколько может увеличиться продолжительность работ, составляющих данный путь, без изменения продолжительности общего срока выполнения всех работ.
Перечисленные выше характеристики СМ могут быть получены на основе приведенных аналитических формул, а процесс вычислений отображен непосредственно на графике, либо в матрице (размерности N*N), либо в таблице.
Рассмотрим последний указанный способ для расчета СМ, которая представлена на рисунке 1, результаты расчета приведены в таблице 1.
Перечень работ и их продолжительность перенесем во 2 и 3 графы таблицы 1. При этом работы следует последовательно записывать в графу 2, сперва начинающиеся с номера 1, затем с номера 2 и т.д.
Таблица 1- Расчет основных показателей сетевой модели
Кпр |
(i,j) |
t(i,j) |
tpн(i,j)= tp |
tpo(i,j) |
tnн(i,j) |
tno(i,j)= tn |
Rn |
Rн |
Кн |
|
1 |
2 |
3 |
4 |
5=4+3 |
6=7-3 |
7 |
8 |
9 |
10 |
|
0 |
(1,2) |
6 |
0 |
6 |
0 |
6 |
0 |
0 |
1 |
|
1 |
(2,3) |
5 |
6 |
11 |
12 |
17 |
6 |
0 |
0,67 |
|
1 |
(2,4) |
3 |
6 |
9 |
6 |
9 |
0 |
0 |
1 |
|
1 |
(2,5) |
4 |
6 |
10 |
11 |
15 |
5 |
5 |
0,44 |
|
1 |
(3,7) |
1 |
11 |
12 |
17 |
18 |
6 |
0 |
0,67 |
|
1 |
(4,5) |
6 |
9 |
15 |
9 |
15 |
0 |
0 |
1 |
|
1 |
(4,6) |
4 |
9 |
13 |
17 |
21 |
8 |
0 |
0,47 |
|
1 |
(4,9) |
7 |
9 |
16 |
14 |
21 |
5 |
0 |
0,67 |
|
2 |
(5,8) |
3 |
15 |
18 |
17 |
20 |
2 |
0 |
0,78 |
|
2 |
(5,10) |
9 |
15 |
24 |
15 |
24 |
0 |
0 |
1 |
|
1 |
(6,9) |
0 |
13 |
13 |
21 |
21 |
8 |
0 |
0,38 |
|
1 |
(6,11) |
5 |
13 |
18 |
28 |
33 |
15 |
7 |
0,38 |
|
1 |
(7,10) |
6 |
12 |
18 |
18 |
24 |
6 |
0 |
0,67 |
|
1 |
(8,10) |
4 |
18 |
22 |
20 |
24 |
2 |
0 |
0,78 |
|
2 |
(9,10) |
3 |
16 |
19 |
21 |
24 |
5 |
0 |
0,67 |
|
4 |
(10,11) |
9 |
24 |
33 |
24 |
33 |
0 |
0 |
1 |
|
В 1 графе поставим число Кпр, характеризующее количество работ, непосредственно предшествующих событию, с которого начинается рассматриваемая работа.
Для работ, начинающихся с номера «1», предшествующих работ нет. Для работы, начинающейся на номер «k», просматриваются все верхние строчки второй графы таблицы и отыскиваются строки, оканчивающиеся на этот номер. Количество найденных работ записывается во все строчки, начинающиеся с номера «k». Например, для работы (5,8) в графе 1 поставим цифру 2, так как в графе 2 на номер 5 оканчиваются две работы: (2,5) и (4,5).
Заполнение таблицы начинается с расчета раннего срока начала работ. Для работ, имеющих цифру «ноль» в первой графе, в графе 4 также заносятся нули, а их значение в графе 5 получается в результате суммирования граф 3 и 4. В нашем случае таких работ только одна — (1, 2), поэтому в графе 4 в соответствующей ей строке проставим 0, а в графе 5 — 0 + 6 = 6.
Для заполнения следующих строк графы 4, т. е. строк, начинающихся с номера 2, просматриваются заполненные строки графы 5, содержащие работы, которые оканчиваются на этот номер, и максимальное значение переносится в графу 4 обрабатываемых строк. В данном случае такая работа лишь одна (1, 2), о чем можно судить по графе 1. Цифру 6 из графы 5 переносим в графу 4 для всех работ, начинающихся с номера 2, т. е. в три последующие строки с номерами (2, 3), (2, 4), (2, 5).
Далее для каждой из этих работ путем суммирования их значений графы 3 и 4 сформируем значение графы 5:
tpo(2.3) = 5 + 6 =11
tpo(2.4) = 3 + 6 = 9
Этот процесс повторяется до тех пор, пока не будет заполнена последняя строка таблицы.
Графы 7 и 6 заполняются «обратным ходом», т. е. снизу вверх. Для этого просматриваются строки, оканчивающиеся на номер последнего события, и из графы 5 выбирается максимальная величина, которая записывается в графу 7 по всем строчкам, оканчивающимся на номер последнего события (см. формулу tn(N) = tp(N)).
В нашем случае t(N) = 33. Затем для этих строчек находится содержимое графы 6 как разность между графами 7 и 3:
tpo(10.11) = 33 — 9 = 24.
Далее просматриваются строки, оканчивающиеся на номер события, которое непосредственно предшествует завершающему событию (10).
Для определения графы 7 этих строк (работы (5,10), (7,10), (8,10), (9,10)) просматриваются все строчки графы 6, лежащие ниже и начинающиеся с номера 10.
В графе 6 среди них выбирается минимальная величина, которая переносится в графу 7 по обрабатываемым строчкам. В нашем случае она одна — (10,11), поэтому заносим во все строки указанных работ цифру «24». Процесс повторяется до тех пор, пока не будут заполнены все строки по графы 6 и 7.
Содержимое графы 8 равно разности граф 6 и 4 или граф 7 и 5 . Графу 9 проще получить, воспользовавшись формулой.
Учитывая, что нулевой резерв времени имеют только события и работы, которые принадлежат критическому пути, получаем, что критическим является путь
LKp = (1,2,4,5,10,11), а tкр = 33 дня
Для оптимизации сетевой модели, выражающейся в перераспределении ресурсов с ненапряженных работ на критические для ускорения их выполнения, необходимо как можно более точно оценить степень трудности своевременного выполнения всех работ, а также «цепочек» пути. Более точным инструментом решения этой задачи по сравнению с полным резервом является коэффициент напряженности, который может быть вычислен одним из двух способов по приводимой ниже формуле:
KH=(i,j)= t (Lmax)-tkp /tkp — tkp`= 1- Rn — Rn (i,j)/ tkp — tkp`
где t(L max) — продолжительность максимального пути, проходящего через работу (i,j), tkp`— продолжительность отрезка рассматриваемого пути, совпадающего с критическим путем.
Коэффициент напряженности изменяется от нуля до единицы, причем, чем он ближе к единице, тем сложнее выполнить данную работу в установленный срок. Самыми напряженными являются работы критического пути, для которых он равен 1. На основе этого коэффициента все работы СМ могут быть разделены на три группы:
- напряженные (KH(i,j) >
- 0,8);
- под критические (0,6 <
- KH(i,j) <
- 0,8);
- резервные ( KH (i,j) < 0,6).
В результате перераспределения ресурсов стараются максимально уменьшить общую продолжительность работ, что возможно при переводе всех работ в первую группу.
При расчете этих показателей целесообразно пользоваться графиком СМ. Итак, для работ критического пути (1,2), (2,4), (4,5),(5,10),(10,11) Kн=1.
Для других работ:
- Kн(2,3) = 1 — (6: (33 — (6 + 9)) = 1- 0,33 = 0,67
- Kн (4,9) — 1 — (5: (33 — (6 + 3 + 9)) = 1 — 0,33 = 0,67
- Kн (5,8) = 1 — (2: (33 — (6 + 3 + 6 + 9)) = 1 — 0,22 = 0,78 и т.д.
В соответствии с результатами вычислений Кн для остальных работ, которые представлены в последней графе таблицы 1, можно утверждать, что оптимизация СМ возможна в основном за счет двух резервных работ: (6,11) и (2,5).
2. Практическая часть
2.1 Алгоритм решения задач вручную
1. Составить сеть.
2. Найти критический и оптимальный пути.
3. Необходимо оптимизировать сетевую модель при помощи таблицы.
3.1. Перенесём перечень работ и их продолжительность во 2-ю и 3-ю графы таблицы.
3.2. В 1-ой графе поставим число Кпр, характеризующее количество работ, непосредственно предшествующих событию, с которого начинается рассматриваемая работа.
3.3. Для заполнения 4-ой графы необходимо подсчитать ранний срок начала работ.
3.4. Графа 5 заполняется суммой 4-ой и 3-ей графы.
3.5. Графа 6 заполняется разностью 7-ой и 3-ей графы.
3.6. Графа 7 заполняется параллельно с графой 6 начиная с последней ячейки, в которой записывается критический путь.
3.7. Графа 8 заполняется разностью графы 6 и 4.
2.2 Алгоритм решения задач на ЭВМ
Краткий алгоритм решения задачи на ЭВМ приведён на рисунке 1.
1. Нанесение на форму приложения компонентов и кнопок.
2. Написание процедуры для кнопки «Начертить таблицу».
2.1. Создание цикла для черчения таблицы.
2.2 . Заполнение заголовков таблицы.
2.3. Применение стилей оформления к таблице.
2.4. Применение шрифтов к заголовкам.
2.5. Вывод сообщений с дальнейшими действиями.
2.6. Установка свойств для кнопок.
3. Написание процедуры для кнопки «Решение».
3.1. Создание цикла для подсчёта столбца 5.
3.2. Создание цикла для подсчёта столбца 6.
3.3. Создание цикла для подсчёта столбца 7.
3.4. Создание цикла для подсчёта столбца 8.
3.5. Вывод сообщений с дальнейшими действиями.
3.6. Установка свойств для кнопок.
4. Написание процедуры для кнопки «Очистка».
4.1. Создание цикла для удаления таблицы.
4.2. Очистка формы от лишних данных.
4.3. Установка свойств для кнопок.
5. Тестирование и отладка программы.
Общая блок схема
Решение задач
Постановка задачи 1. Кондитерская фабрика решила освоить новый вид продукции подарочный набор шоколадных конфет «Юбилейный». В состав входят шесть видов шоколадных конфет. Данные для производства набора «Юбилейный» приведены в таблице 1. Рассчитать временные параметры и поместить результат вычислений в таблицу.
Таблица 1 — Исходные данные
Операция |
Наименование работы |
Непосредственно предшествующие работы |
Продолжительность дней |
|
А |
Разработка производства конфет первого вида |
14 |
||
Б |
Разработка производства конфет второго вида |
8 |
||
В |
Разработка производства конфет третьего вида |
16 |
||
Г |
Разработка производства конфет четвёртого вида |
10 |
||
Д |
Разработка производства конфет пятого вида |
12 |
||
Е |
Разработка производства конфет шестого вида |
14 |
||
Ж |
Разработка эскиза коробки |
20 |
||
З |
Передача технологических документов в производство |
А |
2 |
|
И |
Тоже |
Б |
2 |
|
К |
Тоже |
В |
2 |
|
Л |
Тоже |
Г |
2 |
|
М |
Тоже |
Д |
2 |
|
Н |
Тоже |
Е |
2 |
|
О |
Оформление заказа на изготовление коробки |
Ж |
2 |
|
П |
Производство конфет первого вида |
З |
8 |
|
Р |
Производство конфет второго вида |
И |
10 |
|
С |
Производство конфет третьего вида |
К |
10 |
|
Т |
Производство конфет четвёртого вида |
Л |
12 |
|
У |
Производство конфет пятого вида |
М |
8 |
|
Ф |
Производство конфет шестого вида |
Н |
12 |
|
Ц |
Производство коробок |
О |
6 |
|
Ч |
Комплектация наборов конфет |
П — Ф |
6 |
|
Ш |
Доставка коробок |
Ц |
1 |
|
Э |
Передача на упаковку |
Ч |
2 |
|
Ю |
Тоже |
Ш |
1 |
|
Я |
Упаковка наборов конфет |
Э, Я |
1 |
|
1. Составление сети и нахождение критического и оптимального пути.
Рисунок 1 — Сеть
S |
А |
Б |
В |
Г |
Д |
Е |
Ж |
А — З |
Б — И |
В — К |
Г — Л |
Д — М |
Е — Н |
О — Ж |
З — П |
И — Р |
|
T |
14 |
8 |
16 |
10 |
12 |
14 |
20 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
8 |
10 |
|
К — С |
Л — Т |
М — У |
Н — Ф |
О — Ц |
П — Ч |
Р — Ч |
С — Ч |
Т — Ч |
У — Ч |
Ф — Ч |
Ц — Ш |
Ч — Э |
|
10 |
12 |
8 |
12 |
6 |
6 |
6 |
6 |
6 |
6 |
6 |
1 |
2 |
|
Ш — Ю |
Э — Я |
Ю — Я |
|
1 |
1 |
1 |
|
2. А, З, П, Ч, Э, Я = 19
3. А, Б, И, Р,Ч, Э, Я = 35
4. А, Б, В, К, С, Ч, Э, Я = 43
5. А, Б, В, Г, Л, Т, Ч, Э, Я = 53
6. А, Б, В, Г, Д, Е, Ж, О, Ц, Ш, Ю, Я = 89
7. А, Б, В, Г, Д, Е, Н, Ф, Ч, Э, Я = 91
8. А, Б, В, Г, Д, М, У, Ч, Э, Я = 61
MIN = 19
MAX = 9
Таблица 2 — Оптимизация сетевой модели при помощи таблицы
Кпр |
(i,j) |
t(i,j) |
tpн(i,j)= tp |
tpo(i,j) |
tnн(i,j) |
tno(i,j)= tn |
Rn |
Rн |
|
1 |
2 |
3 |
4 |
5=4+3 |
6=7-3 |
7 |
8 |
9 |
|
1 |
а |
14 |
0 |
14 |
67 |
71 |
67 |
0 |
|
0 |
б |
8 |
14 |
22 |
61 |
69 |
57 |
0 |
|
1 |
в |
16 |
22 |
38 |
53 |
69 |
31 |
0 |
|
1 |
г |
10 |
32 |
42 |
57 |
67 |
25 |
0 |
|
1 |
д |
12 |
44 |
56 |
59 |
71 |
15 |
0 |
|
1 |
е |
14 |
58 |
72 |
53 |
67 |
5 |
0 |
|
1 |
ж |
20 |
78 |
98 |
61 |
81 |
17 |
0 |
|
1 |
а — з |
2 |
0 |
2 |
71 |
73 |
71 |
0 |
|
0 |
б — и |
2 |
14 |
16 |
69 |
71 |
57 |
0 |
|
1 |
в — к |
2 |
22 |
24 |
69 |
71 |
47 |
0 |
|
1 |
г — л |
2 |
32 |
34 |
67 |
69 |
35 |
0 |
|
1 |
д — м |
2 |
44 |
43 |
71 |
73 |
27 |
0 |
|
1 |
е — н |
2 |
58 |
60 |
67 |
69 |
9 |
0 |
|
1 |
о — ж |
2 |
80 |
82 |
79 |
81 |
1 |
0 |
|
1 |
з — п |
8 |
2 |
10 |
73 |
81 |
71 |
0 |
|
1 |
и — р |
10 |
16 |
26 |
71 |
81 |
55 |
0 |
|
1 |
к — с |
10 |
24 |
34 |
71 |
81 |
47 |
0 |
|
1 |
л — т |
12 |
34 |
46 |
69 |
81 |
35 |
0 |
|
1 |
м — у |
8 |
48 |
56 |
73 |
81 |
25 |
0 |
|
1 |
н — ф |
12 |
60 |
72 |
69 |
81 |
9 |
0 |
|
1 |
о — ц |
6 |
80 |
86 |
81 |
87 |
1 |
0 |
|
1 |
п — ч |
6 |
10 |
12 |
81 |
87 |
71 |
0 |
|
1 |
р — ч |
6 |
26 |
32 |
81 |
87 |
55 |
0 |
|
1 |
с — ч |
6 |
34 |
40 |
81 |
87 |
47 |
0 |
|
1 |
т — ч |
6 |
46 |
52 |
81 |
87 |
35 |
0 |
|
1 |
у — ч |
6 |
56 |
62 |
81 |
87 |
25 |
46 |
|
1 |
ф — ч |
6 |
72 |
78 |
81 |
87 |
9 |
36 |
|
1 |
ц — ш |
1 |
86 |
87 |
87 |
88 |
1 |
26 |
|
0 |
ч — э |
2 |
62 |
64 |
87 |
89 |
25 |
16 |
|
1 |
ш — ю |
1 |
87 |
88 |
88 |
89 |
1 |
0 |
|
1 |
э — я |
1 |
64 |
65 |
89 |
90 |
25 |
0 |
|
1 |
ю — я |
1 |
89 |
90 |
89 |
90 |
0 |
0 |
|
Постановка задачи 2. Проложить водопроводные трубы между девятью объектами кратчайшим путём (в экономическом смысле).
Объект 0 — водопроводная башня. Данные приведены на рисунке 2, где на рёбрах графа — стоимость работ по прокладке водопровода на данном участке (ребре).
Введём следующие обозначения Cij — стоимость работ по прокладке водопровода между объектами i и j. Oj — минимальная стоимость работ, от объекта 0 до объекта j, то есть Q0 = 0. Тогда Oj = min (Oi+Cij).
Рисунок 2 — Сеть.
1) 0, 3, 5, 7, 8 = 14
2) 0, 2, 5, 7, 8 = 16
3) 0, 1, 4, 6, 5, 7, 8 = 19
4) 0, 1, 4, 6, 7, 8 = 16
5) 0, 1, 4, 8 = 8
MIN = 8
MAX = 19
Заключение
Во время работы над курсовым проектом я: закрепил и систематизировал теоретический материал по дисциплине «Моделирование производственных и экономических процессов», расширил и углубил знания по данной теме, развил самостоятельность при подборе материала и решении поставленных задач.
А также самостоятельно составил алгоритмы для решения поставленных задач и составил программу для реализации поставленных задач.
За это время мне удалось разработать программу для оптимизации сетевого графика, при помощи табличного редактора Microsoft Excel и среды программирования Visual Basic. При разработке программы мне удалось, более тесно познакомится со средой программирования Visual Basic.
Приложение
Рисунок 1 — Ввод данных
Рисунок 2 — Вывод таблицы
Рисунок 3 — Ввод исходных данных
Рисунок 4 — Получение результата
Рисунок 5 — Очистка
Листинг программы
Private Sub CommandButton1_Click()
n = Лист1.Cells(1, 4)
For i = 1 To n + 2
For j = 1 To 10
Лист1.Cells(i + 2, j).Borders.LineStyle = 1
Next j
Next i
Лист1.Cells(3, 1) = «K»
Лист1.Cells(3, 2) = «I,J»
Лист1.Cells(3, 4) = «T (I,J)»
Лист1.Cells(3, 5) = «Tph (I,J)»
Лист1.Cells(3, 6) = «Tno»
Лист1.Cells(3, 7) = «Tph»
Лист1.Cells(3, 8) = «Tno»
Лист1.Cells(3, 9) = «Rn»
Лист1.Cells(3, 10) = «Rh»
Лист1.Cells(4, 1) = «1»
Лист1.Cells(4, 2) = «2»
Лист1.Cells(4, 4) = «3»
Лист1.Cells(4, 5) = «4»
Лист1.Cells(4, 6) = «5»
Лист1.Cells(4, 7) = «6»
Лист1.Cells(4, 8) = «7»
Лист1.Cells(4, 9) = «8»
Лист1.Cells(4, 10) = «9»
n = Лист1.Cells(1, 4)
For i = 1 To 2
For j = 1 To 10
Лист1.Cells(i + 2, j).Borders.LineStyle = 12
Лист1.Cells(i + 2, j).Borders.ColorIndex = 7
Лист1.Cells(i + 2, j).Font.ColorIndex = 5
Next j
Next i
Лист1.Cells(11, 13).Font.ColorIndex = 3
Лист1.Cells(11, 13) = «Заполните столбцы 1, 2, 3, 4»
Лист1.Cells(12, 13).Font.ColorIndex = 3
Лист1.Cells(12, 13) = «Столбец 1 заполняется количеством предшествующих работ»
Лист1.Cells(13, 13).Font.ColorIndex = 3
Лист1.Cells(13, 13) = «Столбец 2 заполняется номерами работ»
Лист1.Cells(14, 13).Font.ColorIndex = 3
Лист1.Cells(14, 13) = «Столбец 3 заполняется временем затраченным на данную работу»
Лист1.Cells(15, 13).Font.ColorIndex = 3
Лист1.Cells(15, 13) = «Столбец 4 заполняется максимальным количеством времени на событие I »
CommandButton1.Visible = False
CommandButton2.Visible = True
End Sub
Private Sub CommandButton2_Click()
n = Лист1.Cells(1, 4)
For i = 5 To n + 4
Лист1.Cells(i, 6) = Лист1.Cells(i, 4) + Лист1.Cells(i, 5)
Next i
Лист1.Cells(n + 4, 8) = Лист1.Cells(n + 4, 6)
Лист1.Cells(n + 4, 7) = Лист1.Cells(n + 4, 8) — Лист1.Cells(n + 4, 4)
For i = 1 To n + 3
If Лист1.Cells(n + 4, 3) = Лист1.Cells(i, 3) Then Лист1.Cells(i, 8) = Лист1.Cells(i, 7):Лист1. Cells(j, 6) = Лист1.Cells(i, 7) — Лист1.Cells(i, 3)
Next i
For i = n + 4 To 5 Step -1
For j = 5 To n + 3
If Лист1.Cells(i, 2) = Лист1.Cells(j, 3) Then Лист1.Cells(j, 8) = Лист1.Cells(i, 7): Лист1. Cells(j, 6) = Лист1.Cells(i, 7) — Лист1.Cells(i, 3)
Next i
Next j
n = Лист1.Cells(1, 4)
For i = 5 To n + 4
Лист1.Cells(i, 9) = Лист1.Cells(i, 7) — Лист1.Cells(i, 5)
Next i
Лист1.Cells(11, 13).Font.ColorIndex = 3
Лист1.Cells(11, 13) = «Теперь подсчитаем и заполним столбец 9»
Лист1.Cells(12, 13) = «»
Лист1.Cells(13, 13) = «»
Лист1.Cells(14, 13) = «»
Лист1.Cells(15, 13) = «»
CommandButton2.Visible = False
End Sub
Private Sub CommandButton3_Click()
n = Лист1.Cells(1, 4)
For i = 1 To n + 2
For j = 1 To 10
Лист1.Cells(i + 2, j).Borders.LineStyle = 0
Next j
Next i
Лист1.Cells(3, 1) = «»
Лист1.Cells(3, 2) = «»
Лист1.Cells(3, 4) = «»
Лист1.Cells(3, 5) = «»
Лист1.Cells(3, 6) = «»
Лист1.Cells(3, 7) = «»
Лист1.Cells(3, 8) = «»
Лист1.Cells(3, 9) = «»
Лист1.Cells(3, 10) = «»
Лист1.Cells(4, 1) = «»
Лист1.Cells(4, 2) = «»
Лист1.Cells(4, 4) = «»
Лист1.Cells(4, 5) = «»
Лист1.Cells(4, 6) = «»
Лист1.Cells(4, 7) = «»
Лист1.Cells(4, 8) = «»
Лист1.Cells(4, 9) = «»
Лист1.Cells(4, 10) = «»
Лист1.Cells(11, 13) = «»
Лист1.Cells(12, 13) = «»
Лист1.Cells(13, 13) = «»
Лист1.Cells(14, 13) = «»
Лист1.Cells(15, 13) = «»
CommandButton1.Visible = True
CommandButton2.Visible = False
End Sub