Jakie problemy na wykresach są szybsze (w sensie big-O) do rozwiązania z wykorzystaniem macierzy danych macierzy częstości występowania zamiast bardziej rozpowszechnionych macierzy sąsiedztwa?Macierz padania zamiast macierzy przyległości
Odpowiedz
złożoność przestrzennych strukturach są:
przylegania: O (V^2) wydajność: O (VE)
w związku z czym struktura częstość oszczędza przestrzeń, gdy istnieje wiele więcej wierzchołków niż krawędzie.
Możesz zajrzeć złożoności czasowej niektórych typowych operacji wykresie:
Znajdź wszystkie wierzchołki przyległe do wierzchołka: Adj: O (V) Inc: O (VE)
Sprawdź, czy dwa wierzchołki są przyległe: ADJ: o (1) Inc: o (E)
Policzyć wartościowości wierzchołku: ADJ: o (V) Inc: o (E)
I tak dalej. W przypadku dowolnego algorytmu można użyć bloków konstrukcyjnych, takich jak powyższe, do obliczenia, która reprezentacja zapewnia lepszą ogólną złożoność czasu.
W ostatecznym rozrachunku użycie jakiejkolwiek matrycy jest wyjątkowo nieefektywne pod względem przestrzennym dla wszystkich wykresów z wyjątkiem gęstych. Polecam, aby nie używać żadnej z nich, chyba że świadomie odrzuciłeś alternatywy, takie jak listy przyległości.
Mam bardzo gęste wykresy, z prawie każdym połączeniem. – psihodelia
Czy nie ma sposobów na wydajne przechowywanie macierzy rzadkiej? – CMCDragonkai
Osobiście nigdy nie znalazłem prawdziwego zastosowania matrycy częstości występowania w konkursie programistycznym lub problemie badawczym. Myślę, że może to być przydatne do udowodnienia niektórych twierdzeń lub do niektórych bardzo szczególnych problemów. Jedna książka podaje przykład "liczenia liczby drzew opinających" jako problem, w którym ta reprezentacja jest przydatna.
Kolejną kwestią związaną z tym odwzorowaniem jest to, że nie ma sensu go przechowywać, ponieważ bardzo łatwo jest obliczyć go dynamicznie (aby odpowiedzieć na to, co zawiera dana komórka) z listy krawędzi.
Może się to wydawać bardziej przydatne w hiper-wykresach, ale tylko wtedy, gdy jest gęsty.
Tak więc moja opinia jest - jest przydatna tylko do prac teoretycznych.
- 1. Utwórz macierz kwadratowej przyległości z data.frame lub data.table
- 2. Łączenie macierzy w macierz w R
- 3. Mapowanie macierzy genetycznej na macierz C
- 4. Efektywne kopiowanie macierzy obiektów na większą macierz obiektów
- 5. Funkcjonalny sposób na układanie list macierzy 2d w macierz 3D
- 6. Scalenie dwóch macierzy w macierz w pytonie i sortowanie
- 7. Jak mogę zapisać macierz w rzędzie innej macierzy? MATLAB
- 8. Pętla Wielowymiarowa macierz do generowania wielowymiarowych macierzy dla wykresów Google
- 9. Jak zaktualizować macierz modelu OpenGL za pomocą własnej macierzy 4x4?
- 10. Macierz permutacji losowej
- 11. Jak przekonwertować macierz rzadką na gęstą macierz w Eigen
- 12. C++ zainicjować macierz statyczną
- 13. Jak wygenerować macierz kombinacji
- 14. Transponuj macierz w Pythonie
- 15. funkcja nrow (macierz)
- 16. Jak nadać sns.clustermap macierz odległości?
- 17. Mnożenie macierzy w core.matrix
- 18. Ładnie wydrukuj macierz w matematyce
- 19. Inwersja macierzy bez Numpy
- 20. Jak odserializować macierz JSON?
- 21. Macierz przesunięcia tożsamości Matlab
- 22. R: konwersja macierzy rzadkiej
- 23. Macierz JSON Grails
- 24. Tworzenie macierzy symetrycznej w R
- 25. Jak utworzyć pustą tablicę/macierz w NumPy?
- 26. Odwrotność macierzy w SymPy?
- 27. Wielowymiarowa macierz symboliczna w Pythonie
- 28. Jak reprezentować matrycę przyległości jako niezaokreślony wykres ważony w programie Matlab?
- 29. Mapowanie wartości macierzy?
- 30. Tworzenie macierzy tożsamości z numpy
Nie jestem pewien, czy łatwo jest znaleźć górną granicę obliczeniową na podstawie reprezentacji. Większość algorytmicznej złożoności będzie pod względem liczby _ krawędzi lub wierzchołków, a nie reprezentacji podstawowej. Każda dolna granica złożoności ma zastosowanie, niezależnie od tego, czy jest zaimplementowana na papierze i ołówku, czy na komputerze. Czy sądzisz, że jeśli masz na myśli specyficzne klasy problemów, to może wspomniałeś o nich i możemy spróbować to rozgryźć? – Gian
Macierz zachorowalności to MxN, a matryca przyległości to NxN, jeśli N jest bardzo duże, a wykres jest bardzo nieliczny, otrzymamy MxN