Научная статья на тему 'Модель конструктивно-универсального автомата'

Модель конструктивно-универсального автомата Текст научной статьи по специальности «Математика»

CC BY
78
21
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Дрождин В. В., Жуков М. В.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Модель конструктивно-универсального автомата»

матрица высот в оперативной памяти

0

1 2

3

4

5

0 1 2 3 4 5 6 7 3

0 1 2 3 4 5 6 7 8

11 12 13 14 15 16 17 13 19

22 23 24 25 26 27 23 29 30

33 34 35 36 37 38 39 40 41

44 45 46 47 49 50 51 52

55 56 57 58 59 60 61 62 63

66 67 63 69 70 71 72 73 74

77 73 79 30 31 32 33 34 35

38 39 90 91 92 93 94 95 96

Рис. 5. Тороидальное копирование

Изменим на графическом процессоре текстурные координаты триангулированной сетки по формулам: и=и+/х, у=у+/,. После чего текстура на сетке отобразится со сдвигом (рис. 6).

Соответственно, при сдвиге еще на один шаг в этом же направлении новые столбец и строка ско-пируются на позицию {1, 1} и циклически сдвинутся на 2 позиции, когда позиция хс='^, по формуле (3) она обнулится, то же произойдет и с ус=^, то есть это копирование циклически будет повторяться бесконечно.

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

Текстура в видеопамяти

Триангулированная сетка

Результат наложения текстуры на сетку

72 69 70 71

39 36 37 38

50 47 43 49

61 58 59 60

0.25 0.50 0.75 1.0

0.0 0.25 0.50 0.75

И

36 37 38 39

47 48 49 50

58 59 60 61

69 70 71 72

Рис. б. Напожение текстуры после тороидапъного копирования

матрицы высот в текстуру полностью будет перемещено п2=65025 элементов, а с помощью тороидального копирования п-2=65025 элементов, что в 127,5 раза меньше.

Литература

1. Geometry Clipmaps: Terrain Rendering Using Nested Regular Grids Frank Losasso Hugues Hoppe. URL: http://re-search.microsoft.com/en-us/um/people/hoppe/geomclipmap. pdf (дата обращения: 19.07.2009).

2. GPU based clipmaps Implementation of Geometry Clip-maps for terrain with non-planar basis Anton Fruhstuck. URL: http://www.cg.tuwien.ac.at/research/publications/2008/fruehstueck-2008-gpu/fruehstueck-2008-gpu-paper.pdf (дата обращения: 19.07.2009).

3. Arul Asirvatham and Hugues Hoppe. Terrain rendering using GPU-based geometry clipmaps. In M. Pharr and R. Fernando, editors. URL: http://research.microsoft.com/en-us/um/people/hop-pe/gpugcm.pdf (дата обращения: 19.07.2009).

4. Interactive Terrain Rendering: Towards Realism with Procedural Models and Graphics Hardware Dipl.-Inf. Carsten Dachsbacher Erlangen-2006. URL: http://www.vis.uni-stutt-gart.de/~dachsbcn/publications.html (дата обращения: 19.07. 2009).

5. URL: http://www.nvidia.com/page/technologies.html (дата обращения: 19.07.2009).

МОДЕЛЬ КОНСТРУКТИВНО-УНИВЕРСАЛЬНОГО АВТОМАТА

В.В. Дрождин, к.т.н.; М.В. Жуков

(Пензенский государственный педагогический университет им. В.Г. Белинского,

йтогНсИпфрри-репга. ги)

Рассмотрена модель конструктивно-универсального автомата, определены базовые элементы, из которых конструктивно-универсальный автомат может сконструировать любой другой автомат, предложен способ спецификации процедуры сборки автомата.

Ключевые слова: клеточный автомат, универсальный автомат, конструктивно-универсальный автомат, описание автомата, конструирование автомата.

