• Nenhum resultado encontrado

Trabalho de Inteligecia Artificial Agentes de Procura

N/A
N/A
Protected

Academic year: 2021

Share "Trabalho de Inteligecia Artificial Agentes de Procura"

Copied!
23
0
0

Texto

(1)

UNIVERSIDADE KATYAVALA BWILA UNIVERSIDADE KATYAVALA BWILA

INSTITUTO SUPERIOR POLITECNICO DO LOBITO INSTITUTO SUPERIOR POLITECNICO DO LOBITO

LICENCIATURA EM INFORMÁTICA LICENCIATURA EM INFORMÁTICA

TEMA:

TEMA:

BENGUELA/2012 BENGUELA/2012

(2)

UNIVERSIDADE KATYAVALA BWILA UNIVERSIDADE KATYAVALA BWILA

INSTITUTO SUPERIOR POLITECNICO DO LOBITO INSTITUTO SUPERIOR POLITECNICO DO LOBITO

LICENCIATURA EM INFORMÁTICA LICENCIATURA EM INFORMÁTICA

TEMA:

TEMA:

ELABORADO POR: ELABORADO POR:

DAVID CANDELE CHIYELU CHITUNDA DAVID CANDELE CHIYELU CHITUNDA ERNESTO PEDRO TCHIWALE

ERNESTO PEDRO TCHIWALE JOÃO ABEL MARTINS DA SILVA JOÃO ABEL MARTINS DA SILVA JOAQUIM TCHIPILICA

JOAQUIM TCHIPILICA

JOSÉ DANILSON ALBERTO JOSÉ DANILSON ALBERTO

ORNÊLO SAMUEL PAULO KAMBONGA ORNÊLO SAMUEL PAULO KAMBONGA VENÂNCIO JOSÉ COSTANTINO

VENÂNCIO JOSÉ COSTANTINO

O PROFESSOR: O PROFESSOR:

WALDEMAR RAIMUNDO WAFUNGA WALDEMAR RAIMUNDO WAFUNGA

BENGUELA/2012 BENGUELA/2012

(3)

DEDICATÓRIA

DEDICATÓRIA

Dedicamos este trabalhos com muita vénia e consideração a todos os Dedicamos este trabalhos com muita vénia e consideração a todos os colegas da UKB especialmente do ISP, e não só aos nossos familiares e a colegas da UKB especialmente do ISP, e não só aos nossos familiares e a todos leitores que lhes sirva de guia de aprendizagem nesta cadeira de todos leitores que lhes sirva de guia de aprendizagem nesta cadeira de Inteligência Artificial de formas a progredirem termos de conhecimento Inteligência Artificial de formas a progredirem termos de conhecimento cientifico.

(4)

AGRADECIMENTO

AGRADECIMENTO

Em primordial instância queremos agradecer a

Em primordial instância queremos agradecer a DDEUSEUS TTODOODO-P-PODEROSOODEROSO

pelo fôlego de vida, aos nossos familiares pelo sustento,

pelo fôlego de vida, aos nossos familiares pelo sustento, e a todos aqueles quee a todos aqueles que directas ou indirectamente contribuíram na elaboração deste trabalho.

(5)

PENSAMENTO

PENSAMENTO

 A reconciliação é o princípio de paci

 A reconciliação é o princípio de pacificação de duas cidaficação de duas cidades em guerra.des em guerra. ““DavidDavid””

(6)

ÍNDICE

ÍNDICE

INTRODUÇÃO INTRODUÇÃO PROCURA CEGA PROCURA CEGA - EM LARGURA PRIMEIRO - EM LARGURA PRIMEIRO - EM PROFUNDUDADE PRIMEIRO - EM PROFUNDUDADE PRIMEIRO - PROFUNDUDADE LIMITADA - PROFUNDUDADE LIMITADA PROCURA HEURÍSTICA PROCURA HEURÍSTICA - PROCURA SÔFREGA - PROCURA SÔFREGA - TREPA COLINAS - TREPA COLINAS - PROCURA TABU - PROCURA TABU CONCLUSÃO CONCLUSÃO BIBLIOGRAFIA BIBLIOGRAFIA

(7)

INTRODUÇÃO

INTRODUÇÃO

Historicamente, a procura de métodos genéricos de resolução de Historicamente, a procura de métodos genéricos de resolução de problemas foi uma das primeiras áreas de teste para os investigadores em problemas foi uma das primeiras áreas de teste para os investigadores em inteligência artificial. Os ambientes em que ocorrem os problemas são inteligência artificial. Os ambientes em que ocorrem os problemas são tipicamente acessíveis, geralmente deterministas e estáticos. As diferentes tipicamente acessíveis, geralmente deterministas e estáticos. As diferentes estratégias serão agrupadas em função do grau de conhecimento que o agente estratégias serão agrupadas em função do grau de conhecimento que o agente tem sobre o domínio do

tem sobre o domínio do problema. Será feito ainda um estudo da problema. Será feito ainda um estudo da complexidadecomplexidade das diferentes propostas e serão apresentados princípios heurísticos para das diferentes propostas e serão apresentados princípios heurísticos para escolha da estratégia mais

escolha da estratégia mais adequada.adequada.

Agentes de procura

Agentes de procura é assim denominado devido as analise dasé assim denominado devido as analise das diferentes estratégias possíveis agrupados em função do grau de diferentes estratégias possíveis agrupados em função do grau de conhecimento que o agente tem para resolução de problemas.

(8)

PROCURA CEGA

PROCURA CEGA

