Projekt na uczelnię z przedmiotu Analiza Algorytmów.
Zadanie polega na ustawieniu drzewka turnieju szachowego tak, aby przy znanych z góry wynikach wszystkich możliwych partii, wygrał wybrany przez nas zawodnik. Liczba zawodników jest równa 2^n.
- Tryb testowy ręczny Użytkownik ręcznie wprowadza dane wejściowe Sluży do ręcznego testowania poprawności
- Tryb automatyczny Automatycznie generowana jest instancja problemu o zadanej wielkości Możliwe wylosowanie wygrywającego zawodnika
- Tryb automatyczny z pomiarem czasu wykonania Automatyczne generowane są instancje problemu od wielkości 1 do zadanej maksymalnej wielkości Dla każdej instancji problemu wygrywający zawodnik jest losowany Słuzy do pomiaru efektywności algorytmu
- Algorytm brute-force przeszukujący w pesymistycznym przypadku całą przestrzeń możliwych rozwiązań
- Algorytm brute-force z punktu 1. wsparty sortowaniem graczy według ilości wygranych przez nich partii
- Wektor Graczy, przy czym każdy Gracz ma wektor oponentów, z którymi wygrywa i wektor oponentów, z którymi przegrywa
- Drzewo, w którym zapisywane jest rozwiązanie. Każdy węzeł drzewa reprezentuje rozgrywaną partię w turnieju. Węzeł przechowuje informację o 2 Graczach w danej partii.
- main.cpp - główna funkcja programu, wywołania odpowiednich funkcji z innych klas
- Interface.h i Interface.cpp - zawiera klasę Interface, która wywołuje metody klasy wykonującej algorytm (GameTree) i wyśiwietlająca wyniki
- GameTree.h i GameTree.cpp - zawiera klasę GameTree, która zajmuje się przechowywaniem wektora Graczy i obsługą algorytmów rozwiązujących problem
- Player.h i Player,cpp - zawiera klasę Player, która jest reprezentacją pojedynczego Gracza
- DataGenerator.h i DataGenerator.cpp - zawiera klasę DataGenerator, która zajmuje się generowaniem danych dla klasy GameTree