Piszę aplikację, która rozwiązywać będzie problem spełniania ograniczeń (CSP). Problem jest podobny do tego N-Hetmanów, tylko jest więcej "figur" z różnym zasięgiem i nie każda figura może bić inną. Np. A bije B, które bije C, a C bije A. I trzeba ustawić je tak by się nie biły.

Byłbym wdzięczny za podpowiedź odnośnie różnicy dwóch algorytmów jakie można zastosować: forward checking i backtrackingu.
Nie chodzi mi o kwestię implementacyjną, ani jak działają bo wiem, ale raczej interesują mnie odpowiedzi na pytania:

Który z nich jest szybszy?
Jak zmienia się szybkość rozwiązania w tych algorytmach wraz ze wzrostem wielkości problemu np. więcej figur do ustawienia, albo więcej do ustawienia na większej planszy.