Quando não existe nenhuma informação sobre o problema que nos Quando não existe nenhuma informação sobre o problema que nos permita ajudar no processo de geração e teste dos nós, teremos de nos permita ajudar no processo de geração e teste dos nós, teremos de nos socorrer de uma estratégia dita cega. O que essas estratégias fazem socorrer de uma estratégia dita cega. O que essas estratégias fazem basicamente é definir um modo Sistemático de navegação na árvore de basicamente é definir um modo Sistemático de navegação na árvore de procura. Existem fundamentalmente duas possibilidades, cada uma com procura. Existem fundamentalmente duas possibilidades, cada uma com variantes: Uma consiste em analisar repetidamente um sucessor do último nó variantes: Uma consiste em analisar repetidamente um sucessor do último nó analisado; outra baseia-se na análise de todos os sucessores de dado nó, analisado; outra baseia-se na análise de todos os sucessores de dado nó, antes de passar para a análise de todos os sucessores dos sucessores. antes de passar para a análise de todos os sucessores dos sucessores. Vejamos os algoritmos de forma mais

Vejamos os algoritmos de forma mais detalhada.detalhada.

EM LARGURA PRIMEIRO

EM LARGURA PRIMEIRO

Numa árvore de procura cada nó tem um

Numa árvore de procura cada nó tem um nível.nível. Assim a raiz tem nívelAssim a raiz tem nível 00,, os seus sucessores têm nível

os seus sucessores têm nível 11, os sucessores dos sucessores têm nível, os sucessores dos sucessores têm nível 22,, etc. A estratégia de procurar em largura primeiro caracteriza-se pelo facto de etc. A estratégia de procurar em largura primeiro caracteriza-se pelo facto de os nós do nível

os nós do nível nn seremserem todostodos analisados antes dos nós do nívelanalisados antes dos nós do nível n+1.n+1. VamosVamos aos exemplos de umas das estradas de Portugal e admitimos de novo que aos exemplos de umas das estradas de Portugal e admitimos de novo que pretendemos ir de Coimbra para Faro. A árvore de procura irá passando pretendemos ir de Coimbra para Faro. A árvore de procura irá passando sucessivamente pelas etapas seguinte.

sucessivamente pelas etapas seguinte.

Inicialmente a árvore de procura terá apenas um nó correspondente a Inicialmente a árvore de procura terá apenas um nó correspondente a Coimbra o estado inicial. Como Coimbra não corresponde ao objectivo (Faro), Coimbra o estado inicial. Como Coimbra não corresponde ao objectivo (Faro), o nó correspondente ira ser expandido, aparecendo então os nós do nível o nó correspondente ira ser expandido, aparecendo então os nós do nível seguinte e que são os vizinhos de Coimbra.

seguinte e que são os vizinhos de Coimbra.

 Aveiro  Aveiro Viseu Viseu Coimbra Coimbra Leiria Leiria C. Branco C. Branco

O algoritmo em largura primeiro irá analisar sucessivamente estes nós. Uma O algoritmo em largura primeiro irá analisar sucessivamente estes nós. Uma vez mais nenhum deles é a solução, passará para os nós do nível 2, como se vez mais nenhum deles é a solução, passará para os nós do nível 2, como se indica na figura abaixo, processo de

indica na figura abaixo, processo de expansão e análise continuaria até seexpansão e análise continuaria até se alcançar o objectivo Faro.

(9)

Do pondo de vista algorítmico, se estivermos a resolver um pr

Do pondo de vista algorítmico, se estivermos a resolver um pr oblema emoblema em que apenas interessa a solução, então não será necessário manter guardada que apenas interessa a solução, então não será necessário manter guardada toda a árvore de procura, mas sim a sua fronteira. Caso nos interesse o toda a árvore de procura, mas sim a sua fronteira. Caso nos interesse o caminho como no exemplo presente teremos de

caminho como no exemplo presente teremos de manter todos os caminhos quemanter todos os caminhos que ligam a raiz da árvore aos na fronteira.

ligam a raiz da árvore aos na fronteira.

Para assegurar que a estratégia tem o comportamento indicado, a Para assegurar que a estratégia tem o comportamento indicado, a fronteira deverá ser guardada numa fila, os elementos á cabeça da fila serão os fronteira deverá ser guardada numa fila, os elementos á cabeça da fila serão os primeiros a ser analisados e os sucessores de um nó gerados pela estratégia primeiros a ser analisados e os sucessores de um nó gerados pela estratégia serão introduzidos no fim da fila associado a uma fila, existe um conjunto de serão introduzidos no fim da fila associado a uma fila, existe um conjunto de funções. As funções FazFila, VaziaFila, RetiraFila e InseriFila são as usuais funções. As funções FazFila, VaziaFila, RetiraFila e InseriFila são as usuais para o tipo

para o tipo de dados abstracto fila, permitindo de dados abstracto fila, permitindo respectivamente a construção derespectivamente a construção de uma fila, o teste de filas vazias retirar um elemento da frente da fila ou uma fila, o teste de filas vazias retirar um elemento da frente da fila ou acrescentar elementos no fim da fila. Esta última é a responsável pelo efeito de acrescentar elementos no fim da fila. Esta última é a responsável pelo efeito de procura em largura, aparecendo aqui passada como argumento.

procura em largura, aparecendo aqui passada como argumento. Podemos descrever o algoritmo:

(10)

EM PROFUNDIDADE PRIMEIRO

EM PROFUNDIDADE PRIMEIRO

Procura em Profundidade primeiro segue a filosofia completamente Procura em Profundidade primeiro segue a filosofia completamente distinta dos dois algoritmos anteriormente apresentados. Na realidade partindo distinta dos dois algoritmos anteriormente apresentados. Na realidade partindo da raiz, o algoritmo vai expandir um nó, escolher um dos seus sucessores, da raiz, o algoritmo vai expandir um nó, escolher um dos seus sucessores, expandi-lo por sua vez. Continuando o processo até que eu encontre a solução expandi-lo por sua vez. Continuando o processo até que eu encontre a solução ou nó não possa ser mais expandido. Neste ultimo caso, continua o processo ou nó não possa ser mais expandido. Neste ultimo caso, continua o processo com um irmão do último nó analisado, caso exista, ou regressa ao nível com um irmão do último nó analisado, caso exista, ou regressa ao nível anterior para continuar o processo. Tentemos então ir de Coimbra a Faro. anterior para continuar o processo. Tentemos então ir de Coimbra a Faro. Comecemos por Coimbra, que não sendo a solução vai originar a expansão do Comecemos por Coimbra, que não sendo a solução vai originar a expansão do nó.

