Concetti Chiave
- Il powerset è l'insieme di tutti i sottoinsiemi di un insieme di elementi, incluso l'insieme vuoto.
- Il paradigma divide et impera calcola il powerset in modo ricorsivo, partendo dall'insieme vuoto e unendo i sottoinsiemi generati.
- Le disposizioni ripetute permettono di generare il powerset creando un albero di ricorsione con foglie che rappresentano tutti i sottoinsiemi.
- Il modello delle combinazioni semplici unisce l'insieme vuoto e i sottoinsiemi di dimensione da 1 a k, calcolati in modo incrementale.
- È fornito un esempio di algoritmo per calcolare il powerset usando disposizioni ripetute, illustrando la logica di implementazione.
Qual è la definizione di powerset?
Insieme delle parti (powerset): con il termine powerset si indica l’insieme dei sottoinsiemi dell’insieme di elementi, incluso l’insieme vuoto.
Esempio: dato l’insieme {1, 2, 3}, l’insieme delle parti è {∅, {3}, {2}, {2, 3}, {1}, {1, 3}, {1, 2}, {1, 2, 3}}
Per l’approccio algoritmico del calcolo dell’insieme delle parti vi sono tre diverse metodologie:
- Paradigma Divide et Impera: l’insieme delle parti viene trovato ricorsivamente come l’insieme vuoto per il caso terminale e nel caso di ricorsione il powerset per k-1 elementi unione o l’elemento che rappresenta l’insieme stesso di partenza o l’insieme vuoto;
- Utilizzo delle Disposizioni ripetute: l’elemento temporaneamente in utilizzo può essere preso o lasciato quindi si crea un albero della ricorsione che ha come foglie tutti i sottoinsiemi che vanno a formare il powerset;
- Modello spazio delle Combinazioni semplici: si fa l’unione dell’insieme vuoto e dei sottoinsiemi di dimensione da 1 a k crescente ognuno dei quali calcolato con il modello delle combinazioni semplici.
Paradigma divide et impera
Combinazioni semplici
void powerset(int pos, int *val, int *sol, int k){
int i;
if(pos>=k){
printf(“{\t”);
for(i = 0; i
if(sol!=0)
printf(“%d\t ”, val);
printf(“}\n”);
return;
}
sol[pos] = 0;
powerset(pos+1, val, sol, k);
sol[pos] = 1;
powerset(pos+1, val, sol, k);
}
Domande da interrogazione
- Che cos'è un powerset e come si costruisce?
- Qual è il paradigma utilizzato per calcolare il powerset?
- Come si applicano le combinazioni semplici nel calcolo del powerset?
Il powerset è l'insieme di tutti i sottoinsiemi di un insieme di elementi, incluso l'insieme vuoto. Ad esempio, per l'insieme {1, 2, 3}, il powerset è {∅, {3}, {2}, {2, 3}, {1}, {1, 3}, {1, 2}, {1, 2, 3}}.
Il paradigma utilizzato è il "divide et impera", dove il powerset viene trovato ricorsivamente, partendo dall'insieme vuoto e unendo i sottoinsiemi generati per k-1 elementi con l'elemento dell'insieme originale o l'insieme vuoto.
Nel modello delle combinazioni semplici, si unisce l'insieme vuoto con i sottoinsiemi di dimensione da 1 a k, ognuno dei quali è calcolato utilizzando il modello delle combinazioni semplici.