Transcript EAs appns
Tetris – Genetic Algorithm
Presented by ,
Jeethan & Jun
Introduction
Evolutionary Algorithm
A commonly used method by which solutions to problems that
might otherwise be impossible to solve are solved.
Usually be used to find the near-optimal solution for the
problems which have many candidate solutions by using the
evolutionary principles and methods.
Can also be used to tackle problems that humans don't really
know how to solve.
Widely used with other algorithms in engineering and other
fields.
Tetris Game
Overview
•
•
•
•
•
•
Tetris is a computer game invented by Alexey Pajitnov in 1985.
Then it was widely played on many other devices such as game consoles.
The game is played on a game-board , usually with a width of 10 and height of
20.
There are seven distinct Tetrominoes , each of which occupies four grid cells
of the game board.
The Tetrominoes move downwards with a certain speed while the player can
rotate them and move them horizontally.
One Tetrominoes stops moving as soon as it hits the ground or previously
placed Tetrominoes.
Each fully occupied horizontal line in the game-board is removed and all
blocks above slip down by one line.
The game ends as soon as a new tetrominoes cannot enter the board.
GOAL - The player has to clear as many lines as possible before the board is filled.
Types of Tetrominoes
Rules
Blocks of four (tetrominoes) falling from the top of
the board. The player moves and rotates the blocks
and stacks them up:
Rules
black outline is one of the places you can put the
shaped block.
Tetris AI - Outline
How to design using AI ?
Using Genetic Algorithm - Determine which positions
are good and which are bad
The AI is going to go through each position and
choose the best possible one.
Strategies
Avoid Penalize height since when all the blocks are
stacked up to the top, you lose:
Strategies
Penalize holes
Blockades
Algorithm for Tetris
Step 1 : Look at the current block and the next block
and simulate ALL possible combinations (positions and
rotations) of the two blocks.
Step 2: Calculate a score for each of the positions.
Step 3: Move the block to the position with the highest
score and repeat.
To get a score for a position :
Score = A * Sum of Heights
+ B * Number of Clears
+ C * Number of Holes
+ D * Number of Blockades
For each edge touching , another block
the wall
the floor
Implementing genetic algorithm
Charles Darwin specifies four criteria for the process of
natural selection to occur:
Variation: Organisms in a population must be slightly
different from one another.
Inheritance: Traits of parent organisms must be passed
onto their offspring.
Limited space: Only some of the offspring in any
generation is able to survive and pass on its genes.
Competition: Individuals that are more fit are more likely to
pass on their genes to the next generation.
Factors influencing Natural selection
process
1.
A chromosome which expresses a possible solution to
the problem as a string.
( since there are a set of seven weights ,chromosome is an
array of seven doubles )
2. A fitness function which takes a chromosome as input and
returns a higher value for better solutions .
Fitness Function
The fitness function – the score is just the number of
lines the AI runs for before it dies.
Scoring system :
Nintendo’s original scoring system for Tetris — 40
points for one clear, 120 points for
two simultaneous clears, 300 for three simultaneous
clears, and 1200 for four simultaneous clears.
3. A population which is just a set of many
chromosomes
(sixteen chromosomes ; Initially the chromosomes are
filled with randomly generated numbers . Each
generation onwards, the population’s chromosomes
are derived from the best candidates of the previous
generation — but the population size stays the same)
Selection Method
Tournament selection:
Crossover & Mutation
A crossover operation which determines how parents
combine to produce offspring
• Cross over is a process of taking more than one parent
solutions and producing a child solution from them
A mutation operation which determines how random
deviations manifest themselves
(We have a 10% chance of a mutation – a chromosome that is
different from either parent’s)
Demo
https://www.youtube.com/watch?v=Q0n1cvNLd04
https://www.youtube.com/watch?v=WL8hehlRxq0
Conclusion
• Using Genetic Algorithm we can find the local optimum
solution quickly but its very hard to achieve the global
optimum solution – The best solution.
• Suggestion for better performance:
• Adjusting mutation rates with generations
• Instead of a simple weighted approach, add an
intermediary intelligent system and optimize that system.
• E.g. weights of a neural network or parameters of a
fuzzy logic system.