Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Разреженное производное множество — пример 2

Закладка I N T E R F A C E | ЗАКЛАДКА GENERAL SOLVER | Закладка NONLINEAR SOLVER | ЗАКЛАДКА INTEGER SOLVER | Функции импорта файлов | Вероятностные функции | Другие функции | Пример для Windows | Доступ к элементам множества — функция @FOR | Использование других функций поэлементной обработки множеств с условиями |


Читайте также:
  1. Boot (англ. загрузка. Пример: основной загрузочный сектор) -вирусы
  2. D.1. Примеры уязвимостей
  3. III. После этого раненую конечность лучше всего зафиксировать, например, подвесив на косынке или при помощи шин, что является третьим принципом оказания помощи при ранениях.
  4. SWOT- анализ на примере ветеринарной аптечной сети.
  5. SWOT-анализ на примере ветеринарной аптечной сети.
  6. VII. Примерный перечень вопросов к зачету
  7. Анализ 80/20 на примере консалтинговой фирмы

Модель сетевого планирования по методу PERT/CPM, приведенная ниже (файл PRT.LNG в поддиректории “Samples”) использует для определения разреженного множества PRED метод явного списка. PRED является множеством, устанавливающим порядок следования поставок в плане строительных работ.

 

MODEL:

1 ]! Модель PERT/CPM;

2]!

3]! Диаграмма, устанавливающая порядок следования:

4]! /FCAST\———SCHED————COSTOUT\

5]! / \ \

6]! FIRST \ \

7]! \ \ \

8]! \SURVEY—PRICE——————————————FINAL;

9]

10] SETS:

21]! Для каждого этапа работ имеем: Time (время), Early Start (ранний срок начала работы) (ES),

22] Поздний срок начала работы (LS), and Slack (время простоя);

23] TASK/ FIRST, FCAST, SURVEY, PRICE,

24] SCHED, COSTOUT, FINAL/: TIME, ES, LS, SLACK;

25]

26]! Далее приведены связи, устанавливающие порядок следования работ, первый этап работ в этих связях the

27] должна быть завершена до того, как начнет выполняться второй этап;

28]

29] PRED(TASK, TASK)/ FIRST,FCAST, FIRST,SURVEY,

30] FCAST,PRICE, FCAST,SCHED, SURVEY,PRICE,

31] SCHED,COSTOUT, PRICE,FINAL, COSTOUT,FINAL/;

32] ENDSETS

33]

34] DATA:! здесь приведены времена выполнения каждого этапа;

35] TIME = 0, 14, 3, 3, 7, 4, 10;

36] ENDDATA

37]

38]! Для первого этапа ранний срок начала = 0;

39] ES(1) = 0;

40]

41]! вычислим ранних сроков для всех этапов, кроме первого;

42] @FOR(TASK(J)| J #GT# 1:

43] ES(J) = @MAX(PRED(I, J): ES(I) + TIME(I)););

44]

45]! Для последнего этапа ранний срок начала = позднему сроку начала;

46] LTASK = @SIZE(TASK);

47] LS(LTASK) = ES(LTASK); SLACK(LTASK) = 0;

48]

49]! Вычислим поздние сроки начала работ для всех этапов, кроме последнего;

50] @FOR(TASK(I)| I #LT# LTASK:

51] LS(I) = @MIN(PRED(I, J): LS(J) - TIME(I));

52] SLACK(I) = LS(I) - ES(I););

END

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

TIME Время выполнения задачи на этапе

ES ранний возможный срок начала выполнения этапа

LS самый поздний возможный срок выполнения этапа

SLACK Разность между LS и ES (известная как время простоя) для этапа

 

Строки с 29 по 31 определяют разреженное множество PRED, явно перечисляя порядок следования различных этапов. Порядок следования устанавливается для двух этапов, один из них должен предшествовать другому. Например, работы по закладке фундамента должны предшествовать кровельным работам. Отметим, что только перечислено только восемь пар из 49 возможных — таким образом, используя разреженность, мы храним только 8 элементов множества вместо 49. Это приведет к уменьшению используемой памяти и ускорению решения. Для больших моделей возможная экономия может быть весьма ощутимой.

Строка 38 устанавливает ES (ранний срок начала работы) для первого этапа равным 0. Строка 46 использует функцию @SIZE для определения количества задач (этапов работ) в модели. Отметим, что @SIZE принимает имя множества в качестве аргумента и возвращает количество элементов в множестве.

Строки 42 по 43 и 50 по 52 вычисляют значения атрибутов LS, ES и SLACK. Мы не вдаемся в детали этих вычислений, чтобы не отвлекать вас от главной цели: возможности использования явных списков элементов в разреженных производных множествах и потенциальной возможности экономии памяти, предоставляемой этим методом.

 


Дата добавления: 2015-11-16; просмотров: 41 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Плотное производное множество: TRAN.LNG| Условие принадлежности элементов множеству — Пример 1

mybiblioteka.su - 2015-2024 год. (0.009 сек.)