Архитектурные решения создания рефлексов у аниматов

Проектирование системы ИИ (в том числе и игровой) сводится к увязыванию воедино нескольких компонентов, каждый из которых не способен справиться с поставленной задачей в одиночку. Такие компоненты, предоставляя один другому дополнительную функциональность и взаимодействуя между собой, все вместе решают поставленную задачу. Схема таких компонентов и их взаимодействия называется архитектурным решением или просто архитектурой (architecture).
В тех случаях, когда система управляется сенсорными входами, а ее выходы детерминированы, можно говорить о том, что она рефлексивна (т.е. основана на реакциях). Подобные архитектурные решения часто встречаются в системах, которые должны быстро реагировать на внешние запросы или стимулы внешней среды (например, промышленные роботы или бытовые посудомоечные машины).
Компоненты
Компонент можно представить в виде некоего "черного ящика", в котором каким-то непостижимым образом работает механика системы ИИ. Еще один метод получения компонентов заключается в объединении в одну подсистему более низкоуровневых компонентов. Компоненты взаимодействуют один с другим через интерфейсы, используя входы и выходы.
Как уже отмечадось выше, с теоретической точки зрения не существует различия во внутренней организации компонентов, перебирающих возможные варианты, и рефлексивных компонентов. Интересно также и то, что это правило распространяется и на их интерфейсы! Такой подход позволяет заменить любой компонент, основанный на выборе решения, на рефлексивный. Поскольку вся необходимая компонентам информация и в том, и в другом случае передается через интерфейсы, при такой замене изменяется лишь нижележащее технологическое решение.
Это очень большое преимущество с точки зрения проектировщика, поскольку он на этапе разработки технического предложения и эскизного проекта игры может не учитывать особенности реадизации системы ИЙ. Иными словами, если в процессе разработки окажется, что по каким-то причинам рефлексивный подход себя не оправдывает, вместо него можно использовать подход, основанный на выборе решения, не изменяя всего проекта в целом.
Еще одним следствием практического применения парадигмы "черного ящика" является то, что во время реализации можно применять компоненты, вложенные один в другой, словно русские матрешки. Это очень важное средство обеспечения модульности системы ИИ.