nó.

Coimbra Coimbra

 Aveiro

 Aveiro Viseu Viseu Leiria Leiria C. BrancoC. Branco

Fig. Árvore de procura após expandir Coimbra. Fig. Árvore de procura após expandir Coimbra.

 Admitamos que o algoritmo opta po

 Admitamos que o algoritmo opta por Escolher C. Branco para analisar. Or Escolher C. Branco para analisar. O facto de não ser

(11)

Coimbra Coimbra

 Aveiro

 Aveiro ViseuViseu LeiriaLeiria C. BrancoC. Branco

Guarda

Guarda Portalegre Portalegre Évora Évora CoimbraCoimbra Fig.

Fig. – – Árvore de procura após ter expandido Castelo Árvore de procura após ter expandido Castelo BrancoBranco Suponhamos que a análise se faz com o

Suponhamos que a análise se faz com o Portalegre, que não sendo aPortalegre, que não sendo a solução, origina a sua expansão crescendo a arvore mais

solução, origina a sua expansão crescendo a arvore mais um nível.um nível.

Coimbra Coimbra

 Aveiro

 Aveiro ViseuViseu LeiriaLeiria C. BrancoC. Branco

Guarda

Guarda PortalegrePortalegre Évora Évora CoimbraCoimbra C.

C. Branco Branco ÉvoraÉvora Fig.

Fig. – –Árvore de procura depois da escolha e expansão de PortalegreÁrvore de procura depois da escolha e expansão de Portalegre

Para garantir que o nosso algoritmo se comporte conforme indicado, Para garantir que o nosso algoritmo se comporte conforme indicado, basta que a fronteira da árvore seja guardada numa

basta que a fronteira da árvore seja guardada numa pilha.pilha. OsOs objectos pilhasobjectos pilhas são

são manipuladas pelas funções usuais: Fazpilha, Vaziapilha, RetiraPilha emanipuladas pelas funções usuais: Fazpilha, Vaziapilha, RetiraPilha e InserePilha, que criam uma pilha, testam se uma pilha não tem elementos, InserePilha, que criam uma pilha, testam se uma pilha não tem elementos, retiram o elemento à cabeça da pilha e inserem elementos à cabeça da pilha, retiram o elemento à cabeça da pilha e inserem elementos à cabeça da pilha, respectivamente. A função mais importante é a função InserePilha, que respectivamente. A função mais importante é a função InserePilha, que determina o efeito de procura em profundidade. Assim o a

determina o efeito de procura em profundidade. Assim o algoritmolgoritmo mantém omantém o aspecto genérico já anteriormente apresentado.

aspecto genérico já anteriormente apresentado.

Algoritmo

(12)

O algoritmo tem um comportamento análogo ao da procura em largura O algoritmo tem um comportamento análogo ao da procura em largura primeiro, começando por formar uma pilha contendo apenas o estado inicial primeiro, começando por formar uma pilha contendo apenas o estado inicial ((11). Entra depois o ciclo (). Entra depois o ciclo (22) e, caso a pilha não esteja vazia, sinal de que) e, caso a pilha não esteja vazia, sinal de que analisou todos os nós, (

analisou todos os nós, (2.12.1), retira o elemento a cabeça da pilha (), retira o elemento a cabeça da pilha (2.22.2) e analisa-) e analisa-o, relativamente ao teste objectivo (

o, relativamente ao teste objectivo (2.32.3); se, por acaso não existirem mais); se, por acaso não existirem mais elementos na pilha termina falhando (

elementos na pilha termina falhando (2.1.12.1.1). Se o elemento retirado for solução,). Se o elemento retirado for solução, devolve-o (

devolve-o (2.3.12.3.1), senão determina os seus sucessores de acordo com os), senão determina os seus sucessores de acordo com os operadores que lhes são aplicáveis os quais são inseridos a cabeça da pilha operadores que lhes são aplicáveis os quais são inseridos a cabeça da pilha (2.3.2).

(2.3.2).

Vejamos como evolui o conteúdo da variável l_nós, ao

Vejamos como evolui o conteúdo da variável l_nós, ao longo daslongo das primeiras iterações do algoritmo.

primeiras iterações do algoritmo.

Tab.

Tab. – –O conteúdo da pilha ao longo das primeiras iterações do algoritmoO conteúdo da pilha ao longo das primeiras iterações do algoritmo

Olhando para Tab. 3.5, verificamos que os nós dos níveis mais Olhando para Tab. 3.5, verificamos que os nós dos níveis mais pequenos que são escolhidos vão ficando para trás da pilha, sendo por isso pequenos que são escolhidos vão ficando para trás da pilha, sendo por isso analisado posteriormente àqueles que se encontram mais afundo na arvore de analisado posteriormente àqueles que se encontram mais afundo na arvore de procura. Verificamos também a possibilidade de existência de ciclos. procura. Verificamos também a possibilidade de existência de ciclos. Finalmente, o número de nós na pilha aparenta não crescer tão rapidamente Finalmente, o número de nós na pilha aparenta não crescer tão rapidamente como no caso das estratégias em largura primeiro. Podemos avaliar de forma como no caso das estratégias em largura primeiro. Podemos avaliar de forma mais precisa estes aspectos e as

mais precisa estes aspectos e as suas consequêncsuas consequências?ias?  A

 A primeira primeira conclusão conclusão da da estratégia estratégia é é de de queque não é completanão é completa, mesmo, mesmo que o espaço de procura seja finito. Na realidade, basta que exista um ciclo no que o espaço de procura seja finito. Na realidade, basta que exista um ciclo no caminho de aprofundamento escolhido pelo algoritmo para ele não mais caminho de aprofundamento escolhido pelo algoritmo para ele não mais terminar. Por exemplo, se o sucessor de C. Branco escolhido fosse Coimbra, terminar. Por exemplo, se o sucessor de C. Branco escolhido fosse Coimbra, entraríamos num ciclo infinito que gerava o caminho Coimbra

entraríamos num ciclo infinito que gerava o caminho Coimbra  – – C. BrancoC. Branco – – Coimbra

Coimbra – – C. BrancoC. Branco – – etc.etc. Também

Também não é discriminadoranão é discriminadora. Com efeito podem existir duas. Com efeito podem existir duas soluções, uma num nível alto e outra num nível baixo, que o algoritmo pode soluções, uma num nível alto e outra num nível baixo, que o algoritmo pode seguir pelo caminho que leva à primeira. Caso os custos associados aos seguir pelo caminho que leva à primeira. Caso os custos associados aos caminhos sejam não negativos, é lógico que a solução de menor custo não caminhos sejam não negativos, é lógico que a solução de menor custo não será encontrada. Por exemplo, pode acontecer que para ir de Coimbra a C. será encontrada. Por exemplo, pode acontecer que para ir de Coimbra a C. Branco a opção seja pelo caminho Coimbra

Branco a opção seja pelo caminho Coimbra  – – ViseuViseu – – GuardaGuarda – – C. Branco,C. Branco, percorrendo um total de 287 quilómetros em vez de 159 se optasse pelo percorrendo um total de 287 quilómetros em vez de 159 se optasse pelo caminho directo. caminho directo. IITERAÇÃOTERAÇÃO l_nósl_nós 0 [Coimbra] 0 [Coimbra] 1

1 [C. [C. Branco, Branco, Aveiro, Aveiro, Viseu, Viseu, Leiria,]Leiria,] 2

2 [Portalegre, [Portalegre, Évora, Évora, Guarda, Guarda, Coimbra, Coimbra, Aveiro, Aveiro, Viseu, Viseu, Leiria]Leiria] 3

(13)

Que vantagens poderá apresentar está estratégia? Voltemo-nos para o Que vantagens poderá apresentar está estratégia? Voltemo-nos para o problema da

problema da economiaeconomia. Qual será a. Qual será a complexidade temporalcomplexidade temporal do algoritmo?do algoritmo?  Admitamos

 Admitamos de de novo novo um um factor factor de de ramificação ramificação constante constante e e igual igual aa rr. Quantos. Quantos nós são analisados quando estamos no nível

nós são analisados quando estamos no nível nn? A análise em um pouco mais? A análise em um pouco mais complicado do que no caso da procura em largura primeiro. No entanto existem complicado do que no caso da procura em largura primeiro. No entanto existem pelo menos duas coisas que são certas: no melhor dos casos se a solução pelo menos duas coisas que são certas: no melhor dos casos se a solução estiver no ramo mais a esquerda no nível

estiver no ramo mais a esquerda no nível nn, n+1 nós; se a solução estiver no, n+1 nós; se a solução estiver no ramo mais à direita e no último nível, teremos o caso menos favorável, ramo mais à direita e no último nível, teremos o caso menos favorável, semelhante à procura em largura primeiro pelo que o resultado é idêntico ao semelhante à procura em largura primeiro pelo que o resultado é idêntico ao apresentado na equação 3.1. O valor concreto será um valor entre esses dois apresentado na equação 3.1. O valor concreto será um valor entre esses dois extremos. Podemos considerar o valor médio? Podemos, embora a explicação extremos. Podemos considerar o valor médio? Podemos, embora a explicação esteja fora do objectivo deste livro.

esteja fora do objectivo deste livro. r  r n+1n+1 – – 1 + (n+1)1 + (n+1) r-1 r-1 = = r r n+1n+1 – – 1- +r-21- +r-2 2 2(r-1) 2 2(r-1) Equação

Equação – – Complexidade temporal: valor médioComplexidade temporal: valor médio

EM PROFUNDIDADE LIMITADA

EM PROFUNDIDADE LIMITADA

 Acabamos de ver

 Acabamos de ver na secção anterior na secção anterior que um dos que um dos grandes problemas dagrandes problemas da procura em profundidade primeiro se prende com a sua incapacidade em líder  procura em profundidade primeiro se prende com a sua incapacidade em líder  com caminhos infinitos. O algoritmo de procura em profundidade limitada com caminhos infinitos. O algoritmo de procura em profundidade limitada procura evitar este problema.

procura evitar este problema.

É claro que não é muito difícil alterar o algoritmo para que o problema dos É claro que não é muito difícil alterar o algoritmo para que o problema dos ciclos seja evitado. Deixamos esta questão como exercício para o leitor.

ciclos seja evitado. Deixamos esta questão como exercício para o leitor.

Fixando o nível máximo da procura. O algoritmo exige apenas uma Fixando o nível máximo da procura. O algoritmo exige apenas uma pequena modificação ao algoritmo geral já

(14)

Esta alteração consiste essencialmente em supor que faz parte da Esta alteração consiste essencialmente em supor que faz parte da descrição do estado o nível a que se encontra, podendo apenas ser aplicados descrição do estado o nível a que se encontra, podendo apenas ser aplicados os operadores caso o nível do nó seja inferior ao máximo escolhido (ponto os operadores caso o nível do nó seja inferior ao máximo escolhido (ponto

2.3.2

2.3.2do algoritmo).do algoritmo).

O problema que se coloca é o de saber qual o valor máximo para o

O problema que se coloca é o de saber qual o valor máximo para o nívelnível que deve ser usado. Infelizmente, nem sempre é possível determinar esse que deve ser usado. Infelizmente, nem sempre é possível determinar esse valor e, quando tal é possível, isso depende do problema. A referir que no valor e, quando tal é possível, isso depende do problema. A referir que no exemplo que temos vindo a usar, sabemos que existem 18 cidades, pelo que o exemplo que temos vindo a usar, sabemos que existem 18 cidades, pelo que o comprimento máximo de uma solução (um caminho entre duas cidades) será comprimento máximo de uma solução (um caminho entre duas cidades) será 17. Do mesmo modo, na charada cripto-aritmética ilustrada, existem dez letras 17. Do mesmo modo, na charada cripto-aritmética ilustrada, existem dez letras distintas devendo cada uma receber algarismo entre 0 e 9. Se os operadores distintas devendo cada uma receber algarismo entre 0 e 9. Se os operadores efectuaram a atribuição de um algarismo a uma letra, a profundidade máxima efectuaram a atribuição de um algarismo a uma letra, a profundidade máxima de qualquer solução estará ao nível 10.

de qualquer solução estará ao nível 10.  Admitindo que

 Admitindo que é possível defé possível definir um inir um limite máximo, limite máximo, então o então o algoritmo dealgoritmo de procura em profundidade limitada será completo. Continua pelas razões já procura em profundidade limitada será completo. Continua pelas razões já anteriormente explicadas a não ser discriminador. A complexidade temporal anteriormente explicadas a não ser discriminador. A complexidade temporal assimptótica será de ordem O(r1) e a espacial O(1*r), sendo 1 o valor do limite assimptótica será de ordem O(r1) e a espacial O(1*r), sendo 1 o valor do limite máximo. Será assim econômico do ponto de vista do espaço, mas não o será máximo. Será assim econômico do ponto de vista do espaço, mas não o será do ponto de vista temporal.

do ponto de vista temporal.

PROCURA HEURÍSTICA

PROCURA HEURÍSTICA

 Até

 Até agora agora admitimos admitimos a a inexistência inexistência de de conhecimento conhecimento que que nos nos pudessepudesse auxiliar relativamente à travessia do espaço de procura. O melhor que auxiliar relativamente à travessia do espaço de procura. O melhor que conseguimos foi usar a função

conseguimos foi usar a função g (n)g (n) que nos dava o custo do caminho desde oque nos dava o custo do caminho desde o estado inicial até ao estado

estado inicial até ao estado nn. Nos algoritmos que se seguem, vamos admitir . Nos algoritmos que se seguem, vamos admitir  que possuímos informação adicional que nos torna capaz de

que possuímos informação adicional que nos torna capaz de estimarestimar o custoo custo do caminho do nó corrente até ao nó solução. Essa informação é dada por do caminho do nó corrente até ao nó solução. Essa informação é dada por umauma função

função h (n).h (n). No exemplo que temos vindo a utilizar, a funçãoNo exemplo que temos vindo a utilizar, a função h (n)h (n) seráserá simplesmente a distância quilométrica em linha recta entre as diferentes simplesmente a distância quilométrica em linha recta entre as diferentes cidades e Faro.

(15)

Faro Faro Aveiro 366 Aveiro 366 Braga 454 Braga 454 Bragança 487 Bragança 487 Beja 99 Beja 99 C. C. Branco Branco 280280 Coimbra 319 Coimbra 319 Évora 157 Évora 157 Faro 0 Faro 0 Guarda 352 Guarda 352 Leiria 278 Leiria 278 Lisboa 195 Lisboa 195 Portalegre 228 Portalegre 228 Porto 418 Porto 418 Santarém 231 Santarém 231 Setúbal 168 Setúbal 168 Viana 473 Viana 473 V. V. Real Real 429429 Viseu 363 Viseu 363

Tab. Distâncias quilométricas em linha recta Tab. Distâncias quilométricas em linha recta

Os algoritmos que iremos apresentar podem ser distinguidos por vários Os algoritmos que iremos apresentar podem ser distinguidos por vários aspectos. Por exemplo, o modo como o próximo operador é escolhido: Num aspectos. Por exemplo, o modo como o próximo operador é escolhido: Num caso, escolhe-se o melhor à luz de uma heurística global, noutros casos a caso, escolhe-se o melhor à luz de uma heurística global, noutros casos a heurística é puramente local. Podemos também catalogar os algoritmos de heurística é puramente local. Podemos também catalogar os algoritmos de acordo com o modo como a memória é, ou não, limitada. Finalmente, podemos acordo com o modo como a memória é, ou não, limitada. Finalmente, podemos ainda considerar o modo como as componentes de custo, g (n) e h (n), são ainda considerar o modo como as componentes de custo, g (n) e h (n), são utilizadas.

(16)

PROCURA SÔFREGA

PROCURA SÔFREGA

Na procura sôfrega o princípio consiste em escolher o nó na fronteira da Na procura sôfrega o princípio consiste em escolher o nó na fronteira da árvore de procura que aparenta ser o mais promissor de acordo com o valor  árvore de procura que aparenta ser o mais promissor de acordo com o valor  estimado por 

estimado por h (n).h (n).

 Assim

 Assim o o nosso nosso algoritmo algoritmo limita-se limita-se a a manter manter a a fronteira fronteira da da árvore árvore dede procura ordenada pelos valores de

procura ordenada pelos valores de h (n),h (n), sendo sempre escolhido o nó de valor sendo sempre escolhido o nó de valor  mais baixo, isto é,

mais baixo, isto é, aquele que está a hipoteticamente mais próximo da solução.aquele que está a hipoteticamente mais próximo da solução. Vejamos um exemplo concreto com as estradas de Portugal. Admitamos Vejamos um exemplo concreto com as estradas de Portugal. Admitamos de novo que o nosso problema se resume a ir de Coimbra a Faro. Começando de novo que o nosso problema se resume a ir de Coimbra a Faro. Começando em Coimbra podemos ir para Aveiro, Leiria, Viseu e Castelo Branco. Na Fig. em Coimbra podemos ir para Aveiro, Leiria, Viseu e Castelo Branco. Na Fig. 3.28, essas possibilidades foram ordenadas pela distância, estimada em linha 3.28, essas possibilidades foram ordenadas pela distância, estimada em linha recta, das cidades vizinhas de Coimbra a Faro. Os arcos que ligam a Faro as recta, das cidades vizinhas de Coimbra a Faro. Os arcos que ligam a Faro as quatro cidades estão anotados com o valor estimado das di

