Ho trovato un problema simile al problema Set Cover ma che non riesco a ridurre a nessuno conosci il problema Qualcuno ha un buon algoritmo per risolvere questo?
Dato un insieme di elementi U = {1, 2, ..., m}
(l'universo) e una collezione S
di n
set la cui unione è uguale all'universo, qual è la più piccola sotto-collezione di S che si interseca per produrre un singolo elemento?
Ad esempio:
U = {1, 2, 3, 4, 5}
S = {{1, 4}, {2, 4}, {5, 2}, {1, 4, 5}}
Se vogliamo che l'intersezione più piccola produca 4, dovremmo intersecare almeno 2 set {1, 4}
e {2, 4}
.
L'attuale algoritmo ingenuo che devo fare riguarda
- Scegli un set con l'elemento desiderato
- Esegui un'iterazione su tutti i set non selezionati, prova ad intersecarli e verifica se l'intersezione produce meno elementi rispetto al set originale, ma includi comunque l'elemento desiderato
- Per quelli che si intersecano e riducono il numero di elementi, ripetiamo il processo con l'insieme intersecato ricorsivamente finché non abbiamo provato tutti i set o siamo giù fino all'elemento
Per un'applicazione concreta: sto cercando di trovare il set minimo di classi CSS su un elemento HTML che selezionerà solo quell'elemento.