Kiedy dochodzimy do sprzeczności, backjumping może nam powiedzieć, jak daleko należy wykonać kopię zapasową, więc nie tracimy czasu na zmianę zmiennych, które nie rozwiążą problemu. Ale chcielibyśmy również uniknąć ponownego napotkania tego samego problemu. Kiedy wyszukiwanie dochodzi do sprzeczności, wiemy, że jakiś podzbiór zbioru konfliktów jest odpowiedzialny za problem. Uczenie się z ograniczeniami polega na znalezieniu minimalnego zestawu zmiennych ze zbioru konfliktu, który powoduje problem. Ten zestaw zmiennych, wraz z odpowiadającymi im wartościami, nazywany jest niedobrą. Następnie rejestrujemy niedobrze, albo dodając nowe ograniczenie do dostawcy usług Kryptograficznych, aby zabronić tej kombinacji przydziałów, albo przechowując osobną pamięć podręczną niedobrów.
Rozważmy na przykład stan {WA = czerwony, NT = zielony, Q = niebieski} w dolnym wierszu rysunku. Sprawdzanie w przód może nam powiedzieć, że ten stan jest zły, ponieważ nie ma prawidłowego przypisania do SA . W tym konkretnym przypadku nagranie tego, co nie jest dobre, nic by nie pomogło, ponieważ gdy usuniemy tę gałąź z drzewa wyszukiwania, nigdy więcej nie spotkamy tej kombinacji. Załóżmy jednak, że drzewo poszukiwań na rysunku 6.6 było w rzeczywistości częścią większego drzewa poszukiwań, które rozpoczęło się od przypisania wartości V i T . Wtedy warto byłoby odnotować {WA = czerwony, NT = zielony, Q = niebieski} jako niedobry, ponieważ ponownie napotkamy ten sam problem dla każdego możliwego zestawu przypisań do V i T . Brak towarów może być skutecznie wykorzystany przez sprawdzanie w przód lub przez backjumping. Uczenie się z ograniczeniami jest jedną z najważniejszych technik stosowanych przez współczesnych rozwiązujących CSP w celu osiągnięcia wydajności w przypadku złożonych problemów.