24.12.2014 Views

Enkele basisbegrippen uit de convexe meetkunde

Enkele basisbegrippen uit de convexe meetkunde

Enkele basisbegrippen uit de convexe meetkunde

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Enkele</strong> <strong>basisbegrippen</strong> <strong>uit</strong> <strong>de</strong> <strong>convexe</strong> meetkun<strong>de</strong><br />

1 Affiene ruimten<br />

Als basisruimte nemen we IR d (of algemener, een eindigdimensionale vectorruimte<br />

over een “geor<strong>de</strong>nd lichaam”).<br />

De vectoren in IR d wor<strong>de</strong>n door kolommatrices voorgesteld, die in <strong>de</strong> duale<br />

ruimte (IR d ) ∗ door rijmatrices. Dus, als u ∈ (IR d ) ∗ en x ∈ IR d , dan u · x ∈ IR.<br />

Een affiene combinatie van een eindig aantal vectoren x 1 , . . . , x n is een lineaire<br />

combinatie<br />

n∑<br />

x = λ i x i<br />

met<br />

n∑<br />

λ i = 1<br />

(λ i ∈ IR)<br />

i=1<br />

i=1<br />

Het affien omhulsel aff(S) van een <strong>de</strong>el S van IR d bestaat <strong>uit</strong> alle mogelijke<br />

affiene combinaties van vectoren <strong>uit</strong> S. Het resultaat noemen we een affiene<br />

ruimte, en kan <strong>de</strong> vorm aannemen van een punt, een rechte, een vlak,. . .<br />

Een stel vectoren S = {x 1 , . . . , x n } wordt affien onafhankelijk genoemd,<br />

wanneer het affien omhulsel van ie<strong>de</strong>re echte <strong>de</strong>elverzameling van S strikt kleiner<br />

is dan aff(S). In dat geval is S = {x 1 , . . . , x n } een affiene basis voor A =aff(S),<br />

en kan ie<strong>de</strong>re vector x van A op unieke wijze geschreven wor<strong>de</strong>n als een affiene<br />

combinatie van S. De gebruikte coëfficiënten (λ 1 , . . . , λ n ) in die affiene combinatie<br />

wor<strong>de</strong>n <strong>de</strong> barycentrische coördinaten van x genoemd. De affiene dimensie<br />

van A is gelijk aan n − 1, dus 1 min<strong>de</strong>r dan het aantal vectoren in <strong>de</strong> affiene<br />

basis S.<br />

Een hypervlak H van IR d is een affiene ruimte van dimensie d − 1. Ie<strong>de</strong>r<br />

hypervlak wordt bepaald door een koppel (u, a) met u ∈ (IR d ) ∗ en a ∈ IR:<br />

H = {x ∈ IR d | u · x = a}<br />

Behalve als affien omhulsel, geven we nog twee an<strong>de</strong>re equivalente manieren<br />

om een affiene ruimte in IR d te construeren:<br />

• als eindige doorsne<strong>de</strong> van hypervlakken<br />

• als translatie van een lineaire <strong>de</strong>elruimte<br />

1


2 Convexiteit<br />

Een <strong>de</strong>el K van IR d wordt convex genoemd, als voor ie<strong>de</strong>r paar {p, q} ⊂ K het<br />

lijnstuk tussen p en q volledig tot K behoort.<br />

Eigenschap. Een willekeurige doorsne<strong>de</strong> van <strong>convexe</strong> <strong>de</strong>len is opnieuw convex.<br />

Het convex omhulsel conv(S) van een <strong>de</strong>el S van IR d is <strong>de</strong> “kleinste” <strong>convexe</strong><br />

verzameling van IR d die S omvat. Meer expliciet:<br />

conv(S) = ∩{K ⊂ IR d | K is convex en S ⊂ K}<br />

Een <strong>convexe</strong> combinatie van een eindig aantal vectoren x 1 , . . . , x n<br />

lineaire combinatie<br />

n∑<br />

n∑<br />

x = λ i x i met λ i = 1 en (λ i ∈ IR + )<br />

i=1<br />

i=1<br />

is een<br />

Het is een interessante oefening om aan te tonen dat het <strong>convexe</strong> omhulsel<br />

conv(S) van een <strong>de</strong>el S van IR d juist bestaat <strong>uit</strong> alle mogelijke <strong>convexe</strong> combinaties<br />

van vectoren <strong>uit</strong> S. Iets min<strong>de</strong>r voor <strong>de</strong> hand is het volgen<strong>de</strong> klassieke<br />

resultaat:<br />

Theorema van Caratheodory. Als x ∈ conv(S) dan kan x steeds geschreven<br />

