# Questions tagged [minimax]

Minimax is a kind of backtracking algorithm that is used in decision making and game theory to find the optimal move for a player, assuming that your opponent also plays optimally. It is widely used in two player turn-based games such as Tic-Tac-Toe, Backgammon, Mancala, Chess, etc.

20 questions
Filter by
Sorted by
Tagged with
1 vote
56 views

### Negamax A/B pruning rate. Move ordering

I have a typical negamax with a/b pruning setup and thoroughly checked line by line. What is expected cutoff rate normally? Kind of surprisingly, in my case cutoff rate is rarely greater than 5%. Is ...
1 vote
437 views

### Why is futility pruning causing an Elo drop in my engine?

I'm getting weird results when introducing futility pruning into Blunder. On the one hand, I'm getting a pretty sizeable reduction in nodes, and I'm searching a full ply deeper for some positions (e.g....
1 vote
85 views

### Why is my negamax/quiescence search slow?

I'm currently making a chess engine in Java and my search function is extremely slow to the point that it's slower than my perft function. My search function is currently a negamax search that uses ...
389 views

### How to implement Zobrist tables?

I am making a chess engine and trying to implement Zobrist tables into my engine. From what I've read, my understanding is that you first calculate the Zobrist hashcode, then get the modulo of the ...
3k views

### Minimax with alpha-beta pruning for chess

I am creating a chess AI using the minimax method with alpha-beta pruning. I am trying to understand how the alpha-beta pruning works, but I can't get my head around it when it comes to chess where ...
565 views

### Minimax check(mate) detection

in my minimax function I have a first few lines looking something like this: children = board.get_all_possible_moves(board) if depth = 0 or board.is_check_mate or board.is_draw: return None, ...
1 vote
202 views

### Can someone spot the issue with my search + evaluation?

I am working on a chess engine and believe I'm using my evaluation function in Negamax and Minimax with alpha beta pruning wrong. A couple days ago, I implemented Negamax with alpha beta pruning and ...
1 vote
1k views

### How do I implement UCI in my Python chess engine?

I have developed a chess engine in Python with negamax, alpha beta and piece square table. I want to "compile" my code into a UCI compatible one so I can load it to Arena GUI, but I have no ...
539 views

### My Transposition Tables implementation slows down Alpha Beta Pruning

I have this implementation of alpha beta pruning I made a couple days ago. I've been trying to look into transposition tables. When I tried this implementation it was slower than the original code. I ...
1 vote
733 views

### Why is my chess engine that uses minimax with alpha-beta pruning so slow, even at depth 3?

I have little experience with any sort of chess AI and am at a complete loss as to why it still takes a couple of seconds to calculate a decent move even at just depth 3. Here is the code: private ...
2k views

### Is it normal for a chess engine to blunder material if its evaluation is only based on naive material evaluation?

For the past couple of weeks, I've been making a chess engine, and right now I'm working on creating its search and evaluation phases. To start off with, I made the evaluation phase a simple count of ...
1 vote
223 views

### How to avoid the same opening move in an engine built using Python chess

I created a chess engine using the Python chess library. It has an evaluation function (piece values, piece square values, and capture values) and minimax. Alpha-beta pruning is also implemented. At ...
1 vote
324 views

### Relation between Elo and search depth for basic minimax

If we use the most basic approach to a chess engine (for example, for a codegolf): minimax to a fixed depth with the material count as static evaluation, then how strong is this algorithm? This of ...
2k views

### How can I increase the search ply depth of my minimax function for my chess engine?

I have programmed a minimax function with alpha-beta pruning for a chess engine I am building. However, it is very slow and I cannot analyze to a deeper depth as it would take too much time. I believe ...
669 views

### The most efficient valid move generation for minimax

Problem I am creating a chess engine in Python using Minimax algorithm (with alpha/beta pruning) but I have some issues with performance. Currently the thinking time looks something like this for a ...
988 views

### Chess Position Trainer on Linux or Minimax on Linux

Chess Position Trainer allows you to do leaf node evaluation and then minimax the results after that. Is it possible to install Chess Position Trainer on Linux? (I tried under mine, but couldn't), or ...
2k views

### How can minimax chess engines do alpha-beta pruning without reaching the final positions?

In order to calculate far ahead, minimax chess engines must perform alpha-beta pruning, where they don't calculate positions that are obviously winning or obviously losing. Without doing pruning, ...
1k views

### Speed of minimax with alpha beta pruning in chess engines

Can a minimax function with just alpha beta pruning really evaluate 1.8 billion chess positions (3 ply = 356) in just a second? My chess engine, which uses minimax with only alpha beta pruning, takes ...