48
Faculdade de Engenharia do Porto LEEC Projecto / seminário /Trabalho final de curso Relatório Intercalar ECOSIM Simulação de ecossistemas costeiros Elaborado por: Paulo César Teixeira Granja [email protected]

Faculdade de Engenharia do Porto LEEC

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Faculdade de Engenharia do Porto LEEC

Faculdade de Engenharia do Porto LEEC

Projecto / seminário /Trabalho final de curso

Relatório Intercalar

ECOSIM

Simulação de ecossistemas costeiros

Elaborado por: Paulo César Teixeira Granja [email protected]

Page 2: Faculdade de Engenharia do Porto LEEC

pág. 2/48

Índice de Conteúdos:

1. Introdução .............................................................................4 2. Objectivos .............................................................................5 3. Enquadramento .......................................................................6 4. Modelação ecológica .................................................................8 5. Ambientes Costeiros ............................................................... 11

5.1. Ria Formosa .....................................................................12 5.2. Bivalves ..........................................................................13

6. Inteligência Artificial .............................................................. 15 6.1. História da Inteligência Artificial ............................................16 6.2. Os quatro períodos da historia da I.A........................................17 6.3. Campos de aplicação da I.A...................................................19 6.4. Classes da I.A....................................................................20 6.5. Aplicações práticas da Inteligência Artificial...............................20

7. Agente Inteligentes ................................................................ 23 7.1. Definições de Agente ..........................................................23 7.2. Áreas Científicas que Inspiraram os Agentes ...............................24 7.3. Características ou atributos dos Agentes ...................................25 7.4. Ambiente ........................................................................26 7.5. Arquitecturas de Agentes .....................................................28 7.6. Infra-Estrutura para Agente Inteligente.....................................34

8. Agente Aquicultor “SellFish Farmer Agent” .................................... 35 8.1. Introdução .......................................................................35 8.2. Sistema multi-agente ..........................................................35 8.3. Agente Pescador ................................................................36 8.4. Arquitectura.....................................................................36

9. Protocolos de Comunicação....................................................... 40 9.1. Introdução .......................................................................40 9.2. Sockets de Berkeley............................................................40 9.3. Implementação da Interface TCP/IP.........................................42 9.4. Linguagem de comunicação Agente Aquicultor – Ecodyn .................42 9.5. Implementação da linguagem de comunicação ............................45 9.6. Conclusão ........................................................................46

10. Conclusões ......................................................................... 47 11. Bibliografia......................................................................... 48

Page 3: Faculdade de Engenharia do Porto LEEC

pág. 3/48

Índice de Figuras

figura 1 – Aplicação da modelagem ecológica em estudos de processos ambientais. Modificada de Jørgensen (1994). ............................................................................. 9

figura 2 - Modelo conceptual representativo das características básicas de um sistema. Modificada de Odum (1993). ................................................................................... 9

Figura 3 - Representação matemática da simulação de um sistema. ............................. 10 Figura 4 – Ria formosa (cima - mapa ; baixo - satélite) ................................................. 12 Figura 5 - Bivalve ........................................................................................................... 13 figura 6 - Organização da Inteligência Artificial............................................................ 19 figura 7 - Esquema típico de um agente ......................................................................... 23 figura 8 - Exemplos de Agentes ..................................................................................... 26 figura 9 - Tabela de Agentes / Propriedades do Ambiente............................................. 27 figura 10 - Esquema genérico de um agente tabela ........................................................ 29 figura 11 - Esquema genérico de uma Agente Reactivo puro ........................................ 30 figura 12 - Esquema genérico de uma Agente Reactivo com estado interno ................. 30 figura 13 - Esquema genérico de um Agente baseado em objectivos ............................ 31 figura 14 - Esquema típico de um agente baseado em utilidades................................... 32 figura 15 - Esquema genérico de uma Agente com capacidades de aprendizagem ....... 32 figura 16 - Arquitectura Multi-Agente ........................................................................... 35 figura 17 – esquema genérico de uma arquitectura deliberativa para o agente pescador37 figura 18 - Visualizador do Agente Aquicultor .............................................................. 39 figura 19 - Esquema de uma comunicação por sockets.................................................. 40

Page 4: Faculdade de Engenharia do Porto LEEC

pág. 4/48

1. Introdução

Somos completamente dependentes da riqueza dos vários ecossistemas da Terra para os alimentos, a energia e as matérias-primas. Compreender a importância da biodiversidade e estudar as relações complexas que fazem com que os ecossistemas funcionem, são objectivos importantes para a investigação europeia.

Os ecossistemas costeiros, sejam estuários, lagoas costeiras, sistemas lagunares,

rias, litorais arenosos ou rochosos, têm uma importância ambiental e económica muito grande a vários níveis: Pesca, turismo, aquicultura, extracção de inertes, locais de desova e nidificação de muitas espécies de peixes e aves, etc. O processo de gestão dos mesmos é bastante complexo, pois depende de decisões que permitam atingir diferentes objectivos ambientais e económicos que nem sempre se encontram bem definidos em estratégias de desenvolvimento. Além disso, as interacções entre os ecossistemas costeiros, o ambiente terrestre e o meio marinho adjacente revestem-se de uma grande complexidade física, química e biológica, pelo que se torna difícil prever as consequências futuras das opções de gestão. A referida complexidade justifica a utilização cada vez mais frequente de simuladores complexos que permitam fazer previsões sobre a evolução dos ecossistemas em função de diferentes opções de gestão.

Da vontade de estudar os ecossistemas costeiros com o objectivo de os perceber e de os poder recriar em outro ambiente muito trabalho foi realizado, entre eles o simulador Ecodyn. O Ecodyn é um simulador para o estudo de determinados aspectos dos ecossistemas aquáticos, tais como hidrodinâmica, termodinâmica e evolução e dinâmica de espécies.

Neste contexto foram utilizados as leis, equações e modelos ecológicos conhecidos sobre a evolução e a dinâmica, e simulados com o intuito de obter fenómenos emergentes não perceptíveis directamente nos modelos assim como prever possíveis estados futuros do ecossistema.

O presente projecto (Ecosim – Simulação de ecossistemas Costeiros) surge como uma evolução do simulador de ecossistemas aquáticos já existente de forma a adaptá-lo a novas ideias e conceitos no âmbito da Inteligência Artificial, nomeadamente de agentes inteligentes capazes de interagir com o simulador e representarem entidades intimamente relacionadas com este.

Page 5: Faculdade de Engenharia do Porto LEEC

pág. 5/48

2. Objectivos O objectivo deste trabalho consiste em construir um módulo de simulação de

ecossistemas baseado na representação da entidade Aquicultores (responsáveis pelo cultivo de variadas espécies no ecossistema costeiro) através de um agente inteligente que simule o seu comportamento com vista à optimização da capacidade de carga da ria.

Este estudo tem, assim, como principal meta estabelecer bases científicas para a gestão do cultivo de algumas espécies, nomeadamente bivalves (amêijoas e ostras) na zona costeira, especificamente na Ria Formosa. Pretende-se desenvolver um modelo matemático que permita simular diversas estratégias de cultivo de bivalves, com vista à sua optimização, reduzindo o seu impacte ambiental na Ria e maximizando a sua produção.

A ideia principal será a de criar e introduzir um agente inteligente que interagindo com o simulador seja capaz de aprender e chegar à produção máxima de modo a atingir a capacidade de carga máxima da ria, recorrendo para tal a algoritmos e técnicas da inteligência artificial.

Mas para que exista interacção entre agente e simulador é necessário criar e dotar ambos com um protocolo de comunicação de modo a que possam trocar mensagens de uma forma objectiva, funcional e concreta. Pretende-se por isso, também, projectar e implementar um protocolo que torne possível a comunicação entre ambos de modo a trocarem mensagens de modo inequívoco, claro e adequadas ao contexto.

A ideia de que aprendemos interagindo com o ambiente envolvente é provavelmente a primeira que nos ocorre quando pensamos na natureza, no conhecimento. Esta abordagem, de um modo geral, consiste em aprender o que fazer, relacionando situações com acções, com vista a maximizar uma recompensa numérica.

Page 6: Faculdade de Engenharia do Porto LEEC

pág. 6/48

3. Enquadramento

A sociedade moderna tem vivenciado um período marcante quanto as questões que envolvem o uso e conservação do ambiente. O actual modelo de desenvolvimento adoptado, centrado no crescimento económico e consumismo exacerbado, o crescimento populacional e a crescente degradação por que passam os sistemas naturais e a busca por novos recursos dentro de um contexto de economia globalizada, são aspectos que exigem uma adequada gestão ambiental. Já não é possível dissociar os avanços económicos dos efeitos (positivos e negativos) que estes produzem nos segmentos ecológicos e sociais do planeta.

Vivemos num sistema complexo, dinâmico e integrado onde, entre outros, os macros componentes económicos, sociais e ecológicos são interdependentes e conectados por processos interactivos. Quando almejamos o uso (ou desenvolvimento) sustentável de uma região, devemos objectivar a sustentabilidade da totalidade do sistema ambiental que a compõe através dos seus componentes. O "sucesso" de um dos seus componentes (por exemplo, económico) em detrimento de outros (por exemplo ecológicos) tende a não ser sustentável numa escala temporal, já que compromete as relações interactivas da totalidade do sistema ambiental. Para atender às pressões de uso do ambiente através de uma focalização integrada da sua composição e funcionamento, fazem-se necessários trabalhos de análise, planeamento e gestão desse sistema.

Um exemplo de ambiente que sofre grandes pressões de uso devido a disponibilidade e riqueza de recursos naturais que possui é a zona costeira.

Esforços no sentido de melhor gerir tais zonas ambientais têm envolvido o uso de modelos ecológicos quantitativos num esforço de se chegar a um melhor entendimento de processos ecológicos para dar bases a tomada de decisão. A análise ambiental do ambiente estuarino que se têm realizado dentro dessa perspectiva de modelagem ecológica tem se concentrado nos aspectos de integração funcional desse sistema e na relevância da compreensão destes aspectos para o direccionamento do processo de apoio à decisão num contexto de planeamento e uso do ambiente. Procurou-se com o uso de modelos levantar informações de carácter relevante para o melhor entendimento de processos ecológicos para definir directrizes para uma melhor gestão ambiental.

A gestão costeira que leve a uma maior sustentabilidade na utilização de recursos naturais apresenta um grande desafio já que é uma área interdisciplinar por natureza o que requer uma abordagem científica integradora que se centre no entendimento de processos chaves de carácter social, económico, político, já que sistemas ambientais não podem ser tratados como entidades singulares e isoladas dos sistemas naturais e sociais em que estão inseridos. Uma das actividades praticadas nas zonas costeiras com importante relevo e alvo de estudo é a aquicultura.

A aquicultura é uma indústria crescente que resulta da redução ou colapso de muitas zonas pesqueiras em todo o mundo. No entanto, a aquicultura apresenta variados problemas ambientais resultantes da concentração de bastantes animais e plantas como a eutrofização, diminuição do oxigénio, destruição de habitats e exploração acima da capacidade de carga do ecossistema. Em muitos casos, as estruturas de aquicultura, como jaulas de peixes, redes de cultura de bivalves e cordas de algas são despejados directamente no ambiente natural. A cultura de bivalves depende principalmente da

Page 7: Faculdade de Engenharia do Porto LEEC

pág. 7/48

comida natural, razão pela qual a previsão da capacidade de carga do ambiente é tão importante.

O termo capacidade de carga pode ser entendido como um sinónimo da capacidade ambiental. Na ecologia refere-se ao tamanho de uma população de uma determinada espécie, que se pode sustentar indefinidamente num determinado habitat, ou por outras palavras, é geralmente entendida como sendo o stock de espécies particulares para as quais a produção é maximizada sem afectar negativamente os rácios de crescimento. A previsão ou estima da capacidade de carga é uma tarefa complexa. Essa complexidade advém das variadas interacções entre e sobre espécies cultivadas e não cultivadas, assim como entre essas espécies e o ambiente físico e químico. Para além disso, a capacidade de carga depende de como os sistemas de cultivo são geridos quer espacialmente quer temporalmente.

