Documente Academic
Documente Profesional
Documente Cultură
problemas
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.)