Нахождение критического пути табличным методом

Содержание

Введение. 2

1.Постановка задачи. 3

2.Метод решения. 4

3.Язык программирования. 11

4.Описание алгоритма. 12

5.Контрольный пример. 15

6.Описание интерфейса с пользователем. 19

Заключение. 20

Литература. 21

Листинг программы 22

Введение

Сетевой график – необходимый элемент слож

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

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

1.Постановка задачи

Мы рассматриваем задачу, представленную в виде графа.

Рис. 1

Вершины графа – этапы работ.

Рёбра графа – выполнение работы. Рёбра имеют длину, обозначающую продолжительность работы и направление, обозначающее последовательность выполнение работы.

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

Данные задачи также могут быть представлены в виде таблицы

Виды работ

Продолжительность

1-2

2

1-4

1

1-5

4

2-3

3

4-3

5

4-6

3

4-7

1

4-9

3

5-6

2

6-10

5

7-8

6

7-9

2

Целью решения также является:

· Вычисление времени раннего начала работ каждого вида – минимального срока начала работы, считая от начала проекта.

· Вычисление времени раннего завершения работ каждого вида – минимального срока завершения работы, считая от начала проекта.

· Вычисление времени позднего начала работ каждого вида – максимального срока начала работы, считая от начала проекта.

· Вычисление времени позднего завершения работ каждого вида – максимального срока завершения работы, считая от начала проекта.

· Вычисление полного резерва работ каждого вида – максимального запаса времени на которое можно отсрочить начало работы.

3.Язык программирования

Для написания программы был выбран язык VBA по следующим причинам:

1. Visual Basic for Applications позволяет удобно работать с большими таблицами, считывая из них данные, производя над ними преобразования и строя новые.

2. Использование VBA под оболочкой Excel позволяет использовать функции данной оболочки, облегчающие ввод данных и работу с ними.

3. Этот язык позволяет автоматизировать некоторые этапы написания программы средствами макрорекордера.

4. Я хорошо знаком с этим языком и мне удобнее всего будет писать программу именно с помощью VBA.

5. Простота в освоении языка и доступность исходных кодов программы позволит последующим пользователям усовершенствовать её, или изменить под свои требования.

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

1. При запуске окна ввода начальных данных пользователю предлагается ввести количество этапов работ:

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

Б) Если условия ввода выполнены, то происходит проверка на наличие информации в листе, о чём выводится сообщение.

В) Строится таблица исходных данных

2. После прорисовки таблицы пользователь должен заполнить ее значениями:

А) После подтверждения пользователем заполнения таблицы :

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

А) Если пользователь выбрал перевод единиц времени, то числа в таблице исходных данных преобразуются по выбранной схеме.

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

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

4.1. В таблицу решения заносится информация из таблицы исходных данных и подсчитывается количество записей (число видов работ).

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

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

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

Страница:  1  2  3  4  5  6  7  8  9 


Другие рефераты на тему «Экономико-математическое моделирование»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы