inteligencia artificial 2

62
1 Inteligência Artificial Professor: Francisco Nauber Bernardo Gois Introdução a Inteligência Artificial

Upload: nauber-gois

Post on 13-Apr-2017

173 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Inteligencia artificial 2

1

Inteligência ArtificialProfessor: Francisco Nauber Bernardo Gois

Introdução a Inteligência Artificial

Page 2: Inteligencia artificial 2
Page 3: Inteligencia artificial 2

Problema determinístico vs não deterministico

Page 4: Inteligencia artificial 2
Page 5: Inteligencia artificial 2

Problemas intratáveis ou difíceis são comunsna natureza e nas áreas do conhecimento.• Problemas “fáceis”: resolvidos por algoritmospolinomiais.• Problemas “difíceis”: somente possuemalgoritmos exponenciais para resolvê-los.• A complexidade de tempo da maioria dosproblemas é polinomial ou exponencial.

Page 6: Inteligencia artificial 2
Page 7: Inteligencia artificial 2
Page 8: Inteligencia artificial 2

P é um conjunto de problemas que podem ser resolvidos por uma máquina Turing determinística em tempo polinomial.

NP é um conjunto de problemas de decisão que podem ser resolvidos por uma máquina de Turing não determinística em tempo polinomial. P é um subconjunto de NP (qualquer a que pode ser resolvido por máquina determinística em tempo polinomial também pode ser resolvido por máquina não-determinística em tempo polinomial).Informalmente, NP é um conjunto de problemas de decisão que podem ser resolvidos por um tempo polinomial através de um algoritmo "Lucky Algorithm", um algoritmo mágico que sempre faz um palpite certo entre o conjunto dado de escolhas.

Problemas NP-completos são os problemas mais difíceis no conjunto NP. Um problema de decisão L é NP-completo se:1) L está em NP (Qualquer solução dada para problemas NP-completos pode ser verificada rapidamente, mas não há solução eficiente conhecida).2) Todo problema em NP é redutível a L em tempo polinomial (Redução é definida abaixo).

Page 9: Inteligencia artificial 2
Page 10: Inteligencia artificial 2
Page 11: Inteligencia artificial 2

Exemplo: Localização de rotas na Romênia, usando a Busca A*

Objetivo: Bucharest (Bucareste)

Um mapa rodoviário simplificado de parte da Romênia.

176

100

Page 12: Inteligencia artificial 2
Page 13: Inteligencia artificial 2

Ótimo local e Ótimo Global

Page 14: Inteligencia artificial 2
Page 15: Inteligencia artificial 2
Page 16: Inteligencia artificial 2

Espaço de busca

Page 17: Inteligencia artificial 2
Page 18: Inteligencia artificial 2
Page 19: Inteligencia artificial 2
Page 20: Inteligencia artificial 2
Page 21: Inteligencia artificial 2

A cidade é cortada pelo rio Pregel, criando ilhas na cidade.Existiam sete pontes conectando as ilhas e as margens opostas do rio.O problema consiste em determinar se é possível ou não fazer um passeio pela cidade come cando e terminando no mesmo lugar, cruzando cada ponte exatamente uma u nica vez.

Page 22: Inteligencia artificial 2
Page 23: Inteligencia artificial 2

http://blog.mayec.eu/2011/01/python-brute-force-solution-to-bridges.html

Page 24: Inteligencia artificial 2

Grafos (cont.)História

Euler (1736) - pontes de Königsberg

Baseado na disposição das pontes, mostrou que era impossível percorrer por todas passando somente uma vez

Page 25: Inteligencia artificial 2
Page 26: Inteligencia artificial 2
Page 27: Inteligencia artificial 2
Page 28: Inteligencia artificial 2

http://www.sanfoundry.com/java-program-give-implementation-traditional-chinese-postman-problem/

http://www.harold.thimbleby.net/cpp/index.html

Page 29: Inteligencia artificial 2

c

É possível conectar cada serviço a cada uma das três casas sem haver cruzamento de tubulações?

Page 30: Inteligencia artificial 2
Page 31: Inteligencia artificial 2
Page 32: Inteligencia artificial 2

$ python>>> from sklearn import datasets>>> iris = datasets.load_iris()>>> digits = datasets.load_digits()

Chamando dataset de exemplo

Page 33: Inteligencia artificial 2
Page 34: Inteligencia artificial 2
Page 35: Inteligencia artificial 2
Page 36: Inteligencia artificial 2

Executando exemplos com optaplanner

Page 37: Inteligencia artificial 2
Page 38: Inteligencia artificial 2

O que é uma pontuação?

Cada solução inicializada tem uma pontuação. Essa pontuação é uma maneira objetiva de comparar duas soluções: a solução com maior pontuação é melhor. O Solver pretende encontrar a Solução com o maior Índice de todas as soluções possíveis. A melhor solução é a Solução com a pontuação mais alta que o Solver encontrou durante a resolução, que pode ser a solução ideal.

O Planner não pode automaticamente saber qual solução é a melhor para o seu negócio, então você precisa dizer-lhe como calcular a pontuação de uma determinada solução de acordo com as necessidades de sua empresa. Existem várias técnicas de pontuação que você pode usar e combinar:

Maximizar ou minimizar uma restrição: score constraint signum (positivo ou negativo)Coloque um custo / lucro sobre as restrições: pontuação restrição pesoPriorizar restrições: nível de pontuaçãoPontuação de Pareto

Page 39: Inteligencia artificial 2
Page 40: Inteligencia artificial 2
Page 41: Inteligencia artificial 2

A maioria dos casos de uso tem apenas 2 níveis de pontuação: Hard e Soft. Ao comparar 2 pontuações, elas são comparadas lexicograficamente: o primeiro nível de pontuação é comparado primeiro. Se esses diferirem, os outros níveis de pontuação são ignorados.

Hard e Soft score level

Page 42: Inteligencia artificial 2
Page 43: Inteligencia artificial 2
Page 44: Inteligencia artificial 2

2017-02-05 14:06:59,744 [main] INFO Solving ended: time spent (10000), best score (-3hard/-5460soft), score calculation speed (28039/sec),

Page 45: Inteligencia artificial 2
Page 46: Inteligencia artificial 2
Page 47: Inteligencia artificial 2

Custo :4800 CpuPower :24 Memory :96 Network Bandwith :16

Custo :660 CpuPower :6 Memory :4 Network Bandwith :24

Page 48: Inteligencia artificial 2

Required Memory :1Required Cpu Power :1Required Network :1

Required Memory :6Required Cpu Power :3Required Network :1

Required Memory :1Required Cpu Power :1Required Network :3

Required Memory :2Required Cpu Power :1Required Network :11

Required Memory :1Required Cpu Power :1Required Network :1

Required Memory :1Required Cpu Power :1Required Network :5

Required Memory :3Required Cpu Power :2Required Network :5

Required Memory :3Required Cpu Power :1Required Network :1

Required Memory :4Required Cpu Power :1Required Network :1

Required Memory :17Required Cpu Power :1Required Network :1

Required Memory :13Required Cpu Power :1Required Network :7

Required Memory :1Required Cpu Power :2Required Network :3

Processos

Page 49: Inteligencia artificial 2

Solved cloudBalance with 400 computers and 1200 processes: Process 0 -> Computer 0 Process 1 -> Computer 0 Process 2 -> Computer 1 Process 3 -> Computer 1 Process 4 -> Computer 1 Process 5 -> Computer 1 Process 6 -> Computer 0 Process 7 -> Computer 0 Process 8 -> Computer 0 Process 9 -> Computer 0 Process 10 -> Computer 0 Process 11 -> Computer 1

Page 50: Inteligencia artificial 2
Page 51: Inteligencia artificial 2
Page 52: Inteligencia artificial 2

https://github.com/droolsjbpm/optaplanner.git

Page 53: Inteligencia artificial 2
Page 54: Inteligencia artificial 2

SolverFactory<CloudBalance> solverFactory = SolverFactory.createFromXmlResource( "org/optaplanner/examples/cloudbalancing/solver/cloudBalancingSolverConfig.xml"); Solver solver<CloudBalance> = solverFactory.buildSolver();

Cria resolvedor de problemas do Optaplanner

Page 55: Inteligencia artificial 2

Heurística refere à arte do descobrimento. Ela estabelece várias ferramentas ou procedimentos para tornar possível uma descoberta.

O termo foi utilizado pela primeira vez por Albert Einstein em uma publicação chamada “Heurística da geração e conversão da luz”. Ela é basicamente uma disciplina focada na busca de soluções para diversos problemas.

Page 56: Inteligencia artificial 2

Busca Heurística

p Heurística - Informação específica do domínio que pode ser usada para guiar o processo de busca.

p Em muitos casos uma heurística envolve a aplicação de uma função que avalia um nó particular e prediz a qualidade dos seus nós sucessores.

p Uma função heurística de avaliação no jogo-da-velha poderia ser o número de linhas, colunas e diagonais ainda disponíveis, quanto maior este número maior a chance de vitória.

Page 57: Inteligencia artificial 2

Busca Heurística – Exemplo ...Porção do espaço de estados para o jogo-da-velha

N0 de caminhos = 9!

Page 58: Inteligencia artificial 2

Busca Heurística – Exemplo ...Os primeiros três níveis do espaço de estados do jogo-da-velha

reduzidos por simetria.

3 movimentos iniciais: •Para o canto •Para o centro de um lado •Para o centro da grade •

Page 59: Inteligencia artificial 2

A heurística do “maior número de vitórias” aplicada aos primeiros filhos

do jogo-da-velha.

Busca Heurística – Exemplo ...

Page 60: Inteligencia artificial 2

Espaço de estados reduzido heuristicamente para o jogo-da-velha.

Busca Heurística – Exemplo

Page 61: Inteligencia artificial 2

61

Suge

stão

Page 62: Inteligencia artificial 2

62