Logo projektu

Sudoku Solver

Projekt Sudoku Solver to rozwiązywacz Sudoku modelujący łamigłówkę jako problem kolorowania grafu. Pomysł wziął się od mojego taty — fana Sudoku — który zaraził mnie tą łamigłówką. Zaimplementowałam trzy warianty: sekwencyjny w C++, równoległy z OpenMP oraz GPU z CUDA (1 blok = 1 plansza), co pozwoliło rzetelnie porównać skalowanie i czasy działania. Rdzeniem jest heurystyczny algorytm genetyczny (inicjalizacja populacji, selekcja, krzyżowanie, mutacja), przy czym w wersji CUDA najkosztowniejszą mutację przeniosłam na GPU, a funkcja fitness zlicza konflikty w grafie. Dodatkowo przygotowałam generator plansz z kontrolą liczby pustych pól i gwarancją jednoznaczności rozwiązania (TXT) oraz lekkie GUI w Pythonie do wizualizacji wejścia/wyjścia i porównań. Testy automatyczne (config.json) mierzą czasy dla SEQ/OMP/CUDA i zapisują wyniki — dla 9×9 najszybszy bywa OpenMP, a CUDA zyskuje przewagę przy większych planszach (16×16, 25×25).

Użyte technologie

  • C++ – implementacja wersji sekwencyjnej
  • CUDA & OpenMP – przyspieszenie działania przez równoleglenie obliczeń
  • Python (Tkinter) – graficzny interfejs użytkownika

Github

Pobierz sprawozdanie z projektu

Galeria projektu

Obraz projektu