В своей работе по теории создания самовоспроизводящихся автоматов фон Нейман задался вопросом конструктивной универсальности, то есть способности автомата, заданного надлежащим образом и имеющего все необходимое сырье для построения других автоматов, сконструировать любой другой автомат [Дж. фон Нейман]. Более того, фон Нейману в рамках клеточной модели удалось построить логическую модель такого автомата. Однако она носит весьма специфический

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

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

Рецепторы (входы) - элементы автомата, которые способны воспринимать сигналы из внешней среды или от эффекторов.

Множество рецепторов обозначим через !=Щ.

Эффекторы (выходы) - элементы автомата, передающие сигнал, сгенерированный телом автомата, во внешнюю среду или рецепторам. Выходной сигнал является реакцией автомата на внешнее воздействие или на изменение своего внутреннего состояния. Множество эффекторов обозначим через O={o}.

Соединительные элементы - элементы автомата, реализующие каналы связи между парами элементов. Среди соединительных элементов выделим элементы двух типов - простые соединения и адаптеры. Простое соединение может соединять рецептор с телом автомата или тело автомата с эффектором и передает сигнал от входа к выходу без каких-либо изменений. Адаптеры - более сложные соединители, но их описание зададим при конструировании конструктивно-универсального автомата (КУА). Множество соединительных элементов обозначим через C={c}.

Тело автомата задается в виде " : X —> У.

