A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Banco de Dados de Restrições, Multimídia e GIS Jairo Coutinho (jco) CIn-UFPE.

Apresentações semelhantes


Apresentação em tema: "Banco de Dados de Restrições, Multimídia e GIS Jairo Coutinho (jco) CIn-UFPE."— Transcrição da apresentação:

1 Banco de Dados de Restrições, Multimídia e GIS Jairo Coutinho (jco) CIn-UFPE

2 Programação por restrições: definição e origens * Paradigma criado para problemas de busca difícil * incorpora técnicas de matemática, inteligência artificial e pesquisa operacional * permite rápido desenvolvimento de programas, economia de manutenção e eficiência * pioneiro: Sketchpad system (1963, Sutherland), linguagem por restrições para interações gráficas * modelagem declarativa e garantia de satisfação eficiente Algoritmo = Lógica + Controle Restrições para programação multidirecional Programação em Lógica por restrição

3 Programação por restrições: definição e origens * Problemas de satisfação de restrições (CSP) investigados em busca e IA desde muito tempo jogos (ex, n-rainhas) e problemas benchmark (ex, coloração de mapa) resolução de tais problemas recentemente incorporadas a linguagens de programação * Buscas inteligentes e flexíveis permitir que o usuário final possa controlar a busca combinando técnicas genéricas de busca cega com heurísticas para problemas específicos

4 A B C D E F Programação por restrições: exemplo, coloração de mapa Simulação passo a passo... A= green B = green (falha c/ A) B=red C=green (falha c/ A) C= red D=green E= green (falha c/ A) E= red (falha c/ B) E= blue F=green (falha c/ D) F=red (falha c/ C) F = blue (falha c/ E) F backtracking E backtracking D=red E=green (falha c/ A) E= red (falha c/ B) E= blue F=green variáveis: A,B,C,D,E,F domínio: Da=Db...=Df={green,red,blue} restrições: A B; A C; A E; B E; B F; C E; C F; D F; E F A B C D E F

5 Programação por restrições: aplicações práticas * alocação de recursos, agendamento * planejamento financeiro, manutenção, localização, gerenciamento de investimento. * projeto e implementação de interface gráfica (ex, Object Technology International). * escalonamento baseado em restrições, com aplicação na indústria pesada (ex, NASA, forças armadas) * projeto e integração de circuitos digitais, e controle tempo real. * banco de dados e comércio eletrônico

6 Programação por restrições: paradigmas, linguagens e sistemas * Paradigmas: Imperativo x Restrições Funcional Lógico OO * 3 paradigmas básicos: imperativo, funcional, lógico * OO e Restrições são meta-paradigmas que podem ser implementados como camada acima de cada dos básicos * Constraint Logic Programming (CLP): CLP(R), Prolog III, ECLiPSe, LIFE * Constraint Functional Programming: Oz * Constraint Imperative Programming: 2LP(C++), CHIP(C++)