Modelos matemáticos podem ajudar a resolver estes problemas complexos. No entanto, o grande número de possibilidades para melhorar layout da aquicultura de um ecossistema que podem variar desde alterar a quantidade de espécies cultivadas, até alterar as datas ou tempos de plantação e colheita ou a distribuição espacial destas espécies, são difíceis de resolver unicamente com modelos. Técnicas de inteligência artificial, nomeadamente de agentes inteligentes podem ser um caminho útil para ultrapassar estas dificuldades.

Neste trabalho, pretende-se através de simulações ecológicas baseadas em agentes apresentar e discutir as melhores práticas da aquicultura. O ambiente de simulação inclui o, já referido, Ecodyn – um software orientado a objectos para ambas as modelações física e bioquímica – e um agente inteligente “Shellfish Farmer Agent”. Implementar este agente é o objectivo principal deste trabalho. Ele será responsável por plantar e colher determinadas espécies de bivalves e algas. Baseado no seu conhecimento e nas suas percepções do ambiente, deve decidir as melhores áreas e datas para plantar e colher cada espécie, seguindo objectivos específicos, como maximizar a produção e minimizar o impacto ambiental e restrições como áreas envolventes onde a aquicultura não é permitida e usando um número limitado de espécies. As acções e percepções consistem em mensagens trocadas com o Ecodyn. O “Sellfish Farmer Agent” ou agente Aquicultor tem três acções: plantar bivalves e algas, inspeccionar o seu estado e colhe-los quando for apropriado. O agente realiza simulações enquanto existir espaço para melhorar significativamente os objectivos referidos.

Em conclusão, a gestão costeira que leve a uma maior sustentabilidade na utilização de recursos naturais apresenta um grande desafio. Porém, devido às complexas interacções existentes entre as várias entidades de um ecossistema costeiro existe uma grande dificuldade na análise e obtenção de soluções óptimas e sustentáveis. Com o intuito de estudar e perceber esses ecossistemas são usados modelos matemáticos e ecológicos que permitam entender e simular estes ambientes e actividades neles intrinsecamente inseridas, nomeadamente a aquicultura. É nesta actividade que se centra o presente trabalho que pretende assim com o uso de modelos e ferramentas da área da inteligência artificial maximizar a sua produção garantindo, no entanto, a sustentabilidade do ecossistema.

Page 8: Faculdade de Engenharia do Porto LEEC

pág. 8/48

4. Modelação ecológica

Modelo pode ser definido como uma formulação simplificada que imita um fenómeno ou um sistema do mundo real, de tal maneira que situações complexas podem ser compreendidas e, eventualmente, previstas [Odum, 1993]. Nesse sentido, os modelos podem ser representações conceptuais, físicas, cartográficas, matemáticas, entre outras. Os modelos de simulação, são aqueles que procuram "simular" (ou imitar) o comportamento dos componentes do sistema simulado em relação a uma variável independente, normalmente representada pelo tempo. São, portanto, dinâmicos e interactivos.

Os primeiros modelos de simulação representantes de um sistema ecológico foram desenvolvidos por Gordon Riley na década de 40. Seus modelos tentaram representar a dinâmica da produção primária e secundária em ecossistemas marinhos. Um marco importante na modelagem ecológica foi o modelo desenvolvido por H. T. Odum (1957) para representar a organização e dinâmica (fluxos energéticos) do ecossistema de Silver Springs, Estados Unidos. Nessa simulação, algumas das principais características dos ecossistemas tais como a substancial perda de energia em cada fluxo na cadeia trófica, foram representadas de forma clara.

Durante as últimas décadas os modelos ecológicos de simulação sofreram um considerável processo evolutivo. Na tentativa de melhor representar a intricada estrutura e dinâmica dos sistemas ambientais, eles tornaram-se mais complexos e incorporaram várias relações de causa, efeito e controle observada nos ecossistemas. Surgem também modelos que, além de representarem a nossa melhor concepção sobre o sistema estudado, podem ser utilizados como ferramentas acessórias nos processos de tomada de decisão relacionados aos programas de planeamento e gestão ambiental.

A figura 1 tenta resumir a forma como a modelagem tem seguidamente sido aplicada no entendimento de processos ambientais. Baseado em estudos preliminares o modelo é geralmente utilizado para representar de forma integrada esses resultados e gerar uma hipótese de como o ambiente é. Nessa fase, tal hipótese tende a representar o nível do nosso conhecimento sobre o sistema estudado. A partir daí usa-se o modelo para guiar a obtenção de informações adicionais no sentido de testar a nossa hipótese inicial, aumentando o nosso conhecimento sobre o ambiente. Caso haja confirmação do modelo, num processo de validação, pode-se tentar estabelecer conceitos teóricos sobre o sistema estudado. Somente nesse caso, poder-se-á utilizar o modelo desenvolvido para gerar previsões ou, como seria mais prudente definir, gerar tendências de comportamento do sistema.

Page 9: Faculdade de Engenharia do Porto LEEC

pág. 9/48

figura 1 – Aplicação da modelagem ecológica em estudos de processos ambientais. Modificada de Jørgensen (1994).

A modelagem ecológica possui na ecologia de sistemas a sua base conceptual/filosófica. Sistemas são unidades organizadas com uma estrutura de interacção entre os seus componentes, e com componentes de sistema vizinhos. A interacção, por sua vez, caracteriza-se pela combinação de fluxos de matéria, energia e informação. Nesse sentido, pode-se considerar o ambiente como um grande sistema que combina componentes ou (subsistemas) ecológicos, económicos e sociais. A figura 2 mostra um modelo conceptual que representa as características básicas de um sistema.

figura 2 - Modelo conceptual representativo das características básicas de um sistema. Modificada de Odum (1993).

Page 10: Faculdade de Engenharia do Porto LEEC

pág. 10/48

Embora os modelos conceptuais (aqueles que representam as relações sem quantifica-las) sejam bastante úteis para representar a organização dos sistemas e de seus processos dominantes, é na modelagem quantitativa que os modelos atingem a sua expressão mais completa. Os modelos ecológicos de simulação, por exemplo, podem representar a variação dos principais componentes do sistema estudado em relação ao tempo, e produzirem resultados de simulação muitas vezes impossíveis de serem realizados no sistema real.

A base matemática da simulação usa normalmente equações diferenciais que representam o diferencial (dQ/dt ou, de forma simplificada, DQ) da quantidade (Q) de um componente em relação ao tempo, e como reflexo das intensidades (taxas) dos fluxos (processos) de entrada (inputs) e de saída (outputs). A cada incremento de tempo no processo de simulação, a quantidade Q é o resultado dessa quantidade no momento anterior Q(t-dt) mais o diferencial DQ no incremento de tempo considerado. A figura 3 mostra de forma simplificada a representação matemática da simulação. Convém observar que os fluxos de entrada e saída quantificados, representam a intensidade (taxa) dos processos ecológicos que agem no sentido de acumular (por exemplo, fotossíntese, quantidade de nutrientes) ou diminuir (por exemplo, mortalidade, exportação) as quantidades simuladas.

Figura 3 - Representação matemática da simulação de um sistema. A simbologia encontra-se descrita no texto.

Os modelos ecológicos possuem, assim, uma variada aplicação em estudos ambientais. Essa aplicação inclui, entre outros, o uso de modelos para a descrição da estrutura e dinâmica de ecossistemas, para propor e experimentar processos e relações ambientais diversas através de hipóteses testáveis e o seu uso como uma ferramenta acessória de apoio à decisão e gestão ambiental.

Page 11: Faculdade de Engenharia do Porto LEEC

pág. 11/48

5. Ambientes Costeiros

Zonas costeiras constituem áreas de grande complexidade, nas quais efluentes são descarregados, recursos naturais são explorados e os sedimentos são erodidos, transportados e depositados. O resultado de toda essa actividade é que o desenvolvimento da costa resulta da interacção entre processos naturais e antropogênicos, que podem ocorrer ou não em harmonia. (FRENCH, 1997)

Existem diversas definições para zona costeira, porém todas concordam que ela

compreende uma faixa de terra seca e o espaço oceânico adjacente, na qual a parte terrestre e seus recursos afectam directamente a ecologia do espaço oceânico e vice-versa. Geograficamente, os limites da zona costeira são imprecisos. Esses limites têm sido definidos de acordo com a extensão das actividades do homem, baseadas nas terras que possuem uma influência mensurável na química da água do mar e/ou na ecologia da vida marinha.

Envolvendo um conjunto de interacções entre mar, terra, águas continentais (baías, lagoas costeiras, rios, estuários) e atmosfera, a região costeira pode ser considerada um ambiente de grande complexidade. É a transição entre esses factores que vai caracterizar a dinâmica ambiental. Agregada a estes factores, entra a influência antrópica, que age como um importante agente transformador.

A zona costeira, embora compreenda uma área longa e estreita entre a terra e o oceano, é biologicamente muito produtiva, suportando actividades de pesca e aquicultura muito importantes. Para além disso, esta zona encontra-se sujeita a uma pressão humana muito intensa, prevendo-se que ainda durante esta década, aí se venha a localizar a maioria das mega cidades, com o consequente aumento de nutrientes e matéria orgânica e eventuais riscos de degradação da qualidade da água. Tais pressões de natureza antropogénica podem originar problemas de sustentabilidade desses ecossistemas, quer a nível da produção biológica, quer da sua utilização para actividades de lazer e transportes. Assim, essas regiões sofrem intensas pressões e demandas dos vários sectores da sociedade, podendo ser essa pressão a causadora de mudanças e degradações ambientais, que podem originar problemas de sustentabilidade desses ecossistemas, quer a nível da produção biológica, quer da sua utilização para actividades de lazer e transportes.

Sendo a zona costeira muito heterogénea em termos espaciais e temporais, e aí ocorrendo, presentemente, alterações extremamente rápidas, impõe-se um esforço de compreensão da natureza, escala e extensão dessas alterações, a fim de conseguir uma gestão adequada dessa zona e utilização dos seus recursos.

Page 12: Faculdade de Engenharia do Porto LEEC

pág. 12/48

5.1. Ria Formosa

A Ria Formosa é uma área protegida com o estatuto de Parque Natural e situa-se no Algarve, que é a região mais a sul de Portugal Continental. Estende-se pelos concelhos de Loulé, Faro, Olhão, Tavira e Vila Real de Santo António e abrange uma área de cerca de 18400 hectares ao longo de 60 Km desde o Ancão até à Manta Rota. A sul é protegida do Oceano Atlântico por um cordão dunar quase paralelo à orla continental, formado por 2 penínsulas (Península de Faro que engloba a praia do Ancão e a praia de Faro e a Península de Cacela que engloba a praia da Manta Rota) e 5 ilhas barreira arenosas (Ilha da Barreta, Ilha do Farol, Ilha da Armona, Ilha de Tavira e Ilha de Cabanas) que servem de protecção a uma vasta área de sapal, canais e ilhotes. A norte, em toda a extensão, o fim da laguna não tem uma delimitação precisa, uma vez que é recortada por salinas, pequenas praias arenosas, por terra firme, agricultável e por linhas de água doce que nela desaguam (Ribeira de São Lourenço, Rio Seco, Ribeira de Marim, Ribeira de Mosqueiros e o Rio Gilão).

