Toepassingen van Meetkunde in de Informatica: verschil tussen versies
Geen bewerkingssamenvatting |
|||
Regel 117: | Regel 117: | ||
== Recente examens == | == Recente examens == | ||
=== 15/06/2007 === | |||
#hoe kan men bij splines punten laten interpoleren door het samennemen van controlepunten? hoeveel controlepunten moeten er samenvallen? | |||
# Voronoi doorlooplijnalgoritme: bespreek de overgangspunten, hoe je weet waar ze zijn, en welke acties je moet ondernemen als je een tegenkomt. (vergeet niet het bijvoegen en verwijderen van cirkelevents als er een boog bijkomt of verdwijnt) | |||
# een oefening met een robotarm met drie delen (L1:90cm, L2:50cm, L3:65 cm) en een punt op 35 cm van middelpunt (oplossing: deel 2 en deel 3 samennemen) | |||
#bespreking practicum | |||
#oefening:gegeven: een aantal cirkels met gegeven middelpunt en straal. Zoek of er cirkels zijn die snijden, maar cirkels die volledig in een andere cirkel zit snijdt niet. Bespreek eerst hoe je het gaat doen, en geef dan een ruw algoritme in pseudocode. Er bestaat een doorlooplijnalgoritme van O(nlogn). (oplossing: denk aan snijdende lijnenalgoritme, en om de complexiteit goed te krijgen hou je een gesorteerde boom bij met al de onderste van de cirkels, en een met alle bovenste, en zo vergelijk je met boven en onder). | |||
=== 19/06/2006 Voormiddag === | === 19/06/2006 Voormiddag === | ||
# Hoe verkrijgen we <math>C^2</math> continuiteit bij bézier curven? Leg uit. | # Hoe verkrijgen we <math>C^2</math> continuiteit bij bézier curven? Leg uit. |
Versie van 15 jun 2007 12:10
wijziging uurregeling, mailtje van Tim Volodine
Beste studenten, De uurregeling voor examens TMI is gewijzigd. Kijk zeker na wanneer je een examen hebt. Tim
oefeningen
oefening uit laatste oefenzitting
http://static.flickr.com/70/152994638_00c7b383d1_m.jpg | http://static.flickr.com/74/152994136_19ebb442d2_m.jpg | http://static.flickr.com/52/152993572_347a6fb5af_m.jpg |
Oefening op bepalen van het aantal snijpunten
Gegeven: een willekeurige verzameling lijnstukken
Gevraagd: vind een algoritme dat ALLE snijpunten vindt
Oplossing: iemand?
Examen
Informatie
Het examen is gesloten boek, behalve het deel over padplanning. Je mag dus Hoofdstuk 8 van O'Rourke gebruiken op het examen (deze blz. mogen enkel informatie over padplanning bevatten !). Je mag ook het formularium over Deel I. Curven en oppervlakken (zie achteraan de Nederlandstalige cursusnota's) gebruiken op het examen.
denk ook nooit dat iets te simpel is, om gevraagd te worden:
Roose durft ALLES te vragen
Roose is gesteld op ordelijkheid. Lelijk geschrift, doorgeschrapte zaken of onnauwkeurigheden kunnen hem irriteren. Vergeet geen potlood en lat mee te nemen om zaken te kunnen verduidelijken. Een passer is ook wel handig voor de oefeningen over robotarmen (komt vaak voor).
Theorie
Bézier curven
- Bespreek continuiteit.
- hoe bekomt men continuiteit bij samengestelde bézier curven
- geef het algoritme van de Casteljau
- variatieverminderingseigenschap algemeen + wat betekent ze specifiek voor béziercurven
- bespreek subdivisie + methode
- bespreek graadverhoging + bewijs formule + nut
- waarom gebruikt men samengestelde béziercurven + wat voor problemen treden erbij op?
- bespreek constructie van samengestelde béziercurven + voor/nadelen
- tensor-product Bezier-veeltermen hoe?
- Afgeleide Dxy(x0,y0) in hoekpunten parameteropp. afleiden + grafisch weergeven.
- bespreek de constructie van tensor bezier product en leidt D(uv) af + grafische interpretatie
B-spline curven
- bewijs dat de sommatie tot een eigenschap geldt voor de genormaliseerde B-splines dwz voor
- hoe kan men bij splines punten laten interpoleren door het samennemen van controlepunten? hoeveel moeten er samenvallen?
- variatieverminderingseigenschap algemeen + wat betekent ze specifiek voor splines
- algoritme van de boor + nauwkeurige tekening en bewijs van correctheid
- hoe kan je ervoor zorgen dat een deel van een spline curve een recht lijnstuk is? waarom?
- hoe spline interpoleren met meervoudige knooppunten.
Algemeen
- Wat is bounding box quick rejection test uit algo om te bepalen of 2 rechten elkaar snijden. Geef de 2 toepassingen in het algo + implementatie
- bespreek het algoritme voor het bepalen van de onderbrug en bovenbrug waarom is de kleinste y-coordinaat een slechte schatting voor het bepalen van de onderbrug?
- geef een algoritme dat in O(N log N) bewerkingen nagaat of in een vz van N lijnstukken er snijdende lijnstukken in voorkomen
Bewijs correctheid van dit algoritme geef beknopt hoe dit algoritme en de gegevensstrukturen moeten aangepast worden om alle snijdingen te vinden
- geef een algoritme voor de berekening van het VPP van een vz van N punten in O(nlog n) bewerkingen
verantwoord de rekencomplexiteit
- bespreek graham scan + correctheidsbewijs + toon aan dat dit O(nlogn)bewerkingen gebeurt
- wanneer is de inpakmethode (jarvis march) efficienter dan de methode van graham (graham scan)
Voronoi diagrammen
- bewijs: een voronoi diagramma van een vz S heft maximaal 2N - 5 voronoipunten en 3N - 6 voronoi zijden
- een voronoiveelhoek van een punt pi is begrensd <=> pi element van inw(CH(S)) + nut + waar hebben we dit gebruikt?
- bewijs dat minimale doorloopboom deelverzameling is van de Delaunay triangulatie. wat is het nut van deze eigenschap?
- 2 dichtste buren hebben een gemeenschappelijke voronoizijde: bewijs
- geef strategie + hoog-niveau algoritme voor het vinden van de maximale lege cirkel binnen de COV van een verzameling punten.
- p(i) behoort tot de inwendige van V(i) asa V(i) is begrensd
Nabijheidsproblemen
- wat betekent volgende uitspraak: probleem A is ?(N) transformeerbaar tot probleem B? waarvoor kan een dergelijke uitspraak nuttig gebruikt worden + vb
- wat is een EMDB van een vz punten + verband met Voronoi diagramma van een vz punten?
- bespreek beknopt hoe een EMDB van een vz punten kan berkend worden in O(nlogn) bewerkingen
Fortune
- bespreek de overganspunten bij fortune-algoritme
- Bespreek de events in het algoritme van Fortune Welke acties moeten ondernomen worden?
- hoe bepaal je het gebied dat kan bereikt worden door een robotarm met 3 links. Is de volgorde van de stukken belangrijk?
- minkovski-som gebruiken en zeggen welke het is
Oefeningen
vraag1
Gegeven een 3 link probleem L1 = 150 L2 = 75 L3 = 40 Los op voor een punt P dat op 180 cm van de schouder ligt.
vraag2
Maak een hoog-niveau algoritme voor alle snijdingen van een verzameling cirkels.
vraag3
een minkowski-som tekenen
vraag4
gegeven punten op cirkel. Vind de driehoek met het grootste oppervlak.
(opl mbv tegenvoetparen)
vraag5
bespreek of 2 eenvoudige veelhoeken geheel of gedeeltelijk overlappen (uitleg + hoog niveau algo)
in O((N + M) log (N + M)) bewerkingen
vraag6
1 punt gegeven en allemaal lijnstukken (niet snijdende) rond dat punt
schrijf algo om te controleren of je een rechte kunt tekenen vanuit het gegeven punt tot al die rechten
(maw: welke rechten zijn zichtbaar voor dat punt)
vraag7
gegeven een eenvoudige veelhoek
bepaal of pi, pi+2 een diagonaal is van die veelhoek in O(n)
vraag8
n cirkels, elk bepaald door middelpunt pi en straal ri
bedenk een strategie om na te gaan of er cirkels snijden + algo
vraag9
algoritme om na te gaan of pi,pi+1 diagonaal in eenvoudige veelhoek
is in O(n)
Recente examens
15/06/2007
- hoe kan men bij splines punten laten interpoleren door het samennemen van controlepunten? hoeveel controlepunten moeten er samenvallen?
- Voronoi doorlooplijnalgoritme: bespreek de overgangspunten, hoe je weet waar ze zijn, en welke acties je moet ondernemen als je een tegenkomt. (vergeet niet het bijvoegen en verwijderen van cirkelevents als er een boog bijkomt of verdwijnt)
- een oefening met een robotarm met drie delen (L1:90cm, L2:50cm, L3:65 cm) en een punt op 35 cm van middelpunt (oplossing: deel 2 en deel 3 samennemen)
- bespreking practicum
- oefening:gegeven: een aantal cirkels met gegeven middelpunt en straal. Zoek of er cirkels zijn die snijden, maar cirkels die volledig in een andere cirkel zit snijdt niet. Bespreek eerst hoe je het gaat doen, en geef dan een ruw algoritme in pseudocode. Er bestaat een doorlooplijnalgoritme van O(nlogn). (oplossing: denk aan snijdende lijnenalgoritme, en om de complexiteit goed te krijgen hou je een gesorteerde boom bij met al de onderste van de cirkels, en een met alle bovenste, en zo vergelijk je met boven en onder).
19/06/2006 Voormiddag
- Hoe verkrijgen we continuiteit bij bézier curven? Leg uit.
- Welk soorten events zijn er bij het algoritme van Fortune. Welke acties moeten er gebeuren en hoe plannen we ze?
- 3-link probleem oplossen voor drie gegeven armen en punt. = 90cm, = 50cm, = 65cm. Eindpunt ligt op 35 cm van schouder.
- Practicum bespreking
- Gegeven een verzameling cirkels. Ontwerp een algoritme om te bepalen of er cirkels snijden. Leg eerst je strategie uit en geef dan pseudo-code. Er bestaat een doorlooplijnalgoritme met O(n log n). (Allemaal gegeven)
Minder recente examens
07/06/2004, voormiddag
- continuiteit bij bézier-curve. Wat? Hoe?
- afleiden, invullen linkercurve t=1; rechtercurve t=0
- nultermen schrappen... Gelijkstellen... de verhoudingen rollen eruit... in de formule is trouwens de lengte van het interval waarvoor dat segement geldt...
- Voronoi-doorlooplijn-algoritme (Fortune)
Wat zijn de 'events'; hoe vind je ze, welke acties moeten er bij welke events gedaan worden? Exhaustief zijn, maar beknopt in de uitleg bij de acties.- site-events... circle-events toevoegen en verwijderen...
- circle-events... circle-events toevoegen en verwijderen... you know the drill
- Minkowski-som maken... zeer gelijkaardige figuur dan gelijk bij oefenzitting 9. Via sterdiagram.
- N Punten op een cirkel. Zoek de grootste driehoek.
- Strategie:
- Doorloop driehoeken met basis 2 opeenvolgende punten; dan met 1 pt. ertussen; ... tot N/2.
- Voor die voorwaarde op de basis, telkens rondlopen gelijkaardig aan de tegenvoetersparen van het verste-puntenpaar-probleem. => Je kan de tegenvoeter van de vorige gebruiken bij de volgende, ... voor dezelfde basis.
- onthoud doorheen het algo de grootste driehoek.
- Hoog-niveau-algoritme. -> triviaal
- Complexiteit:
- sorteer de punten naar stijgende poolhoek :Nlog(N)
- buitenste lus N/2
- binnenste lus N
- allerbinnenste lus: O(1)
- => totaal O(NlogN + N²) => O(N²)
- Strategie:
- Bespreking van het practicum.