quatro cidades estão anotados com o valor estimado das di stâncias.stâncias. Coimbra

Coimbra Leiria

Leiria C. C. Branco Branco Viseu Viseu AveiroAveiro

(278) (280)

(278) (280) (363) (363) (366)(366) Faro

Faro

Fig. -Primeira expansão da árvore de procura Fig. -Primeira expansão da árvore de procura

Em função destes valores, a próxima cidade a ser visitada será Em função destes valores, a próxima cidade a ser visitada será Leiria. Como não é o ponto de chegada, temos de calcular os seus Leiria. Como não é o ponto de chegada, temos de calcular os seus descendentes e respectivas distâncias estimadas a Faro. A nova fronteira terá descendentes e respectivas distâncias estimadas a Faro. A nova fronteira terá de ser ordenada.

de ser ordenada.

Coimbra Coimbra Leiria

Leiria C.Branco C.Branco Viseu Viseu AveiroAveiro (280) (280) (319) (319) (363) (363) (366)(366) Lisboa Santarém Lisboa Santarém (195) (231) (195) (231) Faro Faro Fig.- Expansão do nó Leiria Fig.- Expansão do nó Leiria

(17)

Com estes resultados a próxima cidade a ser escolhida seria Lisboa. O Com estes resultados a próxima cidade a ser escolhida seria Lisboa. O processo continuava até ser encontrado um caminho.

processo continuava até ser encontrado um caminho. O algoritmo pode ser descrito

O algoritmo pode ser descrito de forma simples como nos casosde forma simples como nos casos anteriores.

anteriores.

Algoritmo de procura Sôfrega Algoritmo de procura Sôfrega

 A

 A estrutura estrutura de de dados dados usada usada neste neste caso caso é é uma uma lista lista ordenada. ordenada. O O nomenome das funções é auto-explicativo. A variável

das funções é auto-explicativo. A variável I_nósI_nós irá manter a lista ordenadairá manter a lista ordenada pela heurística dos nós ainda por visitar. A heurística aparece aqui passada pela heurística dos nós ainda por visitar. A heurística aparece aqui passada como argumento da função, o que torna

como argumento da função, o que torna o algoritmo mais genérico.o algoritmo mais genérico. Podemos simular algumas interacções.

Podemos simular algumas interacções.

Podemos verificar o reaparecimento de nós já visitados, como é o caso Podemos verificar o reaparecimento de nós já visitados, como é o caso de Coimbra.

de Coimbra.

Quais serão as características desta estratégia? É evidente que não é, Quais serão as características desta estratégia? É evidente que não é, em geral,

em geral, completa.completa. Basta notar que podem aparecer, como no exemploBasta notar que podem aparecer, como no exemplo anterior, nós repetidos que podem originar caminhos infinitos. Também não é anterior, nós repetidos que podem originar caminhos infinitos. Também não é

(18)

discriminadora

discriminadora. Consideremos o exemplo da figura abaixo. Admitimos que. Consideremos o exemplo da figura abaixo. Admitimos que queremos ir de Aveiro para Vila Real e usamos as distâncias em linha recta, queremos ir de Aveiro para Vila Real e usamos as distâncias em linha recta, assinaladas na figura, como heurística.

assinaladas na figura, como heurística.

É evidente que o nosso algoritmo começará por expandir Aveiro em É evidente que o nosso algoritmo começará por expandir Aveiro em Viseu e Porto, optando por Viseu por ter a distancia mais curta a V. Real. Ao Viseu e Porto, optando por Viseu por ter a distancia mais curta a V. Real. Ao expandirmos Viseu encontraremos a solução. Na realidade, o caminho Aveiro expandirmos Viseu encontraremos a solução. Na realidade, o caminho Aveiro -Viseu - V.Real significa percorrer 

Viseu - V.Real significa percorrer  205205 quilómetros, enquanto o caminho nãoquilómetros, enquanto o caminho não escolhido Aveiro-Porto-V.real obrigaria a percorrer apenas

escolhido Aveiro-Porto-V.real obrigaria a percorrer apenas 184184quilómetros.quilómetros.

E como se comporta a

E como se comporta a estratégia do ponto de vista da estratégia do ponto de vista da complexidade? Secomplexidade? Se reparamos bem para a filosofia desta estratégia, os nós vão sendo expandidos reparamos bem para a filosofia desta estratégia, os nós vão sendo expandidos num modo híbrido entre uma procura em profundidade e uma procura em num modo híbrido entre uma procura em profundidade e uma procura em largura. Assim, pode acontecer que, no pior caso, todos os nós tenham de ser  largura. Assim, pode acontecer que, no pior caso, todos os nós tenham de ser  expandidos e visitados o que significa uma complexidade temporal da ordem expandidos e visitados o que significa uma complexidade temporal da ordem de

de O (r)O (r) comcom rr o factor de ramificação eo factor de ramificação e nn o nível da solução. Como a fronteirao nível da solução. Como a fronteira terá de ser mantida toda em memória. E atendendo ao modo como ela evolui, terá de ser mantida toda em memória. E atendendo ao modo como ela evolui, teremos também no limite uma

teremos também no limite uma complexidade espacialcomplexidade espacial da ordem deda ordem de O (rO (rnn).).

TREPA COLINAS

TREPA COLINAS

Vimos no início, que existem problemas relativamente aos quais o mais Vimos no início, que existem problemas relativamente aos quais o mais importante é encontrar 

importante é encontrar o caminhoo caminho que conduz dom estado inicial ao estadoque conduz dom estado inicial ao estado final, enquanto para outros problemas é a

final, enquanto para outros problemas é a soluçãosolução propriamente dita quepropriamente dita que interessa e não tanto o modo como foi obtida. Pertence a este último tipo de interessa e não tanto o modo como foi obtida. Pertence a este último tipo de questões o problema das

