Tal como na vida real, sistemas de múltiplos robôs podem interagir entre si na base de contratos, por forma a tomarem decisões quanto às acções a tomar. Um protocolo introduzido pelo investigador Reid Smith em 1980, nas IEEE Transactions on Computers, e designado por Contract Net (rede de contratos) permite fazê-lo, e de forma relativamente simples. Os passos do protocolo são:
- O iniciador envia a todos os seus contactos um Apelo a Propostas (AP)
- Cada um dos participantes recebe o AP, verifica se pode satisfazer as suas condições e, caso o possa, responde ao iniciador com o seu preço
- O iniciador escolhe o preço mais baixo e oferece um contrato ao respectivo participante
- O iniciador informa os restantes participantes que as suas propostas foram rejeitadas.
O protocolo Contract Net foi inicialmente (e tem sido) utilizado em redes de agentes virtuais (por exemplo, na Internet), mas nos últimos anos começa a ser usado também em equipas de robôs reais. Um exemplo típico em futebol robótico é aquele em que o iniciador é o robô que tem a bola e que decide passá-la a quem estiver melhor colocado para a receber. Começa por lançar um AP aos seus colegas de equipa (os participantes), que, por exemplo, medem a distância a que se encontram da bolsa e os obstáculos entre eles e o iniciador, comunicando a este (por rede sem fios) uma medida dessa distância (que inclui a dificuldade da bola lhes chegar, por causa dos obstáculos). O iniciador oferece um contrato (isto é, passa a bola) ao participante com menor distância.
No protocolo da rede de contratos, o iniciador tem o papel de árbitro. Ao contrário da vida real, porém, onde os árbitros muitas vezes intervêm a favor de uma das partes, de acordo com o seu pensamento político, preferência clubística ou por motivos inconfessáveis, a linguagem fria dos números tem aqui a vantagem de levar a que escolha seja sempre pelo participante que melhores condições oferece para a equipa, e não por aquele que o árbitro prefere.
O conteúdo deste blogue é da inteira responsabilidade da Sociedade Portuguesa de Robótica