Arquitetura de subsunção

A arquitetura de subsunção é uma arquitetura robótica reativa fortemente associada à robótica baseada em comportamento, que foi muito popular nas décadas de 80 e 90. O termo foi introduzido por Rodney Brooks e seus colegas em 1986. A subsunção tem sido amplamente influente na robótica autônoma e em outros lugares na IA em tempo real.

visão global
A arquitetura de subsunção é uma arquitetura de controle que foi proposta em oposição à IA tradicional, ou GOFAI. Em vez de guiar o comportamento pelas representações mentais simbólicas do mundo, a arquitetura da subsunção acopla a informação sensorial à seleção da ação de maneira íntima e ascendente.

Isso é feito decompondo o comportamento completo em sub-comportamentos. Esses sub-comportamentos são organizados em uma hierarquia de camadas. Cada camada implementa um determinado nível de competência comportamental, e níveis mais altos são capazes de subsumir níveis mais baixos (= integrar / combinar níveis mais baixos a um todo mais abrangente) a fim de criar um comportamento viável. Por exemplo, a camada mais baixa de um robô pode ser “evitar um objeto”. A segunda camada seria “passear”, que corre abaixo da terceira camada “explore o mundo”. Como um robô deve ter a capacidade de “evitar objetos” para “vagar” efetivamente, a arquitetura de subsunção cria um sistema no qual as camadas superiores utilizam as competências de nível inferior. As camadas, que recebem todas as informações do sensor, trabalhar em paralelo e gerar saídas. Estas saídas podem ser comandos para atuadores, ou sinais que suprimem ou inibem outras camadas.

Propriedades

Fisicalidade
Agentes são de alguma forma incorporados no ambiente, eles têm um corpo com seus sensores e atuadores, e eles percebem e reagem a mudanças no ambiente.

Situação
Os agentes fazem parte do ambiente do mundo real com o qual eles interagem. Isso afeta o comportamento do agente.

Inteligência
A inteligência do agente é predominantemente formada pela colisão do agente com o ambiente real, suas reações e estímulos.

Emergência O
A inteligência do sistema, como um todo, surge de um modo emergente, isto é, a interação de suas partes individuais.

Nenhuma representação explícita de conhecimento
A arquitetura do subsoup não possui um modelo explícito do mundo. Isso significa que o robô não possui uma visão geral simplificada do mundo ao redor. Os benefícios são óbvios. Os agentes não fazem previsões sobre o mundo, então eles podem funcionar muito bem em um ambiente imprevisível. Economize tempo para ler e escrever. Também economiza o tempo do algoritmo usado por este modelo. Haverá também problemas com um modelo mundial que não tem que coincidir com o mundo real. Mas também tem suas desvantagens. O sistema é então puramente reativo. Isso significa que só responde ao que está acontecendo no mundo. Em outras palavras, o mundo determina o que quer fazer.

Distribuindo
O comportamento é distribuído entre autômatos finitos que executam várias tarefas. Como resultado, eles podem responder a eventos competitivos no ambiente. O comportamento total é a soma aproximada dos autômatos finitos. A arquitetura do subsistema é paralela e assíncrona porque os autômatos finitos operam independentemente uns dos outros. Todas as máquinas finais estão funcionando constantemente e, como podem ter seu próprio tempo, elas não precisam de sincronização.

Camadas
A arquitetura subsuperficial consiste em camadas onde cada uma implementa um determinado comportamento e consiste em um ou mais autômatos finitos. A arquitetura do subsistema é considerada modular porque cada autômato finito executa uma tarefa independente. Cada máquina final tem um número de linhas de entrada e saída. Máquinas finais são processadores que enviam mensagens entre si e podem armazenar estruturas de dados. Processadores trabalham de forma assíncrona e são igualmente mutuamente equivalentes. Eles monitoram suas entradas e enviam relatórios para as saídas. A máquina final sempre leva em consideração a última mensagem recebida. Por esse motivo, a mensagem pode ser perdida se a nova mensagem chegar antes que a mais antiga seja processada. Não há controle dentro da camada e não há outra forma de comunicação entre processadores, ou seja, não há memória compartilhada. Cada módulo só se preocupa com sua tarefa. Camadas mais altas têm acesso a sensores e afetam o comportamento de camadas inferiores limitando entradas ou suprimindo saídas de certos autômatos finitos em níveis mais baixos.
Este é o mecanismo pelo qual as camadas superiores incluem o papel das camadas inferiores.