Tem a sua largura máxima junto à cidade de Faro (cerca de 6 Km) e variações que nos seus extremos, a Oeste e a Este, atingem algumas centenas de metros. Este sistema lagunar tem uma forma triangular e apesar de ser reconhecido como ria, na realidade não o é, uma vez que uma ria é um vale fluvial inundado pelo mar o que não é o caso, uma vez que a laguna não é nenhum vale fluvial e é formada por ilhas barreira. O seu fundo é constituído essencialmente por sedimentos lagunares (matéria orgânica, vasa salgada), sedimentos Continentais (oriundos do transporte pelas ribeiras e escorrência das águas das chuvas) e sedimentos arenosos ( provenientes das correntes de maré, sobretudo nas barras, galgamentos e ventos) que se têm vindo a consolidar com a ajuda da "morraça" que é um tipo de vegetação predominante e característico desta região. A sua fisionomia é bastante diversificada devido aos canais formados sob a influência das correntes de maré, formando assim, uma rede hidrográfica densa.

Figura 4 – Ria formosa (cima - mapa ; baixo - satélite)

Page 13: Faculdade de Engenharia do Porto LEEC

pág. 13/48

5.2. Bivalves

A Região Algarvia produz cerca de 90% dos bivalves consumidos do país, para uma produção anual de 7000 toneladas, ainda muito longe das possibilidades efectivas de exploração. Não restam dúvidas de que a ria formosa é um dos locais do país mais ricos em bivalves, nomeadamente amêijoas e berbigão. Os bivalves são seres exclusivamente bentónicos, isto é, vivem nos fundos, estando a maior variedade nos substratos constituídos por sedimentos ( areia, lodo, vasa). O seu habitat vai desde a zona verde de marés até águas mais ou menos profundas. A sua distribuição é mais densa na parte central dos viveiros, onde sofrem menos o efeito da maré vazia e constantemente da falta de água.

A característica morfológica mais evidente destes animais é o facto de terem o corpo dentro de uma concha constituída por duas partes. Cada uma dessas partes denomina-se valva, daí o nome de bivalves (igual a duas valvas). Na figura 5 podemos ver um exemplo de bivalve.

Figura 5 - Bivalve

As valvas estão unidas na parte posterior por um ligamento elástico. Por baixo deste ligamento, encontra-se a charneira - saliências em formas de dentes que encaixam de forma perfeita em reentrâncias da valva oposta.

A superfície externa da concha pode ser lisa ou então esculpida em linhas concêntricas, também chamadas linhas de crescimento, uma vez que se vão formando à medida que o animal cresce.

A parte interna da concha apresenta-se ligeiramente brilhante, devido a um revestimento formado por lamelas horizontais muito ténues. Na parte interna as marcas de inserção dos músculos muitos especialmente dos músculos adutores, músculos muito fortes que o animal contrai ou distende para abrir ou fechar a concha. Dentro da concha está o corpo, mole, formado pela massa visceral (vários órgãos: fígado, estômago, intestino e outros), manto, pé e brânquias.

Os bivalves são animais dotados de grande capacidade filtradora. Um só organismo pode filtrar diariamente várias dezenas de litros de água. São também, por isso, muitas vezes responsáveis por muitas doenças de ordem hídrica, tais como, cólera, febre tifóide e hepatite. Isto alerta-nos, desde já, para a necessidade de manter os seus locais de crescimento e exploração em boas condições sanitárias. Além disso, em locais com

Page 14: Faculdade de Engenharia do Porto LEEC

pág. 14/48

poluição industrial, os bivalves concentrarão os resíduos industriais, altamente perigosos para a saúde.

5.2.1. Exploração de bivalves na ria formosa

Na ria formosa as áreas dirigidas ao cultivo de bivalves são os viveiros. Segundo o plano de ordenamento da ria, a área ocupada por viveiros é aproximadamente de 100 hectares, espalhados um pouco por todo o parque.

Os viveiros começaram por ser uma exploração familiar, mantida pelas mulheres e crianças, uma vez que os homens se ocupam na pesca.

Hoje o panorama é diferente, no entanto a mão-de-obra dos viveiros continua a ser maioritariamente feminina, e muitos continuam ainda a ser explorações familiares. Os viveiros parecem ter surgido algures nos anos 50 e 60, quando alguns indivíduos resolveram delimitar determinadas áreas de terreno com estacas.

Dado que as capitanias não dificultaram a legalização dos terrenos, as áreas delimitadas foram aumentando, hoje praticamente não existe mais espaço livre para os novos viveiros.

Actualmente as autoridades antes da concessão de terreno para viveiros averiguam se a zona é salubre, se não é banco natural e se a instalação do viveiro não prejudica a navegação. Cada licença é válida por dois anos podendo ser renovada. No que diz respeito a localização, os viveiros situam-se na zona entre as marés, o que permite o acesso humano para a preparação do terreno, povoamento de apanha de espécies.

No entanto não deverão ficar situados em terrenos muito expostos ao ar, uma vez que a insolação directa prolongada tem efeito nefasto sobre os bivalves. Os melhores locais encontram-se na parte central do terreno onde a falta de água menos se faz sentir. As espécies aí colocadas crescem mais rapidamente.

Page 15: Faculdade de Engenharia do Porto LEEC

pág. 15/48

6. Inteligência Artificial

“Existem dois pontos de partida para definir a I.A. – sonho e tecnologia”-Terry Winograd

Inteligência Artificial é hoje um domínio do conhecimento cada vez presente. Dela fala-se, escreve-se, ouve-se falar, lê-se. É por um lado uma ciência, que procura estudar e compreender o fenómeno da inteligência, e por outro um ramo da engenharia, na medida em que procura construir instrumentos para apoiar a inteligência humana. A I.A. é inteligência como computação, tenta simular o pensamento dos peritos e os nossos fenómenos cognitivos.

No entanto, a I.A. continua a ser a procura do modo como os seres humanos pensam, com o objectivo de modelar esse pensamento em processos computacionais, tentando assim construir um corpo de explicações algorítmicas dos processos mentais humanos. É isto o que distingue a I.A. dos outros campos de saber, ela coloca a ênfase na elaboração de teorias e modelos da Inteligência como programas de computador.

Allen Newell em 1977, levantando a questão sobre o que é a Inteligência Artificial responde que "A I.A. é conhecimento - teoria, dados, avaliação - que descreve os meios para alcançar uma classe de fins desejados."

Os estudos em I.A. actualmente dividem-se em quatro ramos fundamentais. Distingamos assim uma área ligada ao estudo das redes neuronais e ao conexionismo que se relaciona também com a capacidade dos computadores aprenderem e reconhecerem padrões. Um outro ramo ligado à biologia molecular na tentativa de construir vida artificial. Um terceiro relacionado com a robótica, ligada à biologia e procurando construir máquinas que alojem vida artificial. E finalmente o ramo clássico da I.A. que se liga desde o início à psicologia, desde os anos 70 à epistemologia e desde os anos 80 à sociologia, e que tenta representar na máquina os mecanismos de raciocínio e de procura.

A construção de máquinas inteligentes pressupõe a existência de estruturas simbólicas (representação), a capacidade de elas poderem raciocinar (procura) e a existência de conhecimentos (matéria prima). Assim o campo mais popular da I.A. é sem dúvida o da engenharia do conhecimento pois é aí que se concebem os sistemas periciais, que são capazes de representar conhecimentos e de raciocinar.

Uma outra questão que se levantou desde os primeiros anos de I.A. foi se os computadores seriam realmente capazes de aprender. Questão que, a par da questão da representação de conhecimentos, e da capacidade das máquinas serem inteligentes e capazes de raciocinar é um pilar da investigação em I.A.

Page 16: Faculdade de Engenharia do Porto LEEC

pág. 16/48

6.1. História da Inteligência Artificial

Apesar de relativamente recente como Inteligência Artificial, esta ciência é a realização de um sonho do homem que remonta à Antiguidade Clássica1.

No Renascimento, e com a expansão de um espírito prático e quantitativo, surge a mecânica e, com ela, (e com o aperfeiçoamento do mecanismo do relógio) uma nova concepção do homem2.

Imprescindíveis para o avanço da I.A. foram os trabalhos dos matemáticos dos séculos XVII a XIX3. No séc. XIX, surge a figura de Alan Turing4 mas só em 1956 é que a Inteligência Artificial começa a ser reconhecida como ciência.

Os desenvolvimentos em I.A. avançam lado a lado com a evolução dos computadores que, ao longo do tempo foram fazendo com que se começassem a encarar essas máquinas como inteligentes alterando mesmo o nosso conceito de inteligência e aproximando os conceitos “máquina”, tradicionalmente não inteligente da “inteligência”, capacidade antes consignada exclusivamente ao homem.

1 De facto, a construção de "máquinas" para auxílio do homem nas suas actividades, surge pela primeira vez em Homero, na Ilíada (canto XVIII), onde eram descritas as trípodes, criadas por Hephaistos, Deus do fogo, que tinham nos seus pés umas rodinhas de ouro, sobre as quais, por si mesmo, e por seu alvítrio, podiam girar na sala (...) mui bem mandadas" e as "servas da casa (...) artefactos, e todas de ouro, e muito semelhantes às raparigas que vivem realmente (...) que aprenderam com os deuses o que é preciso e o fazem com perfeição.

2Descartes, introduz a ideia de que eu sou uma máquina que pensa, os meus músculos são comandados pelo

cérebro através do sistema nervoso - Tratado do Homem. Com efeito, ele acreditava que certas actividades humanas poderiam ser realizadas por máquinas, mas com algumas restrições. Ele nega-lhes a capacidade de compreender de modo a responder ao sentido de tudo o que se diz na sua presença- 5ª parte do Discurso do Método. Assim Descartes aborda a problemática da I.A. ao definir o Homem como um corpo capaz de movimento resultante do engenho divino e um Autómato como um corpo capaz de movimento resultante do engenho humano. Ora esta pretensão de ascender à ‘categoria’ divina, pela criação de um ser, esta pretensão metafísica seria, segundo Descartes, inata ao próprio Homem

3 No século XVII, com Pascal (1623-1662), surge a primeira máquina de calcular, acontecimento que desencadearia os estudos percursores da I.A.. Leibniz (1646-1716), parte do princípio que uma máquina poderia ser capaz de deduzir, dando início à pesquisa em I.A.. Para ele, o pensamento é redutível ao cálculo (pela lógica), logo, uma máquina capaz de executar logicamente operações algébricas, poderia, através da lógica formalizada, raciocinar.Os trabalhos destes matemáticos foram posteriormente retomados por outros que os aprofundaram, Babbage (1792-1871) retomou assim o trabalho de Pascal projectando uma máquina de calcular (que não foi concluída durante a sua vida) que permitiria a realização das quatro operações aritméticas básicas e o encadeamento das mesmas. Ele pretendia ainda efectuar o cálculo automático de tabelas matemáticas para as funções trigonométricas e logarítmicas.Boole (1815-1864), segue as ideias de Leibniz, chegando à matematização da lógica. Consegue assim reduzi-la a um simples cálculo, que não precisava de ser memorizado, (como as regras lógicas e as figuras silogísticas), mas que poderia ser aprendido por qualquer um, devido à sua simplicidade. Triunfa ainda ao matematizar as leis do pensamento aplicando-as à lógica. Tudo se reduz, assim, à matemática, à álgebra ou ao cálculo logarítmico.

4Alan Turing propõe o chamado jogo da imitação, segundo o qual, se uma máquina fosse capaz de ganhar, não

restariam as mínimas dúvidas quanto à evidência da existência de máquinas inteligentes (pela imitação dos comportamentos humanos). Em 1935 elabora a máquina abstracta, cuja premissa fundamental consistia em fornecer uma descrição rigorosa do processo automático, refazendo o comportamento do agente humano que a executa. Assim, as teorias de Turing são de certa forma percursoras dos posteriores sistemas periciais, que procuram imitar os procedimentos dos peritos humanos assim como a máquina de Turing o procurava fazer. O maior opositor de Turing foi o neurologista Jefferson que afirmava a impossibilidade de poder reproduzir as características da mente humana num artefacto não biológico.Mas nesta época o debate era sobretudo teórico e abstracto, pois só com o aparecimento dos primeiros computadores, depois da segunda guerra mundial, é que as noções de automatismo e inteligência se revolucionaram tornando possível a sua discussão em torno da modelização da inteligência humana e da construção de autómatos à imagem do homem.

Page 17: Faculdade de Engenharia do Porto LEEC

pág. 17/48

No entanto o seu objecto de estudo continua rodeado de uma certa bruma, no sentido em que o homem ainda não possui uma definição suficientemente satisfatória de inteligência e para se compreenderem os processos da inteligência artificial e da representação do conhecimento terão de se dominar os conceitos de inteligência humana e conhecimento.

A questão que se coloca é se chegará o conhecimento através da manipulação de conceitos complexos ou através da percepção?

Devemos então fornecer à máquina uma avalanche de dados, teorias formais de “bom senso”, de crenças, de um universo simbólico superior ou, pelo contrário, basear o estudo da cognição no nível inferior da percepção e do controlo motor. A tendência geral foi no sentido de conciliar as duas teorias numa terceira teoria híbrida, segundo a qual a máquina seria capaz de raciocinar utilizando conceitos complexos, e de perceber o seu meio envolvente.

Nos últimos anos tem-se dado atenção a alguns dos sectores de pesquisa abandonados no passado, como a representação de redes neuronais e a tradução automática, interesses renovados graças aos enormes progressos a que se tem assistido no domínio das ciências da computação.

Assim a história da I.A. é povoada de diferentes paradigmas que se contrapõem, de teorias que se defendem e abandonam, e que são consecutivamente retomadas.

6.2. Os quatro períodos da historia da I.A

6.2.1. Primeiro período

O primeiro, chamado de "euforia" ou "período dos profetas" caracterizou-se pelas previsões das "fadas" que se abeiraram do berço da nova ciência, após a criação, em 1956, por Newell e Simon, do primeiro programa de I.A., logic theoristic. Este, era capaz de demonstrar teoremas não triviais da lógica matemática, baseando-se na utilização de sistemas simbólicos e na introdução de heurísticas. Dois anos depois, os seus criadores, previram que, no espaço de 10 anos, ou seja, até ao ano de 1968 os computadores seriam campeões de xadrez, comporiam peças musicais, descobririam importantes teoremas matemáticos e demonstrariam teorias no domínio da psicologia. Previsão que não chegou a concretizar-se.

Os primeiros anos da I.A. caracterizam-se pelo debate entre aqueles que achavam oportuno simular a estrutura do cérebro humano e aqueles que, pelo contrário, concentravam o interesse da ciência mais sobre as suas funções do que sobre o seu procedimento.

Neste período nascem e desenvolvem-se sobretudo programas capazes de jogar damas, xadrez, demonstrar teoremas, ou seja, baseados no estudo do comportamento decisório a par de máquinas, como o perceptron que aprendiam a classificar e distinguir estímulos provenientes do exterior.

A investigação dividia-se então em duas áreas, por um lado, a pesquisa sobre a simulação dos processos cognitivos do ser humano e, por outro, a pesquisa sobre o

Page 18: Faculdade de Engenharia do Porto LEEC

pág. 18/48

rendimento, tão eficiente quanto possível, dos programas através de processos ‘não humanos’.

6.2.2. Segundo Período

A tradução automática, apressada pela guerra e pela extrema necessidade de informação com rapidez, tinha deixado uma conotação negativa em relação à I.A. que limitaria os progressos neste campo, impedindo-os de ver a luz do dia durante quase 10 anos. A verdade é que, durante este segundo período, as teorizações da I.A. não foram acompanhadas pela evolução da sua técnica que permitiria a sua realização.

Nos anos 60 difundiu-se o interesse pelos programas capazes de compreender a linguagem humana, mas estes programas não respondiam às expectativas dos investigadores, sendo ainda muito limitados e sendo o seu conhecimento fornecido totalmente pelo programador e em linguagens de baixo nível que ainda não permitiam abstracções e que estavam demasiado próximas do algoritmo.

No entanto, estes programas tiveram o mérito de introduzir aquele que seria o pilar das posteriores investigações em I.A.. Estava aberto o caminho para a construção de sistemas capazes de gerir conhecimentos empíricos através das suas representações.

A impossibilidade, causada pelas limitações dos programas da altura em fornecerem representações gerais do mundo sensível, deslocou o interesse da pesquisa no sentido de temas menos ambiciosos e mais ligados a conhecimentos relativos a domínios específicos - sistemas periciais.

6.2.3. Terceiro Período

Em 1969, dá-se o primeiro congresso de I.A. de onde provém a primeira revista sobre este tema, a Artificial Intelligence, abrindo-se deste modo as portas ao terceiro período, o dos sistemas periciais. Estes, também chamados de agentes inteligentes, são programas que possuem um vasto e específico conhecimento sobre um determinado assunto.

Os sistemas periciais pretendem simular o pensamento de um perito humano. O primeiro sistema pericial, o DENDRAL foi criado em 1985 por Edward Feigenbaun.

6.2.4. Quarto Período

O quarto período, é caracterizado pela maturidade da I.A., é o período das redes conexionistas e da cibernética. O conexionismo provém de um modelo inicial de máquina inspirado na rede neurológica humana. Assim, as suas investigações são no sentido de, através da modelização dos processos cognitivos do homem, construir autómatos que, à semelhança do sistema neuronal humano, se encontrem interligados por um conjunto de conexões. Por seu lado, a cibernética, ciência que acabou por ser anexada pela I.A., estuda a modelização do cérebro humano não podendo assim separar--se dos estudos conexionistas ou dos de I.A., como o estudo dos comportamentos cognitivos.

Page 19: Faculdade de Engenharia do Porto LEEC

pág. 19/48

A aprendizagem computacional constitui um dos temas principais da pesquisa dos anos 80. Qualquer investigador tinha então como objectivo, fornecer ao programa o “bom senso” necessário para a compreensão de qualquer conceito.

6.3. Campos de aplicação da I.A.

A I.A. abrange variados domínios, para termos uma ideia geral da contribuição de cada domínio na área da inteligência artificial podemos observar o seguinte diagrama cotado em percentagens que, embora um pouco antiquado (1993), nos dá uma clara ideia da organização da I.A..

figura 6 - Organização da Inteligência Artificial

Page 20: Faculdade de Engenharia do Porto LEEC

pág. 20/48

6.4. Classes da I.A.

Existem várias abordagens na área de Inteligência Artificial (IA), nas quais variam a manipulação do conhecimento, no sentido de como adquiri-lo, armazená-lo e empregá-lo. Classificando a IA quanto ao método de solução de problemas tem-se:

• IA Simbólica (IAS) • IA Conexionista (IAC) • IA Evolucionária (IAE) • IA Híbrida (IAH)

Quanto a localização espacial tem-se ainda:

• IA Monolítica (IAM) • IA Distribuída (IAD)

A IAS possui como ferramenta básica para manipular o conhecimento a lógica,

com suas regras de inferência inspiradas nos silogismos enunciados há mais de 2.000 anos por Aristóteles.

A IAC usando RNAs, aplica-se a problemas mal definidos, mas que são conhecidos através de exemplos. Entre os campos de aplicações de técnicas conexionistas, das quais se destacam as redes neurais artificiais, estão: reconhecimento de padrões; controle de processos industriais; robótica; e também, como opção às técnicas de raciocínio baseado em casos para a resolução de problemas.

Na IAE os mecanismos utilizados são os mesmos encontrados na evolução biológica. É um exemplo de solução de problema bem definido de sobrevivência de uma espécie em ambiente variável. Pode ser encarada como um método de optimização com restrições variáveis e muitas vezes desconhecidas.

A IAH reúne vantagens de mais de um tipo de método de abordagem para a resolução de problemas.

A IAM envolve sistemas simples sem modularidade, como é o caso de sistemas especialistas. O funcionamento da IAD depende de um determinado conjunto de partes (ou módulos) para resolver de modo cooperativo um determinado problema.

6.5. Aplicações práticas da Inteligência Artificial

6.5.1. Planeamento

O planeamento está intimamente ligado ao raciocínio. Um programa com capacidade de planear é capaz de fazer escolhas hipotéticas, estabelecer compromissos e ordenar as suas escolhas segundo os critérios que melhor servem os seus objectivos. O planeador consegue ainda avaliar se os compromissos tomados até então conduzem a um plano completo e coerente.

Page 21: Faculdade de Engenharia do Porto LEEC

pág. 21/48

Um exemplo de um excelente planeador é o Deep Blue, o programa da IBM que venceu o campeão mundial de xadrez Kasparov em 1997. O programa foi capaz de elaborar planos estratégicos e adaptá-los às novas situações de jogo que foram surgindo.

Assim funciona um planeador, ele fixa um objectivo, e atinge-o supervisionando um ou mais dispositivos capazes de realizar acções no mundo real. Este tipo de programas vem muitas vezes substituir os programas de procura que tentam passar de uma situação inicial (dados), através de sucessivas aplicações de transformações à representação dos dados do problema, para uma situação final (objectivos). O planeador aproxima-se muito mais de uma solução heurística e do processo como nós, homens, pensamos.

Procuram-se resolver problemas gerais, tomar decisões e raciocinar em interacção com uma base de dados.

6.5.2. Visão Computacional

A primeira abordagem sobre o reconhecimento dos caracteres ópticos remonta já aos anos 50. E esta área assume-se hoje como uma área científica de excelência que engloba grandes volumes de informação (variada e complexa) relacionados entre si.

Os sistemas de visão que conhecemos hoje são capazes de construir descrições do ambiente que os envolve, processar e reconstruir imagens.

A visão está muito ligada à ideia de percepção computacional e do facto de a máquina reconhecer o seu ambiente e comportar-se de acordo com este. Assim encontramos a percepção visual computacional relacionada com os movimentos dos agentes, com a sua coordenação motora, o controlo dos seus movimentos e não podemos deixar de falar em robótica ao abordarmos esta nova concepção de “visão activa”.

6.5.3. Xadrez

Este é um dos problemas preferidos da I.A. Ao longo dos anos têm-se desenvolvido um sem número de programas de jogo de xadrez. Em 1957 Allen Newell e Herbert Simon chegaram mesmo a prever que num prazo de 10 anos um programa de computador venceria o campeão mundial de xadrez, mas essa previsão ainda demoraria 40 anos a efectivar-se.

Mas a investigação em xadrez impulsionou as técnicas para a resolução de problemas combinatórios e foi desenvolvendo as técnicas heurísticas em grandes espaços de conhecimento onde a procura precisa de ser guiada, avaliada e controlada.

Assim o xadrez foi desde cedo a bancada de trabalho para técnicas de procura, representação, planeamento, heurísticas, concepção de agentes inteligentes.

6.5.4. Fala

A compreensão e o reconhecimento da língua natural foi também desde cedo um dos desafios colocados à I.A. então jovem ciência, com a proposta da tradução automática (um dos primeiros objectivos da I.A. que fracassou redondamente).

Page 22: Faculdade de Engenharia do Porto LEEC

pág. 22/48

Mesmo depois de 40 anos de evolução estamos ainda um pouco longe de conseguir que programas computacionais reconheçam e reproduzam a língua natural, isto apesar do recente sistema CYC que trabalha já com a manipulação de conceitos, este programa entende o significado das palavras e já não trabalha exclusivamente com caracteres verdadeiro e falso.

Esta área está intimamente ligada ao estudo da língua e dos sistemas de significação e permite uma abordagem sobre o conhecimento humano não-lógico (a maior parte dele) mas inexacto, incompleto e parcial, a qual se tornou um objectivo geral para a maior parte dos sistemas periciais e um dos núcleos de investigação piloto em I.A. a partir dos anos ’80.

6.5.5. Quinta geração

Os computadores de 5ª Geração representam uma importante área de aplicações da I.A. Eles seriam já programados em PROLOG e ligariam a compreensão teórica das questões a processos de programação em lógica, à representação do conhecimento a técnicas de resolução dos problemas, articulando grandes bases de dados em paralelismo.

Assim essas grandes máquinas pensantes seriam capazes de articular teorias da decisão com métodos estatísticos e lógicos, com a filosofia a psicologia cognitiva e as ciências da gestão de conhecimentos. Isto seria então o reflexo da automatização do raciocínio (aproximado, probabilístico) assegurando a manutenção da verdade através de lógicas não monótonas.

6.5.6. Sinergias

As sinergias combinam a inteligência com as capacidades de memória. É, de certa forma a fusão tecnológica no sentido da optimização das pesquisas em informação.

Assim o próximo desafio encontra-se no domínio do desenvolvimento de estratégias apropriadas para representar a informação e de conseguir chegar a raciocínios sintéticos ao longo de diferentes bases de conhecimentos.

As interfaces de língua natural para bases de dados dotadas de regras de inferência gramatical, possuem heurísticas de discurso adaptadas a vários ambientes de programação.

Uma outra área em que os esforços se têm redobrado nos últimos anos é a da aprendizagem computacional, a possibilidade de os computadores aprenderem com os erros e de irem actualizando a sua própria informação agindo sobre a mesma, mas apesar dos contínuos progressos, nesta e noutras áreas ainda estamos longe do computador que tenha a perfeita modelação do homem e da sua inteligência, o que não implica que não continuemos a pesquisar.

Page 23: Faculdade de Engenharia do Porto LEEC

pág. 23/48

7. Agente Inteligentes

Ao longo dos últimos anos tem se verificado uma grande evolução na investigação na área dos agentes inteligentes. Existe uma grande controvérsia quanto à definição de agente, existindo, por isso, um leque de definições que variam conforme o autor. Um Agente é de uma forma geral um sistema computacional, situado num dado ambiente, que tem a percepção desse ambiente através de sensores, tem capacidade de decisão, age de forma autónoma nesse ambiente através de actuadores, e possui capacidades de comunicação de alto-nível com outros agentes e/ou humanos, de forma a desempenhar uma dada função para a qual foi projectado [Reis,2002b].

Partindo desta definição podemos então dizer que um agente é um sistema computacional que se encontra situado num dado ambiente. Este ambiente pode ser uma parte do mundo real (universidade, fábrica, hospital, ecossistema) ou um ambiente simulado (como é o caso do presente trabalho) ou mesmo um computador.

Independentemente do tipo de agente e ambiente, essencial na definição de agente adoptada, é a capacidade do mesmo se aperceber do ambiente e nele agir de forma autónoma. Desta forma, o agente deve possuir sensores e actuadores apropriados ao seu ambiente e à execução das tarefas para as quais foi projectado. A Figura seguinte apresenta um esquema típico simplificado de um agente.

figura 7 - Esquema típico de um agente

7.1. Definições de Agente

Existem variadas definições de agente, entre as mais conhecidas encontram-se:

“…Um agente é uma entidade (física ou abstracta), capaz de agir sobre si mesma e sobre o meio, possuindo uma representação parcial desse meio, que tem capacidade de comunicar com outros agentes, e cujo comportamento é a consequência de suas observações, de seus conhecimentos e de suas interacções com outros agentes" [Feber, 88]

“... Algo que age ou tem o poder ou autoridade para agir ... ou representar alguém” [AHD, 2000]

Page 24: Faculdade de Engenharia do Porto LEEC

pág. 24/48

“Um agente é algo que pode ser visto como tendo a percepção de um ambiente através de sensores e agindo nesse ambiente através de actuadores” [Russel e Norvig, 1995]

“Um agente é uma peça de hardware ou (mais normalmente) um sistema computacional baseado em software que goza das seguintes propriedades: autonomia, reactividade, pró-actividade e habilidade social” [Wooldridge e Jennings, 1995]

“… Sistemas computacionais que vivem em ambientes complexos e dinâmicos, sentem e agem autonomamente nesse ambiente e ao fazerem-no realizam um conjunto de objectivos e tarefas para o qual foram projectados” [Maes, 1996]

“ ... Um agente é uma entidade persistente de software, dedicada a um objectivo específico. A persistência distingue os agentes de subrotinas pois estes têm as suas próprias ideias sobre como realizar tarefas e têm as suas próprias agendas. O objectivo específico distingue-os de aplicações multifunção; os agentes são tipicamente muito mais pequenos.” [Smith et al., 1994]

“Os agentes inteligentes desempenham continuamente 3 funções: percepção das condições dinâmicas do ambiente; acção para afectar as condições desse ambiente; raciocínio para interpretar as percepções, resolver problemas, realizar inferências e determinar acções.” [Hayes-Roth, 1995]

“Agentes inteligentes são entidades de software que realizam um conjunto de operações em nome de um dado utilizador ou de outro programa com um dado grau de independência ou autonomia, e que fazendo-o, utilizam algum conhecimento ou representações dos objectivos e desejos do utilizador.” [IBM, 1997]

“Uma entidade é um agente de software, unicamente se for capaz de comunicar correctamente com outros numa linguagem de comunicação de agentes (ACL)” [Genesereth e Ketchpel, 1994]

“Um agente autónomo é um sistema situado e que faz parte de um dado ambiente, que sente esse ambiente e age nele ao longo do tempo, de forma a realizar a sua própria agenda e de forma a afectar o que sentirá no futuro“ [Franklin e Graesser,1996]

“Um Agente é um tuplo <P,A,I,in,out> onde P é um conjunto de objectos de entrada (percepções), A é um conjunto de objectos de saída (acções), I é um conjunto de estados internos, in é uma função de P X I para I (a função de entrada do agente) e out é uma função de I para A. O ambiente do agente é um tuplo <A,P,W,see,do> onde A é um conjunto de operações de saída do agente, P é o conjunto de operações de entrada do agente, W é o conjunto de estados possíveis, see é uma função de W para P, e do é uma função de A X W para W” [VanLehn, 1991]

7.2. Áreas Científicas que Inspiraram os Agentes

A área da investigação designada por Agentes Autónomos surgiu inspirada nas áreas científicas da Inteligência Artificial, Engenharia de Software, Sistemas Distribuídos e Redes de Computadores, Sociologia, Teoria dos Jogos e Economia. A influência destas áreas no campo dos agentes autónomos situa-se aos níveis de :

Page 25: Faculdade de Engenharia do Porto LEEC

pág. 25/48

• Inteligência Artificial – Micro-aspectos, como a resolução de problemas,raciocínio lógico, representação e utilização de conhecimento, planeamento, aprendizagem, etc.;

• Engenharia de Software – O agente como uma abstracção, programação orientada por agentes;

• Sistemas Distribuídos e Redes de Computadores – Arquitecturas de agentes, Sistemas Multi-Agente, comunicação e coordenação;

• Sociologia – Macro-aspectos como a formação de sociedades virtuais e a interacção entre agentes;

• Teoria dos Jogos e Economia – Negociação, resolução de conflitos, mecanismos de mercado.

Embora a Inteligência Artificial tenha exercido inicialmente uma influência muito forte

sobre o campo dos Agentes Autónomos e Sistemas Multi-Agente, verifica-se hoje em dia que este campo já evoluiu, muito para além de poder ser considerado uma sub-área da IA.

7.3. Características ou atributos dos Agentes

Existem muitas características atribuídas aos agentes, pelas quais este pode ser definido, as mais significativas serão as seguintes:

• Racionalidade - Os agentes são capazes de justificar suas decisões. Sabem escolher o melhor caminho para atingir seu objectivo [Newell, 81].

• Pró-actividade ou Iniciativa - Os agentes devem ser guiados por suas intenções na resolução de problemas. A intencionalidade é a expressão dos objectivos e dos meios para realizá-los.

• Engajamento - Os agentes devem cumprir os seus compromissos, ou seja, engajados na realização dos objectivos.

• Autonomia - Os agentes tentam manter a autonomia na resolução de tarefas e não depender (totalmente) uns dos outros.

• Adaptabilidade - Os agentes devem ser capazes de se adaptar aos conhecimentos novos, à forma de trabalho, às mudanças do meio e às interacções estabelecidas entre os agentes.

• Mobilidade - É a capacidade de um agente se poder movimentar de um local para outro. No caso dos agentes de software refere-se à capacidade de estes se poderem movimentar através de uma rede de computadores.

• Reactividade - A reactividade é a capacidade de um agente reagir rapidamente a mudanças no seu ambiente. Para tal, o agente deve ser capaz de se aperceber do seu ambiente e actuar sobre ele.

• Comunicação - Quando existe mais do que um agente presente no ambiente, há uma necessidade óbvia de dispor de capacidade de comunicação entre estes. Os

Page 26: Faculdade de Engenharia do Porto LEEC

pág. 26/48

agentes podem comunicar com outras entidades além dos agentes, incluindo humanos e o seu próprio ambiente.

• Habilidade Social - A habilidade social está directamente associada com a característica de capacidade de comunicação, uma vez que representa a capacidade de interagir com outros agentes.

• Cooperação - pode ser entendida como a capacidade que os agentes têm de trabalhar em conjunto de forma a concluírem tarefas de interesse comum

• Aprendizagem - Uma característica que é frequentemente confundida com a inteligência é a capacidade de aprender. Um agente só pode possuir uma autonomia completa quando possuir a capacidade de avaliar as variações de seu ambiente externo, e propor a acção mais correcta.

Em suma, um agente é considerado inteligente se é um ser autónomo, cognitivo, racional, intencional e adaptável, que sabe como agir diante de situações complexas e difíceis. Se esse mesmo agente surgir inserido num ambiente multi-agente terá consequentemente que ter outras características ou atributos se modo a interagir e comunicar para melhor se aperceber do meio que o rodeia.

7.4. Ambiente

Sendo o agente um sistema computacional que “ vive” num determinado ambiente, apercebendo-se e agindo nesse ambiente. As características do ambiente em que o agente está inserido são determinantes na definição da arquitectura do agente e da sua forma de operação. Antes de projectar um agente é necessário uma análise cuidada das percepções e acções possíveis e da complexidade da tarefa a executar pelo agente. Neste contexto a distinção entre ambientes reais e simulados não implica que um ambiente real seja mais complexo do que um ambiente simulado. Podemos usar agentes nos mais variados ambientes, sendo o quadro que segue um resumo de alguns exemplos de agentes, suas acções, percepções, objectivos consoante o ambiente em que habitam.

figura 8 - Exemplos de Agentes

Page 27: Faculdade de Engenharia do Porto LEEC

pág. 27/48

7.4.1. Propriedades de um ambiente

O ambiente em que está inserido o agente pode ser descrito consoante as suas propriedades, nomeadamente se é:

• acessível vs inacessível • estático vs dinâmico

• determinista vs não-determinista

• discreto vs contínuo

No quadro seguinte temos exemplos de vários agentes e correspondentes propriedades dos ambientes onde estão inseridos.

figura 9 - Tabela de Agentes / Propriedades do Ambiente

O ambiente diz-se acessível quando os sensores do agente conseguem perceber e captar todos os aspectos relevantes do ambiente para a escolha da sua acção e inacessível se tal não se verifica:

• ex. internet não é acessível, xadrez é. O ambiente diz-se Determinista se o próximo estado do ambiente pode ser

completamente determinado pelo estado actual e as acções selecionadas pelo agente, ou seja não há incerteza do fruto da acção)

• ex. robocup não-determinista, xadrez semi-determinista O ambiente diz-se Estático se não muda enquanto o agente está a escolher acção

a realizar. Pode-se também ainda referir o ambiente semi-estático em que o ambiente não muda enquanto o agente delibera, mas a “pontuação” do agente muda.

• ex. xadrez c/ relógio semi-estático, xadrez estático, táxi dinâmico O ambiente diz-se Discreto quando existe um número distinto e claramente

