|
3 tháng trước cách đây | |
---|---|---|
Connect4 | 3 tháng trước cách đây | |
README_files | 3 tháng trước cách đây | |
.gitignore | 4 tháng trước cách đây | |
Connect4Minimax.cs | 3 tháng trước cách đây | |
Extensions.cs | 3 tháng trước cách đây | |
MinMaxAB.csproj | 4 tháng trước cách đây | |
MinMaxAB.sln | 4 tháng trước cách đây | |
Program.cs | 4 tháng trước cách đây | |
README.md | 3 tháng trước cách đây |
При игре с алгоритмом Ярика всегда играет в ничью.
Использует параллельные вычисления на всех доступных ядрах процессора для ускорения вычислений, благодаря чему является самой быстрой реализацией среди двух групп (даже быстрее Ярика).
Для достижения параллелизации использована система "параллельных вселенных", где каждая вселенная (параллельная итерация) представлена отдельной копией игровой доски.
Множество копий игровой доски приводит к повышенному потреблению оперативной памяти (до 200 КБ) в угоду значительно меньшему времени работы алгоритма, что позволяет алгоритму быстро выдавать результаты на больших глубинах (~800 мс при глубине 9, ~5 сек на глубине 11, ~30 сек на глубине 12):
Использует максимально оптимизированные операции и подходы, среди них:
[][]
вместо [,]
, работает значительно быстрее в контексте задачи);Программа работает с удобным консольным интерфейсом, отображающим текущую доску в виде таблицы и описывающим ход ИИ и время поиска этого хода.