Dato un insieme di famiglia di sottoinsiemi di un universo . Sia e vogliamo rispondere è .
Sto cercando una struttura di dati che mi permetta di rispondere rapidamente. La mia applicazione proviene dalla teoria dei grafi dove voglio vedere se l'eliminazione di un vertice e del suo vicinato lascia vertici isolati e per ogni elenco di vertici lascia tutti i vertici isolati.
Voglio creare il poset completo o eventualmente un tabella che memorizza il vero falso che dice esattamente quali set sono sottoinsiemi di ciascuno di essi.
Sia , e , supponiamo
Possiamo generare la matrice di contenimento (il grafico bipartito) nel tempo e quindi creare la tabella di tutti i confronti nel tempo per ogni set , scorrere tutti elementi di tutti gli altri insiemi e contrassegnano l'insieme non un sottoinsieme di se l'elemento non è in . Nel tempo totale di .
Possiamo fare qualcosa più velocemente? In particolare, possibile o no?
Ho trovato alcuni articoli correlati:
Un semplice algoritmo sub-quadratico per il calcolo dell'ordine parziale parziale (1995) che fornisce un algoritmo .
L'ordine parziale del sottoinsieme: il calcolo e la combinatoria migliorano leggermente quanto sopra ma sostengono anche che il documento sopra risolve il problema in tempo in cui è il numero massimo di set che condividono un elemento comune, ma non sono riuscito a capire questo risultato.
Nell'articolo Tra e O ( n α ) gli autori mostrano come trovare in un grafico i componenti collegati dopo aver eliminato la vicinanza chiusa di un vertice usando la moltiplicazione della matrice. Questo può essere usato per calcolare il poset di inclusione impostato trovando tutti i componenti che sono singoli con un tempo di esecuzione di .
Anche questa discussione sul forum è collegata: qual è il modo più veloce per verificare l'inserimento impostato? che implica un limite inferiore di .