aula06 relations 2pp

Download Aula06 Relations 2pp

Post on 03-Oct-2015

217 views

Category:

Documents

3 download

Embed Size (px)

DESCRIPTION

metodos formais

TRANSCRIPT

  • 1Mtodos Formais

    Relaes

    Captulo 6: Relaes

    So utilizados nas Mquinas Abstratas para o armazenamento de informaes.

    Exemplo: FOTOGRAFOS CAMERAS

  • 2Relaes entre Conjuntos

    Se S e T so dois conjuntos, o produto cartesiano S X T o conjunto de todos os pares (s,t) dos elementos de S e T, respectivamente.

    Exemplo: S={0,1} e T={2,3} S X T = {(0,2),(0,3),(1,2),(1,3)}

    Relaes entre Conjuntos

    Definio: S X T = {(s,t) | s : S & t : T}

    Pares tambm podem ser escritos utilizando-se a notao de mapeamento:

    S T Exemplo:

    PHOTOGRAPHER = {anna,bob,chris,dave,elizabeth,francis} CAMERA = {canon, kodak, hasselblad, olympus, pentax,

    minolta}

  • 3owns

    annabobchrisdave

    elizabethfrancis

    canonkodak

    hasselbladminoltaolympuspentax

    Relao owns

    owns ={ (anna,canon),(bob,canon),(bob,kodak),(chris,hasselblad),(chris,kodak),(chris,pentax),(dave,pentax),(elizabeth,pentax),(elizabeth,minolta) } owns = { anna |-> canon, bob|-> canon, bob |-> kodak, chris |-> hasselblad, chris |-> kodak, chris |-> pentax, dave |-> pentax, elizabeth |-> pentax,elizabeth |-> minolta }

  • 4Relaes entre Conjuntos

    Uma relao entre S e T um subconjunto de S X T. S T = POW(S X T)

    Para especificar que R uma relao entre S e T escrevemos: R : S T

    S o conjunto fonte (SOURCE) e T um conjunto alvo (TARGET).

    Relaes entre Conjuntos

    Dizer que (dave,pentax) : ownssignifica que dave relaciona-se com pentax no relacionamento owns.

    Utilizamos relaes nas especificaes para podermos responder perguntas como: Bob tem uma cmera? Quantas cmeras Elizabeth possui? Que cmeras Chris e Dave utilizam?

  • 5Diversas Operaes e Propriedades

    Domnio Imagem Restrio de Domnio Anti-Restrio de Domnio Restrio de Imagem Anti-Restrio de Imagem Imagem Relacional Composio Relacional

    Reflexo Simetria Anti-Simetria Anti-Simetria Estrita Transitividade Equivalncia Sobreposio

    Relacional

    Domnio

    O domnio de uma relao R : S T o conjunto de elementosde S que R relaciona com algum elemento em T. Em outras palavras: so os

    elementos da fonte que esto relacionados com alguma coisa.

    dom(R) = {s | s : S & #t . (t : T & s |-> t : R}

  • 6Domnio

    dom(owns) = {anna, bob, chris, dave, elizabeth}

    Francis no pertence a dom(owns) pois no est relacionado a nenhuma cmera.

    No h setas partindo de Francis para outro elemento.

    dom(owns)

    annabobchrisdave

    elizabethfrancis

    canonkodak

    hasselbladminoltaolympuspentax

  • 7Imagem

    A imagem o conjunto de elementos de T que esto relacionados com elementos de S. ran(R) = {t|t : T & #s . (s : S & s |-> t : R} ran(owns) = {canon, kodak, hasselblad,

    minolta, pentax} Exemplo: olympus no pertence a

    ran(owns) pois no est relacionada com nenhum elemento de S.

    ran(owns)

    annabobchrisdave

    elizabethfrancis

    canonkodak

    hasselbladminoltaolympuspentax

  • 8Restrio de Domnio

    Uma relao R : S T pode ser projetada sobre um domnio particular U t : R & s : U}

    Exemplo: apenas as cmeras que chris utiliza = {chris}

  • 9Anti-restrio de Domnio

    uma restrio complementar que remove todos os pares que possuem o primeiro elemento pertencente a U. U t : R & s /: U}

    Exemplo: todos os relacionamentos de owns exceto aqueles que possuam chris no primeiro elemento: {chris}

  • 10

    Restrio de Imagem

    A restrio de imagem R |> V dada pelo conjunto de pares em R cujo segundo elemento est em V. R |> V = {s |-> t | s |-> t : R & t : V}

    Exemplo: todas os relacionamentos cuja cmera utilizada kodak: R |> {kodak}

    owns |> {kodak}

    annabobchrisdave

    elizabethfrancis

    canonkodak

    hasselbladminoltaolympuspentax

  • 11

    Anti-restrio de Imagem

    A anti-restrio de imagem filtra todos os pares da relao R cujo o segundo elemento no est em V. R |>> V = {s |-> t | s |-> t : R & t /: V}

    Exemplo: todos os relacionamentos de owns cujas cmeras no so kodak ou canon: owns |>> {kodak, canon}

    owns |>> {kodak, canon}

    annabobchrisdave

    elizabethfrancis

    canonkodak

    hasselbladminoltaolympuspentax

  • 12

    Leis

    S1 S1 /\ S2) S1 S1 \/ S2) S T) = (S T S > T) = (S > T S

  • 13

    Imagem Relacional

    Identifica os elementos em T que so relacionados a algum elemento de U t : R & s : U}

    Exemplo: cmeras que chris e elizabeth possuem: owns[{chris,elizabeth}]

    owns[{chris,elizabeth}]

    annabobchrisdave

    elizabethfrancis

    canonkodak

    hasselbladminoltaolympuspentax

  • 14

    Inverso Relacional

    Se R uma relao, ento o seu inverso relacional dado por R~. R~ = {t |-> s | s |-> t : R}

    Exemplo: se os fotgrafos em S possuem cmeras em T ento as cmeras em T so possudas pelos fotgrafos em S.

    Owns~

    annabobchrisdave

    elizabethfrancis

    canonkodak

    hasselbladminoltaolympuspentax

  • 15

    Composio Relacional

    Se s est relacionado a t e t est relacionado a u ento s est relacionado a u. Se R0 : S T e R1 : T U ento

    R0;R1. Em outras palavras: R0;R1 : S U

    R0;R1 = {s |-> u | s : S & u : U & #t . (t : T & s |-> t : R0 & t |-> u : R1)}

    owns ; takes

    annabobchrisdave

    elizabethfrancis

    canonkodak

    hasselbladminoltaolympuspentax

    disc120 roll35 mmAPS

  • 16

    SELF-TEST

    6.2) Calcule (owns~;owns)[{kodak}].

    annabobchrisdave

    elizabethfrancis

    canonkodak

    hasselbladminoltaolympuspentax

    Relaes em um nico Conjunto (reflexo) Possui o conjunto fonte sendo o

    mesmo de destino. Um tipo especial de relao sobre o

    mesmo conjunto a de identidade, na qual um elemento se relaciona com ele mesmo. id(S) = {(s,t) | s : S & t : S & s = t}

    Uma relao do tipo S S dita reflexiva.

  • 17

    Relaes em um nico Conjunto (simetria) A relao R : S S simtrica se

    ela relaciona s1 com s2 sempre que relaciona s2 com s1.

    Em outras palavras: a ordem dos dois elementos no importante.

    Observe que a relao id(S) simtrica.

    Relaes em um nico Conjunto (simetria) De fato R uma relao simtrica

    apenas se R = R~ Exemplo: na relao

    mesma_idade_que, se x tem a mesma idade que y ento y tem a mesma idade que x.

  • 18

    Relaes em um nico Conjunto (anti-simetria) Uma relao R : S S anti-

    simtrica se ela relaciona dois elementos em no mximo um sentido.

    (R /\ R~) - id(S) = {} Exemplo: na relao pais, se x pai

    de y isso implica que y no pai de x, mas sim filho.

    Relaes em um nico Conjunto (anti-simetria estrita) Uma relao R : S S

    estritamente anti-simtrica se ela relaciona dois elementos estritamente em um sentido.

    R /\ R~ = {} Exemplo: na relao pais, se x pai

    de y isso implica que y no pai de x, mas sim filho.

  • 19

    Relaes em um nico Conjunto (transitividade) Uma relao R : S S transitiva

    se s0 |-> s1 : R e s1 |->s2 : R ento s0 |-> s2 : R.

    Exemplo: na relao maior_que nos Naturais, se x maior que y, e y maior que z, ento x maior que z.

    Relaes em um nico Conjunto (equivalncia) Se uma relao R : S S

    reflexiva, simtrica e transitiva ento ela dita uma relao de equivalncia.

    Exemplo: na relao mesma_idade_que, temos simetria: Se x tem a mesma idade de y ento y tem a

    mesma idade de x. reflexo:

    x possui a mesma idade que x. e transitividade:

    se x tem a mesma idade de y e y tem a mesma idade d z ento x tem a mesma idade de z.

  • 20

    Sobreposio Relacional

    Se R0 : S T e R1 : S T so duas relaes entre S e T ento a sobreposio relacional R0

  • 21

    SELF-TEST

    6.3) A relao pais reflexiva? Simtrica? Anti-simtrica? Estritamente anti-simtrica? Transitiva? uma relao de equivalncia?

    SELF-TEST

    6.4) A relao mesma_idade_que reflexiva? Anti-simtrica? Estritamente anti-simtrica? Transitiva? uma relao de equivalncia?

  • 22

    Heirs to the Throne

    Relacionamentos representando as regras que governam a linha de sucesso de uma monarquia.

    As regras de sucesso ao trono em uma monarquia indicam quem deve susceder a coroa quando o monarca morre.

    Heirs to the Throne

    As regras determinam uma relao priorclaim para os herdeiros de uma monarquia em particular que mantm um par (g,h) onde o primeiro herdeiro g tem maior reivindicao ao trono que o segundo herdeiro h.

  • 23

    Heirs to the Throne

    Em primeiro lugar, um pretendente g tem mais indicao que um h.

    Em segundo lugar, h uma relao priosibling que diz qual dos dois irmos tem mais indicao.

    Em terceiro lugar, se g mais indicado que h ento qualquer herdeiro de g mais indicado que qualquer herdeiro de h.

    Heirs to the Throne

    Temos que: priorclaim = heir \/ priorsibling \/ (heir~;priorsibling; heir)

    Observe que se heir reflexiva: priorsibling

  • 24

    Heirs to the Throne

    til definirmos os descendentes de uma pessoa: descendant = child*

    Se estamos considerando a linha de sucesso de p ento: PERSON = descendant[{p}]

    Duas pessoas so irms quando filhas da mesma pessoa e no so iguais: sibling = (child~;child) - id(PERSON)

    Heirs to the Throne

    E o relacionamento de idade entre os irmos expresso como: oldersibling = sibling /\ older

    Diferentes definies de heir e priorsibling sero levantadas para diferentes leis de sucesso.

    Trs sero conside