definido de percepções e acções em cada turno.

• ex. médico (consulta) discreto, táxi dinâmico

Page 28: Faculdade de Engenharia do Porto LEEC

pág. 28/48

As propriedades do ambiente estão, como é óbvio, intimamente ligadas ao projecto do agente, por isso há que definir bem o ambiente e analisar convenientemente as suas propriedades.

Quanto maior for a acessibilidade do ambiente maior será a simplicidade de projectar agentes para nele se inserirem e actuarem. Para além disso as decisões efectuadas pelo agente serão certamente melhores e mais correctas pois possui maior quantidade e qualidade de informação neste tipo de ambiente. Quando a acessibilidade não existe, em ambientes inacessíveis, podemos atribuir um grau de acessibilidade ao ambiente que irá aumentando gradualmente com a quantidade e precisão dos sensores que o agente têm disponíveis de modo a poder obter cada vez mais percepções sobre o ambiente em que habita.

O ambiente não-determinista é problemático e de grande complexidade para o agente, visto que, restringe bastante a capacidade deste de prever estados futuros do mundo. Este facto leva a que acções executadas pelos agentes possam falhar ou não ter o efeito pretendido, o que obviamente leva a uma maior complexidade na construção do agente pois é necessário prever situações de recuperação e de falhas.

A dinâmica de um ambiente é também uma fonte de complexidade. Nestes ambientes os agentes não podem assumir para si que senão tomarem uma determinada acção num dado instante o ambiente se mantém inalterado, ou seja, tem de ter em atenção que o ambiente não é estático e que por isso nem sempre podem seguir a partir de um estado inicial uma sequência pré-determinada de acções que os leve ao objectivo final pois o ambiente muda a cada instante de tempo independentemente das suas acções, sendo por isso também importante que o agente tenha em conta a variável tempo. Para além disso outra característica dos ambientes dinâmicos é a presença de outros agentes que também agem no ambiente podendo interferir positivamente ou negativamente nas acções efectuadas pelo agente. Neste caso, o agente deixa de estar isolado e surgem então novas necessidades, como a coordenação, comunicação, competição e negociação de modo a interagir com os outros agentes. O ambiente estático é, então, bastante mais simples visto que o agente pode recolher informação do ambiente e assumir que essa informação não será modificada enquanto ele próprio não realizar nenhuma acção.

Por fim, a última propriedade dos ambientes diz respeito a estes serem discretos ou contínuos. Um ambiente discreto é aquele assume que um conjunto predefinido de estados discretos. Por oposição, num ambiente contínuo é impossível enumerar todos os estados possíveis sendo por isso obviamente mais complexo, colocando mais entraves no projecto do agente.

Analisando as propriedades dos ambientes conclui-se facilmente que os ambientes mais complexos para os agentes são os ambientes inacessíveis, não determinísticos, dinâmicos e contínuos.

7.5. Arquitecturas de Agentes

Uma arquitectura de software pode ser descrita como sendo a configuração dos componentes que constituem um sistema e das conexões que coordenam as actividades

Page 29: Faculdade de Engenharia do Porto LEEC

pág. 29/48

entre estes componentes [Abowd et al., 1996]. Quando se fala de arquitecturas de agentes podemo-nos referir não só à arquitectura interna de cada agente mas também à arquitectura do próprio sistema multi-agente, ou seja ao modo de organização dos agentes dentro de um sistema e como estão estruturados os seus relacionamentos e interacções.

A divisão das várias arquitecturas existentes , embora existam autores que as dividam de um modo mais geral, pode ser genericamente a seguinte:

• Agente tabela

• Agente puramente reactivo

• Agente reactivo com estado interno (autómato)

• Agente cognitivo (baseado em objectivos)

• Agente baseado em utilidade

• Agente com capacidades de aprendizagem

7.5.1. Agente tabela

figura 10 - Esquema genérico de um agente tabela

O agente tabela tem um funcionamento simples e que se baseia em para cada

percepção que recebe procurar na sua tabela interna a acção correspondente. Embora seja eficiente, é muito limitado pois mesmo para problemas simples as tabelas tornam-se muito grandes (por exemplo no xadrez seria 30^100). Para além disso, nem sempre é possível por questões de tempo ou até de desconhecimento construir a tabela. Nesta arquitectura não existe autonomia nem flexibilidade, sendo por isso simples e sendo apenas usada praticamente para fins didácticos.

Page 30: Faculdade de Engenharia do Porto LEEC

pág. 30/48

7.5.2. Agente puramente reactivo

figura 11 - Esquema genérico de uma Agente Reactivo puro

A arquitectura reactiva procura responder de forma rápida “ em tempo real” não

utilizando um tipo de modelo ou raciocínio simbólico complexo. O agente reactivo toma as suas decisões, com base em regras que possui que relacionam percepções com as respectivas acções (ex: Se velocidade > 60 então multar)

Este tipo de arquitectura baseia-se na proposta de que um agente poder desenvolver inteligência a partir de interacções com o seu ambiente, não necessitando de um modelo pré-estabelecido [Brooks, 1991].

A arquitectura reactiva tem grandes vantagens, como sendo, a simplicidade, economia, bom trato computacional e boa robustez contra falhas [Wooldridge e Jennings, 1995], mas também tem desvantagens evidentes, nomeadamente no que se refere à característica de os agentes decidirem unicamente baseados em informação da percepção actual, possuírem uma hierarquia de comportamentos pré-fixada e serem incapazes de realizar acções que impliquem a execução de planos de longo-prazo.

7.5.3. Agente reactivo com estado interno

figura 12 - Esquema genérico de uma Agente Reactivo com estado interno

Page 31: Faculdade de Engenharia do Porto LEEC

pág. 31/48

Os agentes reactivos com estado interno possuem um funcionamento idêntico aos agentes puramente reactivos mas têm memória. Possuem regras associando indirectamente percepção e acção para a construção e manutenção de um modelo do ambiente, ou seja, a decisão do agente para determinada acção depende da percepção actual, das percepções anteriores e das acções anteriores.

Estes agentes possuem, então, uma representação do estado do mundo que é actualizada dinamicamente com a percepção do agente. Desta forma, a reactividade destes agentes é condicionada pelas experiências anteriores que se encontra reflectida nesse estado do mundo. Este modo de funcionamento implica que a mesma percepção ocorrida em momentos distintos e consequentemente estados diferentes do mundo, tenha como resultado acções diferentes. A motivação da arquitectura deste tipo consiste no facto de o ambiente inteiro não ser acessível no mesmo momento e de percepções instantâneas poderem corresponder a estados diferentes daí que possuir um modelo interno do ambiente seja uma boa solução.

7.5.4. Agentes Baseados em Objectivos

figura 13 - Esquema genérico de um Agente baseado em objectivos

Os agentes baseados em objectivos, para além da descrição do estado corrente

do mundo, utilizam a informação sobre os objectivos que pretendem atingir. Neste caso, a decisão pode implicar a pesquisa e planeamento prévio, antes da selecção da acção a executar em cada instante. Este tipo de agentes é mais flexível pois diferentes comportamentos podem ser obtidos para o mesmo estado do mundo, dependendo dos objectivos do agente. O funcionamento do agente é, então, mediado pelo modelo de ambiente e objectivos pretendidos. O agente baseado em objectivos é , sem dúvida, mais complexo e por vezes ineficiente, porém é mais flexível e autónomo.

Page 32: Faculdade de Engenharia do Porto LEEC

pág. 32/48

7.5.5. Agentes Baseados em Utilidade

figura 14 - Esquema típico de um agente baseado em utilidades

A utilidade corresponde a uma medida de satisfação do agente relativa ao

cumprimento dos seus objectivos. A utilidade será mais elevada se o estado do mundo actual do agente estiver próximo de atingir os seus objectivos. As utilidades podem ser usadas para decidir entre objectivos em conflito ou ainda, quando existe incerteza nas acções, para medir a proximidade no alcance dos objectivos. Os agentes baseados em utilidade conseguem ser mais racionais pois possuem capacidades para avaliar a utilidade da execução de uma determinada acção. O funcionamento do agente é, então, mediado pelo modelo do ambiente, objectivos dos agentes e correspondentes utilidades.

7.5.6. Agentes com capacidades de aprendizagem

figura 15 - Esquema genérico de uma Agente com capacidades de aprendizagem

Os agentes com capacidades de aprendizagem são mais complexos. Possuem

uma estrutura que lhes permite aprender com experiências sucessivas, isto é, ao longo do seu tempo de interacção com o ambiente. Assim, mesmo quando um agente não reconhece a existência de uma acção com elevada probabilidade de sucesso para ser

Page 33: Faculdade de Engenharia do Porto LEEC

pág. 33/48

executada, é esperado que ele procure, encontre e experimente alternativas. A questão não é acertar sempre, mas aprender continuamente por experiência, seja através de sucessos ou de fracassos.

Podemos resumir todas estas arquitecturas em três classes distintas segundo uma abordagem mais geral:

• Arquitecturas Deliberativas:

o Agentes sofisticados

o Mantém um histórico das suas acções

o Apresentam um pequeno número de agentes

o Possuem uma representação explícita do seu ambiente

o Possuem um modo social de organização

o Tem a função de delegar tarefas aos demais agentes

o Agentes actuam com pouca autonomia

• Arquitecturas Reactivas

o Não possuem um histórico das suas acções

o Apresentam um grande número de agentes

o Não possuem uma representação explícita do seu ambiente

o Possuem um modo biológico de organização

o Modo de funcionamento baseado no processo de estímulo-resposta

o não utilizar nenhum tipo de modelo ou raciocínio simbólico complexo

o tomam decisões em tempo real

• Arquitecturas Híbridas: Como o próprio nome sugere, as Arquitecturas Híbridas combinam as

características das duas arquitecturas anteriores. Os agentes puramente reactivos têm uma limitação significativa que é a sua dificuldade em implementar comportamento orientado por objectivos. Os agentes puramente deliberativos são baseados em mecanismos de raciocínio simbólico muito complexos e tornam-se, por vezes, incapazes de uma reacção imediata a estímulos do exterior. Um agente híbrido combina estas duas componentes, e caracteriza-se por uma arquitectura composta por níveis ou camadas. A possibilidade de realizar uma disposição por níveis é uma ferramenta poderosa de estruturar as funcionalidades e controlo do agente. A ideia principal é categorizar as funcionalidades do agente em camadas dispostas hierarquicamente onde geralmente a

Page 34: Faculdade de Engenharia do Porto LEEC

pág. 34/48

camada reactiva tem alguma prioridade sobre a camada deliberativa, de modo a permitir uma resposta rápida aos eventos mais importantes detectados no ambiente.

7.6. Infra-Estrutura para Agente Inteligente River (1995) associa aos agentes inteligentes a posse de uma ou mais das

seguintes características:

• Uma base de conhecimento pré-definida e um mecanismo de inferência;

• Um sistema de aquisição de conhecimento;

• Um mecanismo de aprendizagem neuronal.

Nissen (1995) apresenta cinco componentes da infra-estrutura necessária à actuação dos agentes inteligentes:

• Recursos de execução;

• Recursos de comunicação;

• Recursos de transporte;

• Recursos de empacotamento;

• Segurança integrada.

Page 35: Faculdade de Engenharia do Porto LEEC

pág. 35/48

8. Agente Aquicultor “SellFish Farmer Agent”

8.1. Introdução

Uma Arquitectura de software pode ser descrita como sendo a configuração dos componentes que constituem um sistema e das conexões que coordenam as actividades entre estes componentes. Falando da arquitectura do agente estamos a referirmo-nos não só à arquitectura interna de cada agente mas também à arquitectura do próprio sistema multi-agente, ou seja, ao modo de organização dos agentes dentro de um sistema e como estão estruturados os seus relacionamentos e interacções.