Navegação
A habilidade mais importante do agente, baseada na arquitetura de subsunção, é se movimentar pelo mundo e evitar mover e mover objetos. A navegação é uma das principais tarefas que os agentes têm que fazer, e essa tarefa é extremamente reativa (em comparação com outros agentes cognitivos). A navegação é feita principalmente em várias camadas. O módulo mais baixo evita objetos (mesmo para aqueles que aparecem de repente) e o nível mais alto leva o agente em uma determinada direção e ignora os obstáculos. Essa combinação oferece uma maneira fácil de ir de A a B sem planejamento de rotas explícito.

De outros
Os agentes operam em tempo real e são projetados principalmente para se mover em um mundo real, dinâmico e complexo.

Razões para a origem
Uma das razões para a criação da arquitetura de subsunção foi o fato de que os autores queriam lidar com os seguintes requisitos e necessidades para a criação de robôs móveis autônomos.

Muitos objetivos
O robô pode ter mais metas conflitantes e precisa ser abordado de alguma forma. Por exemplo, um robô pode tentar alcançar um certo ponto à sua frente e, ao mesmo tempo, precisa evitar obstáculos que estão a caminho. Ele também precisa chegar a algum lugar no menor tempo possível e, ao mesmo tempo, economizar seus recursos energéticos. Portanto, é claro que a importância e a prioridade dos objetivos é relativa e contextualmente dependente. Certamente é mais importante retirar os trilhos quando o trem vai, antes de verificar os dormentes da pista no momento.

Mais sensores
O robô pode ter vários sensores (câmeras, sensores infravermelhos, sensores acústicos, etc.). Todos os sensores podem errar. Além disso, muitas vezes não há relação analítica direta entre os valores do sensor e as quantidades físicas necessárias. Alguns sensores podem se sobrepor nas áreas que medem. Leituras inconsistentes podem ocorrer com frequência – às vezes, devido à falha do sensor e às vezes devido a condições de medição – se o sensor for usado fora de seu escopo. Frequentemente, características analíticas precisas do escopo não estão disponíveis. O robô deve ser capaz de tomar a decisão sob as condições acima.

Robustez
O robô deve ser robusto. Quando alguns sensores falham, eles devem ser capazes de se adaptar e lidar apenas com aqueles que trabalham. Quando o ambiente muda drasticamente, ele ainda deve ser capaz de atingir algum comportamento razoável – em vez de ficar em estado de choque ou sem objetivo e sem sentido vagando por aí. Também é apropriado se ele puder continuar se ocorrerem erros em seus processadores.

Escalabilidade
Quando mais robôs são adicionados ao robô, eles precisam de mais capacidade de processamento, caso contrário, seus recursos originais podem ser afetados com o tempo.

Objetivo
A arquitetura de subsunção ataca o problema da inteligência de uma perspectiva significativamente diferente da AI tradicional. Desapontado com o desempenho de Shakey, o robô e outros projetos similares inspirados na representação da mente consciente, Rodney Brooks começou a criar robôs baseados em uma noção diferente de inteligência, que se assemelha aos processos da mente inconsciente. Em vez de modelar aspectos da inteligência humana por meio da manipulação de símbolos, essa abordagem visa a interação em tempo real e respostas viáveis ​​a um ambiente de laboratório ou escritório dinâmico.

O objetivo foi informado por quatro ideias-chave:

Situação – Uma ideia principal da IA ​​situada é que um robô deve ser capaz de reagir ao seu ambiente dentro de um período de tempo semelhante ao humano. Brooks argumenta que o robô móvel situado não deve representar o mundo através de um conjunto interno de símbolos e, em seguida, agir sobre esse modelo. Em vez disso, ele afirma que “o mundo é seu próprio melhor modelo”, o que significa que configurações adequadas de percepção à ação podem ser usadas para interagir diretamente com o mundo, em vez de modelá-lo. No entanto, cada módulo / comportamento ainda modela o mundo, mas em um nível muito baixo, próximo aos sinais sensório-motores. Esses modelos simples usam necessariamente hipóteses codificadas sobre o mundo codificado nos algoritmos em si, mas evitam o uso da memória para prever o comportamento do mundo, em vez de confiar no feedback sensorial direto o máximo possível.

