fig37.png romania.png romania-dist.png

map<City, int> h =
{
    {City::ORADEA, 380},
    {City::ZERIND, 374},
    {City::ARAD, 366},
    {City::TIMISOARA, 329},
    {City::LUGOJ, 244},
    {City::MEHADIA, 241},
    {City::DOBRETA, 242},
    {City::SIBIU, 253},
    {City::RIMNICU_VILCEA, 193},
    {City::CRAIOVA, 160},
    {City::FAGARAS, 176},
    {City::PITESTI, 100},
    {City::GIURGIU, 77},
    {City::BUCHAREST, 0},
    {City::NEAMT, 234},
    {City::URZICENI, 80},
    {City::IASI, 226},
    {City::VASLUI, 199},
    {City::HIRSOVA, 151},
    {City::EFORIE, 161},
};

Heurystyki dla piętnastki:

  • h1 - liczba kafelków znajdujących się na niewłaściwej pozycji
  • h2 - sumaryczna odległość kafelków od ich pozycji docelowych

Przypadki testowe dla piętnastki:

    State({{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 0}}); // 0
    State({{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 0, 15}}); // 1
    State({{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 0, 11}, {13, 14, 15, 12}}); // 2
    State({{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 14, 10, 11}, {13, 0, 15, 12}}); // 4
    State({{1, 3, 0, 4}, {5, 2, 6, 8}, {9, 10, 7, 11}, {13, 14, 15, 12}}); // 6
    State({{1, 2, 3, 4}, {6, 7, 8, 0}, {5, 10, 11, 12}, {9, 13, 14, 15}}); // 8
    State({{1, 2, 0, 4}, {5, 6, 3, 8}, {14, 13, 7, 11}, {9, 15, 10, 12}}); // 12
    State({{1, 2, 3, 0}, {5, 15, 6, 4}, {9, 10, 7, 8}, {13, 14, 12, 11}}); // 15
    State({{1, 2, 0, 4}, {5, 10, 3, 6}, {13, 9, 15, 8}, {14, 12, 7, 11}}); // 18
    State({{1, 4, 3, 7}, {5, 2, 0, 8}, {9, 12, 14, 15}, {13, 6, 11, 10}}); // 25
    State({{1, 6, 7, 2}, {5, 10, 12, 3}, {0, 14, 13, 8}, {9, 15, 11, 4}}); // 30
    State({{14, 7, 6, 4}, {2, 3, 1, 11}, {5, 9, 12, 15}, {13, 0, 10, 8}}); // 40
    State({{1, 6, 15, 0}, {14, 11, 5, 7}, {10, 9, 8, 3}, {2, 13, 12, 4}}); // 45
    State({{15, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11}, {12, 13, 14, 0}}); // 46
    State({{15, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 14, 10}, {11, 12, 13, 0}}); // 50
    State({{15, 1, 2, 3}, {4, 5, 14, 6}, {7, 8, 9, 10}, {11, 12, 13, 0}}); // <=54
    State({{15, 14, 13, 12}, {11, 10, 9, 8}, {7, 6, 5, 4}, {3, 1, 2, 0}}); // <=72