Inviluppo convesso

Niente fonti!
Questa voce o sezione sull'argomento matematica non cita le fonti necessarie o quelle presenti sono insufficienti.
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 {\displaystyle I} di uno spazio vettoriale reale, l'intersezione di tutti gli insiemi convessi che contengono I {\displaystyle I} .

Poiché l'intersezione di insiemi convessi è a sua volta convessa, una definizione alternativa di inviluppo convesso è "il più piccolo insieme convesso contenente I {\displaystyle 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 {\displaystyle I} , cioè tutti i punti del tipo j = 1 n λ j x j {\displaystyle \sum _{j=1}^{n}\lambda _{j}x_{j}} , dove gli x j {\displaystyle x_{j}} sono punti di I {\displaystyle I} e λ j {\displaystyle \lambda _{j}} sono numeri reali non negativi a somma 1, ovvero j = 1 n λ j = 1 {\displaystyle \sum _{j=1}^{n}\lambda _{j}=1} .

Evidentemente, se I {\displaystyle I} è convesso, il suo inviluppo convesso è I {\displaystyle I} stesso.

Unione di inviluppi convessi

Dati due insiemi I , J {\displaystyle I,J} , se chiamiamo rispettivamente C I , C J , C I J {\displaystyle C_{I},C_{J},C_{I\cup J}} gli involucri convessi di I , J , I J {\displaystyle I,J,I\cup J} , è vera la seguente relazione: C I C J C I J {\displaystyle C_{I}\cup C_{J}\subset C_{I\cup J}} .

Infatti abbiamo detto che se un insieme convesso contiene I {\displaystyle I} , allora contiene anche C I {\displaystyle C_{I}} , e se contiene J {\displaystyle J} contiene anche C J {\displaystyle C_{J}} . Siccome C I J {\displaystyle C_{I\cup J}} è convesso e contiene sia I {\displaystyle I} che J {\displaystyle J} (perché contiene I J {\displaystyle I\cup J} ), conterrà sia C I {\displaystyle C_{I}} che C J {\displaystyle C_{J}} (e quindi, ovviamente, C I C J {\displaystyle C_{I}\cup C_{J}} ).

Il viceversa in generale non è vero, ed un controesempio semplicissimo è il caso in cui I {\displaystyle I} e J {\displaystyle 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 {\displaystyle I} e J {\displaystyle J} stessi. Ma l'inviluppo convesso di I J {\displaystyle I\cup J} sarà un segmento, ossià conterrà strettamente I J = C I C J {\displaystyle I\cup J=C_{I}\cup C_{J}} .

Un approccio computazionale

Un interessante problema computazionale è, dato un insieme finito[1] di punti I = p 1 p n {\displaystyle I={p_{1}\cdots p_{n}}} nel piano, trovare C I {\displaystyle C_{I}} , l'inviluppo convesso di I {\displaystyle 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 q 1 {\displaystyle q_{1}} ; siano ora q 2 q n {\displaystyle q_{2}\cdots q_{n}} i rimanenti punti, ordinati in modo tale che i > j θ i > θ j {\displaystyle i>j\Leftrightarrow \theta _{i}>\theta _{j}} , dove ( ρ i , θ i ) {\displaystyle (\rho _{i},\theta _{i})} sono le coordinate polari di q i {\displaystyle q_{i}} . A questo punto scorriamo i punti q i {\displaystyle q_{i}} : ogni volta che in q i {\displaystyle q_{i}} c'è una "svolta a sinistra" ma non in q i 1 {\displaystyle q_{i-1}} , sappiamo che q i {\displaystyle q_{i}} è un vertice dell'inviluppo convesso; ogni volta che invece in q j {\displaystyle q_{j}} c'è una "svolta a destra", sappiamo che questo punto non è un vertice dell'inviluppo convesso. Questo algoritmo ha costo O ( n log ( n ) ) {\displaystyle O(n\,\log(n))} .

Un algoritmo efficiente per lo stesso problema è basato sulla ricorsione, sfruttando il caso base in cui n = 2 {\displaystyle 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 p 1 p n {\displaystyle p_{1}\cdots p_{n}} sono ovviamente i vertici della/e spezzata/e.

Collegamenti esterni

  • (EN) Eric W. Weisstein, Inviluppo convesso, su MathWorld, Wolfram Research. Modifica su Wikidata
  • (EN) Inviluppo convesso, su Encyclopaedia of Mathematics, Springer e European Mathematical Society. Modifica su Wikidata
  Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica