I am learning about game trees(Chess) and was wondering if alpha beta pruning is based on the assumption that the two players playing are 'perfect players'. What happens if a human who is not perfect plays, and makes a bad move? How does alpha beta pruning work when the opponent does not always choose the best move.
Alpha Beta Pruning Assumptions
557 Views Asked by lord12 At
1
There are 1 best solutions below
Related Questions in ALGORITHM
- MCNP 6 - Doubts about cells
- Given partially sorted array of type x<y => first apperance of x comes before first of y, sort in average O(n)
- What is the algorithm behind math.gcd and why it is faster Euclidean algorithm?
- Purpose of last 2 while loops in the merge algorithm of merge sort sorting technique
- Dots and Boxes with apha-beta pruning
- What is the average and worst-case time complexity of my string searching algorithm?
- Building a School Schedule Generator
- TC problem 5-2:how to calculate the probability of the indicator random variable?
- LCA of a binary tree implemented in Python
- Identify the checksum algorithm
- Algorithm for finding a subset of nodes in a weighted connected graph such that the distance between any pair nodes are under a postive number?
- Creating an efficent and time-saving algorithm to find difference between greater than and lesser than combination
- Algorithm to find neighbours of point by distance with no repeats
- Asking code suggestions about data structure and algorithm
- Heap sort with multithreading
Related Questions in CHESS
- chess endgame engine in Python doesn't work perfectly
- C++ program interacting with chess engine doesn't output without Sleep(8000)
- Why augmented_corners is not defined
- How to pull specific characters out of a string in R?
- Magic BitBoard C Chess Programming Question
- Is there a way to easily generate a chessboard with working button in React?
- Is hashing with string keys slower than hashing with number keys? (C#)
- How to space text printed in the python console?
- chess endgame: a problem with propagation upwards for a fully optimal game
- Chess engine performance/blunder issue after implementing transposition table in C#
- Chess.js How to access the various fields in .moves({ verbose: true})
- The Python code I created using Python and Tensorflow does not work as I want
- Python x Math: Find the expected number of moves of a rock to move from one corner to another
- python-chess stockfish analysis died unexpectedly
- How does Threefold Repetition get handeled with the Universal Chess Interface?
Related Questions in ALPHA-BETA-PRUNING
- Dots and Boxes with apha-beta pruning
- Monte Carlo simulation - implementing the uct select function
- I'm trying to test my minimax algorithm with alpha beta pruning. I want it to be able to beat a game of connect4. It's unfairly biasing one player
- MCTS backpropagation with alpha-beta estimation
- Is it necessary to have an optimal action at node R to prune a branch in alpha beta pruning?
- Some logical error in alpha beta pruning function
- Alpha-Beta Pruning Minimax Algorithm Not Providing Correct Optimal Move in Tic-Tac-Toe AI
- why does this minimax algorithm output the same moves every time no matter what?
- How to test implementation of alpha beta pruning?
- MiniMax Search with Alpha Beta Error with Timing of Resetting Board
- Move Ordering Not Significantly Improving Minimax Efficiency
- Make Minimax return Move and Number
- Python chess search function: pop from empty list
- What is wrong with my transition table in my negamax implementation?
- Minimax algorithm for tic tac toe doesnt give optimal solution
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Every time you have a position, it can be considered to be the root of the analyze tree. Alpha-beta pruning has the philosophy of assuming that the opponent plays perfect chess, because if the opponent makes mistakes, then naturally, the situation will be better for the computer. Therefore, the classic alpha-beta pruning assumes that the opponent is perfect and whenever something unexpected occurs, like
the algorithm reconsiders the position. Classic alpha-beta pruning calculates the position again and again each time a move occurred, but naturally, there can be serious improvements:
You can carry over a descending list of attractive moves to the next move and if the opponent makes the expected move, you calculate the most attractive variations first, note, that chess games are played using time for each player and we should avoid time trouble.
While the opponent is thinking you can build up your best scenarios in the second, third and so on most attractive variations
Chess is actually a VERY complicated game. Alpha-beta pruning is only giving you assumptions, it is not able to determine the best move. As a computer, you can adjust aggression by calculating the tactical wildness (number of forks, skewers and so on) in a variation and using a weight you can add "personality" by adjusting the aggression. Also, you can adjust trickiness, that is, the probability that the computer will choose slightly worse moves to complicate things and make it harder for the opponent.
You can adjust time and depth strategies.
and many more things, but I will not describe them here, because I do not want to quickly acquire many down-votes due to sharing too many details and boring people :)