7 Programação por restrições: domínios e operadores * Domínios Finitos (FD) Domínios:,, strings, f(a,...,b) com a,... b constantes simbólicas Operadores: +, -, *. /,, etc.. * Conjuntos Domínios: ( ), ( ),..., ({f(a,...,b) / a,..., b, } Operadores: inter, union, set-diff, etc * Intervalos Domínios: [ ] Implementa variáveis que variam sobre Inteiros e Reais. Baseados resolvedores aritméticos. * Reais (RIA - Real Number Interval Arithmetic) Capaz de resolver problemas sobre os reais. Funções Reais já implementados

8 Programação em lógica com restrições (CLP) * clausulas de Horn proposicionais: C P 1... P N * em lógica de predicados, necessidade de tratar das variáveis p(a) q(b,Z), r(Z) p(X) * Unificação: dois termos podem ser unificados se há valores na consulta que façam os termos iguais. P(X) X = a, Y = b, q(Y,Z), r(Z) * Idéia da CLP: estender equações entre termos da PL com inequações e outras restrições * ex, P(X) X > 1, Y = b, q(Y,Z), r(Z)

9 Programação em lógica com restrições * CLP admite somente clausulas de Horn * Programas CLP podem ser explicitamente escritos, exceto que no lugar de equações existem restrições mais gerais * CLP(X) com sua semântica define domínio de restrições * Resolvedor é necessário para garantir a corretude e completude para o algoritmo CLP(X)

10 Exemplo de CLP: dieta em ECLIPSE * Programa dieta(A,M,D) :- I>0, J>0, K>0, I+J+K 10, entrada(A,I), principal(M,J), sobremesa(D,K). principal(M,I) :- carne(M,I). principal(M,I) :- peixe(M,I). entrada(rabanete,1). entrada(massa,6). carne(filé,5) carne(porco,7) peixe(solha,2) peixe(atum,4) sobremesa(fruta,2) sobremesa(sorvete,6) * X=A, Y=M, Z=D, I+J+K 10,I>0, J>0, entrada(A,I), principal(M,J), sobremesa(D,K) X=rabanete, Y=M, Z=D, 1+J+K 10, J>0, principal(M,J), sobremesa(D,K) X=rabanete, Y=M, Z=D, 1+J+K 10, J>0, carne(M,J), sobremesa(D,K) X=rabanete, Y=filé, Z=D, 1+5+K 10 sobremesa(D,K) X=rabanete, Y=filé,

11 BD de restrições: motivação e agenda BD de restições Banco de dados * Persistência * Otimização de acesso a memória segundaria * Acesso concorrente * Recuperação * Linguagem de manipulação * Visões e dados derivados * Restrições de integridades * Manipulação dinâmica de esquema * Utilitários administrativos Programação por restrição * Alta declaratividade com equações e inequações entre variáveis lógicas * Dedução em lógica da 1a ordem * Completude computacional * Resolução de restrições eficiente em domínios predefinidos * Codificação direta e bem fundamentada das restrições de integridade * Fornece modelos de dados relacional e dedutivo como casos particulares

12 Tupla generalizada: visão dos BD relacionais no paradigma de programação por restrições * Idéia de BD de restrições: ver uma tupla como conjunto de restrições sobre um dado domínio de restrições * Tupla generalizada = tupla anotada com restrições entre valores dos seus elementos: p j (X 1,..., X k ) | C * Ex, tupla pessoa simples: Em relacional: (Bruce,Willis,GroupLeader,01/05/90) Como restrições: {(FN,LN,Pos,Date)| FN=Bruce LN=Willis Pos=GroupLeader Date=01/05/90} Generalizada com inequação: {(FN,LN,Pos,Date)| FN=Bruce LN=Willis Pos=GroupLeader 01/01/95 Date Date 01/05/90} * Numero finito de tuplas generalizadas podem representar infinidade de tuplas relacionais

13 Agentes, armazém e resolvedores de restrições * Armazém: aplica informação parcial sobre uma variável, expressa como uma restrição da mesma um modelo que trate das restrições primitivas de um domínio aproximação da uma solução intermediária da consulta corrente * Resolvedor (computação global centralizada): verifica automaticamente a consistência de cada nova primitiva passada com as existentes no armazém * Agentes (computação local distribuída): daemons tratando de um conjunto dado variáveis disparados por alteração da faixa de uma dessas no armazém propagada efeito dessa alteração nas suas outras variáveis manda novas faixas para a armazém e suspende-se o estado corrente da computação distribuído entre armazém e agentes

14 Exemplo de resolução de restrições por meio de agentes, armazém e resolvedores * Quatro agentes trabalhando no problema: 3 X, X 1, X Y, Y X A1 aplica 3 X, A2 aplica X 1, A3 aplica X Y, A4 aplica Y X Step A1 A2 A3 A4 1 =3 X=1 2 =3 Y=2 3 X=2 =2 4 =2 Y=3 X X Y Y

15 Arquiteturas de BD de restrições * Acoplamento fraco: idéia: armazenar restrições persistentemente num BD relacional +reaproveita serviços de BD como indexação e otimização de acesso a memória secundária e de gerenciamento de transações +desenvolvimento rápido -overhead de conversão de restrição para relação -ineficiência e perda de significado * Acoplamento forte: idéia: tornar restrições persistentes +sem perda de significado, nem overhead de conversão -reimplementação no novo paradigma de todos os serviços de BD -desenvolvimento custoso +conceitualmente bem fundamentada escalabilidade, extensibilidade, etc.

16 BD de restrições: sistemas implementados * ECLIPSE/MegaLog ECLiPSe: linguagem de programação em lógica por restrições implementando CLP(R), CLP(FD), CLP(Intervalos), CLP(Conjuntos), CLP(Estruturais) Megalog pode armazenar variáveis de restrição e suporta indexação multidimensional Falta uma linguagem de consulta de restrições integrada, indexação e otimização * DISCO implementadas: intervalos ordenados de inteiros e conjuntos ordenados linguagem de consulta baseada na lógica e não-procedimental usuários pode representar entradas na base usando restrições incorpora vários métodos de otimização

17 BD de restrições sistemas implementados * C3 modelo de dados e linguagem de consulta: LiriC baseada no paradigma de OO incorpora restrições para a descrição de informações espaço- temporal em BD de restrições trata cada objeto de restrição separadamente expressividade e eficiência

18 BD de restrições: limitações do estado da arte * Técnicas de otimização ainda não madura para grande massas de dados * Abordagem de restrições puras ainda não fornecem todas os serviços de BD (segurança, transações etc.) * Pouca integração com sintaxe e formalismos de massa * Paradigma de programação por restrições pouco divulgado e ensinado * Falta de um padrão * Porém: conceitualmente muito elegante, expressivo, versátil e otimizável e então promissor já usada para BD temporais, espaciais, multimídia e distribuídas heterogêneas

19 BD multimídia: definição e questões * Novos tipos de dados: imagens, gráficos, texto, áudio, discurso, vídeo, mídia gerada * Dificuldades de tratar desses separadamente: não suportados como built-in por linguagens de programação de propósito gerais ou por linguagens de consulta de BD produção, manipulação e apresentação requer dispositivos e ferramentas especiais tamanho (de MB a TB no mínimo) estrutura e semântica interna complexa novas linguagens de consultas expressivas consultas aproximativas (reconhecimento de padrão) dependência do tempo (ex, áudio) * Inter-relacionamento entre: informações representadas por diferentes mídias (ex, legenda de uma imagem, imagem de texto escaneado) sincronização de dados em várias mídias temporais (ex, animações, vídeo)

20 BD multimídia: definição e questões * Armazenamento de informações referências externas campos longos uso de funções externas sistemas extensíveis e orientados a objetos * Modelagem dos dados multimídia diferentes técnicas de compressão (áudio e vídeo) * Recuperação de informação trechos específicos, composição de novas mídias metaconhecimento * Arquitetura protocolo de transporte

21 BD espaciais e GIS: definição e questões * Armazenamento compacto de grande massas de dados espaciais (representações baseadas em pontos não viáveis para muitas aplicações) * Raciocínio geométrico sofisticado e eficiente ex, interseção, opacidade, navegação, alocação de espaço., etc. * Ontologia espacial * Indexação multidimensional dos objetos geométricos * Linguagem de consulta especializada

22 BD espaciais e GIS: abordagens * Abordagens principais: BDOO: retângulos, polígonos e objetos espaciais mais complexos são naturalmente representados BD de restrições representação conjunto de pontos e polígonos de modo natural. permite a avaliação de predicados consulta espacial como interseção e distância. Otimização de técnicas de indexação multidimencional

23 BD espaço temporal: definição e questões * Ausência de uma padrão proliferação de diferentes: t modelos lógicos e físicos de dados t linguagens de consulta variedade das necessidades das aplicações dificulta padronização necessidade de interoperabilidade * BD de restrições muitos modelos espaciais, temporais e espaço temporais são casos particulares do modelo abstrato das tuplas generalizadas Linguagens de restrições excelente candidata como língua franca para interoperabilidade entre diferentes bancos espaciais, temporais e espaço-temporal

24 Integração de dados e interoperabilidade em BD distribuídos * BD de restrições generaliza: BD relacionais BD dedutivas BD espaciais BD temporais * Fornece serviços e capacidade de modelagem ortogonal às fornecidas pelos BDOO * BDOO de restrições excelente candidato para tornar-se padrão universal de interoperabilidade entre aplicações avançadas * Porém, não sub-estima SQL:2999 ! :)

