Na wat zoeken op GOT kwam ik een aantal topics tegen over het formeel bewijzen van repetitie op basis van een invariant. Hieruit kan ik afleiden dat er dus wel een aantal specialisten op dit forum aanwezig zijn
(Overigens weet ik niet of dit het goede forum daarvoor is, maar Programming en formuleren van algoritmen liggen volgens mij dicht bij elkaar
).
Helaas moet ik nog steeds een tentamen doen over de basis van GCL, o.a. het bewijzen van lineaire repetities, (in)homogene staart invarianten en Lineair Search, Binaire Search en Slope Search.
Lineaire repetitie, zoals constante segment problemen e.d., lijk ik nu wel te begrijpen. Helaas heb ik nog geen kaas gegeten van staart invarianten. Het lijkt me dat als ik een staart invariant onder de knie heb, dat ik dan ook wel in staat moet zijn om de verschillende Search algoritmen te begrijpen.
Nu heb ik hier al een mooi voorbeeld van een staart invariant gevonden. Helaas wordt het niet verder uitgelegd of er op ingegaan.
Wat wil ik nu?
De uitleg op de universiteit (TU/e) is allemaal heel leuk, maar graag zou ik het wat concreter (lees: door een student) uitgelegd zien, zodat ik daarna alle abstracten theorie (hopelijk) wat beter kan begrijpen. Ik begrijp dat er twee soorten staart invarianten zijn (uit mijn blote hoofd, vertel het me als ik fout zit, want zoals ik al meldde heb ik er weinig kaas van gegeten):
- homogeen: invariant is bekend
- inhomogeen: invariant is niet bekend, vorm het gevraagde om naar
met 0; een associatieve operator (? ofwel, elke mogelijke operator?)
Een homogene staart invariant, zou ik nog wel uit moeten komen. Zijn een Linear Search en een Binairy Search geen homogene staart invarianten?
Van een inhomogene staart invariant heb ik het volgende voorbeeld. Helaas gaat mij dit te snel:
In de uitwerking, wordt vervolgens de volgende invariant voorgesteld:
In de les heb ik begrepen dat je bijvoorbeeld f.13 moet nemen, en deze vervolgens moet unfolden. Dat is niet wat ze hier doen (volgens mij). Kan iemand mij vertellen hoe ze aan deze invariant komen? En is er een mogelijkheid om een andere invariant te krijgen o.b.v. unfolding?
Een heel verhaal, maar hopelijk kan iemand mij het één en ander verduidelijken.
Helaas moet ik nog steeds een tentamen doen over de basis van GCL, o.a. het bewijzen van lineaire repetities, (in)homogene staart invarianten en Lineair Search, Binaire Search en Slope Search.
Lineaire repetitie, zoals constante segment problemen e.d., lijk ik nu wel te begrijpen. Helaas heb ik nog geen kaas gegeten van staart invarianten. Het lijkt me dat als ik een staart invariant onder de knie heb, dat ik dan ook wel in staat moet zijn om de verschillende Search algoritmen te begrijpen.
Nu heb ik hier al een mooi voorbeeld van een staart invariant gevonden. Helaas wordt het niet verder uitgelegd of er op ingegaan.
Wat wil ik nu?
De uitleg op de universiteit (TU/e) is allemaal heel leuk, maar graag zou ik het wat concreter (lees: door een student) uitgelegd zien, zodat ik daarna alle abstracten theorie (hopelijk) wat beter kan begrijpen. Ik begrijp dat er twee soorten staart invarianten zijn (uit mijn blote hoofd, vertel het me als ik fout zit, want zoals ik al meldde heb ik er weinig kaas van gegeten):
- homogeen: invariant is bekend
- inhomogeen: invariant is niet bekend, vorm het gevraagde om naar
code:
1
| resultaat = (wat er al gedaan is) 0 (wat er nog moet gebeuren) |
met 0; een associatieve operator (? ofwel, elke mogelijke operator?)
Een homogene staart invariant, zou ik nog wel uit moeten komen. Zijn een Linear Search en een Binairy Search geen homogene staart invarianten?
Van een inhomogene staart invariant heb ik het volgende voorbeeld. Helaas gaat mij dit te snel:
code:
1
2
| f:0 = 1; f:1 = 13; f:2 = 37 f:(n + 3) = f:n - f:(n + 2) for n >= 0 |
In de uitwerking, wordt vervolgens de volgende invariant voorgesteld:
code:
1
| mu.a.b.c.n = a * f:n + b * f:(n+1) + c * f:(n+2) |
In de les heb ik begrepen dat je bijvoorbeeld f.13 moet nemen, en deze vervolgens moet unfolden. Dat is niet wat ze hier doen (volgens mij). Kan iemand mij vertellen hoe ze aan deze invariant komen? En is er een mogelijkheid om een andere invariant te krijgen o.b.v. unfolding?
Een heel verhaal, maar hopelijk kan iemand mij het één en ander verduidelijken.
[ Voor 3% gewijzigd door Verwijderd op 07-06-2006 10:37 ]