Mam nieukierunkowany wykres. Jedna krawędź na tym wykresie jest wyjątkowa. Chcę znaleźć wszystkie inne krawędzie, które są częścią równego cyklu zawierającego pierwszą krawędź.algorytm wykresu do wykrywania nawet cykli
Nie muszę wyliczać wszystkich cykli, które z natury są NP. Po prostu muszę wiedzieć, dla każdej krawędzi, czy spełnia ona powyższe warunki.
Szukanie brutalnej siły działa oczywiście, ale jest zbyt wolne, a ja staram się wymyślić coś lepszego. Każda pomoc doceniona.
Nie ma tu wystarczających informacji, aby uzyskać odpowiedź na pytanie o jakość, której szukasz. Jak daleko przed czasem wiesz, która krawędź jest wyjątkowa? Czy masz prawo wstępnego przetwarzania danych? Ile wcześniej dotykasz danych (np. Wczytujesz) i czy możesz zmodyfikować sposób wstępnego przetwarzania danych? – ninjagecko
Co więcej, być może trzeba będzie przyjrzeć się wszystkim cyklom **, jeśli ** nie można nadużywać przetwarzania wstępnego, chociaż nie mogę wymyślić dowodu takiego twierdzenia w ten czy inny sposób. – ninjagecko
@ninjagecko Wykres przedstawia strukturę chemiczną, tj. Wierzchołki są atomami, a krawędzie są wiązaniami chemicznymi pomiędzy tymi atomami. Struktura chemiczna jest ciągle edytowana przez użytkownika i oczekuje się, że ten algorytm będzie działał w czasie rzeczywistym, gdy użytkownik wykona zmiany. Używamy prostej struktury listy sąsiednich dla wykresu, chociaż utrzymujemy również kilka innych struktur (na przykład zawsze wiemy, czy krawędź jest częścią cyklu, czy nie). Jeśli dobrze cię rozumiem, wstępne przetwarzanie nie jest opcją, ponieważ wykres (i specjalna krawędź) zawsze się zmieniają. – john