25 * Relação dos pesquisadores * Representando como tupla generalizada reseacher(name,comp,t) :- name=Anderson, comp = AT&T, 1980 t, t 1993 reseacher(name,comp,t) :- name=Brown, comp = IBM, 1985 t, t 1996 reseacher(name,comp,t) :- name=Clark, comp = AT&T, 1990 t, t 1991 Exemplo interoperabilidade via restrições: BD Temporal

26 Exemplo interoperabilidade via restrições: BD Espacial Representação em tupla generalizada object(p1,x,y) :- x=10, y=4 object(l1,x,y) :- 5 x, x 9, y = -x+15 object(l1,x,y) :- x=9, 3 y, y 6 object(t1,x,y) :- 2 x, x 6, 3 y, y 7, y -x+9 object(r1,x,y) :- 1 x, x 11.5, 2 y 11 object(p2,x,y) :- x 3, y 5, y x-1, y x+5, y -x r1 p1 p2 t1 l1

27 Exemplo interoperabilidade via restrições: BD Espaço-Temporal r1 p Representação em tupla generalizada object(p1,x,y) :- x=10, y=4, 1980 t, t 1996 object(l1,x,y) :- 5 x, x 9, y = -x+15, 1995 t, t 1996 object(l1,x,y) :- x=9, 3 y, y 6, 1995 t, t 1996 object(t1,x,y) :- 2 x, x 6, 3 y, y 7, y -x+9, 1975 t, t 1990 object(r1,x,y) :- 1 x, x 11.5, 2 y 11, 1994 t, t 1996 object(p2,x,y) :- x 3, y 5, y x-1, y x+5, y -x+13, 1991 t, t 1996 t l1 p

28 BD de restrições: conclusão * Estende BD relacionais e dedutivas * Permite implementar elegantemente BD espaciais, temporais, multimídia e interoperabilidade em BD distribuídas heterogêneas * Resolve impedance-mismatch (já que programação por restrições é computacionalmente completa) * Reaproveita de técnicas de IA (busca heurística), pesquisa operacional e matemática para conseguir eficiência * Vasto leque de aplicações práticas e industriais * Apenas na fase inicial em termos de: Implementação de SGBD Divulgação e ensino do formalismo Padronização


Carregar ppt "Banco de Dados de Restrições, Multimídia e GIS Jairo Coutinho (jco) CIn-UFPE."

Apresentações semelhantes


Anúncios Google