8.2. Sistema multi-agente

O agente que se pretende implementar (Sellfish Farmer agent) será a representação de uma entidade existente no ecossistema costeiro, como tal, irá interagir e comunicar com outras entidades do ecossistema como se verifica no mundo real. Cada entidade envolvida irá fazer parte de um sistema final que servirá de apoio à gestão do ecossistema. O agente (Sellfish Farmer agent) irá, portanto, estar inserido numa arquitectura mais ampla e multi-agente. A arquitectura multi-agente será a representada na figura seguinte:

figura 16 - Arquitectura Multi-Agente

Analisando o diagrama podemos constatar que a ideia é, portanto, inserir, cada entidade inteligente relacionada com o sistema ecológico. As entidades são as seguintes:

• Policia Marítima – “Navy command Agent”

• Direcção do Parque Natural – “Natural Park Directorate Agent”

Page 36: Faculdade de Engenharia do Porto LEEC

pág. 36/48

• Aquicultores – “Sellfish Farmer Agent”

• Gestor de Turismo – “Official Tourism Manager Agent”

• Câmara Municipal – “City council Agent”

Para além destes agentes que representam entidades do sistema será também fundamental a existência de um agente de calibração “Calibration Agent” para, através de resultados do mundo real e interacções com o Ecodyn, ser capaz de alterá-lo, validá-lo, e optimiza-lo de forma a ser possível obter dados cada vez mais semelhantes aos reais.

Qualquer acção planeada pelos agentes que influencie o ecossistema é previamente comunicada à base de dados do modelo “ Model Database”, o sistema de simulação corre e os resultados são apresentados num sistema de apoio à decisão (DSS) para auxiliar as decisões dos gestores.

8.3. Agente Pescador

Como já vimos o agente pescador representa a actividade da aquicultura no ecossistema costeiro, ou seja, os exploradores dos viveiros existentes na zona costeira. Para que o agente possa simular esta actividade e possa chegar à sua optimização temos que analisar que comportamentos deve o nosso agente possuir, ou por outras palavras, quais são as suas responsabilidades no sistema.

O Agente Pescador (Sellfish Farmer Agent) será responsável por plantar, colher e monitorizar (inspeccionar) bivalves e algas. Baseado no seu conhecimento e nas suas Percepções do ambiente, deve decidir quais as regiões em que deve plantar e colher cada espécie assim como em que data realiza essas acções.

As acções e percepções do agente consistem em mensagens trocadas com o simulador (Ecodyn).

8.4. Arquitectura

8.4.1. Definição

Pretende-se que o agente atinja um objectivo principal que é a optimização da capacidade de carga da Ria. Como tal das arquitecturas referidas anteriormente, optou-se por uma arquitectura de um agente baseado em objectivos. Os agentes baseados em objectivos, para além da descrição do estado do mundo utilizam a informação sobre os objectivos que pretendem atingir. Neste caso, a decisão pode implicar a pesquisa e planeamento prévio, antes da selecção da acção a executar em cada instante. Este tipo de agentes é mais flexível pois diferentes comportamentos podem ser obtidos para o mesmo estado do mundo, dependendo dos objectivos do agente. Embora esta seja a arquitectura genérica a utilizar, será ainda interessante dotar o agente de capacidades de aprendizagem que se adaptariam a arquitectura definida.

Page 37: Faculdade de Engenharia do Porto LEEC

pág. 37/48

8.4.2. Esquema

figura 17 – esquema genérico de uma arquitectura deliberativa para o agente pescador

8.4.3. Conhecimento/Estado do mundo

O Agente deve iniciar com algum Conhecimento sobre o ecossistema. Por exemplo, as áreas onde o cultivo é permitido, as espécies que nelas podem ser cultivadas, os períodos e áreas geralmente usados para semear essas espécies, o seu tamanho de colheita e alguma informação relativa à qualidade da água. Este conhecimento básico deve ser incluído numa base de dados de conhecimento.

8.4.4. Acções

As acções que o Agente irá realizar serão as seguintes:

• Plantar – O agente deve indicar em que região pretende semear, qual a data para o acontecimento, que tipo de espécies pretende plantar assim como as suas características e ainda o peso pretendido.

Page 38: Faculdade de Engenharia do Porto LEEC

pág. 38/48

• Colher – O agente deve indicar de que região pretende colher, em que data, qual o tipo de espécie e as suas características.

• Inspeccionar – O agente deve indicar a região e a data que pretende para realizar a inspecção.

8.4.5. Percepções

As percepções que o Agente terá serão resultado do seu pedido de inspecção e serão para cada área ou célula:

• Espécie existente

• Quantidade

• Tamanho

• Qualidade da água

8.4.6. Objectivos

O objectivo do agente será optimizar a capacidade de carga do ecossistema costeiro tendo porém restrições ao nível ambiental de modo a manter o equilíbrio deste.

8.4.7. Comportamento do agente

Monitorizando o crescimento das espécies cultivadas em cada célula ou área (opcional) do modelo irá classificá-las segundo uma escala semi-quantitativa para na simulação seguinte decidir onde deve aumentar ou diminuir o stock.

O aumento ou descriminação do stock deve ser feito segundo incrementos/decrementos pré-definidos para cada classe da escala semi-quantitativa.

Tanto a escala como os referidos incrementos/decrementos podem ser parâmetros do Agente.

O Agente poderá ainda considerar critérios como a qualidade da água, quer a nível local, quer integrados por toda a área simulada, para decidir se os resultados de determinada simulação são aceitáveis face à legislação comunitária sobre a qualidade da água.

Nas primeiras interacções, se o Agente identificar células/regiões que a escala semi-quantitativa considera impróprias para o cultivo, na iteração seguinte deve transferir os organismos para regiões de qualidade superior e só depois de confirmada a viabilidade da operação, deve tentar aumentar os stocks. Se houver espaço disponível em zonas com culturas complementares, estas devem ser preferidas.

8.4.8. Raciocínio

O agente realiza uma primeira operação e analisa as zonas de cultivo. A partir dos resultados obtidos em cada célula, ou em cada zona, classifica-as de acordo com a escala referida. Os objectos responsáveis pela simulação de cada das espécies cultivadas podem avaliar diariamente situações de “overstocking”, por exemplo e no caso dos bivalves, comparando para cada célula do modelo a produtividade média, com o tempo

Page 39: Faculdade de Engenharia do Porto LEEC

pág. 39/48

de residência na água e a produtividade primária. Sempre que a capacidade de carga for excedida, o respectivo excesso pode ser quantificado através da razão entre o tempo médio de aclaramento e a escala temporal limitante. As zonas devem ser classificadas em função do número de vezes que a capacidade de carga foi excedida. As zonas onde o crescimento foi insuficiente para que os organismos cultivados atingissem o tamanho comercial, devem ser classificadas como fracas. Se essa classificação coincidir com problemas de CC, na iteração seguinte a densidade de organismos cultivados deve ser reduzida.

8.4.9. Visualizador

Ao agente estará associado um visualizador que permita de uma forma rápida e directa e uma interface com o agente de modo a:

• Permitir visualizar as mensagens trocadas entre o Agente e o Simulador;

• Ter acesso a um gráfico com a evolução do tamanho dos bivalves;

• Ter uma ideia do lucro possível no momento;

• Permitir comutar entre dois modos de funcionamento do agente (automático e manual).

No modo manual será possível realizar todas as acções do agente.

figura 18 - Visualizador do Agente Aquicultor

Page 40: Faculdade de Engenharia do Porto LEEC

pág. 40/48

9. Protocolos de Comunicação

9.1. Introdução

Como já vimos o agente numa primeira fase irá interagir com o Ecodyn e futuramente com outros agentes do sistema. Para que essa interacção seja possível, é necessário que ambos os agentes comuniquem e para tal é necessitam falar a mesma “língua” com a mesma semântica e sintaxe, ou seja, precisam de obedecer ao mesmo protocolo e linguagem de comunicação. Para tal, é fulcral criar uma linguagem que permita de maneira eficiente cobrir todas as necessidades ao nível da comunicação entre o agente e o simulador para que o agente tenha acesso a toda a informação que necessita de modo a cumprir as suas tarefas, assim como, possa, também, actuar no Ecodyn e indicar-lhe de forma clara as suas intenções. Mas para além da linguagem, para a troca de mensagens ser inequívoca, é obviamente indispensável um canal de comunicação, isto é, um meio por onde difundir as mensagens de modo a que estas percorram o caminho entre emissor e receptor.

Neste ponto iremos abordar estes aspectos referindo as bases teóricas e como foram implementados o protocolo e linguagem de comunicação.

9.2. Sockets de Berkeley

No intuito de criar um meio de comunicação para que fossem possíveis as trocas de mensagens entre os agentes foi implementada uma interface usando sockets de Berkeley.

O mecanismo de sockets define uma interface que se pode aplicar para a comunicação entre processos através de uma rede de computadores ou entre processos de um mesmo computador.

figura 19 - Esquema de uma comunicação por sockets

A mesma interface permite a comunicação utilizando diversas famílias de protocolos. Os vários protocolos existentes podem ser divididos em classes:

Quanto ao nível a que estão

• Protocolos de Transporte – Permitem a comunicação entre processos (Ex.TCP, UDP e Unix).

Page 41: Faculdade de Engenharia do Porto LEEC

pág. 41/48

• Protocolos de Rede - permitem a transmissão de dados entre computadores (Ex. IP).

Quanto ao tipo de conexão:

• Protocolo orientado à conexão – Existe uma ligação virtual entre as

extremidades de comunicação (ex. TCP)

• Protocolos não orientados à conexão – Não existe uma ligação, sucessivas transmissões podem ter endereços distintos (ex. UDP )

A comunicação através de sockets exige a definição de uma associação entre os 2 extremos da comunicação, esta associação pode ser vista como um quinteto:

{ protocolo; endereço local; processo local ; endereço remoto; processo remoto}

A especificação dos endereços e dos processos depende do protocolo.

9.2.1. Estrutura de uma aplicação

Numa aplicação orientada à conexão uma estrutura dos passos a executar pelo servidor seria por exemplo:

1. Criar a socket

2. Registar o seu endereço

3. Criar a fila de espera

4. Esperar conexão

5. Ler pedido

6. Enviar resposta

7. Esperar nova conexão

Os passos a executar pelo cliente seriam:

1. Criar a socket

2. Registar o seu endereço (opcional).

3. Estabelecer a conexão.

4. Enviar pedido

5. Receber resposta

Se a aplicação não for orientada à conexão uma estrutura possível dos passos seria, no caso do servidor:

1. Criar a socket

2. Registar o seu endereço

3. Ler pedido

Page 42: Faculdade de Engenharia do Porto LEEC

pág. 42/48

4. Enviar resposta

5. Ler novo pedido

No caso do cliente seria:

1. Criar a socket

2. Registar o seu endereço.

3. Enviar pedido

4. Receber resposta

9.3. Implementação da Interface TCP/IP

A interface implementada usando sockets usa o protocolo de transporte TCP,

isto é, orientado à conexão e ao nível de rede usa o protocolo IP.

A interface foi criada com recurso a algumas classes existentes no C++ builder. Para isso foram usados dois componentes, o TNMMsg para enviar mensagens e o TNMMsgServ que é usado para receber mensagens enviadas pelo TNMMssg.

Especificamente o componente TNMMsg é usado para enviar mensagens em texto simples ASCII pela Internet ou intranet usando o protocolo TCP/IP.

Para usar estes componentes há que configurar os endereços IP e portas do TNMMsg que é o Cliente e do TNMMsgServ que será o Servidor. A partir daí podem ainda ser usados eventos associados aos componentes.

Para que haja comunicação bidireccional utilizam-se os dois componentes em cada ponto da comunicação, ou seja, cada ponto é cliente quando envia uma mensagem e servidor quando recebe.

9.4. Linguagem de comunicação Agente Aquicultor – Ecodyn

