-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
adversarial_search_fall_2021 #10
base: master
Are you sure you want to change the base?
Changes from 23 commits
9debf4d
82dca8a
1060d86
7fec1fa
ee05b02
9c2932b
b057f5f
4135891
b040650
6a657cd
3e55e00
5608168
f1a852a
1f89db5
594ec02
ecca3b5
c66f7be
4207d73
84ff450
f7f9307
84742bc
94dc1fc
7979b87
8bb4eb5
dc57c75
449bc7b
528909f
096056c
515d8d9
7087e98
a8c417e
827f5f4
962092b
9288c05
26ba2c1
578d948
057cd3a
e80f1e8
906afd5
5584980
6abd4a8
b6dbfc9
66176b1
d7610d0
933cc87
4d0ac79
5a176f7
88d9bac
954482a
8dc4c27
74441c0
1dedaf3
85845d5
51b4a64
13bc545
743c1d5
7e59b02
c515ddf
dfe7de0
b9279a2
79588d1
4cf50bd
529897f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
{ | ||
"cells": [ | ||
{ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add table of contents! |
||
"cell_type": "markdown", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. try to add pictures if possible |
||
"metadata": {}, | ||
"source": [ | ||
"# Introduction\n", | ||
"### The concept of adversarial search and an introduction to Game Theory\n", | ||
"In previous lectures, we discussed situations in which we had only a single agent. We didn't consider other parameters affecting our environment but in this chapter, a new type of search is introduced which is called **Adversarial Search**. In adversarial search, we define our problem in a multi-agent context. For instance, while playing a game, our agent has to consider the other agent's moves (adversarial moves) to play in an efficient way. Even in some games we can define a winning stategy which means we can guarantee that in every state of our game, no matter how bad it is, our agent is able to win the game.\n", | ||
"To gather more information about the concept of adversarial search, visit <a href=\"https://www.techslang.com/definition/what-is-adversarial-search/\">this link</a>." | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"# Game Theory Explanation\n", | ||
"Briefly, Game Theory is designing the strategies and the steps of our player to interact in the best way, according to the rival's steps and strategies. In other words, Game theory is the study of mathematical models of strategic interactions among rational decision-makers. To know the game theory better, you can stop by <a href=\"https://en.wikipedia.org/wiki/Game_theory\">here</a>.\n", | ||
"To achieve this goal, we need to express our game and its rules and actions in a mathematical form. The common model used to represent games is the model below:\n", | ||
"<ul>\n", | ||
" <li>States of the game: $S_i$, starting with $S_0$</li>\n", | ||
"Which means how the game will look after each action of competitors.\n", | ||
" <li>Players: P = {1,2,...,n}</li>\n", | ||
"represents number of agents playing the game which varies from 1 to n.\n", | ||
" <li>Actions: $A_i$</li>\n", | ||
"In every state, each player has a set of legitimate moves to change that state to another state by playing its turn.\n", | ||
" <li>Transition functions: S x A -> S</li>\n", | ||
"Transition function is a function which takes a state S, and does the action A to that state, and returns another state which is built as a consequence of that action.\n", | ||
" <li>Terminal tests: S -> {True, False}</li>\n", | ||
"It is a boolean function which determines whether our game has reached a final state or not.\n", | ||
" <li>Terminal utilities: S ✕ P -> R </li>\n", | ||
"It takes a state S, and a player P, and returns a Real number which indicates the score of the player P (The utility of the P, to be more precise) till that moment.\n", | ||
" <li> Policy/Strategy: S -> A </li>\n", | ||
"The Policy is the strategy defined by our AI program. It takes a state S, and according to the program, does action A which is the best action for that situation. \n", | ||
"</ul>" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"## Resource Limits\n", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. try to make a stronger connection between different parts, for example don't jump into minimax without any preparation, make a strong structure |
||
"Although the minimax algorithm would be proper for problems with relatively small state space, it isn't an efficient and feasible one for problems with more complicated and larger state space. Since the number of game states it has to examine is exponential in the depth of the tree.\n", | ||
"\n", | ||
"Consider a _reasonable_ chess game with $b \\approx 35$ and $m \\approx 100$ . Due to the time complexity of this algorithm which is $O(b^m)$, solving the game is not possible at all. We'll discuss some ideas to solve the problem in details below." | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"### Depth-limited search\n", | ||
"One idea might be running the algorithm up to a specified depth instead of the searching the whole tree which(_depth-limited search_).\n", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. review your english grammar (one example is instead of the searching the whole tree) |
||
"\n", | ||
"![hello](1.jpg)" | ||
] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. add conclusion (or summary) and references There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. my mistake. |
||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. a "other useful links" section can be useful |
||
], | ||
"metadata": { | ||
"kernelspec": { | ||
"display_name": "Python 3", | ||
"language": "python", | ||
"name": "python3" | ||
}, | ||
"language_info": { | ||
"codemirror_mode": { | ||
"name": "ipython", | ||
"version": 3 | ||
}, | ||
"file_extension": ".py", | ||
"mimetype": "text/x-python", | ||
"name": "python", | ||
"nbconvert_exporter": "python", | ||
"pygments_lexer": "ipython3", | ||
"version": "3.7.5" | ||
} | ||
}, | ||
"nbformat": 4, | ||
"nbformat_minor": 2 | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
your file should be .md and not .ipynb