где X=[i \, i ],..., i " ], i{ ei, j=l,n - вектор входных воздействий, поступающих от рецепторов; Y=[o J, о, ,..., о" ], о{ еО, j=l,m - вектор выходных воздействий автомата, воспроизводимых эффекторами. Отношение соответствия между рецептором и положением во входном векторе, а также между положением в выходном векторе и эффектором задается простым соединением. Тело автомата переходит в возбужденное состояние (генерирует реакцию), если каждый его рецептор находится в возбужденном состоянии (отметим, что среди всех сигналов будем выделять специальный null-сигнал, указывающий на отсутствие информации; рецепторы, способные фиксировать такой сигнал и переходить под его воздействием в возбужденное состояние, назовем сверхчувствительными рецепторами и обозначим как i,

Tel).

Будем считать, что конструктивные элементы всегда имеются в требуемом количестве.

Каждому автомату сопоставим уникальный идентификатор id е Id, где Id - множество идентификаторов. Тогда множество возможных автоматов задается пятеркой А={а | a=<Ia, Оа, fa, Са, ida>, СасС}.

Представим автомат в виде схемы:

■ f ■ f ■ f МУ

ЛЛ

01 o2 o m

Примечание: здесь и далее в схемах обозначения структурных элементов автомата зададим в виде: О - рецептор; • - эффектор; I_I - тело автомата;--простой соединитель.

В множестве А выделим подмножество A0 элементарных автоматов, то есть минимальных автоматов, из которых строятся сложные автоматы. Каждый автомат A0 состоит только из рецепторов, тела автомата, эффекторов и простых соединений. Например, элементарные автоматы для вычисления выражения * 0 представляют-

ся в виде

a+b

Конструирование КУА начнем с создания подсистемы - реестра автоматов R, представляющего собой бесконечно расширяемый словарь автоматов, то есть RcA. На множестве R определим две операции:

- get, возвращающую из R автомат с id=ida, задаваемую в виде get: ida—>а;

- contains, проверяющую, содержится ли автомат с идентификатором ida в R, задаваемую в виде contains: ida —>true| false.

В начальном состоянии реестр R будет состоять из множества первичных элементов. По мере функционирования КУА в R будут включаться все сконструированные автоматы.

Функционирование КУА представим отображением Си вида Си: d(ac) —>ас. где ас - конструируемый автомат; d(ac) - описание автомата ас.

Для определения d(ac) введем понятие обособленного элемента.

Обособленный элемент a' - это композиция элементов из R, обладающая свойствами целостности (рассматривается и используется как элемент) и локальности (реализует законченную последовательность действий).

Следовательно, обособленный элемент a' является автоматом.

Каждый обособленный элемент а' - элемент множества А (а'еА), но, в отличие от ас, элемент a'gR. Описание обособленного элемента d(a') задается четверкой d(a')=<Ida., Rela., Ia., Оа>, где Ida'={ida'} - множество идентификаторов элементов, из которых строится a'; Ia' - рецепторы автомата a'; Oa' - эффекторы автомата a'; Rela' - матрица смежности ориентированного графа, вершинами которого являются множество рецепторов и эффекторов a', а также множество рецепторов,

a

1 ■ 2

эффекторов и идентификаторов всех элементов из a'.

Описание автомата ас задается пятеркой В(ас)=<Иас,Оас,еас,1ас,Оас>, где ^ ={Ч(а')} -

множество описаний обособленных элементов автомата aс; Ь^ - шаблон aс, задающий алгоритм

работы автомата и определяющий места подстановки элементов a' в шаблон; I - рецепторы aс;

- эффекторы ас; 0ас - операция подстановки {a'}, заданного описаниями Б^, в Ь^ вида 9ас:(Ьас,{а'})^ас.

Среди всех описаний автоматов выделим вырожденное описание вида В(а*тр|е)= =<пи11,В,шр1е,пи11,пи11,пи11> или Б(аГр1е)=В,ш

simple '

где null - пусто (отсутствие), мощность множества D dmple равна единице, а входы и выходы авто-

ac

мата aS'mple задаются входами и выходами единственного обособленного элемента a'.

Описание D(aS'mple), которое обозначим как

D simple ~ 4imPle

ас , задает простой автомат as'mp .

Будем говорить, что описание D(ac) допустимо Си с реестром R, если каждое описание d(a')eDac допустимо. Описание d(a') допустимо,

если для любого идентификатора из Ida' в реестре существует автомат с таким идентификатором и если a' локален; это означает, что, если возбудить все рецепторы автомата a', то хотя бы один эффектор перейдет в возбужденное состояние, то есть вершины Oa' графа G с матрицей смежности Rela' разрешимы относительно вершин Ia'.

Для проверки первого условия допустимости a' Cu последовательно проверяет все элементы множества Ida' с помощью операции contains на наличие требуемого автомата в реестре R.

Локальность конструируемого автомата проверяется по следующему алгоритму:

1) все вершины графа G, являющиеся входами автомата a', отметить маркером разрешимая, остальные - неразрешимая;

2) если каждая вершина графа G, являющаяся выходом автомата a', отмечена маркером разрешимая, то автомат a' локален и следует перейти к шагу 5;

3) последовательно просматриваем все неразрешимые вершины графа в поисках новых разрешимых вершин (неразрешимая вершина будет разрешимой, если все ее входы разрешимы);

4) если найдены новые разрешимые вершины, то отмечаем их маркером разрешимая и переходим к шагу 2, иначе граф G неразрешим и a', а следовательно, и ac нелокальны;

5) завершить алгоритм.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

В качестве примера рассмотрим решение весьма тривиальной задачи: построить автомат, способный вычислять выражение (a+b)*c. Описание автомата (a+b)*c: Df""'" =<{id+, id.},

X1 X2 X3 a b + a+b c * (a+b)*c out

X1 0 0 0 1 0 0 0 0 0 0 0

X2 0 0 0 0 1 0 0 0 0 0 0

X3 0 0 0 0 0 0 0 1 0 0 0

a 0 0 0 0 0 1 0 0 0 0 0

b 0 0 0 0 0 1 0 0 0 0 0

+ 0 0 0 0 0 0 1 0 0 0 0

a+b 0 0 0 0 0 0 0 0 1 0 0

c 0 0 0 0 0 0 0 0 1 0 0

* 0 0 0 0 0 0 0 0 0 1 0

(a+b)*c 0 0 0 0 0 0 0 0 0 0 1

out 0 0 0 0 0 0 0 0 0 0 0

{x1,x2,x3}, {out}>