Para a realização do protocolo ou linguagem de comunicação entre o Agente

Aquicultor e o Ecodyn foram definidos conceitos que seguem a notação BNF (Naur 1960), baseados na Coach Unilang (Reis and Lau 2002; Reis 2003).

A linguagem de comunicação implementada procura cumprir todos os requisitos de comunicação necessários entre os agentes, garantindo que o agente aquicultor pode realizar todas as acções que pretenda, enviando todas as características do que pretende de modo a que não exista nenhuma ambiguidade. Do mesmo modo o Ecodyn irá entender o que lhe é pedido e enviará respostas inequívocas ao agente.

A estrutura linguagem de comunicação é a seguinte:

Page 43: Faculdade de Engenharia do Porto LEEC

pág. 43/48

<MESSAGE> ::= message (<ID> <SENDER> <RECEIVER> <MSG_CONTENT>)

<ID> ::= [integer]

<SENDER> ::= [string]

<RECEIVER> ::= [string]

<MSG_CONTENT> ::= <ACTION_MSG> | <PERCEPTION_MSG> |<DEFINITION_MSG>

<ACTION_MSG> ::= <SEED_ACTION> | <INSPECTACTION> | <HARVESTACTION>

<PERCEPTION_MSG> ::= <SEED_RESULT> | <INSPECT_RESULT> | <HARVEST_RESULT>

<DEFINITION_MSG> ::= define <REG_NAME> <REGION>

<SEED_ACTION> ::= seed (<REGION> <TIME> <BTYPE> <BCARACT> <WEIGHT>)

<INSPECT_ACTION> ::= inspect (<REGION> <TIME>)

<HARVEST_ACTION> ::= harvest (<REGION> <TIME> <BTYPE> <BCARACT>)

<SEED_RESULT> ::= seed_result (<ID> <ACTION_RESULT>)

<INSPECT_RESULT> ::= inspect_result (<ID> {(<BTYPE> <BCARACT>)})

<HARVEST_RESULT> ::= harvest_result (<ID> <ACTION_RESULT> <WEIGHT>)

<TIME> ::= [integer] | now

<ACTION_RESULT> ::= ok | failed

<REG_NAME> ::= [string]

<REGION>::= <REGION_TYPE> <REGION_AREA> I<REG_NAME>

<REGION_TYPE> ::= <WATER_REGION> I<LAND_REGION>

<WATER_REGION> ::= <SUB_INTERTIDAL> <SEDIMENLCARACT> <WATER_QUALITY>

<SUB_INTERTIDAL> ::= subtidal | intertidal

<SEDIMENT_CARACT> ::= (<SEDIMENLTYPE> <SEDIMENT_QUALITY>)

<SEDIMENT_TYPE> ::= sandy | sand_muddy | muddy

<SEDIMENT_QUALITY> ::= <QUAL_SCALE>

<WATER_QUALITY> ::= <QUAL_SCALE>

<QUAL_SCALE> ::= excellent | good | poor

<LAND_REGION> ::= land

<REGION_AREA>::= {<SIMPLE_REGION>}

<SIMPLE_REGION>::= <POINT> | (rect <POINT> <POINT> | quad <POINT> <POINT> <POINT> <POINT> | circle <POINT> [real] | arc <POINT> [real] [real] [real] [real]

<POINT>::= (point [real] [real])

<WEIGHT> ::= [real]

<BTYPE> ::= seallop | kelp | oyster

<BCARACT> ::= <SHELL_LENGTH> | <DENSITY>

<SHELL_LENGTH> ::= (length [real] [real])

<DENSITY> ::= (density [real] [real])

Page 44: Faculdade de Engenharia do Porto LEEC

pág. 44/48

Para se ter uma ideia de como é estruturada cada mensagem analisemos o seguinte exemplo de mensagem enviada pelo agente ao Ecodyn: message(5 Shellfish_Farmer Simulator seed (Are-aNW1 now kelp (density 0.50.7) 15) )

Analisando este exemplo podemos decompor a mensagem e descrever o

conteúdo intrinsecamente associado a cada campo :

• 5 – indica que esta mensagem é a quinta do agente para o Ecodyn;

• Shellfish_Farmer – indica que o emissor da mensagem foi o agente Shellfish_Farmer;

• Simulator – aqui está referido para quem vai a mensagem, ou seja, o

receptor;

• Seed – neste campo está indicada a acção que o agente pretende que seja realizada, nesta caso é plantar;

• Are-aNW1 – ao dizer que a acção é de plantar, neste campo referimos o nome da área pretendida para a plantação;

• Now – esta variável está relacionada com o tempo, neste caso pretende-

se que a plantação seja efectuada no momento imediato “agora”;

• Kelp – aqui está a indicada a espécie que se pretende plantar;

• ((density 0.50.7) 15) – estas são as características da espécie a plantar, pretende-se assim 15kg de algas “Kelp” com densidade entre 0.5 e 0.7.

Resumindo, esta seria a quinta mensagem do aquicultor para o Ecodyn e pedia

que fossem plantados, imediatamente, na área Are-aNw1, 15kg de Kelp com densidade entre 0.5 e 0.7.

As percepções do agente são o resultado das suas acções e são, basicamente, as mensagens enviadas pelo simulador Ecodyn após as acções pedidas. No exemplo presente uma percepção ou resposta possível seria:

message (47 Simulator Farmer seed_result (5 ok) )

Analogamente com o exemplo anterior podemos facilmente descrever como

sendo a mensagem numero 47 enviada pelo simulador para o agente, em que o simulador refere que a quinta mensagem enviada para si pelo agente foi executada, estando inerentes as alterações ao ambiente fruto da acção pedida.

Page 45: Faculdade de Engenharia do Porto LEEC

pág. 45/48

9.5. Implementação da linguagem de comunicação

Depois de definida a linguagem esta foi implementada no Ecodyn. Para tal criou-se um novo projecto agregado ao Ecodyn a que foi dado o nome de ECDP “Ecodyn Protocol”.

Para se proceder à definição da linguagem foi necessário definir a estrutura que teria cada mensagem. Optou-se, então, por decompor cada mensagem em dois blocos, o cabeçalho (header) onde ficarão os dados que asseguram o bom funcionamento da interface de comunicação e o corpo propriamente dito onde estará a linguagem, a informação realmente que se pretende transmitir.

A estrutura do cabeçalho (header) de cada mensagem é composta por:

• Header – campo que é constante e sempre igual a 0xECDF

• Sender – preenchido com o ID do agente emissor

• Receiver – preenchido com o ID do agente receptor

• MsgSize – tamanho em bytes do corpo da mensagem

Para que a estrutura do cabeçalho fosse preenchida correctamente com os IDs dos agentes foi criada uma tabela que associa cada agente ao seu ID:

0 – Ecodyn Server

1 – Ecodyn

2 – Calibration

3 – Farmer

4 – ……..

A ideia de criação desta tabela foi principalmente a de facilitar a configuração das portas para a interface de comunicação. Se usarmos o protocolo TCP a porta base será sempre a mesma, mas se usarmos o protocolo UDP a porta atribuída a cada agente será igual à soma da porta base mais o seu ID. Deste modo garantimos que cada agente terá a sua porta do socket cliente configurada.

O corpo da mensagem é composto pelas “strings” definidas no ponto 7.4 .Cada entidade ou campo dessas strings foi criado como estrutura para poder ser manipulado, como exemplo podemos analisar o campo : <MSG_CONTENT> ::= <ACTION_MSG> | <PERCEPTION_MSG> |<DEFINITION_MSG>

Este campo do corpo da mensagem indica-nos de que tipo de mensagem se trata, isto é, se é uma acção, percepção, ou uma definição. A estrutura em código que representa este campo é a seguinte:

Page 46: Faculdade de Engenharia do Porto LEEC

pág. 46/48

typedef struct msg_content {

int type;

union {

union action_msg {

SEED_ACTION seed;

INSPECT_ACTION inspect;

HARVEST_ACTION harvest;

} action;

union perception_msg {

SEED_RESULT seedResult;

INSPECT_RESULT inspectResult;

HARVEST_RESULT harvestResult;

} perception;

DEFINITION_MSG definition;

} content;

} MSG_CONTENT;

Para todos os campos da linguagem de comunicação pretendida foram, então,

criadas estruturas bastante semelhantes.

Visto que a interface de comunicação nos permite enviar strings e a informação está guardada em estruturas, foi também necessário criar funções que façam a montagem para “string” texto das estruturas com dados a enviar. Do mesmo modo foram criadas funções que façam a leitura da string e preencham as estruturas com os dados recebidos.

9.6. Conclusão

Para que fosse possível existir interacção e comunicação entre o agente Aquicultor e o Ecodyn foi criada uma interface de comunicação usando sockets de modo a que existisse um canal capaz de servir de veículo à informação. A informação que circulará nesse canal será a linguagem de comunicação criada para satisfazer as necessidades do agente na sua tarefa.

Page 47: Faculdade de Engenharia do Porto LEEC

pág. 47/48

10. Conclusões

Após uma primeira fase de estudo sobre modelagem ecológica em que foi importante a assimilação e compreensão de conceitos de ecologia assim como modelos de simulação ecológica e suas bases teóricas gerais, foi possível entrar em contacto como simulador de ecossistemas Ecodyn familiarizado com o tema. Após este primeiro contacto com o software de simulação tornou-se mais interessante a leitura de material sobre a Ria formosa, ecossistema costeiro onde se pretende optimizar a gestão do cultivo de bivalves.

A inteligência artificial é a base de conhecimento do trabalho pretendido, como tal, o conhecimento da sua história, áreas de investigação, organização e aplicações práticas são pontos essenciais para o entendimento do desenvolvimento da ciência e tecnologia até ao aparecimento dos Agentes Inteligentes.

No campo dos agentes inteligentes procurou-se fazer uma análise mais detalhada analisando as suas definições, características, ambientes e arquitecturas de modo a resumir o estudo efectuado no campo dos agentes e sistemas multi-agentes.

Na sequência das matérias estudadas iniciou-se então a fase de definição da arquitectura do sistema multi-agente em que o agente iria estar incluído. De seguida definiu-se a arquitectura do agente Aquicultor onde se estruturou e clarificou as suas acções, percepções, comportamento, raciocínio e os seus objectivos. Passou-se então à fase de idealização da interface e linguagem de comunicação. A interface de comunicação já foi implementada e recorre a sockets TCP para enviar e receber mensagens. A implementação da linguagem de comunicação, após a sua definição, está, também praticamente concluída. A fase seguinte será, então, a implementação do agente Aquicultor seguindo de um modo geral a arquitectura apresentada neste relatório.

Page 48: Faculdade de Engenharia do Porto LEEC

pág. 48/48

11. Bibliografia

Jørgensen, S.E. 1994. Fundamentals of ecological modelling (2nd edition). Elsevier, Amsterdam

Odum, H.T. 1983. Systems ecology. John Wiley & Sons, New York, 644 pp.

Walters, C.J. 1998. Improving links between ecosystem scientists and managers. In: M.L. Pace & P. M. Groffman. Seccesses, limitations, and frontiers in ecosystem science. Springer

Reis, Luís Paulo, Tese de Doutoramento – “Coordenação em Sistemas Multi-Agente: Aplicações na Gestão Universitária e Futebol Robótico”

Russell, Stuart, Norvig, Peter (1995) Artificial Intelligence, A Modern Approach, Prentice-Hall, Inc.

M.Wooldridge, John Wiley &Sons, 2002 “Introduction to MultiAgent Systems”

Coelho, Helder, Inteligência Artificial: o balanço da década de 80, 1ª ed.. Lisboa, Editora Caminho, 1991, 278 p..

Reis, Luís Paulo, Tese de Doutoramento – “Coordenação em Sistemas Multi-Agente: Aplicações na Gestão Universitária e Futebol Robótico”