questões o problema das n-rainhas.n-rainhas. Para os resolver, é possível a partir dePara os resolver, é possível a partir de uma solução candidata e ir tentando melhorá-la passo a passo. No caso das uma solução candidata e ir tentando melhorá-la passo a passo. No caso das n-rainhas, por exemplo podemos partir de um tabuleiro com as n-rainhas rainhas, por exemplo podemos partir de um tabuleiro com as n-rainhas colocadas em posições aleatórias e procurar movimentar 

colocadas em posições aleatórias e procurar movimentar  umauma delas de cadadelas de cada vez, de tal modo que o número de ataques diminua. Este tipo de abordagem vez, de tal modo que o número de ataques diminua. Este tipo de abordagem tem uma natureza tipicamente

tem uma natureza tipicamente locallocal e envolve ir e envolve ir  melhorandomelhorando progressivamente

progressivamente a solução candidata. O algoritmo trepa colinas baseia-sea solução candidata. O algoritmo trepa colinas baseia-se nesta filosofia. Para além disso, o algoritmo ”deita fora” todos os vizinhos nesta filosofia. Para além disso, o algoritmo ”deita fora” todos os vizinhos menos o melhor. Vejamos como funcionaria no caso da nossa hipotética menos o melhor. Vejamos como funcionaria no caso da nossa hipotética viagem de Coimbra até Faro.

(19)

 A

 A distância distância real real desta desta solução solução é é de de 576. 576. Do Do que que foi foi dito dito resulta resulta que que oo algoritmo é extremamente simples.

algoritmo é extremamente simples.

Tentemos agora analisar as características desta estratégia. É vidente Tentemos agora analisar as características desta estratégia. É vidente que não é completa. Não é difícil imaginar situações nas quais uma transição que não é completa. Não é difícil imaginar situações nas quais uma transição inicialmente promissora nos conduz para um estado que não qua não é a inicialmente promissora nos conduz para um estado que não qua não é a solução e cujos descendentes não melhoram o resultado dado pela função de solução e cujos descendentes não melhoram o resultado dado pela função de avaliação.

avaliação.

Na figura, o nó C encontra-se mais perto da solução

Na figura, o nó C encontra-se mais perto da solução DD do que o nódo que o nó BB.. Deste modo será o seleccionado e

Deste modo será o seleccionado e BB será descartado. Não havendo ligaçãoserá descartado. Não havendo ligação directa de C a D, o algoritmo termina sem encontrar a solução.

(20)

Igualmente não é

Igualmente não é óptimaóptima. No exemplo anterior a solução Coimbra-. No exemplo anterior a solução Coimbra-Leiria-Lisboa-Évora-Beja-Faro tem uma distância real de apenas 495 Leiria-Lisboa-Évora-Beja-Faro tem uma distância real de apenas 495 quilómetros.

quilómetros.

Estas duas situações podem ser descritas

Estas duas situações podem ser descritas visualmente por aquilo que sevisualmente por aquilo que se costuma designar pelo problema dos

costuma designar pelo problema dos máximos locaismáximos locais (ver figura abaixo).(ver figura abaixo).

 Admitamos

 Admitamos que que o o nosso nosso problema problema se se resume resume a a alcançar alcançar o o ponto ponto maismais alto numa montanha. Partindo do Ponto A, aleatoriamente escolhido, o alto numa montanha. Partindo do Ponto A, aleatoriamente escolhido, o algoritmo consegue ir melhorando progressivamente a solução até alcançar o algoritmo consegue ir melhorando progressivamente a solução até alcançar o ponto B. Nessa altura é impossível melhorar a solução e chegar ao ponto D. ponto B. Nessa altura é impossível melhorar a solução e chegar ao ponto D. Claro que se tivéssemos partido inicialmente de C,

Claro que se tivéssemos partido inicialmente de C, a solução seria encontrada.a solução seria encontrada. Passamos agora a avaliar a natureza económica desta abordagem. Passamos agora a avaliar a natureza económica desta abordagem. Comecemos pelo espaço. Este algoritmo apenas guarda um estado pelo que a Comecemos pelo espaço. Este algoritmo apenas guarda um estado pelo que a sua complexidade espacial é constante, ou seja, da ordem

sua complexidade espacial é constante, ou seja, da ordem O(k)O(k) em queem que kk éé uma constante. Do ponto de vista temporal a sua complexidade é semelhante à uma constante. Do ponto de vista temporal a sua complexidade é semelhante à de uma procura em profundidade primeira. Assim, se tivermos um factor de de uma procura em profundidade primeira. Assim, se tivermos um factor de ramificação

ramificação rr e a solução se encontrar no nívele a solução se encontrar no nível nn, então a, então a complexidadecomplexidade temporal

temporal será da ordem deserá da ordem de O(r*nO(r*n). A utilização deste algoritmo depende). A utilização deste algoritmo depende bastante da “natureza do terreno”. Para além do problema dos máximos locais bastante da “natureza do terreno”. Para além do problema dos máximos locais  já

 já referido, referido, também também a a existência existência dede planaltosplanaltos pode dificultar o funcionamentopode dificultar o funcionamento do algoritmo, pois, tendo este apenas uma visão local do terreno, se a função do algoritmo, pois, tendo este apenas uma visão local do terreno, se a função de avaliação devolver valores idênticos para todos os vizinhos, a escolha será de avaliação devolver valores idênticos para todos os vizinhos, a escolha será então aleatória (ver figura abaixo).

(21)

Existem soluções para estes problemas. Uma das possibilidades de Existem soluções para estes problemas. Uma das possibilidades de tratar dos máximos locais seria retomar o algoritmo a partir de uma nova tratar dos máximos locais seria retomar o algoritmo a partir de uma nova posição. Do ponto de vista da complexidade, o algoritmo deixaria de ser tão posição. Do ponto de vista da complexidade, o algoritmo deixaria de ser tão apelativo. No caso dos planaltos, uma solução possível seria deixar o algoritmo apelativo. No caso dos planaltos, uma solução possível seria deixar o algoritmo ter uma vizinhança maior, isto é, poder analisar o que se passa depois de usar  ter uma vizinhança maior, isto é, poder analisar o que se passa depois de usar  mais do que um operador em

