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
555 Views Asked by lord12 At
1
There are 1 best solutions below
Related Questions in ALGORITHM
- Two different numbers in an array which their sum equals to a given value
- Given two arrays of positive numbers, re-arrange them to form a resulting array, resulting array contains the elements in the same given sequence
- Time complexity of the algorithm?
- Find a MST in O(V+E) Time in a Graph
- Why k and l for LSH used for approximate nearest neighbours?
- How to count the number of ways of choosing of k equal substrings from a List L(the list of All Substrings)
- Issues with reversing the linkedlist
- Finding first non-repeating number in integer array
- Finding average of an array
- How to check for duplicates with less time in a list over 9000 elements by python
- How to pick a number based on probability?
- Insertion Sort help in javascript -- Khan Academy
- Developing a Checkers (Draughts) engine, how to begin?
- Can Bellman-Ford algorithm be used to find shorthest path on a graph with only positive edges?
- What is the function for the KMP Failure Algorithm?
Related Questions in CHESS
- Eight Queens Puzzle in CLIPS
- Chess Engine TypeError: unhashable type: 'list'
- Making a chess game in Java, I want to move the pieces
- Are recursive computations with Apache Spark RDD possible?
- What is the maximum strength of a chess engine with a board representation using an 8 by 8 array?
- Get enemy's possible moves in chess to a 2D array - Python
- Collection View Cell Loading time
- telnetlib for python, how telnetlib can help me to figure out who is the person sending a tell to my BOT?
- friend declaration specifying a default argument must be a definition error
- N-Queens puzzle, but with all chess pieces
- Chess Validation Move input wanted
- How to put .gif files in the build directory
- Using a for-each loop within MouseClicked to getX and getY of each object
- C++ Builder - Piece.cpp(20): E2316 'Button1Click' is not a member of 'TForm'
- C++ Builder - Using same Event TWICE
Related Questions in ALPHA-BETA-PRUNING
- How this evaluation function work in a Connect 4 game? (Java)
- what is wrong with my minmax with alpha beta pruning?
- Alpha-beta pruning in python
- How to use the alphabeta pruning for connect four like game
- Function does not return negative value
- alpha/beta pruning, from which perspective should the evaluation be performed?
- Implementing Alpha Beta into Minimax
- Problem implementing alpha-beta pruning for chess engine
- What is Alpha beta pruning? How to draw game Values From State?
- Type of tree for Alpha-Beta Pruning
- How to stop alpha-beta with a timer in iterative deepening
- Depth limited alpha-beta in prolog
- prolog alpha-beta unexpected results
- Parallelizing checkers game tree generation and searching using MPI
- Alpha beta pruning in Checkers (test cases to prove the efficiency)
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 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 :)