Sunteți pe pagina 1din 52

Resoluo e representao de

problemas

Disciplina: Inteligncia Artificial


Curso: Sistemas de Informao
Faculdade Anhanguera Osasco
Universidade Anhanguera So Paulo (UNIAN)
2015-03-04
Prof. Hilton Garcia Fernandes
Agenda
Problemas so generalizao de programa
Busca no espao de estados
Complexidade
Mquina de Turing
Heursticas
Gerao de heursticas
PEA e ATPS
Referncias
Problemas so generalizao de
programa
Imagine um servio de informaes que
falasse apenas sobre uma nica rua.
Ele seria til ?
Problemas so generalizao de
programa (cont.)
Mas seria ainda mais til caso pudesse ser
levado para qualquer outra cidade.
Com pouco ou nenhum treinamento.
Problemas so generalizao de
programa
Essa a ideia de problema:
Uma metodologia para defini-los:
Devem ter meta (ou goal),
Devem ter um espao onde as solues so
procuradas;
Devem ter funes que indiquem o prximo passo;
Que sugiram um custo para cada alternativa;
E, ainda, que digam o quanto distante da meta se est.
Busca no espao de estados
Um espao de estados, onde so buscadas
as solues, pode ter diversas formas:
Pode ser um banco de dados finito, definido.
Como as ruas de uma cidade.
Busca no espao de estados (cont.)
Pode ser uma funo matemtica.
Com uma infinidade de elementos;
Calculados a cada passo do problema.
Busca no espao de estados (cont.)
Pode ser um misto dos dois casos:
Quantidade muito grande, mas com armazenamento de
sub-solues de problemas menores.
Complexidade

Existem muitas definies possveis de


complexidade:
Em um livro, a quantidade de palavras difceis, ou
os pargrafos com ideias mais complicadas;
Em pintura, a dificuldade ou o detalhe dos
desenhos;
Em msica, as mudanas bruscas de ritmo ou de
combinaes inesperadas de notas.
Etc.
Complexidade (cont.)
Para a Cincia da Computao, ela uma
estimativa do tempo de execuo de um
programa
Muito raramente, usa-se o termo tambm para
falar de necessidade de armazenamento.
Principalmente na memria principal.
Complexidade (cont.)
A ideia ter uma medida dos programas ou
algoritmos de modo que no mude com a
tecnologia.
Assim, a mesma estimativa de complexidade
de um algoritmo ou programa valeria para
hoje ou para daqui a 20 anos.
Complexidade (cont.)
As estimativas de tempo normalmente so
dadas pelo tamanho de um problema,
tradicionalmente chamado n:
Na multipicao de duas matrizes quadradas, n
o nmero de linhas e colunas da matriz;
Na busca em uma tabela, n o nmero de
linhas da tabela;
Etc.
Complexidade (cont.)
Em geral, o pessoal de Cincia da
Computao particularmente de Anlise de
Algoritmos est preocupado com o
crescimento da complexidade do problema
medida que n aumenta.
Em termos prticos, isto tem a ver com a ideia
de escalabilidade:
Quo demorados os programas vo ficando
medida que o tamanho do problema aumenta.
Complexidade (cont.)
Existem muitas funes possveis para
descrever a complexidade com o crescimento
do problema.
sen(x), cos(x), raiz quadrada etc.
Complexidade (cont.)
Mas, na prtica, usam-se principalmente as
funes:
Logartmica: log10 (102) = 2;
Linear: P1(x) = x;
Quadrtica: P2(x) = x2;
Cbica: P3(x) = x3;
Exponencial: E(x) = 10x.
Complexidade (cont.)

N log Linear Quadrtica Cbica Exponencial

1 0 1 1 1 10
10 1 10 100 1.000 10.000.000.000
100 2 100 10.000 1.000.000 1x1010
1.000 3 1.000 1.000.000 1.000.000.000 1x101000
Complexidade (cont.)
As funes linear, quadrtica, cbica etc.
definem os polinmios.
Quando se diz que a complexidade de um
problema polinomial, est-se dizendo que
ela cresce:
Mais rapidamente que uma funo logartmica;
Mas mais lentamente do que uma exponencial.
Mquina de Turing
A Mquina de Turing (em homenagem a Alan
Turing) uma construo abstrata.
Existe na imaginao dos cientistas da
computao;
Apesar de poder ser simulada em programas.