wor<strong>de</strong>n als een <strong>convexe</strong> combinatie van {x 1 , . . . , x t } ⊂ S met t ≤ dim(aff(S))+1.<br />

Het convex omhulsel conv({x 1 , . . . , x n }) van een eindig aantal vectoren in<br />

het vlak (x i ∈ IR 2 ) is steeds een veelhoek V . Bovendien komen <strong>de</strong> hoekpunten<br />

van V <strong>uit</strong> {x 1 , . . . , x n }. Uiteraard is <strong>de</strong> veelhoek V convex, met als gevolg dat<br />

alle hoekpunten van V convex zijn (hun inwendige hoek is kleiner dan 180 ◦ ).<br />

Omgekeerd is ie<strong>de</strong>re <strong>convexe</strong> veelhoek V het convex omhulsel van zijn hoekpuntenverzameling.<br />

Indien we <strong>de</strong> k hoekpunten van een <strong>convexe</strong> veelhoek V rangschikken in<br />

tegenwijzerzin, (v 0 , . . . , v k−1 ), waarbij het startpunt v 0 willekeurig gekozen is,<br />

dan observeren we <strong>de</strong> volgen<strong>de</strong> eigenschappen:<br />

• v i+1 ligt links van <strong>de</strong> georiënteer<strong>de</strong> rechte v i−1 v i (in<strong>de</strong>xrekenen modulo k)<br />

• Als p een inwendig punt van V is, en als 1 ≤ i < i + 1 ≤ k − 1, dan geldt<br />

pv̂<br />

0 , pv i < pv 0<br />

̂, pv i+1<br />

