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

2016-07-30СтудИзба

Описание файла

Документ из архива "Нахождение критического пути табличным методом", который расположен в категории "". Всё это находится в предмете "экономико-математическое моделирование" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "экономико-математическое моделирование" в общих файлах.

Онлайн просмотр документа "183550"

Текст из документа "183550"

Содержание

Введение 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    10. Для отыскания критического пути из первой встретившейся записи с полным резервом равным нулю берутся значения начала и завершения вида работ. Для всех последующих записей берётся только обозначение этапа завершения вида работ. Работоспособность такому алгоритму обеспечивает структура расчётной таблицы, где виды работ упорядочены по этапам их начала. Однако если пользователь пронумерует этапы в обратном порядке, может случиться так, что какой-нибудь этап встретится в критическом пути два раза, а другой ни разу. Для этого предусмотрен алгоритм поиска повторяющихся значений в критическом пути. Если повторения обнаружены, то программа строит критический путь в обратном порядке. Из последней встретившейся записи с полным резервом равным нулю берутся значения завершения и начала вида работ. Для всех последующих записей берётся только обозначение этапа начала вида работ.

  2. Результаты вычислений выводятся на экран. Пользователь может перевести единицы времени в обратном порядке (п. 3).

5.Пример решения задачи на ЭВМ

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

Пусть задан граф.

На основе данных графа строится таблица

Виды работ

Продол-

житель-

ность

Время раннего начала

Время раннего конца

Время позднего начала

Время позднего конца

Полный резерв

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

Сначала вводится число этапов работ (в данном примере 10)

Исходя из данных таблицы заполняется электронная таблица исходных данных, где номер строки – этап начала работы, а номер столбца – этап завершения работы.

После нажатия на кнопку «ОК» откроется меню решения

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

Произведя расчёт получим итоговую таблицу:

Можно осуществить обратный перевод единиц времени.

Эта задача была решена ранее без использования ЭВМ и имела решение:

Виды работ

Продол-

житель-

ность

Время раннего начала

Время раннего конца

Время позднего начала

Время позднего конца

Полный резерв

1-2

2

0

2

6

8

6

1-4

1

0

1

1

3

2

1-5

4

0

4

0

4

0

2-3

3

2

5

8

11

6

4-3

5

1

6

6

11

4

4-6

3

1

4

3

6

2

4-7

1

1

2

4

5

3

4-9

3

1

4

8

11

7

5-6

2

4

6

4

6

0

6-10

5

6

11

6

11

0

7-8

6

2

8

5

11

3

7-9

2

2

4

9

11

7

Критический путь: 1-5-6-10

Результаты вычислений вручную и на ЭВМ совпадают.


5.Описание интерфейса и руководство пользователя

При запуске Excel файла появляется стартовое окно, на котором располагаются 2 кнопки:

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее