Ho trovato diversi algoritmi che spiegano come per trovare componenti fortemente connessi in un grafico diretto, ma nessuno spiega perché si vorrebbe fare questo. Quali sono alcune applicazioni di componenti fortemente connessi?Per cosa vengono utilizzati i componenti fortemente connessi?
risposta
Dovresti dare un'occhiata al corso Introduzione ai Algoritmi di Tim Roughgarden su Coursera. Per ogni algoritmo che passa, spiega alcune applicazioni di esso. Molto utile e fa vedere il valore dello studio degli algoritmi!
L'uso di componenti fortemente connessi che ricordo che ha detto è che si potrebbe usare per trovare gruppi di persone che sono più strettamente correlati in un enorme insieme di dati. Pensa a Facebook e come consigliano le persone che potrebbero essere i tuoi amici ...
Questo potrebbe anche essere usato per vedere pezzi di una popolazione. Di ': "Wow, questo enorme componente ha l'hobby di camminare all'indietro e gli piace mangiare la pizza ammuffita!", Potrebbe mostrare una correlazione. Gli inserzionisti per la pizza ammuffita userebbero questi dati per indirizzare le persone che amano camminare all'indietro. Chissà!
Un esempio è in model checking:
Trovare componente fortemente connessa è fatto in esplicita model checking in formal verification.
nel model checking - abbiamo una macchina a stati, che rappresenta i modelli del nostro software/hardware, e cerchiamo di dimostrare temporal logic formule su di esso.
Ad esempio: La formula EG(p)
mezzi: v'è un percorso nel grafico, dove per ogni stato - formula logica p
rendimenti true
.
Il (modello) algorithm for proving if EG(p) is true on a graph è trovare la massima componenti fortemente connesse (SCC), e poi controllando percorsi che conducono ad esso nel grafico.
Si noti che il controllo del modello viene applicato ampiamente nel settore, in particolare per dimostrare la correttezza dei componenti hardware.
(1) L'importanza della logica temporale per l'informatica è grande, e il suo inventore Amir Pnueli ha ricevuto un premio Turing per questo!
- 1. Cosa sono i moduli di unione e come vengono utilizzati?
- 2. Per cosa sono utilizzati index.ts?
- 3. Per cosa vengono utilizzati Apache Thrift e Google Protocol Buffers?
- 4. Perché vengono utilizzati i campi nascosti?
- 5. Perché qui vengono utilizzati i lucchetti?
- 6. Perché i punti esclamativi vengono utilizzati nei metodi Ruby?
- 7. Che cosa sono i database NoSql Key/Value utilizzati per
- 8. Cosa sono i registri ombra in MIPS e come vengono utilizzati?
- 9. Come trovare i passi Cucumber che non vengono utilizzati
- 10. Perché i Web Worker non vengono utilizzati di più?
- 11. Come vengono utilizzati i pattern vettoriali nelle regole della sintassi?
- 12. Come vengono utilizzati i DVCS in team di grandi dimensioni?
- 13. Come vengono utilizzati i mapping dell'URL servlet in web.xml?
- 14. I CSS vengono utilizzati ovunque oltre ai browser Web?
- 15. Come vengono utilizzati i margini e il riempimento in FireMonkey?
- 16. Numero di componenti connessi in un grafico non orientato
- 17. Intellij contrassegna tutti i metodi come non utilizzati anche se vengono utilizzati
- 18. Che cosa sono esattamente MultiPartEntity e Dati modulo? Come vengono utilizzati per caricare immagini in Android?
- 19. Come vengono rimossi i componenti con Castle 3.0?
- 20. Quali framework di test vengono utilizzati per Rails?
- 21. Dove vengono memorizzate le immagini e i contenitori di ancoraggio quando vengono utilizzati con Windows?
- 22. Come reindirizzare [Autorizza] per loginUrl solo quando i ruoli non vengono utilizzati?
- 23. Quali pacchetti cabala non vengono utilizzati
- 24. Come utilizzare i componenti connessi di openCV con le statistiche in python?
- 25. Come vengono utilizzati i flussi reattivi in Slick per l'inserimento dei dati
- 26. Come trovare tutti i componenti connessi in un'immagine binaria in Matlab?
- 27. Componenti compositi con i bambini compositi che mescolano i valori quando utilizzati con ui: ripetizione
- 28. Cosa sono i file .rc2 utilizzati in Visual Studio
- 29. Perché gli zeri iniziali vengono utilizzati per rappresentare i numeri ottali?
- 30. Spiega la sincronizzazione delle raccolte quando vengono utilizzati gli iteratori?
Come la maggior parte della matematica, questa è una di quelle cose che sembrano totalmente inutili finché non ne hai bisogno. – trutheality