250 likes | 348 Views
Trekkstrukturer. Bygges opp fra en mengde trekk f,g,h,… og en mengde atomære verdier a,b,c,…. Defineres som en DAG (directed acyclic graph), det vil si en mengde av noder (med en utpekt startnode/rot) og rettede kanter mellom dem. Noen av nodene kan være atomære verdier. Har følgende krav
E N D
Trekkstrukturer Bygges opp fra en mengde trekk f,g,h,… og en mengde atomære verdier a,b,c,… Defineres som en DAG (directed acyclic graph), det vil si en mengde av noder (med en utpekt startnode/rot) og rettede kanter mellom dem. Noen av nodene kan være atomære verdier. • Har følgende krav • Hver kant er merket med nøyaktig ett trekk • Ingen node har to (eller flere) kanter ut merket med samme trekk • Atomære verdier har ikke kanter ut • Det fins ingen sykler • Alle noder kan nås fra roten
g b f f b To notasjoner f a g h a f g g b f f h
Subsumpsjon Vi tenker oss at en trekkstruktur kan vokse til en annen ved at mer informasjon legges til. a f f g g g g b b f f f f h h Ny atomær verdi
Subsumpsjon Vi tenker oss at en trekkstruktur kan vokse til en annen ved at mer informasjon legges til. f g g g g b b f f f f h h Nytt trekk
Subsumpsjon Vi tenker oss at en trekkstruktur kan vokse til en annen ved at mer informasjon legges til. g g f f f f f h h b b Nytt trekk (gjerne langt inne i strukturen)
Subsumpsjon Vi tenker oss at en trekkstruktur kan vokse til en annen ved at mer informasjon legges til. g g f f f f b b f h h Ny stilikhet
Subsumpsjon Vi tenker oss at en trekkstruktur kan vokse til en annen ved at mer informasjon legges til. a f g g g g b f f h b f h Kombinasjon
Subsumpsjon Definisjon: • T1 T2 hviss • alle stier fra roten som fins i T1 fins også i T2 • hvis en sti fra roten fører til atomær verdi a i T1, så fører den også til atomær verdi a iT2 • hvis to stier fra roten fører til samme node i T1, så gjør de også det i T2
Ligninger: Krav til trekkstrukturer Format 1: STI1 = STI2 g f f = g g g f = h a f g g b f Format 2: STI = atomær verdi f h g f f = b f = a
Observasjon Hvis T1 T2 og T1 tilfredsstiller en gitt ligning, så tilfredsstiller også T2 denne ligningen. a f g g g g b f f f h b f h g g = g g g f = h g f f = b
T1 T2 hviss T2 tilfredsstiller alle ligninger som T1 tilfredsstiller. Observasjon a f g g g g b f f f h b f h g g = g g g f = h g f f = b
Observasjon Subsumpsjon er refleksiv og transitiv: T T Hvis T1 T2 og T2 T3 så T1 T3
Ekvivalens To trekkstrukturer er ekvivalente hviss de subsumerer hverandre, altså hviss de tilfredsstiller akkurat de samme ligningene. Skriver T1 T2 for dette. Ekvivalente trekkstrukturer tegnes likt, når man ser bort fra nodenes innbyrdes plassering. Ekvivalente trekkstrukturer er identiske i alle praktiske henseender. Heretter skal vi også tenke på dem som identiske. (Innebærer egentlig at vi redefinerer trekkstruktur til å bety ekvivalensklasse av trekkstrukturer i forrige betydning.)
“Mindre enn” Subsumpsjon blir nå en partiell ordning på trekkstrukturer, det vil si en refleksiv, transitiv og antisymmetrisk relasjon: T T Hvis T1 T2 og T2 T3 så T1 T3 Hvis T1 T2 og T2 T1 så T1 = T2 Naturlig å tenke på denne ordningen som “mindre enn” og si at T1 er mindre enn T2 når vi mener at T1 subsumerer T2.
PATR-regler som ligninger på én trekkstruktur X Y Z X HEAD = Y HEAD X COMPS = Y COMPS REST Y COMPS FIRST = Z X SPR = Y SPR Z SPR = nil Z COMPS = nil HEAD = ARGS FIRST HEAD COMPS = ARGS FIRST COMPS REST ARGS FIRST COMPS FIRST = ARGS REST FIRST SPR = ARGS FIRST SPR ARGS REST FIRST SPR = nil ARGS REST FIRSTCOMPS = nil ARGS REST REST = nil
Observasjon En mengde av ligninger har alltid en minste trekkstruktur som tilfredsstiler dem. HEAD = ARGS FIRST HEAD COMPS = ARGS FIRST COMPS REST ARGS FIRST COMPS FIRST = ARGS REST FIRST SPR = ARGS FIRST SPR ARGS REST FIRST SPR = nil ARGS REST FIRSTCOMPS = nil ARGS REST REST = nil COMPS HEAD SPR REST COMPS ARGS HEAD SPR FIRST COMPS SPR FIRST FIRST nil REST REST
Unifiserbar To trekkstrukturer sies å være unifiserbare hvis det finnes en trekkstruktur som begge subsumerer.
T1 T2 T1 T2 Unifikasjonsteoremet Hvis to trekkstrukturer er unifiserbare så fins en minste trekkstruktur som begge subsumerer.
T1 T2 T1 T2 Unifikasjonsteoremet To trekkstrukturer som har en felles øvre grense, har en minste felles øvre grense. (Least upper bound, lub.) OBS: Mange liker å snu hele hierarkiet av trekkstrukturer på hodet, med de minste øverst. Slike folk snakker naturlig nok om greatest lower bound, glb.
Unifikasjon Vi legger ofte til en inkonsistent/umulig trekkstruktur som alle trekkstrukturer subsumerer. Vi skriver den som . At T1 og T2 ikke er unifiserbare kan vi da uttrykke ved likheten T1 T2 = T1 T2
Unifikasjon g g f = a h f h b
Unifikasjon g g f = a h h b
f g h Unifikasjon g g f = h h
b b b h h h g g g g = f f a a h h h h f f h h h c c c g f a h Likhet vs. identitet g “inntil videre lik” h = g = h