waar <strong>de</strong> betreffen<strong>de</strong> hoeken in ]0, 2π[ gemeten wor<strong>de</strong>n.<br />

2


3 Polytopen<br />

Een polytoop is <strong>de</strong> veralgemening van een <strong>convexe</strong> veelhoek in willekeurige dimensies,<br />

en wordt meestal ge<strong>de</strong>finieerd als het convex omhulsel van een eindig<br />

aantal vectoren in IR d :<br />

P = conv({x 1 , . . . , x n })<br />

De dimensie van P is per <strong>de</strong>finitie <strong>de</strong> (affiene) dimensie van aff(P ).<br />

We zeggen dat een hypervlak H raakt aan een polytoop P , indien<br />

1. H snijdt P<br />

2. P is volledig bevat in 1 van <strong>de</strong> 2 gesloten halfruimten begrensd door H<br />

Men kan bewijzen dat <strong>de</strong> doorsne<strong>de</strong> van een polytoop P met een raakvlak H<br />

opnieuw een polytoop F is. Indien dim(F ) = i, dan noemen we F een i-zijvlak.<br />

Gewoonlijk wor<strong>de</strong>n <strong>de</strong> 0-zijvlakken hoekpunten genoemd, <strong>de</strong> 1-zijvlakken ribben,<br />

en <strong>de</strong> 2-zijvlakken vaak kortweg zijvlakken.<br />

Indien P een 3-dimensionale polytoop is met v hoekpunten, e ribben en f<br />

zijvlakken, dan zegt <strong>de</strong> beroem<strong>de</strong> formule van Euler:<br />

v − e + f = 2<br />

Tel maar na bij beken<strong>de</strong> 3-polytopen (kubus, tetrae<strong>de</strong>r, pirami<strong>de</strong>, do<strong>de</strong>cae<strong>de</strong>r,. . . )<br />

Deze wet heeft eigenlijk een topologische oorzaak, namelijk dat <strong>de</strong> rand van een<br />

3-polytoop homeomorf is met <strong>de</strong> 2-sfeer, en staat dus los van <strong>de</strong> convexiteit.<br />

Een polye<strong>de</strong>r in IR d is een doorsne<strong>de</strong> van eindig veel halfruimten in IR d . Een<br />

polye<strong>de</strong>r kan al dan niet begrensd zijn. De volgen<strong>de</strong> stelling lijkt evi<strong>de</strong>nt, maar<br />

dat is het bewijs zeker niet (m.b.v. Fourier-Motzkin eliminatie).<br />

Hoofdstelling. Ie<strong>de</strong>re polytoop is een begrens<strong>de</strong> polye<strong>de</strong>r, en omgekeerd is<br />

ie<strong>de</strong>re begrens<strong>de</strong> polye<strong>de</strong>r een polytoop.<br />

Wellicht <strong>de</strong> meest eenvoudige polytoop is <strong>de</strong> d-simplex, zijn<strong>de</strong> het convex<br />

omhulsel van d+1 affien onafhankelijk vectoren. Zo is een 2-simplex bijvoorbeeld<br />

een driehoek, en een 3-simplex een tetrae<strong>de</strong>r. Merk op dat een i-zijvlak van een<br />

simplex een i-simplex is.<br />

4 Minkowski-sommen<br />

Als S en T <strong>de</strong>len in IR d zijn, dan noemen we<br />

<strong>de</strong> Minkowsi-som van S en T .<br />

S ⊕ T = {s + t | s ∈ S en t ∈ T }<br />

3


Indien we −T noteren voor <strong>de</strong> spiegeling van T t.o.v. <strong>de</strong> oorsprong,<br />

−T = {−t | t ∈ T },<br />

dan kunnen we ook het Minkowski-verschil invoeren:<br />

S ⊖ T = S ⊕ (−T )<br />

Het is een veelgebruikte techniek om een ingewikkeld meetkundig object<br />

te mo<strong>de</strong>lleren als <strong>de</strong> Minkowski-som van eenvoudigere objecten (Minkowski<strong>de</strong>compositie).<br />

Zo is een parallellopipedum bijvoorbeeld <strong>de</strong> Minkowski-som van<br />

3 goedgekozen lijnstukken in IR 3 . De Minkowski-som van n lijnstukken in<br />

IR d wordt een zonotoop genoemd (een polytoop met veel toepassingen). Deze<br />

Minkowski-<strong>de</strong>compositie laat bijvoorbeeld toe om bepaal<strong>de</strong> geometrische operaties<br />

<strong>uit</strong> te voeren op eenvoudige objecten, om daarna <strong>de</strong> resultaten terug samen<br />

te voegen tot een meer ingewikkeld object (CAD/CAM, computeranimatie,. . . )<br />

An<strong>de</strong>re toepassingen zijn bijvoorbeeld:<br />

• offset computation: Een object met te veel <strong>de</strong>tails of verstoord door ruis<br />

wordt “afgevlakt” door <strong>de</strong> Minkowski-som te nemen met een relatief kleine<br />

bol.<br />

• morphing: In computeranimatie en vele commerciële toepassingen wil men<br />

een object A op een vloeien<strong>de</strong> manier laten vervormen tot een object<br />

B. Hiervoor bestaan verschillen<strong>de</strong> metho<strong>de</strong>s, maar men kan bijvoorbeeld<br />

(1 − t)A ⊕ tB beschouwen, waarbij t van 0 tot 1 varieert (proberen!).<br />

• overlapping en penetratiediepte: Het leeuwenaan<strong>de</strong>el van <strong>de</strong> berekeningen<br />

tij<strong>de</strong>ns een computeranimatie gaat naar intersectie<strong>de</strong>tectie. Een veelgebruikte<br />

overlappingstest steunt op<br />

A ∩ B ≠ ∅ ⇐⇒ o ∈ A ⊖ B<br />

In geval van overlapping kan <strong>de</strong> afstand van o tot <strong>de</strong> rand van A ⊖ B als<br />

maat genomen wor<strong>de</strong>n voor <strong>de</strong> penetratiediepte.<br />

• motion planning: Bij automatische robotnavigatie wordt <strong>de</strong> robot vaak<br />

herleid tot zijn referentiepunt, en dit heeft als gevolg dat <strong>de</strong> hin<strong>de</strong>rnissen<br />

moeten “groeien” met behulp van het Minkowski-verschil met <strong>de</strong> robot.<br />

Dit steunt op bovenstaan<strong>de</strong> overlappingstest (zie later in <strong>de</strong> cursus).<br />

Eigenschappen.<br />

1. Voor willekeurige <strong>de</strong>len A en B van IR d :<br />

conv(A) ⊕ conv(B) = conv(A ⊕ B)<br />

4


2. Als A en B convex zijn, dan ook A ⊕ B (volgt <strong>uit</strong> 1.).<br />

3. Als P en Q polytopen zijn, dan ook P ⊕ Q (volgt <strong>uit</strong> 1.). Bovendien is<br />

ie<strong>de</strong>r hoekpunt van <strong>de</strong>ze laatste <strong>de</strong> som van een hoekpunt van P en een<br />

hoekpunt van Q.<br />

Uit voorgaan<strong>de</strong> eigenschappen besl<strong>uit</strong>en we dat een algoritme voor het convex<br />

omhulsel van een eindige verzameling punten in IR d kan gebruikt wor<strong>de</strong>n<br />

om <strong>de</strong> Minkowski-som van polytopen in IR d te berekenen. In<strong>de</strong>rdaad, als P<br />

en Q polytopen zijn met respectieve hoekpuntenverzamelingen V P en V Q dan<br />

bekomen we P ⊕ Q door<br />

1. construeer S = V P ⊕ V Q (eindige berekening)<br />

2. construeer conv(S)<br />

Bovenstaand algoritme heeft echter te veel tijd nodig, omdat S heel veel<br />

overbodige punten bevat die niet op <strong>de</strong> rand van conv(S) liggen, en dus geen<br />

bijdrage leveren voor <strong>de</strong> <strong>uit</strong>ein<strong>de</strong>lijke vorm van P ⊕ Q. Gelukkig kunnen we<br />

eigenschap (3) verfijnen. Indien een hoekpunt v van P ⊕ Q “gedragen” wordt<br />

door een raakvlak met <strong>uit</strong>wendige normaal ⃗u, dan geldt dat v = v P +v Q , waarbij<br />

<strong>de</strong> hoekpunten v P en v Q van P en Q door raakvlakken met <strong>de</strong>zelf<strong>de</strong> <strong>uit</strong>wendige<br />

normaal gedragen wor<strong>de</strong>n.<br />

Dit laatste kunnen we iets preciezer formuleren, maar hiervoor hebben we<br />

wat nieuwe notatie nodig. Indien ⃗u een (eenheids)vector is in IR d , en P een<br />

gegeven polytoop, dan noteren we H ⃗u (P ) voor het unieke hypervlak dat raakt<br />

aan P zodat ⃗u loodrecht op H ⃗u (P ) staat, waarbij ⃗u naar <strong>de</strong> halfruimte wijst<br />

die P niet bevat (<strong>uit</strong>wendige normaal). Ver<strong>de</strong>r introduceren we het volgen<strong>de</strong><br />

i-zijvlak van P :<br />

F ⃗u (P ) = H ⃗u (P ) ∩ P<br />

Nu kunnen we <strong>de</strong> volgen<strong>de</strong> eigenschap formuleren, voor ie<strong>de</strong>re (eenheids)vector<br />

⃗u, en voor ie<strong>de</strong>r paar polytopen {P, Q} in IR d :<br />

F ⃗u (P ⊕ Q) = F ⃗u (P ) ⊕ F ⃗u (Q)<br />

Een en an<strong>de</strong>r leidt tot een snel algoritme voor <strong>de</strong> Minkowski-som van twee<br />

<strong>convexe</strong> veelhoeken P en Q in het vlak. In wezen roteren we ⃗u over 360 ◦ en<br />

hou<strong>de</strong>n halt telkens wanneer ofwel F ⃗u (P ) ofwel F ⃗u (Q) wijzigt. Dit is natuurlijk<br />

juist wanneer ⃗u samenvalt met <strong>de</strong> <strong>uit</strong>wendige normaal van een zij<strong>de</strong> van P of<br />

Q. De hoekpunten van P ⊕ Q wor<strong>de</strong>n dan in tegenwijzerzin geproduceerd door<br />

het bijhou<strong>de</strong>n van F ⃗u (P ) + F ⃗u (Q):<br />

5


Algoritme.<br />

(met hoek(ab) bedoelen we <strong>de</strong> hoek die ⃗ ab maakt t.o.v. <strong>de</strong> positieve x-as)<br />

1. (v 1 , . . . , v m ) en (w 1 , . . . , w n ) zijn <strong>de</strong> hoekpuntenlijsten van P en Q, in<br />

tegenwijzerzin, startend met het hoekpunt mat kleinste y-coördinaat (en<br />

kleinste x-coördinaat in geval van conflict).<br />

2. i ← 1; j ← 1<br />

3. v m+1 ← v 1 ; w n+1 ← w 1<br />

4. repeat<br />

5. Voeg v i + w j bij <strong>de</strong> hoekpuntenlijst van P ⊕ Q<br />

6. if hoek(v i v i+1 ) < hoek(w j w j+1 ) then i ← i + 1<br />

7. else if hoek(v i v i+1 ) > hoek(w j w j+1 ) then j ← j + 1<br />

8. else i ← i + 1; j ← j + 1<br />

9. if i > m + 1 then i ← m + 1;<br />

10. if j > n + 1 then j ← n + 1;<br />

11. until i = m + 1 en j = n + 1<br />

Opmerkingen.<br />

• Merk op dat dit algoritme in een tijd van O(m + n) loopt.<br />

• Dit algoritme bewijst tevens dat <strong>de</strong> veelhoek P ⊕ Q ten hoogste m + n<br />

hoekpunten heeft, ook al bevat V P ⊕ V Q juist mn punten.<br />

vraag: wanneer heeft P ⊕ Q min<strong>de</strong>r dan m + n hoekpunten<br />

6

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!