• Nenhum resultado encontrado

Código 30 – Resultado da verificação formal do desvio pela esquerda

4.10 VERIFICAÇÃO FORMAL DA VELOCIDADE

A fórmula LTL referente a essa verificação (linha 22 do Código 29) é:

♦ 𝐵𝑐𝑎𝑟𝑣𝑒𝑙𝑜𝑐𝑖𝑡𝑦(5) ∧ 𝐵𝑐𝑎𝑟𝑚𝑎𝑥𝑉 𝑒𝑙𝑜𝑐𝑖𝑡𝑦(5) →  ¬ 𝐷𝑐𝑎𝑟𝑎𝑐𝑐𝑒𝑙𝑒𝑟𝑎𝑡𝑒

Significa que quando o agente acreditar que possui velocidade 5 e que a velocidade máxima é 5, então não irá acelerar. Possui o objetivo de garantir que o veículo nunca irá acelerar

ao acreditar que alcançou a velocidade máxima. Como o uso de variáveis não é permitido pela ferramenta ao executar a verificação formal, foi definido que o agente acredita que a velocidade máxima 𝑉 𝑀 é 5 e sua velocidade atual 𝑉 também é 5. Executada com o cenário 04 a sentença foi provada e o resultado encontra-se no Apêndice H.

5 CONCLUSÃO

Os veículos autônomos são uma tecnologia promissora para auxiliar a melhoria do trá- fego urbano. O advento dos veículos autônomos é considerado uma revolução na indústria au- tomobilística que levou dezenas de empresas a desenvolverem pesquisas na área. Alguns desses projetos possuem testes em vias urbanas que causaram acidentes evidenciando a importância de garantir o funcionamento correto do sistema antes que tais automóveis possam trafegar dentro de cidades e rodovias. Para garantir o funcionamento correto do sistema, técnicas de verificação são aplicadas onde cenários não considerados na programação podem ser encontrados e possíveis falhas de execução são identificadas.

Este trabalho vem acrescentar conhecimentos aos resultados obtidos em trabalho ante- riores, como o de Fernandes (2017), que fazem parte do projeto AVIA do Grupo de Pesquisa em Agentes de Software. No trabalho supracitado, foi feita a verificação formal de um agente mo- delado como um veículo autônomo, com desvios de obstáculos e tratamento de colisões, além da criação de um simulador, o SAE. A primeira versão da ferramenta, SAE: táxi, tem seu foco na simulação do trajeto de um agente como um táxi, com uma visualização simplificada sem representação de um cenário urbano real.

O presente trabalho continua com o foco em agentes autônomos e desvio de obstáculos, porém em cenários de representação próxima a de um ambiente urbano. Também surge, como resultado, a segunda versão do SAE, SAE: tráfego urbano, que visa implementar a simulação de um agente capaz de trocar de faixas, desviar de obstáculos, semáforos e pedestres.

É apresentado um agente racional do modelo BDI desenvolvido na linguagem de pro- gramação Gwendolen. A escolha dessa classificação de agente é motivada por ser possível obser- var o processo de tomada de decisão do agente de acordo com suas crenças, desejos e intenções e, dessa forma, inferir sobre os motivos que levaram a execução de determinadas ações. A es- colha da linguagem deve-se ao fato de, atualmente, ser uma das únicas linguagens que oferece integração com uma ferramenta de verificação formal: o MCAPL.

O agente desenvolvido não possui crenças iniciais sobre o ambiente onde está inserido e recebe percepções do meio a medida que os sensores detectam elementos do ambiente. É espe- rado que ele atue no desvio de obstáculos estáticos, obedecendo a regra de não ultrapassar o sinal amarelo ou vermelho e aguardar, caso haja um pedestre atravessando a faixa, para prosseguir seu trajeto. Para tomar decisões sobre esses cenários o agente recebe percepções do ambiente atra- vés dos sensores do veículo e atua ao enviar as ações a serem executadas na condução. Para isso foi desenvolvido um ambiente em Java de acordo com as ferramentas disponibilizadas pelo Gwendolen.

O ambiente contém os elementos do cenário onde o veículo deverá atuar, as ações que o agente pode solicitar para modificá-lo e a representação básica do funcionamento dos sensores do veículo. Ele contém uma lista de obstáculos com coordenadas geradas aleatoriamente que

não diferem entre si e são estáticos. Um semáforo e uma faixa de pedestres são iniciados no ambiente em uma coordenada específica que pode ser alterada manualmente.

Para visualização da execução do sistema foi utilizada a ferramenta SAE: táxi, desen- volvida neste trabalho. Ela permite alterar o modo de exibição do sistema habilitando e desabili- tando a visualização de sensores e alterando a distância em que o observador analisa o sistema, Essas opções não interferem no desempenho do agente e serve, apenas, para disponibilizar di- ferentes formas de visualização do sistema. Também é possível definir quantos obstáculos serão utilizados durante a execução e essa informação é enviada ao ambiente que gera a lista de obs- táculos aleatoriamente.

A partir da construção do sistema é possível verificar formalmente propriedades espe- radas que o agente possua dentre as quais está a garantia de que o veículo não ultrapassa o sinal vermelho, sempre aguarda a travessia de um pedestre e realiza o desvio de um obstáculo caso acredite que o mesmo está bloqueando a sua faixa de travessia. Essas propriedades são formu- ladas em uma sintaxe derivada da lógica temporal linear possível de ser verificada através do

framework MCAPL.

Conclui-se com o desenvolvimento deste trabalho que é possível utilizar a arquitetura de agentes racionais como condutores de um veículo autônomo de acordo com os cenários apre- sentados no desenvolvimento deste. A linguagem Gwendolen pode ser aplicada nesse processo, porém, a medida que a quantidade de planos e ações disponíveis ao agente aumenta, há uma demora no tempo de processamento interno do agente que pode ser verificada ao visualizar a simulação do sistema. A utilização do simulador é útil para observar as decisões do agente e encontrar cenários não pensados durante a programação.

Conclui-se também que a verificação formal é uma ferramenta válida para garantir a corretude do sistema, porém, a estratégia de verificação exaustiva através do model checking, depende de um hardware capaz de processar todos os estados gerados durante a verificação. Por ser o ambiente uma matriz na qual o agente conduz o veículo, quanto mais posições estiverem disponíveis na matriz ao realizar a verificação, maior deverá ser a capacidade de processamento do computador.

Discutidas as principais contribuições deste trabalho, a Seção 5.1 apresenta a continui- dade deste trabalho.

Documentos relacionados