400 likes | 494 Views
Implementando Raciocínio na Ciência da Computacao. Lógica de Predicados/Primeira Ordem Métodos Formais para Desenvolvimento de Sistemas Banco de Dados Dedutivo Inteligência Artificial. Categorias de Raciocínio. Dedução: fatos + regras => novos fatos causa => conseqüência
E N D
Implementando Raciocínio na Ciência da Computacao Lógica de Predicados/Primeira Ordem Métodos Formais para Desenvolvimento de Sistemas Banco de Dados Dedutivo Inteligência Artificial
Categorias de Raciocínio • Dedução: fatos + regras=> novos fatos • causa => conseqüência • Inferência preserva a verdade • (Onde há fogo(V) => há fumaça(V)) +aqui tem fogo=> aqui tem fumaça • Indução: fatos=>regras • conseqüência => causa • Inferência preserva a falsidade!!! • Aqui tem fumaça e tem fogo =>onde há fumaça(F) => há fogo(F) • Algumas reações químicas geram fumaça sem fogo • Se Sr. Antônio, assim como D. Maria, tem dor de cabeça e dengue, então todo mundo que tem dengue tem dor de cabeça. • Analógico: casos similares + regras de adaptação=> novos casos • Para construir este hospital, vou me basear no projeto daquele outro…
Lógica • Já viram • Raciocínio indutivo • Raciocínio dedutivo (regras de inferência) • Os silogismos que nós trabalhamos são um exemplo… Nenhum tirano é amado. Dionísio é tirano. Dionísio não é amado • Também trabalharam com procedimentos de prova • Dedução natural • Um provador que utiliza dedução natural é o Alfie, disponível emhttp://www.cs.chalmers.se/~sydow/alfie/ • Resolução
Desenvolvimento de Sistemas:Problemas • Crise de Software • Desenvolvimento é ad-hoc • Não há um padrão para o processo de desenvolvimento • É preciso utilizar técnicas, teorias, métodos, ferramentas • Profissionais são incapazes de controlar • Custo • Tempo de duração do processo de construção do software • Qualidade do Produto desenvolvido • Manutenção toma 70-80% do esforço
Desenvolvimento de Sistemas:Uma Solução • Uso deMétodos Formais em Engenharia de Software • São métodos de desenvolvimento de software através dos quais se pode: • definir precisamente um sistema e • a partir destas definições, desenvolver implementações garantidamente corretas • implementações que façam o que foi inicialmente especificado, terminem, e sejam eficientes
O Problema da Especificação de Software EspecificaçãoProjetoImplementaçãoManutenção • Especificação: informal • Projeto: informal ou estruturado, semi-formal • JSD, Yourdon, OMT, BON, UML, ... • Implementação: sem garantia de realizar o projeto • Verificação e validação são ignorados!
Um Exemplo de Especificação • Tipo: pilha-int • Funções vazia: -> pilha-int push: int pilha-int -> pilha-int pop: pilha-int -> pilha-int top: pilha-int -> int e_vazia: pilha-int -> bool • Axiomas pop (push (i, p)) = p top (push (i, p)) = i e_vazia (p) = (p = vazia)
x y z 2 17 3 Programas Abstratos... Podem derivar Programas “Reais” • Descrições de estado • Exemplo de estado Variáveis x, y, e z • Uma fórmula descreve um estado se ela é tornada verdadeira pelos mapeamentos do estado x = 2 x + z < yx = 2 Ù y = 17 Ù z = 3 • Um estado satisfaz uma fórmula se aquela fórmula o descreve • Cálculo de predicados
Então... • Primeiro, especificamos o sistema via pré e pós-condições; • Depois, esta descrição matemática é transformada gradualmente em código refinamento do programa! • Se tivermos as propriedades da especificação codificadas em uma linguagem lógica, conseguimos prová-las. • Resumindo... Usando técnicas de raciocínio lógico, podemos: (1) verificar se o programa produz o que se espera; (2) verificar se o programa termina; (3) derivar código para construir programas que satisfazem a uma especificação; (4) transformar um sistema em outro equivalente;
Bancos de Dados • Um Banco de Dados é uma coleção de dados relacionados • Mais precisamente... • Um BD é projetado, construído e preenchido com dados para um objetivo específico • Tem um público alvo e algumas aplicações nas quais os usuários estão interessados. • Um banco de dados pode ser: • Manual: catálogo de cartões da biblioteca; • Computadorizado: sistema de alunos da universidade.
Banco de Dados X Sistema de Arquivos Dados manipulados por vários usuários com uma única visão Registros físicos compostos de campos Agrupamento de um conjunto de arquivos, compartilhados por usuários diferentes, concorrentes e... competidores Porque usar Banco de Dados? Dados manipulados por vários usuários com visões diferentes
Sistemas Gerenciadores de Bancos de Dados • Um SGBD é uma coleção de programas para criação e manutenção de um banco de dados. • Facilita os processos de definição, construção e manipulação do Banco de Dados. • Tem por objetivo eliminar ou reduzir • Redundância e inconsistência de dados • Dificuldade no acesso aos dados • Isolamento dos Dados • Anomalias de acesso concorrente • Problemas de segurança
Meta-Dados Um SGBD tem esta cara Usuários/Programadores Aplicações/Queries Processamento de Queries Acesso aos dados BD
SGBD Dedutivo • Um SGBD Dedutivo é um sistema capaz de deduzir informações adicionais a partir dos fatos e das regras que estão armazenados no banco de dados. • Fatos - são especificados como relações. • Regras - especificam relações virtuais que não estão armazenadas no banco, mas que podem ser deduzidas a partir dos fatos. • Também são conhecidos como banco de dados lógicos. • O modelo usado pelos BDs dedutivos é relacionado à Programação em Lógica (Prolog) • Eles trabalham com a linguagem Datalog
Um Exemplo de SGBD Dedutivo • Regras: • cabeça (premissa) :- corpo (conclusão) (1)superior (X,Y) :- supervisiona (X,Y) (2)superior (X,Y) :- supervisiona (X,Z), superior(Z,Y) • Fatos conhecidos: • supervisiona (francisco, joão) • supervisiona (francisco, roberto) • supervisiona (francisco, jane) • supervisiona (maria, alice) • supervisiona (maria, antônio) • supervisiona (tiago, francisco) • supervisiona (tiago, maria) • supervisiona (X,Y) é falso para qualquer outra combinação
Um exemplo:Fatos derivados pelas regras pela regra (1) superior (francisco, joão) superior (francisco, roberto) superior (francisco, jane) superior (maria, alice) superior (maria, antônio) superior (tiago, francisco) superior (tiago, maria) pela regra (2) superior (tiago, joão) superior (tiago, roberto) superior (tiago, jane) superior (tiago, alice) superior (tiago, antônio)
Inteligência Artificial (IA): definição • Surgiu na década de 50 • Objetivo: desenvolver sistemas para realizar tarefas que, no momento • são melhor realizadas por seres humanos que por máquinas, ou • não possuem solução algorítmica viável pela computação convencional problemas que não possuem uma solução algorítmica IA problemas solúveis por seres humanos Se o ser humano pode, por que não a máquina? (tese de Church-Turing)
Aplicações • Matemática: demonstração de teoremas, resolução simbólica de equações, geometria, etc. • Pesquisa operacional: otimização e busca heurística em geral • Jogos: xadrez, damas, go, etc. • Processamento de linguagem natural: tradução automática, verificadores ortográficos e sintáticos, interfaces para BDs, etc. • Sistemas tutores: modelagem do aluno, escolha de estratégias pedagógicas, etc. • Percepção: visão, tato, audição, olfato, paladar... • Robótica (software e hardware): manipulação, navegação, monitoramento, etc. • Sistemas especialistas: diagnóstico, previsão, monitoramento, análise, planejamento, projeto, etc.
Sistemas Inteligentes • São sistemas capazes de “raciocinar” para resolver um problema • Como escolher o tipo de raciocínio a usar? • Depende do que eu sei e da natureza do problema • Conhecimento => modelo do problema (regras)SIM • Dedução: Sistemas baseados em conhecimento • Modelo do problema NÃO & exemplos de solução SIM • Indução: Sistemas baseados em aprendizagem automática • Modelo do problema FRACO & exemplos de solução SIM • Analogia: Sistemas de raciocínio baseado em casos
Esclarecendo... • Dados: • cadeias numéricas ou alfanuméricas que não possuem significado associado • podem ser fatos ou figuras a processar • Informação: • dados organizados • significam alguma coisa para quem os recebe • Conhecimento: • representa objetos (entidades) de algum domínio, com suas propriedades e relações • Conhecimento em extensão = exemplos • Conhecimento em intenção = regras
Problema… • West é criminoso ou não? • “A lei americana diz que é proibido vender armas a uma nação hostil. Cuba possui alguns mísseis, e todos eles foram vendidos pelo Capitão West, que é americano” • Como resolver automaticamente este problema?
conhecimento do problema J) West é americano K) Existe um mísseis em cuba L) Os mísseis de cuba foram vendidos por West M) Cuba possui um míssel M1 - de K O) M1 é uma arma - de D e N P) Cuba é hostil aos USA - de F, G, H e C Q) M1 foi vendido a Cuba por West - de L, M e N R) West é crimonoso - de A, J, O, F, P e Q novo conhecimento Solucionando o problemaem linguagem natural A) Todo americano que vende uma arma a uma nação hostil é criminoso B) Todo país em guerra com uma nação X é hostil a X C) Todo país inimigo político de uma nação X é hostil a X D) Todo míssil é um arma E) Toda bomba é um arma F) Cuba é uma nação G) USA é uma nação H) Cuba é inimigo político dos USA I) Irã é inimigo político dos USA conhecimento prévio
Sistemas Baseados em Conhecimento:Dedução • Utilizam conhecimento em intenção e um mecanismo de raciocínio dedutivo (inferência)para resolver problemas • Principais componentes: • Base de Conhecimento • Mecanismo de Inferência • Base de Conhecimento: • contém sentenças em uma Linguagem de Representação de Conhecimento • representa conhecimento de forma “tratável” pelo computador • Ex. LPO • Mecanismo (máquina) de Inferência: • responsável por raciocinar (inferir), a partir do conhecimento da base, novos fatos ou hipóteses intermediárias
A) " x,y,z Americano(x) Ù Arma(y) Ù Nação(z) Ù Hostil(z) Ù Vende(x,z,y) Þ Criminoso(x) B) " x Guerra(x,USA) Þ Hostil(x) C) " x InimigoPolítico(x,USA) Þ Hostil(x) D) " x Míssil(x) Þ Arma(x) E) " x Bomba(x) Þ Arma(x) F) Nação(Cuba) G) Nação(USA) H) InimigoPolítico(Cuba,USA) I) InimigoPolítico(Irã,USA) conhecimento prévio conhecimento do problema J) Americano(West) K) $ x Possui(Cuba,x) Ù Míssil(x) L) " x Possui(Cuba,x) Ù Míssil(x) Þ Vende(West, Cuba,x) M) Possui(Cuba,M1) - Eliminação: quantificador existencial e N) Míssil(M1) conjunção de K O) Arma(M1) - Modus Ponens a partir de D e N P) Hostil(Cuba) - Modus Ponens a partir de C e H Q) Vende(West,Cuba,M1) - Modus Ponens a partir de L, M e N R) Criminoso(West) - Modus Ponens a partir de A, J, O, F, P e Q novo conhecimento Solucionando o problema em LPO
Implementando a solução doproblema:algumas possibilidades • Prolog • Linguagem de alto nível baseada em LPO • Tem mecanismo de inferência embutido • Java • Linguagem orientada a objetos • Mecanismo de inferência separado da linguagem • Exemplos: Jess, JEOPS (CIn-UFPE) • Shells para criar sistemas baseados em regras de produção • Regras de produção são fáceis de escrever (if-then) • Sistemas gerados restringem a LPO • Mecanismo de inferência embutido
Sistemas de Aprendizagem Automática:Indução • Modelo do problema NÃO & exemplos de solução SIM • Exemplos • dia 29, a Caxangá estava engarrafada • dia 30, a Caxangá estava engarrafada • dia 01, a Caxangá estava engarrafada • dia 03, a Caxangá estava engarrafada • Hipótese indutiva • Todo dia, a Caxangá está engarrafada Conhecimento em extensão (exemplos) Sistema de aprendizagem Conhecimento em intenção (regras, definições)
Como o Sistema Aprende? • Técnicas de treinamento do sistema: • Aprendizagem supervisionada: certo ou errado • Dado um conjunto de exemplos pré-classificados, o sistema deve aprender(induzir) uma descrição geral que encapsula a informação contida nesses exemplos, e que pode ser usada para prever casos futuros(generalização) • ex. concessão de crédito • Aprendizagem não-supervisionada: ? • Dado um conjunto de dados não classificados, agrupá-los por regularidades • ex. caixa de supermercado empacotando • Aprendizagem por reforço: recompensa/punição • ex. jogo de xadrez: é por aí!
Sistemas de Aprendizagem Indutiva: Árvore de Decisão • A partir de um conjunto de propriedades, decide sim ou não • Representação de árvores de decisão • Cada nó interno testa um atributo • Cada ramo corresponde a um valor do atributo • Cada folha atribui uma classificação • Exemplo Soparia (by Carlos Figueira) • predicado-objetivo: vaiASoparia • Atributos considerados: • Sono: Estou com sono? • Transporte: Tenho como ir de carro? Carona? etc. • CONIC: Devo estar amanhã cedo no CONIC? • Álcool: Estou precisando de álcool? • Sair: Quero sair de casa? • Fome: Estou com fome?
valores atributo Sono? Sim Não Pouco Não. Sim. Meio de transporte? Carro Outros Carona CONIC? Não. CONIC? Não Sim Não Sim Precisa de álcool? Sim. Quer sair? Não. Não Sim Sim Não Sim. Não. Sim. Não. Árvore de Decisão “pensada”
ID3: exemplos da Soparia • Atributos: (Sono, Transporte, CONIC, Álcool, Sair, Fome)-> propriedade-objetivo • E01: (Pouco,Carro,Sim,Sim,Não,Sim) -> Sim! • E02: (Pouco,Carona,Não,Não,Sim,Sim) -> Sim! • E03: (Sim,Carro,Não,Sim,Sim,Sim) -> Não. • E04: (Pouco,Carona,Não,Não,Sim,Não) -> Sim! • E05: (Sim,Outros,Sim,Sim,Sim,Não) -> Não. • E06: (Pouco,Outros,Não,Sim,Não,Sim) -> Não. • E07: (Pouco,Carro,Sim,Não,Sim,Sim) -> Sim! • E08: (Pouco,Carona,Não,Não,Não,Sim) -> Não. • E09: (Sim,Carro,Não,Sim,Sim,Não) -> Não. • E10: (Não,Outros,Sim,Sim,Sim,Sim) -> Sim! • E11: (Não,Carro,Não,Sim,Sim,Não) -> Sim! • E12: (Não,Carona,Não,Sim,Sim,Sim) -> Sim!
Meio de transporte? Carro Outros Carona +: E2,E4 -: E8 +: E1,E7 -: - - - +: - - - -: E6 Quer sair? Sim. Não. Sim Não +: E2,E4 -: - - - +: - - - -: E8 Sim. Não. Árvore de Decisão “Induzida” +: E1,E2,E4,E7,E10,E11,E12 -: E3, E5, E6, E8, E9 Sono? Não Sim Pouco +: E1,E2,E4, E7 -: E6,E8 +: - - - -: E3, E5, E9 +: E10,E11,E12 -: - - - Não. Sim.
Sistemas de Aprendizagem Automática:Implementação • Selecionar exemplos para treinamento e teste do Sistema • Classificados ou não • Apresentar os exemplos a um algoritmo de aprendizagem automática • Shells • WEKA (ID3, KNN, Redes Bayesianas, …) • Simuladores de Redes Neurais • SNNS (Stuttgart Neural Network Simulator)
Raciocínio Baseado em Casos:Analogia • Modelo do problema FRACO &exemplos de solução SIM • Conhecimento em intenção e em extensão • É um método de resolução de problemas onde novos problemas são resolvidos adaptando-se soluções de antigos problemas similares • Um caso • é um episódio vivido • contém a descrição de problema + solução • exemplos: um paciente, um projeto arquitetônico, uma situação, uma causa jurídica, etc.
Casos: experiência vivida • Classificação: “Os problemas de ouvido deste paciente são casos típicos de otite média” • Soluções compiladas: “Os sintomas de coração do paciente X podem ser explicados da mesma maneira que aquele paciente Y” • Avaliando medidas: Minha casa é como aquela que foi vendida mais em baixo nesta rua por R$25.000,00 mas ela tem uma vista melhor” • Concepção (design): para projetar este hospital, vou me basear naquele que já fiz com um número de leitos parecido, embora tenha de adaptá-lo pois este é de esquina • Avaliando opções: se nós atacássemos as instalações dos mísseis cubanos/russos, seria como no caso de Pearl Harbor
Funcionamento do RBC: ciclo dos 4 RE´s Recuperar novo caso (alvo) novo caso (alvo) Indexar caso recupe-rado (fonte) problema Casos Reutilizar caso aprendido caso solução solução sugerida Reter caso testado e corrigido solução final Revisar
Exemplo Usos - classificação (casa dos meus sonhos?) - estimativa de preços (adaptação)
Algumas aplicações na WEB • FindMe agents • sugere filmes e carros em locadoras • raciocíno através de exemplos • Help Desk • sistema responde dúvidas mais simples, diminuindo a necessidade em contatar seus engenheiros
Os Sistemas Multi-Agentes • “Duas Cabeças Pensam Melhor que Uma” • Por que SMA? • Às vezes a computação centralizada não é possível • A informação é distribuída, residindo em sistemas complexos e dinâmicos • Algumas Características • Precisam se comunicar – protocolos de interação • Ambientes abertos com design descentralizado • É preciso coordenar o esforço conjunto • Agentes são autônomos e distribuídos, podendo ter diferentes atitudes em relação ao grupo: • Interessados neles mesmos; • Interessados no bem coletivo.
Aplicações de SMA • Marcação de Reuniões Automática; • Gerenciamento de Redes; • Simulação de Tráfego • Gerenciamento de Informação em Ambientes como a Internet. • Entretenimento • Otimização de Processos de Produção • Simulação de Fenômenos Sociais. • Análise de Negócios