Incorporação – Brooks argumenta que construir um agente corporificado realiza duas coisas. A primeira é que força o projetista a testar e criar um sistema de controle físico integrado, e não modelos teóricos ou robôs simulados que podem não funcionar no mundo físico. A segunda é que ela pode resolver o problema do aterramento de símbolos, uma questão filosófica que muitas AIs tradicionais encontram, ao associar diretamente os dados dos sentidos a ações significativas. “Os fundamentos mundiais regridem”, e a relação interna das camadas comportamentais está diretamente fundamentada no mundo que o robô percebe.

Inteligência – Olhando para o progresso evolutivo, Brooks argumenta que o desenvolvimento de habilidades de percepção e mobilidade é um fundamento necessário para a inteligência humana. Além disso, ao rejeitar as representações top-down como um ponto de partida viável para a IA, parece que “a inteligência é determinada pela dinâmica da interação com o mundo”.

Surgimento – Convencionalmente, os módulos individuais não são considerados inteligentes por si mesmos. É a interação de tais módulos, avaliada observando o agente e seu ambiente, que geralmente é considerado inteligente (ou não). “Inteligência”, portanto, “está no olho do observador”.

As idéias descritas acima ainda fazem parte de um debate em andamento sobre a natureza da inteligência e como o progresso da robótica e da IA ​​deve ser estimulado.

Camadas e máquinas de estado finito aumentadas
Cada camada é composta por um conjunto de processadores que são máquinas de estado finito aumentadas (AFSM), sendo o aumento adicionado variáveis ​​de instância para manter estruturas de dados programáveis. Uma camada é um módulo e é responsável por um único objetivo comportamental, como “passear”. Não há controle central dentro ou entre esses módulos comportamentais. Todos os AFSMs recebem de forma contínua e assíncrona a entrada dos sensores relevantes e enviam a saída para os atuadores (ou outros AFSMs). Sinais de entrada que não são lidos no momento em que um novo é entregue acabam sendo descartados. Esses sinais descartados são comuns e são úteis para o desempenho, pois permitem que o sistema trabalhe em tempo real, lidando com as informações mais imediatas.

Como não há controle central, os AFSMs se comunicam entre si por meio de sinais de inibição e supressão. Os sinais de inibição bloqueiam os sinais de alcançar atuadores ou AFSMs, e os sinais de supressão bloqueiam ou substituem as entradas em camadas ou seus AFSMs. Esse sistema de comunicação do AFSM é como camadas mais altas subsumem as mais baixas (veja a figura 1), assim como a arquitetura lida com a arbitragem de seleção de ações e prioridades em geral.

O desenvolvimento de camadas segue uma progressão intuitiva. Primeiro, a camada mais baixa é criada, testada e depurada. Uma vez que o nível mais baixo está sendo executado, um cria e anexa a segunda camada com as conexões de supressão e inibição adequadas à primeira camada. Depois de testar e depurar o comportamento combinado, esse processo pode ser repetido para (teoricamente) qualquer número de módulos comportamentais.: 16–20

Características
Reconhecendo o acima, os autores decidiram seguir o procedimento que forma a base da arquitetura de subsunção. Eles lidaram com o problema de criar o robô verticalmente com base nas manifestações externas desejadas do sistema de controle, e não na operação do robô interno. Então eles definiram os chamados níveis de competência. O nível de competência é a especificação do nível exigido de comportamento do robô em relação a todos os ambientes nos quais ele está se movendo. Um nível mais alto de competência significa um nível mais específico de comportamento. A idéia principal dos níveis de competência é que é possível criar camadas do sistema de controle que correspondam a um determinado nível de competência e simplesmente adicionar uma nova camada a um conjunto existente.

R. Brooks e sua equipe definiram os seguintes níveis de competência em 1986:

Evite o contato com objetos (não importa se estão em movimento ou estacionários)
1. Acorde sem rumo sem colidir com objetos
2. “Explore” o mundo procurando por lugares ao seu alcance
3. Construa um mapa do ambiente e planeje sua jornada de um lugar para outro
4. Registre mudanças em ambientes estáticos
5. Considere o mundo em termos de objetos identificáveis ​​e execute as tarefas associadas a esses objetos
6. formular e implementar planos que requeiram uma mudança no estado do mundo de maneira desejável
7. Considere o comportamento dos objetos no mundo e modifique de acordo

