Имя: Пароль:
1C
1C 7.7
v7: Сеть Петри (Функциональная сеть Петри) реализация в 1С
0 pvase
 
12.11.12
11:51
Суть задачи. Есть некоторый граф с узлами, родителей у узла может быть от 0 до N, потомков может быть от 0 до N, вершины графа храняться с указанием их индексов Х и У.
Вопросов сразу несколько.
1 - Как лучше хранить такой граф в памяти?
2 - Как сделать функциональную сеть Петри по графу, с обходом узлов и проверкой маркеров?

Прикладываю рисунок сети:
<a href='http://imglink.ru/show-image.php?id=e1ef26061a7dae22e7a2edb4e5bc023b'>; <img src='http://imglink.ru/thumbnails/12-11-12/b29dff7b779df967daa8223b8c21a7b3.jpg' border='0'> </a>

Или так:
http://imglink.ru/show-image.php?id=e1ef26061a7dae22e7a2edb4e5bc023b
1 mikecool
 
12.11.12
11:52
бизнеспроцесс?
2 Юрий Лазаренко
 
12.11.12
11:54
Справочник?
3 acsent
 
12.11.12
11:57
Так это же обычное дерево, только перевернутое
4 pvase
 
12.11.12
11:58
(1) Можно сказать что да, хотя дело с производством.
(2) В Справочнике хранятся связи. Надо в памяти организовать структуру и обойти ее на признак на каком узле сейчас находиться остановка (не хватка маркеров) и решать задачу в этом узле (фактически надо получить координаты узлов, которые сейчас могут работать ввиду достаточности маркеров).
5 Cube
 
12.11.12
11:59
(2) +1 С иерархией групп, как справочник "Подразделения" сделан.
6 Cube
 
12.11.12
11:59
+(5) Оу, это семерка... :) А там есть иерархия групп? Я что-то забыл... :)
7 pvase
 
12.11.12
12:00
(3) По виду похоже, но как такое дерево хранить лучше в памяти?
(5) Несколько родителей может быть.
8 pvase
 
12.11.12
12:02
Можно через ТаблицаЗначений, но вопрос, как организовать структуру? Можно через ИндексированнуюТаблицу- та же ТЗ, вопрос по структуре остается. И еслибы только сохранить, а так нужно посчитать что не сделано.
Самый тупой вариант - рекурсия с перебором всех доступных родителей с защитой от зацикливания - но это очень плохой алгорим, если узлов много, то получим избыточне цикли.
9 akaBrr
 
12.11.12
12:04
(8) ТЗ с вложеными ТЗ, так обычно дерево в памяти хранится в 7.7
10 Юрий Лазаренко
 
12.11.12
12:07
(6) Оу, точно. Тогда справочник не покатит.
11 ДемонМаксвелла
 
12.11.12
12:11
ТЗ, все строки имеют уникальный ключ (число или строка), есть колонки "ТЗ_Ключи_Родителей", "ТЗ_Ключи_Детей".
12 ADirks
 
12.11.12
12:25
(0) Навскидку:  http://infostart.ru/public/158512/
не читал?
13 ILM
 
гуру
12.11.12
12:37
Решается просто хранением уникальной пары.
"откуда", "куда".

"Откуда", которых нет в выборке "куда" являются "началом или стартом", а когда "куда" нет в выборке "откуда" являются "окончанием или корнем".

В одной таблице можно хранить целую кучу зависимостей.

Структура и стоимость веток графа считается рекурсивно, алгоритмами обхода.
Если граф постоянный и не меняется, то имеет смысл хранить более сложную структуру, для ускорения вычислений. Описание структуры не буду описывать, но она позволяет одним запросом  получить весь граф или его отдельные части с весами, стоимостью  и т.д.
14 ILM
 
гуру
12.11.12
12:38
(13) Это конечно к уникальному нецикличному графу.
15 pvase
 
12.11.12
15:11
(13) Спасибо, так и сделал, ТЗ + Рекурсивно пересчет через функцию.