Inviluppo convesso

Da testwiki.
Vai alla navigazione Vai alla ricerca

Template:F

A sinistra: l'insieme blu non è convesso, l'insieme azzurro è il suo inviluppo convesso. A destra: l'insieme verde è convesso, quindi il suo inviluppo convesso è esso stesso.

In matematica si definisce inviluppo convesso (o talvolta involucro convesso) di un qualsiasi sottoinsieme I di uno spazio vettoriale reale, l'intersezione di tutti gli insiemi convessi che contengono I.

Poiché l'intersezione di insiemi convessi è a sua volta convessa, una definizione alternativa di inviluppo convesso è "il più piccolo insieme convesso contenente I".

Intuitivamente, l'inviluppo convesso di un insieme di punti è la forma che assumerebbe un elastico allargato in modo da contenere tutti i punti e poi lasciato libero di restringersi: un poligono che ha alcuni di quei punti come vertici e li contiene tutti.

L'inviluppo convesso si può costruire come l'insieme di tutte le combinazioni convesse di punti di I, cioè tutti i punti del tipo j=1nλjxj, dove gli xj sono punti di I e λj sono numeri reali non negativi a somma 1, ovvero j=1nλj=1 .

Evidentemente, se I è convesso, il suo inviluppo convesso è I stesso.

Unione di inviluppi convessi

Dati due insiemi I,J, se chiamiamo rispettivamente CI,CJ,CIJ gli involucri convessi di I,J,IJ, è vera la seguente relazione: CICJCIJ.

Infatti abbiamo detto che se un insieme convesso contiene I, allora contiene anche CI, e se contiene J contiene anche CJ. Siccome CIJ è convesso e contiene sia I che J (perché contiene IJ), conterrà sia CI che CJ (e quindi CICJ).

Il viceversa in generale non è vero, ed un controesempio semplicissimo è il caso in cui I e J siano due punti distinti nel piano. Si osserva facilmente che un punto è per definizione convesso, e che quindi i loro inviluppi convessi sono I e J stessi. Ma l'inviluppo convesso di IJ sarà un segmento, ossià conterrà strettamente IJ=CICJ.

Un approccio computazionale

Un interessante problema computazionale è, dato un insieme finito[1] di punti I=p1pn nel piano, trovare CI, l'inviluppo convesso di I. Sono stati trovati vari algoritmi che risolvono questo problema.

Uno dei più celebri è il cosiddetto Graham Scan: cerchiamo il punto più in basso (in caso di parità, quello più a sinistra tra quelli più in basso) e chiamiamolo q1; siano ora q2qn i rimanenti punti, ordinati in modo tale che i>jθi>θj, dove (ρi,θi) sono le coordinate polari di qi. A questo punto scorriamo i punti qi: ogni volta che in qi c'è una "svolta a sinistra" ma non in qi1, sappiamo che qi è un vertice dell'inviluppo convesso; ogni volta che invece in qj c'è una "svolta a destra", sappiamo che questo punto non è un vertice dell'inviluppo convesso. Questo algoritmo ha costo O(nlog(n)).

Un algoritmo efficiente per lo stesso problema è basato sulla ricorsione, sfruttando il caso base in cui n=2 (e l'inviluppo convesso di due punti è ovviamente il segmento che li congiunge) e creando in base a semplici regole l'inviluppo convesso di due insiemi convessi (passo ricorsivo).

Osservazioni

  • L'inviluppo convesso è un concetto utile ad esempio in problemi di rilassamento.

Note

  1. In realtà possiamo benissimo immaginare che il dato di ingresso sia l'area racchiusa da una o più spezzate chiuse. In questo caso p1pn sono ovviamente i vertici della/e spezzata/e.

Collegamenti esterni

Template:Portale