Os autores primeiro construíram um sistema de controle de robô completo que alcança as competências de nível zero e cuidadosamente examinado. Outra camada denominada primeiro nível do sistema de controle. Ele é capaz de manipular dados da camada zero do sistema e também permite inserir dados nas interfaces internas de nível zero, o que limita a taxa de bits normal. O princípio é que a camada zero continua a ser executada e não sabe nada sobre a camada, às vezes interferindo nos caminhos de dados. Essa camada é capaz de alcançar as competências de primeiro nível com a ajuda da camada zero. O mesmo processo é repetido para alcançar um nível mais alto de competência. Veja a figura 3. No momento em que a primeira camada foi criada, uma parte funcional do sistema de controle já está disponível. Camadas adicionais podem ser adicionadas posteriormente e o sistema não pode ser alterado.

Muitos objetivos
Camadas individuais podem trabalhar em metas individuais simultaneamente. O mecanismo de supressão medeia as ações que são levadas em conta. A vantagem é que pode não haver uma decisão prévia sobre qual meta tomar.
Vários sensores
Todos os sensores podem não fazer parte de uma representação central. Somente uma leitura do sensor pode ser adicionada à representação central, que é identificada como extremamente confiável. Ao mesmo tempo, no entanto, os valores do sensor podem ser usados ​​pelo robô. Outras camadas podem processar e usar os resultados para atingir seus próprios objetivos, independentemente de como as diferentes camadas são tratadas.
Robustez
A existência de múltiplos sensores aumenta, obviamente, a robustez do sistema quando seus resultados podem ser razoavelmente utilizados. Há outra fonte de robustez na arquitetura de subsunção. As camadas inferiores que foram bem comprovadas continuam a ser executadas mesmo se camadas superiores forem adicionadas. Como uma camada superior só pode suprimir as saídas da camada inferior interferindo ativamente em dados alternativos e, nos casos em que ela não pode produzir resultados de maneira apropriada, os níveis inferiores ainda produzirão resultados razoáveis, mesmo em um nível inferior de competência.
Extensibilidade
Uma maneira óbvia de lidar com a escalabilidade é permitir que cada nova camada seja executada em seu próprio processador.

Robôs
A seguir, uma pequena lista de robôs que utilizam a arquitetura de subsunção.

Allen (robô)
Herbert, um robô coletor de refrigerante
Genghis, um caminhante hexapodal robusto
Os itens acima são descritos em detalhes junto com outros robôs em Elephants Don’t Play Chess.

Forças e fraquezas
As principais vantagens da arquitetura são:

a ênfase no desenvolvimento iterativo e teste de sistemas em tempo real no seu domínio alvo;
a ênfase em conectar a percepção limitada, específica da tarefa, diretamente às ações expressas que a requerem; e
a ênfase no controle distributivo e paralelo, integrando assim os sistemas de percepção, controle e ação de maneira similar aos animais.

As principais desvantagens da arquitetura são:

a dificuldade de projetar a seleção de ações adaptáveis ​​por meio de um sistema altamente distribuído de inibição e supressão: 139-140 e
a falta de grande memória e representação simbólica, que parece restringir a arquitetura de entender a linguagem;

Quando a arquitetura de subsunção foi desenvolvida, a nova configuração e abordagem da arquitetura de subsunção permitiu que ela fosse bem-sucedida em muitos domínios importantes nos quais a IA tradicional falhou, ou seja, a interação em tempo real com um ambiente dinâmico. A falta de armazenamento de memória grande, representações simbólicas e controle central, no entanto, coloca em desvantagem a aprendizagem de ações complexas, mapeamento aprofundado e compreensão de linguagem.

Extensão
Em 1989, Brooks desenvolveu a arquitetura de subsunção, principalmente no campo da limitação de entrada e suprimindo as saídas por autômatos finitos. Em 1991, Brooks surgiu com a implementação do sistema hormonal. As camadas individuais devem ser suprimidas ou limitadas pela presença ou ausência do hormônio. Em 1992, o Mataric surge com a ideia de arquitetura baseada no comportamento. Essa arquitetura deve abordar a falta de representação explícita do mundo sem perder robustez e reatividade.