Algorytm ewaluujący reguły w zoptymalizowanej kolejności Optymalizacja powyższego algorytmu może polegać na każdorazowym aplikowaniu takiej reguły, która daje najmniejszą liczbę wariantów ze wszystkich pozostałych do ewaluacji reguł. Ewaluacja reguły 1: Umieszczamy w domu pierwszym Norwega: Dom1(Norweg). Ewaluacja reguły 8: W domu środkowym (3) umieszczamy mleko: Dom1(Norweg), Dom3(mleko). Ewaluacja reguły 12: Dom obok Norwega przyjmuje kolor niebieski: Dom1(Norweg), Dom2(niebieski), Dom3(mleko). Ewaluacja reguły 3: Ustalamy kolory sąsiednich domów na zielony i biały. Otrzymujemy dwa warianty: Dom1(Norweg), Dom2(niebieski), Dom3(mleko,zielony), Dom4(biały), Dom1(Norweg), Dom2(niebieski), Dom3(mleko), Dom4(zielony), Dom5(biały). ... Liczby wywołań funkcji dla tak zoptymalizowanego algorytmu: wywołanie procedury rekurencyjnej ewaluującej pojedynczą regułę: 20 razy, wyznaczanie możliwych domów dla pojedynczej cechy z danej reguły: 712 razy, ustawianie pojedynczej cechy w danym domu: 31 razy. Jak widać zoptymalizowany algorytm wykonuje jedynie 6 błędnych ustawień cech (31 ustawień vs 25).
Źródło i licencja
Fragment artykułu Wikipedia — Zagadka Einsteina · historia autorów.
Tekst: CC BY-SA 4.0. Wydzielono fragment z dłuższego artykułu.