http://en.wikipedia.org/wiki/Alan_Turing
Mquina de Turing (cont.)
Qualquer computador completo, em qualquer
tempo, equivalente a uma mquina de
Turing;
E vice-versa: uma mquina de Turing
equivalente a qualquer computador completo.
Mquina de Turing (cont.)
Mas no em termos de velocidade:
Um computador moderno ser mais rpido do que
um computador antigo;
E nenhum computador poder ser comparado em
termos de velocidade com uma mquina de
Turing, pois ele nem mesmo existe na realidade.
Mquina de Turing (cont.)
Quando se fala em poder de processamento
est se dizendo nas operaes que seria
possvel fazer com uma Mquina de Turing;
Nas transformaes de dados que ela capaz
de fazer.
Mquina de Turing (cont.)
Assim, uma mquina de Turing d uma
medida do que pode ser computado:
Tudo que pode ser realizado, em um tempo finito;
Com recursos limitados;
Ou seja: realizado em um computador.
Mquina de Turing (cont.)
O substantivo que resume esse conceito
computabilidade.
O adjetivo computvel.
Mquina de Turing (cont.)
Representao de uma mquina de Turing

http://stackoverflow.com/questions/236000/whats-a-turing-machine
Mquina de Turing (cont.)
Uma mquina de Turing composta de:
Uma cabea de leitura e gravao de smbolos, que
pode se deslocar direita e esquerda;
Uma quantidade finita de smbolos;
Um estado basicamente uma nica varivel;
Uma fita de comprimento indefinido esquerda, onde
cada clula admite apenas um smbolo;
Um programa simples que diz o que fazer quando a
mquina est em um certo estado e encontra um
smbolo, em qualquer lugar da fita.
Mquina de Turing (cont.)
Como seria somar um a nmero mostrado na base 2
apenas uma string com 0 e 1:
A mquina teria um estado lgico que informa se h vai-
um, ou no;
Quando um nmero 0 lido, soma-se um a ele; se h vai-
um, ele retorna a zero, e o vai-um continua verdadeiro;
Quando um nmero 1 lido, soma-se 1 a ele, que se torna
zero; caso haja vai-um, ele se torna 1; nos dois casos, o
vai-um continua verdadeiro;
A fita deslocada para esquerda at estar em branco.
Mquina de Turing (cont.)
Alguns problemas de computao so to
complicados que exigem uma mquina de
Turing no determinstica.
aquela na qual as aes dependem tambm do
ponto da fita onde a cabea de leitura e gravao
esteja;
Um outro nome para ela seria dependente de
contexto.
Mquina de Turing (cont.)
Como todos problemas computveis podem
ser resolvidos em uma mquina de Turing
comum, uma determinstica no mais do
que uma comum;
Contudo, haveria a uma diferena de
velocidade.
Mquina de Turing (cont.)
Em termos prticos:
Problemas que exigem uma mquina de Turing
no determinstica so chamados de NP
polinomiais, mas no determinsticos;
A maioria dos problemas de Inteligncia Artificial
so assim;
H toda uma discusso em Cincia da
Computao para se definir se problemas NP
podem ser reduzidos a problemas polinomiais.
Heursticas
Os problemas de IA em geral so muito
complexos;
Sua soluo completa exigiria muito tempo;
Por exemplo, achar todos caminhos pelas ruas de
So Paulo.
Exigiria tanto tempo que no seria prtico esperar.
Heursticas (cont.)
Por isso, trabalha-se com solues
simplificadas, as heursticas.
No so perfeitas, mas tem qualidade
razovel;
A viagem do Morumbi ao Morumbi;
Podem ser computadas em um tempo
aceitvel.
Heursticas (cont.)
Normalmente, heursticas exigem um
conhecimento prvio do problema:
Algum fez vrias simulaes, ou teve
experincias diretas com ele.
E ento chega a uma regra do tipo:
Se o programa fizer assim, na maioria dos
casos vai dar certo.
Heursticas (cont.)
Outra possibilidade tentar aleatoriamente:
Seleciona-se ao acaso uma soluo possvel;
Tenta-se a soluo: se correta, o problema est
resolvido;
Caso contrrio, seleciona-se ao acaso outra
soluo, at que se encontre a resposta.
Heursticas (cont.)
Esse procedimento chamado Monte Carlo,
em homenagem aos cassinos nesse pas.
Contudo, a comunidade de IA prefere um
outro uso do acaso, os algoritmos
genticos.
Heursticas (cont.)
Mas como so gerados nmeros ao acaso (ou
aleatrios) em computadores ?
Heursticas (cont.)
H vrias fontes de nmeros aleatrios em
computadores:
A taxa de ocupao de um computador;
Leituras de flutuaes de voltagem etc.
Heursticas (cont.)
Mas seria interessante tambm que esse
nmeros aleatrios pudessem ser repetidos.
Por que ?
Heursticas (cont.)
Por isso h o conceito de nmeros pseudo-
aleatrios;
Sua ocorrncia no segue nenhum padro.
Semelhante, por exemplo, a ordem dos nmeros
em um dado no viciado.
Heursticas (cont.)
Mas so uma funo que dar os mesmos
resultados para a mesma chamada inicial.
O que muito til quando se deseja ter
execues iguais de um mesmo programa.
Por exemplo, para depurar um erro.
Gerao de heursticas
Muitas vezes os programas de IA tm
heursticas fixas, que no so mudadas
durante a execuo dos programas.
Gerao de heursticas (cont.)
Mas h a possibilidade do programa alter-
las.
Por exemplo, depois de avaliar um grande
nmero de solues, um parmetro pode ser
ajustado para um valor diferente do inicial.
E tambm existem os algoritmos genticos.
Algoritmos genticos ?!?
Gerao de heursticas (cont.)
Os tentilhes de Darwin

