Uma rápida visão da
 Inteligência Artificial

1º Semestre do Mestrado

  • Inteligência Artificial
  • Mineração da Dados 2 (KDD)
  • Visualização e Processamento do Conhecimento

Eu queria falar desses três assuntos, mas o tempo é curto >_<

Então vou falar só do primeiro

^_^

Inteligência Artificial

Resolvendo problemas com a máquina

Literatura

≃950 páginas

Abrangente, didático, bem humorado. Um pouco raso em alguns lugares e sem muito foco nos algoritmos.

Acredite ou não, o livro não é completo e deixa de fora muita coisa o_O

Aos problemas!

Missionários e Canibais

Três canibais e três missionários precisam atravessar um rio.

Existe apenas uma canoa que cabe no máximo duas pessoas.

A canoa precisa de pelo menos uma pessoa para ir de um lado do outro do rio.

Se em qualquer margem do rio ficarem mais canibais que missionários, os canibais almoçam o missionário

(que mau gosto!) :p

Missionários e Canibais

Todos os jeitos possíveis = "espaço de estados"

Busca em espaço de estados

Quando tenho "passos" para chegar a um objetivo.

O "jogo da velha"

...são buscas em grafo

Várias abordagens interessantes.

Todos são pequenas

variações do mesmo algoritmo.

O algoritmo

borda = conjunto com início

enquanto a borda não estiver vazia:

    remova um caminho da borda

    finalize se o caminho chegou no resultado

    coloque na borda todos os próximos

                    resultados desse caminho

Se a borda...

  • É uma pilha => Busca em Profundidade
  • É uma fila => Busca em Largura
  • É uma fila de prioridade:
    • Pelo menor caminho => Dijkstra
    • Uma heurística => Busca Informada
    • Heurística + Menor caminho => A*

Em Ruby:

Às vezes importa apenas o resultado

Os "passos" não são importantes: busca local

Algoritmos

  • Subida de Montanha
  • Têmpera Simulada
  • ...

Converge bem

Estocástico (com aleatoriedade)

Acha o máximo global se "esfriar" lentamente

Constraint Satisfaction Problem

Problemas lógicos como:

  • Zebra Problem (clássico)
  • colorir um mapa com 4 cores
  • quem dá aula onde
  • como encaixar palestras

Alemanha

Problemas Satisfação de Restrições

  • Podem ser representados por grafos
  • Backtracking (depth-first)
    • Heurísticas ajudam (qual país escolher primeiro?)
  • Forward Checking - elimine atribuições inválidas
  • Constraint Propagation => Arc Consistency
  • Busca local
  • Busca local estocástica (com aleatoriedade)

Em Ruby:

Lógica Proposicional

E, OU, NÃO, SE x ENTÃO y, SE E SOMENTE SE

Lógica de

1ª ordem

Lógica proposicional +

∀ => Para todo

∃ => Existe

Prolog

Linguagem declarativa que resolve problemas de lógica de primeira ordem.

 

(backward chaining + cláusulas de Horn)

Datalog

Subconjunto de Prolog que sempre termina.

Datomic usa Datalog

Lógica Difusa

Fuzzy Logic

Fuzzy Sets

Algo pode pertencer "em parte" a um conjunto.

 

Por exemplo:

Homens altos

Homens baixos

 

Em qual conjunto está alguém com 1,75?

Fuzzy Logic

Operações lógicas em conjuntos difusos:

E, OU, NÃO

Zadeh, multiplicação e sigmóide

Fuzzy Rules

Regras de pertencimento e conclusão, depois de volta aos números.

Quer mais?

Mais referências

  • http://artint.info/ <= Didático!
  • http://www.cleveralgorithms.com/ <= Algoritmos em Ruby

<= Abrangente

Boa tradução!

Bem visual

Ajuda nos conceitos =>

Uma rápida visão sobre IA

By Ronie Uliana

Uma rápida visão sobre IA

  • 2,219