AGL-системы.

Maxime, 22.6.96
Программирование N5'95

Структура растений, например, дерева, имеет рекурсивную, фрактальную природу. Почки на ветвях первого порядка порождают ветви второго порядка, почки на ветвях второго порядка порождают ветви третьего порядка и т.д. Известно несколько способов порождения таких объектов.

Однако, самым распространенным способом описания геометрического строения растений являются, повидимому, L-системы. L-системы подобны грамматикам, однако, если в грамматиках на каждом шаге вывода заменяется единственное вхождение нетерминала, то в L-системах все нетерминалы заменяются параллельно. Это свойство позволяет моделировать развитие объекта. При моделировании геометрических объектов L-системы обычно используют для порождения текста, символы которого затем интерпретируются как команды для пера, осуществляющего развитие объекта.

Правила, с помощью которых задаются L-системы, весьма сложны, и их изменение приводит к плохопредсказуемым результатам. Для упрощения и предсказуемости последствий изменения правил были введены атрибутные геометрические L-системы (AGL-системы).

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

В начале процесса существует один порождающий символ T с атрибутом x = const.

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

ALG-система

На рисунке приведено дерево, построенное с использованием описанных правил.

G-gramar.ps -- пример на языке Postscript, просто отправьте этот файл на принтер, понимающий язык Postscript.


Изменена 19.03.2011 06:45 MSK Яндекс цитирования Рейтинг@Mail.ru