https://en.wikipedia.org/wiki/Darwin's_finches
Gerao de heursticas (cont.)
Darwin observou (e outros bilogos tambm) que
grupos diferentes da mesma espcie eram
diferentes, de acordo com o tipo de alimento que
tinham disponvel. Por exemplo:
Passarinhos que comiam sementes mais duras,
tinham bicos maiores e mais resistentes;
Passarinhos que comiam sementes em cactos, tinham
bicos finos e longos, para aumentar sua pontaria na
hora de colh-las.
Etc.
Gerao de heursticas (cont.)
Da mesma forma que uma populao de
passarinhos se adapta a um ambiente, um
algoritmo gentico se adapta a um problema.
As variantes do algoritmo que mais se
aproximam da soluo de um problema so
selecionadas.

http://en.wikipedia.org/wiki/Genetic_algorithm
Gerao de heursticas (cont.)
Por exemplo, um algoritmo tem um parmetro
que se deseja ajustar.
Numa primeira gerao, valores muito diferentes
de um parmetro so gerados - aleatoriamente;
Avaliam-se aqueles mais prximos e se eliminam
os mais distantes;
Com isso, termina-se a primeira gerao, com
sub-intervalos mais adequados do parmetro.
Gerao de heursticas (cont.)

Para criar a 2a gerao, so realizados


cruzamentos aleatrios entre os membros
da 1a gerao.
Por exemplo, um filho pode ter o valor de
parmetro como uma mdia dos valores dos pais.
De novo avaliada a proximidade da soluo
do problema.
E de novo os mais distantes so rejeitados.
Gerao de heursticas (cont.)

Para criar a 3a gerao, so realizados


cruzamentos entre os membros da 2 a
gerao.
Da mesma forma usada para gerar a 2 a.
De novo avaliada a proximidade da soluo
do problema.
E de novo os mais distantes so rejeitados.
E assim se passa para a 4a gerao.
Gerao de heursticas (cont.)
Esse procedimento continua at que:
Se tenha chegado a um nmero mximo
estabelecido de geraes;
Ou se tenha chegado to prximo da soluo do
problema quanto desejado.
Gerao de heursticas (cont.)
Para permitir amostragem mais ampla dos
parmetros, podem-se criar espcies (ou
raas) distintas:
Por exemplo, uma com valores altos dos
parmetro;
Outra com valores baixos;
E uma terceira com valores intermedirios.
Gerao de heursticas (cont.)
medida que o processamento evolui, pode-
se tentar cruzamentos inter-raciais:
Por exemplo, entre raas alta e mdia o que
permitiria avaliar a regio entre intermedirios e
altos.
PEA e ATPS
Referncias
1.Alan Turing
http://en.wikipedia.org/wiki/Alan_Turing
Visitado em 04/03/2014
2.What's a Turing machine? http://stackoverflow.com/questions/236000/whats-a-turing-machine
Visitado em 04/03/2014
3.Darwin's finches
https://en.wikipedia.org/wiki/Darwin's_finches
Visitado em 04/03/2014
4.Genetic algorithm
http://en.wikipedia.org/wiki/Genetic_algorithm
Visitado em 04/03/2014
5.Russell & Norvig, Inteligncia Artificial. Editora Campus, 2004

S-ar putea să vă placă și