Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Nesta primeira aula você irá aprender um pouco sobre o que é a área de estudo
de Inteligência Artificial (IA), como ela começou, quais são as principais
aplicações e quais as subáreas que cobriremos neste curso.
Neste curso, o foco será na área simbólica, que aparece como base em
praticamente todos os livros-texto da área.
Introdução
IA FRACA: Se preocupa mais com o resultado final. Como o ser artificial age de
forma inteligente? Independente de como funciona internamente ou como é
programado.
TESTE DE TURING
PRÉ-HISTÓRIA DA I. A.
O INÍCIO DERRADEIRO
● “Programs with Common Sense” - 1959;
● Uso de lógica para resolver problemas.
John McCarthy fez muitas coisas e foi muito importante na área da Inteligência
Artificial. Além de ter organizado esse encontro ele foi o criador da linguagem de
alto nível Lisp que foi um padrão usado por muito tempo.
Lisp é uma família de linguagens que possui uma longa história. As primeiras
idéias-chave para a linguagem foram desenvolvidas por John McCarthy em 1956,
durante um projeto de pesquisa em inteligência artificial. A primeira
implementação da linguagem se dá no inverno de 1958.
● Dendral (~1965)
● MYCYN (~1975)
Conforme dito, foi a primeira vez que que alguém falou em usar a lógica como
uma maneira de raciocínio para simular o raciocínio necessário para um sistema
inteligente e também o uso da lógica não só para o raciocínio, para resolução,
mas a lógica para armazenar o conhecimento necessário sobre o problema como
a gente representa o que precisamos para resolver o problema.
O MYCIN foi um dos primeiros sistema especialistas. Ele foi escrito em Lisp como
a dissertação de doutoramento de Edward Shortliffe. Surgiu no laboratório que
havia criado anteriormente o sistema especialista Dendral, mas enfatizava a
utilização de regras de julgamento onde havia elementos de incerteza
(conhecidas como fatores de segurança) que lhes eram associados. Este sistema
especialista foi desenvolvido para identificar as bactérias causadoras de
infecções graves, tais como bacteremia e meningite, e para recomendar
antibióticos, com a dose ajustada para o peso corporal do paciente; O nome
derivou dos mesmos antibióticos, uma vez que muitos antibióticos contém o
sufixo "-mycin".
é possível isso reduzirá muito o espaço de busca por uma solução e depois no
outro que ficou famoso com mais sim a era um sistema de recomendação de
antibióticos para infecções bacterianas então ele tinha uma série de regras e
conhecimentos relações marcadas sobre sintomas então o médico ele fazia uma
série de perguntas sobre sintomas e com as respostas ele ia gerando
recomendações de antibióticos O que é muito interessante é que ele foi
desenvolvido em 75 e na época fizeram uma pesquisa com os médicos de
estampas então especialistas em infecção e os iniciantes né os médicos já
formados já na residência eles tinham uma performance pior do que mais se
então sistema muito simples ele indica o antibiótico certo mais vezes do que os
próprios médicos mas tem toda uma questão de ética se hospedar alguma coisa
errada no tratamento recomendado pelo programa Quem é o responsável E
além disso nessa época com poder computacional que existia era tudo muito
demorado Então as possessões de Diagnóstico demoravam muito para ser
calculadas Mas é interessante que ele conseguia acertar muito
Aplicações da I. A.
● Veículos Autônomos: se movimentam sozinhos e não precisa de alguém
dirigindo, inclusive já teve os primeiros acidentes com esses veículos;
● Sistemas de Recomendação (Netflix, YouTube, Spotify, …): basicamente
tudo que a gente usa para assistir filmes, ouvir música, comprar livros, a IA
vai coletando dados sobre os nossos gostos e nossos passados para fazer
recomendações de futuro;
● Jogos (DeepBlue, AlphaGo): tem aplicações também muito importantes
na área de jogos. O DeepBlue foi o primeiro programa ganhar de um
campeão de xadrez. Tivemos o Alphago que foi o primeiro a ganhar de um
campeão de Go, foi feito um documentário muito interessante sobre este
programa mostrando todo o processo de programação.
Na aula de hoje a gente vai falar de uso de técnicas de busca para resolução de
problemas.
Solução é a sequência de ações que temos que fazer para chegar do Estado
inicial até o estado final ou um estado O que é um estado final é um estado
objetiva o estado que satisfaz o teste de objetivo que a gente decidiu então no
exemplo que eu dei na aula passada de ir do trabalho para casa o que eu vou
fazer é pensar o que que é um teste objetivo era do trabalho para casa o teste
objetivo é eu chegar em casa você é daqui de casa para o trabalho objetivo é
chegar no trabalho e uma solução ótima é uma solução de menor custo estou
falando de estado Inicial estado final estado objetiva o que que é esse o que são
esses estados a gente tem um espaço de estados que são todos os estados que
eu consigo acessar a partir do Inicial cada estado é uma representação do que eu
tenho como se fosse uma representação do mundo que eu tô tratando naquele
instante e esses estados Eles vão mudando conforme eu aplico ações neles
então a gente pode pensar nisso como sendo um grafo nesse gráfico a gente
tem cada estado representado por nós e os arcos são ações então eu aplico uma
ação lá por exemplo de pegar um ônibus da minha casa até o trabalho e eu me
movo de um estado Inicial que eu estou em casa até um estado do trabalho
claro que eu posso ter várias ações passando por vários estados Então essa ideia
de ter um espaço de estados representados E aí a gente tem que pensar que
esses estados são alterações do mundo real então eu não vou colocar cada
detalhe do mundo nesse exemplo do caminho de casa até o trabalho o que que
eu vou representar no Estado a posição em que eu estou posso representar a
posição de forma discreta a posição exata dada por um GPS tudo isso eu vou ter
que definir Depende do trabalho que eu vou fazer se eu vou querer minimizar a
distância pode ser que eu queira saber a distância exata se eu quero só pensar
em tempo talvez eu não preciso de tantos detalhes sobre a minha posição Então
vamos ver aqui um exemplo um exemplo que que tem no livro e que eu vou
deixar em mais detalhes para vocês a gente tem aqui Um exemplo muito simples
que é um problema de um aspirador de pó e ele pode estar em duas posições
diferentes Então se a gente olhar um estado aqui é dado por
ESPAÇO DE ESTADOS
O conjunto de todos os estados acessíveis a partir de um estado inicial é
chamado de espaço de estados.
O espaço de estados pode ser interpretado como um grafo em que os nós são
estados e os arcos são ações.
EXEMPLO (8 rainhas)
BUSCA EM ÁRVORE
Fronteira: nós a serem expandidos (começa com o estado inicial)
A função Expande cria novos nós, usando as ações aplicáveis para gerar os
estados correspondentes.
ESTRATÉGIAS DE BUSCA
A estratégia usada define a ordem em que os nós são expandidos, ou seja,
retirados da fronteira.
● Em Largura
● Em Profundidade
● Profundidade Limitada
● Aprofundamento Iterativo
BUSCA EM LARGURA
BUSCA EM PROFUNDIDADE.
O último nó criado é o primeiro a ser expandido.
3. Busca informada e funções heurísticas
Você vai conhecer a ideia de busca pela melhor escolha e duas variações: busca
gulosa e busca A*. As duas estratégias dependem do uso de uma heurística, uma
função que avalia o valor de um certo nó no caminho da busca.
Com o material proposto, queremos que você entenda o que são heurísticas,
compreenda como elas podem ser utilizadas para guiar o processo de busca por
soluções e conheça algumas maneiras de formular uma heurística admissível.
Você começará vendo como jogos podem ser representados através de uma
árvore de busca, na qual, em cada nó, a escolha é feita por um dos jogadores. O
algoritmo básico para auxiliar na decisão é chamado Minimax e se baseia no fato
de que aquilo que é a melhor jogada para um jogador, idealmente é a pior
jogada para o outro: afinal, para um ganhar, o outro deve perder.
Na sequência, você verá como é possível podar a árvore de busca para não
precisar explorar jogadas que já sabemos que não levarão ao melhor resultado.
Você verá como aplicar heurísticas em jogos como xadrez, em que o espaço de
busca é grande demais para ser explorado até o final.
Por fim, verá como levar em consideração também um elemento de azar (ou
acaso), como resultado de dados ou algum tipo de sorteio.
Ao final desta semana, você deverá entender como um jogo pode ser visto como
um problema de busca, ser capaz de aplicar o método minimax para decidir uma
jogada, saber aplicar a poda alfa-beta quando possível, lidar com decisões
imperfeitas e com o elemento de acaso.
Com os materiais propostos para esta semana, queremos que você perceba o
poder da lógica como linguagem de representação de conhecimento e
raciocínio. Você deve ser capaz de modelar pequenos problemas, como o campo
minado, sugerido no exercício de apoio.
6. Representação de conhecimento
Nesta aula, seguiremos com o estudo dos sistemas baseados em conhecimento.
Contudo, estamos mudando a linguagem lógica usada, passando para a lógica de
primeira ordem.
porque eu tô dizendo isso porque quando a gente vai falar de outros espaços
então aqui a gente está falando que se tem brisa no quadrado 1 então tem é
porque tem poço em alguma das posições adjacentes mas eu tenho que fazer
isso para cada um dos dados do meu tabuleiro então eu vou ter que fazer a
mesma coisa para o 21 listar quais são as posições adjacentes de 31 e assim por
diante
então lógica de primeira ordem ela permite que a gente expressa Todas aquelas
acepções com um esquema só então uma fórmula onde as variáveis vão sendo
instanciados de acordo com as posições do Tabuleiro
a gente aqui usou uma relação a que um predicado Para Dizer que duas posições
do Tabuleiro são adjacentes a gente pode definir esse predicado dizendo que
bom eu tenho duas posições adjacentes então eu vejo a coordenada x e y de
cada uma delas se o x e o y novos Né o x linha e o y linha são variações pequenas
do XY originais então outro um espaço para direita outro espaço para esquerda
um espaço para cima e para baixo
Então isso é uma das coisas que a gente consegue representar com a lógica de
primeira ordem
podemos representar várias coisas sobre o jogo usando essa mesma forma
então eu posso dizer que a gente sabe que quando tem um pôster cheiro nas
casas adjacentes então a gente usa uma forma que é bem parecida com aquela
anterior da Brisa a gente pode também colocar conhecimentos que a gente tem
sobre o jogo só tem um b****** se um postar em x e um Fusca em Y bom então
X e Y tem que ser o mesmo lugar porque ele não pode estar em dois lugares ao
mesmo tempo a gente pode representar também conhecimento Digamos que o
mundo não pode estar no quadrado que tem um poço então se eu sei que o
imposto na posição X então eu já sei que não tem um posto na posição x isso vai
me permitir fazer inferências então se eu descubro cheiro e eu acho que tenho
um pus numa posição só sei que lá não tem poço e aí se eu sinto uma brisa eu
posso pensar então que postar numa outra posição adjacente não na mesma
que é do Wumpus
É importante agente representado todo esse conhecimento que a gente tem
sobre o funcionamento do jogo para poder fazer as inferências e prosseguir
exploração do Tabuleiro
Problemas de planejamento estão por toda a parte, desde planejar seu caminho
de casa para o trabalho até cozinhar. Você verá as linguagens que foram
desenvolvidas para representar os estados e ações e que são baseadas em
restrições da lógica de primeira ordem.
Em seguida, você vai ver como algumas ideias simples tornaram possível a
elaboração de algoritmos eficientes de planejamento. Entre essas ideias, estão a
quebra do problema em subproblemas que podem ser resolvidos e depois
combinados e a ideia de que podemos planejar em ordem diferente da que as
ações serão executadas. Isso permite pensar no problema de planejamento
como uma busca em que os estados são planos parciais e o objetivo é um plano
completo que descreve as ações necessárias para atingir o estado objetivo.
Ao final desta semana, você deverá ser capaz de entender o que são problemas
de planejamento, descrever um problema em uma linguagem formal e seguir
um algoritmo para gerar um plano.
HEURÍSTICAS
são processos cognitivos empregados em decisões não racionais, sendo definidas
como estratégias que ignoram parte da informação com o objetivo de tornar a
escolha mais fácil e rápida.
RESOLUÇÃO
PROFUNDIDADE
GULOSA
S(5) = 0+5 --- A(5) = 2+3 --- E(5) = 4+1 --- G(6) = 6+0 *critério de ordem alfabética
S(5) = 0+5 --- B(5) = 3+2 --- E(5) = 4+1 --- G(6) = 6+0
S(5) = 0+5 --- B(5) = 3+2 --- E(5) = 4+1 --- D(9) = 5+4 --- F(9)7+2 --- G(6) = 6+0--- G(6) = 6+0
S(5) = 0+5 --- B(5) = 3+2 --- C(9) = 4+5 --- D(9) = 5+4 --- F(9)7+2 --- G(6) = 6+0
Até agora vimos buscas por soluções de problemas e agora iremos abordar
buscas competitivas na qual há mais de um agente buscado a solução, ou seja,
há uma competição entre agentes.
FACTÍVEL
Que pode acontecer ou ser feito; exequível, realizável.
● MAX e MIN
MAX faz o primeiro movimento e depois eles se revezam até o jogo terminar.
MAX tenta maximizar e escolher o melhor valor para ele mesmo.
● estado inicial;
● função sucessor (-> movimento, ações e para que estado esta leva);
● ideia teste de objetivo;
● função utilidade: valor numérico (dá um valor numérico para cada estado
terminal);
● para os estados terminais.
● -1 = MAX perde
● 0 = há empate
● 1 = MAX ganha
Parte-se do pressuposto que temos uma base de conhecimento que nada mais é
do que a representação do conhecimento que já possuímos. Esse conhecimento
é representado em alguma linguagem formal (exemplo: lógica proposicional).
LÓGICA PROPOSICIONAL
É um formalismo composto por:
● Linguagem formal: usada para representar conhecimento.
● Métodos de inferência: usados para representar raciocínio.
Tem como principal finalidade:
● Representar argumentos, isto é, seqüências de sentenças em que uma
● delas é uma conclusão e as demais são premissas.
● Validar argumentos, isto é, verificar se sua conclusão é uma conseqüência
lógica de suas premissas.
PROPOSIÇÃO
É uma sentença declarativa que pode ser verdadeira ou falsa, mas não as
duas coisas ao mesmo tempo.
Para ilustrar o exemplo da lógica iremos usar um exemplo bastante didático que
trata-se de um jogo proposto na década de 70: O mundo de Wumpus.
● O wumpus pode ser atingido por um Agente, mas o agente só tem uma
flecha.
● Algumas salas contêm poços sem fundo nos quais cairá qualquer um que
vagar por elas (com exceção do wumpus, que é muito grande para cair em
um poço).
● A única característica que abranda esse ambiente desolador é a
possibilidade de encontrar um monte de ouro.
● Quando o agente entra na caverna ele não tem noção de onde estão
localizadas as coisas.
● O agente só tem os seus sentidos a disposição:
○ Em volta do local onde há um poço, sempre haverá uma brisa;
○ Em volta do Wumpus sempre há um cheiro característico;
○ Próximo ao quadrado do ouro há brilho.
Desta forma podemos dizer que na posição 1,1 não há poço nem brisa. Na
notação lógica ficará assim:
¬P11; ¬B11
Ainda de acordo com as regras do jogo, poços causam brisa em quadrados
adjacentes. Se houver brisa em B11, logo também podemos afirmar:
● ¬ : negação (não)
● ∧ : conjunção (e)
● ∨ : disjunção (ou)
● → : implicação (condicional)
● ↔ : bicondicional
Exemplos:
p∨q expressa “p ou q” (disjunção)
(proposição “p” ou “q)
p∧q expressa “p e q” (conjunção)
(proposição “p” e “q)
¬p expressa “não p” negação (não)
(não p)
p→q expressa “se p então q” (implicação)
(se acontece p, então acontece q)
p↔q expressa “p, se e só se, q” (equivalência)
(ocorre uma se e só se ocorre a outra)