Title: Raciocinando dentro Ci
1Raciocinando dentro Ciência da Computacao
OURaciocí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
2Lógica
- Já viram com Ruy
- 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,
como a Dedução natural, resolução, por exemplo. - Um provador que utiliza dedução natural é o
Alfie, disponível em - http//www.cs.chalmers.se/sydow/alfie/
3Métodos Formais para o Desenvolvimento de Sistemas
- Motivação
- Crise de Software
- Desenvolvimento é ad-hoc
- Não há um padrão para o processo
- É preciso utilizar técnicas, teorias, métodos,
ferramentas - Profissionais 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
4O Problema da Especificação de Software
- Especificação?Projeto ? Implementação ?
Manutençã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!
5O que são Métodos Formais em Engenharia de
Software
- Método de desenvolvimento de software
-
- através do qual se pode definir
precisamente um sistema e - desenvolver implementações garantidamente
corretas em relação a esta definição.
6Um Exemplo de Especificação
- Tipo pilha-int
- Funções
- vazia -gt pilha-int
- push int pilha-int -gt pilha-int
- pop pilha-int -gt pilha-int
- top pilha-int -gt int
- e_vazia pilha-int -gt bool
- Axiomas
- pop (push (i, p)) p
- top (push (i, p)) i
- e_vazia (p) (p vazia)
7Programas 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 lt y x 2 Ù y 17 Ù z
3 - Um estado satisfaz uma fórmula se aquela fórmula
descreve ele - Cálculo de predicados
-
8Entã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 progrmaa termina
- (3) derivar código para construir programas que
satisfazem a uma especificação - (4) transformar um sistema em outro equivalente
9Uma pausa... Banco 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.
10Porque usar Banco de Dados?
Dados manipulados por vários usuários com visões
diferentes
11E mais... Os Sistemas Gerenciadores de Bancos de
Dados
- Um SGBD é uma coleção de programas para criação e
manutenção de um banco de dados. - É um sistema de propósito geral.
- Facilita os processos de definição, construção e
manipulação do Banco de Dados. - Tem por objetivos...
- 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
12Um SGBD tem esta cara
Usuários/Programadores
Aplicações/Queries
Processamento de Queries
Acesso aos dados
BD
13SGBD Dedutivo
- Definição
- Um SGBD Dedutivo é um sistema que inclui
capacidade para definir regras que podem deduzir
ou inferir informações adicionais dos fatos que
estão armazenados no banco de dados. - Parte da fundamentação teórica destes sistemas
é a lógica matemática e, por isso, eles também
são referidos como banco de dados lógicos.
14Bancos de Dados Dedutivos - Conceitos Básicos
- Dois tipos de especificação são usados
- Fatos - são especificados como relações, exceto
pelo fato que o nome dos atributos não interessa
mas sim a posição deles na tupla. - Regras - especificam relações virtuais
(similares às visões relacionais) que não estão
armazenadas no banco mas que podem ser criadas a
partir dos fatos, aplicando o mecanismo de
dedução baseado nas regras.
15E mais...Conceitos Básicos
- Um mecanismo de dedução (ou inferência) em um
sistema pode deduzir novos fatos no banco de
dados através da interpretação das regras. - O modelo usado pelos BD dedutivos é relacionado
à Programação em Lógica (Prolog). Eles trabalham
com a linguagem Datalog.
16SGBD Dedutivo
- Existem outros sistemas que incorporam esta
capacidade de inferência, chamados sistemas de
banco de dados especialistas ou sistemas
baseados em conhecimento, incluindo técnicas da
inteligência artificial. Estes sistemas diferem
do sistemas dedutivos por - tratar dados sempre em memória principal
- extrair o conhecimento dos especialistas das
aplicações e não dos dados.
17SGBD Dedutivo
- A principal contribuição dos banco de dados
dedutivos é a possibilidade de especificar regras
recursivas e prover uma maneira de inferir novas
informações baseada nas regras especificadas. - Forma geral de uma regra
- cabeça (head) - corpo (body)
Conclusão Premissa
18Um Exemplo de SGBD Dedutivo
- Exemplo
- Regras
- superior (X,Y) - supervisiona (X,Y)
- 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
19Um exemplo... cont
- Exemplo (cont.)
- Fatos derivados
- 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)
20Inteligê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)
21Interação com outras disciplinas
Matemática
Sociologia
Filosofia
Psicologia
Lingüística
Computação
Neuro-fisiologia
Genética
22Aplicaçõ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.
23Aplicações
- Sistemas especialistas Atividades que exigem
conhecimento especializado e não formalizado - Tarefas diagnóstico, previsão, monitoramento,
análise, planejamento, projeto, etc. - Áreas medicina, finanças, engenharia, química,
indústria, arquitetura, arte, computação,... - Computação
- engenharia de software (sobretudo na Web)
- programação automática
- interfaces adaptativas
- bancos de dados dedutivos e ativos
- mineração de dados (data mining)
- sistemas distribuídos, etc.
24Categorias de Raciocínio na IA
- Dedução e Abdução fatos regras gt novos fatos
- Dedução causa gt conseqüência
- Inferência preserva a verdade
- Onde há fogo, há fumaça. Aqui tem fogo, logo aqui
tem fumaça - Abdução conseqüência gt causa
- Inferência preserva a falsidade!!!
- Onde há fumaça, há fogo.
- Indução fatos gt regras
- 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 regras de adaptação
- Para construir este hospital, vou me basear no
projeto daquele outro
25Sistemas Inteligentes
- São sistemas que raciocinam a fim de resolver um
problema - Raciocínio dedutivo
- Sistemas baseados em conhecimento
- Raciocínio indutivo
- Sistemas baseados em aprendizagem automática
- Raciocínio analógico
- Sistemas de raciocínio baseado em casos
26Sistemas Inteligentes Dedutivos
- Utilizam conhecimento e raciocínio para resolver
problemas difíceis - Principais componentes
- Base de Conhecimento (arquivo)
- Mecanismo de Inferência (procedimento que
implementa raciocínio) - Base de Conhecimento
- contém sentenças em uma Linguagem de
Representação de Conhecimento - representa conhecimento de forma tratável pelo
computado - Mecanismo (máquina) de Inferência
- responsável por raciocinar (inferir), a partir do
conhecimento da base, novos fatos ou hipóteses
intermediárias
27Esclarecendo...
- 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 - Meta-conhecimento
- conhecimento sobre o conhecimento disponível
- ex. regras sobre como manipular as regras sobre
conhecimento que estão em uma base
28Categorias de Conhecimento
- Procedimental
- fatos e seqüências de instruções para manipular
esses fatos - ex. como desmontar uma bicicleta
- Declarativo
- representação descritiva dos fatos,
relacionamentos e regras - as partes de uma bicicleta e seus relacionamentos
- o pai do pai é o avô
- Episódico
- fatos vividos, casos, exemplos...
- ex. D. Maria tem dor de cabeça e dengue
29Linguagens de Representação do Conhecimento
- Uma Linguagem de Representação do Conhecimento é
definida por - 1) uma sintaxe, que descreve as configurações que
podem constituir sentenças daquela linguagem - 2) uma semântica, que liga cada sentença aos
fatos no mundo que ela representa - cada sentença faz uma afirmação a respeito do
mundo - o agente acredita nas sentenças que correspondem
a sua configuração interna. - E geralmente ...
- tem um mecanismo de inferência associado
raciocínio
30Representação Raciocínio
- Raciocínio é um processo de construção de novas
sentenças a partir de sentenças existentes. - Raciocínio plausível (sound)
- garante que as novas sentenças representam fatos
que se seguem dos fatos representados pelas
sentenças existentes na BC. - implementa a relação de implicação entre
sentenças
31Problema
- 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 de
classificação? - Para construir um Sistema Dedutivo, é preciso
- Identificar o conhecimento do domínio (modelo do
problema) - Representá-lo utilizando uma linguagem de
representação do conhecimento - Implementar um mecanismo de inferência para
utilizar esse conhecimento
32Solucionando o problema em 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
33Solucionando o problema em LPO
34Sistemas Inteligentes Indutivos
- Diversas abordagens
- ID3
- RN
35Sistemas Inteligentes Analógicos
36Agentes Inteligentes arquitetura básica
Tell - adiciona novas sentenças à BC Ask -
consulta a BC
37Os 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. - Algumas Características
- Precisam se comunicar protocolos de interação.
- Ambientes abertos com design descentralizado
- Agentes são autônomos e distribuídos, podendo ser
bonzinhos ou mais egoístas.
38Aplicações de SMA
- Marcação de Reuniões Automática
- Gerenciamento de Redes
- 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
39Questões do Design de SMA
- Cada Agente é Limitado precisam interagir.
- Não há (muitas vezes) o controle central.
- Autonomia.
- Coordenação
- Agentes com atitudes de Cooperação/ Competição
- Teoria dos Jogos
- Dependência entre Eles.
- Problema da Comunicação
40Uma Aplicação de SMARobocup