mais do que um operador em cadeia. Deixamos neste caso de ter um algoritmocadeia. Deixamos neste caso de ter um algoritmo tão simples e ao mesmo tempo não sabemos qual deve ser a dimensão do tão simples e ao mesmo tempo não sabemos qual deve ser a dimensão do “olhar para frente”

“olhar para frente”

PROCURA TABU

PROCURA TABU

 A

 A procura tabuprocura tabu (Glover, 1989), (Glover, e Laguna 1997) é um algoritmo(Glover, 1989), (Glover, e Laguna 1997) é um algoritmo heurístico, que procura melhorar progressivamente uma solução através de heurístico, que procura melhorar progressivamente uma solução através de uma pesquisa local. O facto que distingue este algoritmo dos restantes, uma pesquisa local. O facto que distingue este algoritmo dos restantes, nomeadamente do trepa colinas, é a existência de uma

nomeadamente do trepa colinas, é a existência de uma memóriamemória, designada, designada normalmente por 

normalmente por lista tabulista tabu, e que se destina a evitar ciclos, explorar zonas, e que se destina a evitar ciclos, explorar zonas promissoras ou a forçar a visita a novas zonas do espaço de procura. Esse promissoras ou a forçar a visita a novas zonas do espaço de procura. Esse efeito é conseguido, pois a lista tabu contém ou

efeito é conseguido, pois a lista tabu contém ou soluçõessoluções que foram testadasque foram testadas ou os

ou os operadoresoperadores que foram utilizados. O conteúdo da lista é usadoque foram utilizados. O conteúdo da lista é usado fundamentalmente para inibir o teste de

fundamentalmente para inibir o teste de soluções ou evitar operadores.soluções ou evitar operadores.  A

 A memória memória pode pode ter ter várias várias dimensões, dimensões, de de que que salientamos salientamos as as queque medem o

medem o momento da ocorrênciamomento da ocorrência de um dado evento (uso de um operador,de um dado evento (uso de um operador, por exemplo) ou, ainda, a

por exemplo) ou, ainda, a frequênciafrequência com que determinado evento ocorreu. Nacom que determinado evento ocorreu. Na primeira dimensão, porque são guardadas as ocorrências mais recentes, primeira dimensão, porque são guardadas as ocorrências mais recentes, podemos dizer que estamos perante uma

podemos dizer que estamos perante uma memória de curto termomemória de curto termo, enquanto, enquanto na segunda dimensão, ao guardarmos situações mais antigas, podemos falar  na segunda dimensão, ao guardarmos situações mais antigas, podemos falar  de

de memória de longo termo.memória de longo termo. Na procura tabu a memória pode ser utilizadaNa procura tabu a memória pode ser utilizada segundo diferentes estratégias: para

segundo diferentes estratégias: para intensificarintensificar a busca na vizinhança dea busca na vizinhança de soluções de boa qualidade ou para

soluções de boa qualidade ou para diversificardiversificar a busca para regiões doa busca para regiões do espaço de procura ainda visitados.

espaço de procura ainda visitados.

O algoritmo que a seguir se descreve em pseudocódigo é formado por  O algoritmo que a seguir se descreve em pseudocódigo é formado por  dois ciclos principais. No ciclo externo, controla-se o número de vezes que se dois ciclos principais. No ciclo externo, controla-se o número de vezes que se tenta melhorar uma solução. No ciclo interno, estabelece-se o modo de tenta melhorar uma solução. No ciclo interno, estabelece-se o modo de produzir a nova solução candidata a partir da solução corrente, recorrendo aos produzir a nova solução candidata a partir da solução corrente, recorrendo aos vizinhos desta e à informação contida na memória

(22)

CONCLUSÃO

CONCLUSÃO

Em suma o agente de procura esta destinado a criar estratégias, para Em suma o agente de procura esta destinado a criar estratégias, para solução de um determinado problema passando por diversos caminho, que lhe solução de um determinado problema passando por diversos caminho, que lhe leve a solucionar parcialmente ou completamente o problema proposto, leve a solucionar parcialmente ou completamente o problema proposto, superando obstáculos, de profundidades, longitude, limites, aplicando os superando obstáculos, de profundidades, longitude, limites, aplicando os diversos métodos de procura e

(23)

BIBLIOGRAFIA

BIBLIOGRAFIA

Obtida a partir do manual de

Obtida a partir do manual de Inteligência Artificial.

Inteligência Artificial.

Autores: Ernesto da Costa e Anabela Simões.

Autores: Ernesto da Costa e Anabela Simões.

2ª Edição

2ª Edição

Páginas 71 - 111

Páginas 71 - 111

Referências

Documentos relacionados

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Reconhecimento de face utilizando banco de imagens monocromáticas e coloridas através dos métodos da análise do componente principal (PCA) e da Rede Neural Artificial (RNA)

Foi investigado, no período de outubro de 1997 a outubro de 1998, a possível associação de Vibrio cholerae com o zooplâncton dos estuários dos rios Anil e Bacanga, em São Luis –

Um outro sistema robótico do tipo rodas, figura 10, é utilizado para inspecionar e limpar a superfície interna de dutos de concreto (Saenz, Elkmann, Stuerze, Kutzner, &

O ensino da compreensão requer, também, a consideração de diferentes momentos – antes, durante e depois da leitura –, e o imprescindível papel dos professores no sentido de

* Movement based refers to any Creative work, from any artistic area, using the movement as basis of work, research or critical approach. Movement understood as the movement of

Se você vai para o mundo da fantasia e não está consciente de que está lá, você está se alienando da realidade (fugindo da realidade), você não está no aqui e

c.4) Não ocorrerá o cancelamento do contrato de seguro cujo prêmio tenha sido pago a vista, mediante financiamento obtido junto a instituições financeiras, no