Если описание D(ac) допустимо, то Cu приступает к построению автомата ac, которое заключается в последовательном построении всех обособленных элементов и включении их в шаблон ha^ с помощью операции 0 Отметим, что Си не

соединяет рецепторы и эффекторы конструируемого автомата ac с рецепторами и эффекторами обособленных элементов, так как правила их взаимодействия определяются операцией 0ас и

шаблоном h .

ac

Для построения обособленного элемента a' автомата ас Си выполняет следующие действия:

- с помощью операции get извлекает из реестра R все необходимые элементы для автомата а';

- по матрице Rela' соединяет рецепторы и эффекторы элементов a' между собой.

Построенный автомат а' с помощью операции 0ас и шаблона hac включается в автомат ас путем

соединения рецепторов и эффекторов автомата a' с эффекторами и рецепторами автомата ac. Такие соединения будем выполнять с помощью адаптеров.

Адаптеры могут соединять рецепторы с рецепторами или рецепторы с эффекторами и в процессе передачи сигнала способны изменять его структуру. Алгоритм изменения сигналов Cu определяется на основе совместимости типов сигналов, которыми оперируют соединяемые адаптером элементы.

Предварительно сделаем аксиоматическое допущение, упрощающее процесс построения модели, от которого придется отказаться при решении практических задач: полагаем, что все передаваемые сигналы имеют одинаковую структуру и от-

c

c

личаются только своей мощностью. При этом роль адаптеров сводится лишь к передаче и согласованию входного и выходного сигналов.

Итак, после того как ^ осуществил все необходимые соединения, для созданного автомата ac генерируется уникальный идентификатор, и новый автомат регистрируется в реестре R (в случае простого автомата а*тр|е регистрируется обособленный элемент a').

Пример. Схематичное изображение автомата

x1_

ъ

I

out j

Примечание: здесь и далее на схемах адаптер обозначен как О.......

Покажем, как в рамках предложенной модели реализуются ветвления и циклы. Для этого рассмотрим две задачи:

1) построить автомат asf, реализующий кусоч-

Га, а>0 ную функцию f(a)= \ :

[а*а, а<0

2) построить автомат aff, вычисляющий a-фак-ториал (a!).

Для построения требуемых автоматов необходимо наличие в реестре элементарного умножающего автомата (;ьеА0). Автоматы asf и aff в предлагаемой модели можно построить двумя способами: с использованием вырожденного описания либо при помощи шаблонов hrf и hff соответственно. В первом случае к реестру необходимо добавить автоматы: а1М, имеющий один вход а, два выхода I и г и работающий по правилу «если а >0, то подать сигнал a на выход r, иначе на выход /»; alf_ff, имеющий два входа ai и resj, три выхода ao, reso, out и работающий по алгоритму:

1) если resi равен null, то на выход reso подать сигнал ai, иначе - сигнал resi;

2) a=ar1;

3) если ai меньше 2, то на выход out подать тот же сигнал, что и на выход reso, иначе на выход ao подать сигнал ai;

4) конец.

Автоматы asf и aff будут иметь следующий

вид:

if-sf

Q [i

? <f

» % I

от

if-ff out

out

Г-4

out

M

схема автомата af

схема автомата aff

В случае использования шаблонов hsf и hff автоматы можно представить следующим образом.

схема автомата asf

схема автомата aff

Таким образом, если в реестре КУА находятся все необходимые компоненты, он сможет построить любой корректно заданный автомат.

Предложенная модель КУА, несмотря на принятые допущения, имеет законченный вид и может использоваться для автоматической генерации программных систем.

Литература

Дж. фон Нейман. Теория самовоспроизводящихся автоматов. М.: Мир, 1971. 382 с.

x

*

ж

a

a

Уважаемые авторы!

Информация об условиях публикации статей размещена на сайте журнала «Программные продукты и системы»

www.swsys.ru

i Надоели баннеры? Вы всегда можете отключить рекламу.