Tic-Tac-Toe
source("./tic_tac_toe.R")
using ‘game()’:
value_table <- initialize_state_value(NA)
game(verbose = T)
## [,1] [,2] [,3]
## [1,] "--" "--" "--"
## [2,] "--" "--" "--"
## [3,] "--" "--" "--"
## [,1] [,2] [,3]
## [1,] "X" "--" "--"
## [2,] "--" "--" "O"
## [3,] "--" "--" "--"
## [,1] [,2] [,3]
## [1,] "X" "--" "--"
## [2,] "X" "--" "O"
## [3,] "--" "O" "--"
## [,1] [,2] [,3]
## [1,] "X" "O" "--"
## [2,] "X" "--" "O"
## [3,] "X" "O" "--"
## [1] 1
using ‘run()’
result_run <- run(40, 100, eps = 0.01, alpha = 0.5)
## [1] 0.62
## [1] 0.57
## [1] 0.71
## [1] 0.62
## [1] 0.66
## [1] 0.7
## [1] 0.63
## [1] 0.77
## [1] 0.82
## [1] 0.71
## [1] 0.75
## [1] 0.74
## [1] 0.71
## [1] 0.77
## [1] 0.76
## [1] 0.77
## [1] 0.79
## [1] 0.72
## [1] 0.74
## [1] 0.83
## [1] 0.79
## [1] 0.73
## [1] 0.79
## [1] 0.82
## [1] 0.74
## [1] 0.79
## [1] 0.69
## [1] 0.68
## [1] 0.76
## [1] 0.76
## [1] 0.74
## [1] 0.76
## [1] 0.77
## [1] 0.83
## [1] 0.79
## [1] 0.76
## [1] 0.77
## [1] 0.8
## [1] 0.79
## [1] 0.82
plot(result_run, type = "l")
using ‘runs()’
result_runs <- runs(10, 100, 100, eps = 0.01, alpha = 0.5)
## [1] 0.54
## [1] 0.69
## [1] 0.62
## [1] 0.59
## [1] 0.69
## [1] 0.61
## [1] 0.71
## [1] 0.77
## [1] 0.72
## [1] 0.66
## [1] 0.72
## [1] 0.72
## [1] 0.77
## [1] 0.81
## [1] 0.79
## [1] 0.81
## [1] 0.76
## [1] 0.78
## [1] 0.82
## [1] 0.82
## [1] 0.77
## [1] 0.68
## [1] 0.75
## [1] 0.81
## [1] 0.86
## [1] 0.67
## [1] 0.76
## [1] 0.83
## [1] 0.77
## [1] 0.78
## [1] 0.8
## [1] 0.72
## [1] 0.84
## [1] 0.8
## [1] 0.82
## [1] 0.77
## [1] 0.8
## [1] 0.84
## [1] 0.81
## [1] 0.93
## [1] 0.79
## [1] 0.79
## [1] 0.8
## [1] 0.81
## [1] 0.84
## [1] 0.86
## [1] 0.81
## [1] 0.79
## [1] 0.79
## [1] 0.86
## [1] 0.83
## [1] 0.81
## [1] 0.77
## [1] 0.73
## [1] 0.76
## [1] 0.76
## [1] 0.8
## [1] 0.77
## [1] 0.85
## [1] 0.81
## [1] 0.84
## [1] 0.82
## [1] 0.72
## [1] 0.78
## [1] 0.87
## [1] 0.8
## [1] 0.81
## [1] 0.75
## [1] 0.85
## [1] 0.81
## [1] 0.8
## [1] 0.84
## [1] 0.86
## [1] 0.81
## [1] 0.8
## [1] 0.74
## [1] 0.89
## [1] 0.74
## [1] 0.88
## [1] 0.78
## [1] 0.9
## [1] 0.85
## [1] 0.78
## [1] 0.86
## [1] 0.87
## [1] 0.83
## [1] 0.83
## [1] 0.88
## [1] 0.87
## [1] 0.88
## [1] 0.85
## [1] 0.78
## [1] 0.76
## [1] 0.92
## [1] 0.82
## [1] 0.86
## [1] 0.82
## [1] 0.79
## [1] 0.89
## [1] 0.87
## [1] 0.56
## [1] 0.57
## [1] 0.65
## [1] 0.65
## [1] 0.66
## [1] 0.63
## [1] 0.72
## [1] 0.74
## [1] 0.73
## [1] 0.74
## [1] 0.79
## [1] 0.73
## [1] 0.75
## [1] 0.8
## [1] 0.74
## [1] 0.77
## [1] 0.83
## [1] 0.8
## [1] 0.81
## [1] 0.78
## [1] 0.79
## [1] 0.73
## [1] 0.84
## [1] 0.83
## [1] 0.74
## [1] 0.8
## [1] 0.82
## [1] 0.8
## [1] 0.74
## [1] 0.76
## [1] 0.68
## [1] 0.73
## [1] 0.77
## [1] 0.72
## [1] 0.71
## [1] 0.77
## [1] 0.74
## [1] 0.8
## [1] 0.68
## [1] 0.85
## [1] 0.8
## [1] 0.78
## [1] 0.86
## [1] 0.75
## [1] 0.83
## [1] 0.76
## [1] 0.84
## [1] 0.76
## [1] 0.84
## [1] 0.82
## [1] 0.76
## [1] 0.76
## [1] 0.81
## [1] 0.78
## [1] 0.84
## [1] 0.82
## [1] 0.79
## [1] 0.87
## [1] 0.81
## [1] 0.82
## [1] 0.87
## [1] 0.82
## [1] 0.82
## [1] 0.77
## [1] 0.81
## [1] 0.87
## [1] 0.9
## [1] 0.88
## [1] 0.77
## [1] 0.79
## [1] 0.91
## [1] 0.9
## [1] 0.8
## [1] 0.84
## [1] 0.74
## [1] 0.85
## [1] 0.94
## [1] 0.88
## [1] 0.85
## [1] 0.8
## [1] 0.85
## [1] 0.89
## [1] 0.87
## [1] 0.83
## [1] 0.91
## [1] 0.9
## [1] 0.85
## [1] 0.87
## [1] 0.9
## [1] 0.8
## [1] 0.89
## [1] 0.9
## [1] 0.89
## [1] 0.84
## [1] 0.79
## [1] 0.84
## [1] 0.83
## [1] 0.87
## [1] 0.81
## [1] 0.93
## [1] 0.59
## [1] 0.62
## [1] 0.72
## [1] 0.68
## [1] 0.72
## [1] 0.73
## [1] 0.7
## [1] 0.72
## [1] 0.72
## [1] 0.83
## [1] 0.78
## [1] 0.71
## [1] 0.72
## [1] 0.81
## [1] 0.77
## [1] 0.82
## [1] 0.75
## [1] 0.75
## [1] 0.76
## [1] 0.84
## [1] 0.83
## [1] 0.81
## [1] 0.8
## [1] 0.86
## [1] 0.84
## [1] 0.82
## [1] 0.79
## [1] 0.76
## [1] 0.72
## [1] 0.87
## [1] 0.76
## [1] 0.75
## [1] 0.82
## [1] 0.78
## [1] 0.78
## [1] 0.77
## [1] 0.7
## [1] 0.8
## [1] 0.73
## [1] 0.75
## [1] 0.74
## [1] 0.7
## [1] 0.71
## [1] 0.71
## [1] 0.67
## [1] 0.8
## [1] 0.85
## [1] 0.83
## [1] 0.82
## [1] 0.82
## [1] 0.77
## [1] 0.81
## [1] 0.8
## [1] 0.8
## [1] 0.85
## [1] 0.79
## [1] 0.82
## [1] 0.78
## [1] 0.81
## [1] 0.75
## [1] 0.82
## [1] 0.75
## [1] 0.83
## [1] 0.83
## [1] 0.84
## [1] 0.81
## [1] 0.9
## [1] 0.92
## [1] 0.85
## [1] 0.83
## [1] 0.88
## [1] 0.84
## [1] 0.82
## [1] 0.78
## [1] 0.87
## [1] 0.88
## [1] 0.92
## [1] 0.84
## [1] 0.87
## [1] 0.8
## [1] 0.85
## [1] 0.82
## [1] 0.86
## [1] 0.81
## [1] 0.9
## [1] 0.9
## [1] 0.92
## [1] 0.89
## [1] 0.89
## [1] 0.81
## [1] 0.92
## [1] 0.89
## [1] 0.84
## [1] 0.82
## [1] 0.88
## [1] 0.84
## [1] 0.83
## [1] 0.88
## [1] 0.88
## [1] 0.86
## [1] 0.56
## [1] 0.62
## [1] 0.71
## [1] 0.67
## [1] 0.71
## [1] 0.68
## [1] 0.78
## [1] 0.69
## [1] 0.76
## [1] 0.8
## [1] 0.75
## [1] 0.81
## [1] 0.77
## [1] 0.72
## [1] 0.77
## [1] 0.81
## [1] 0.71
## [1] 0.8
## [1] 0.73
## [1] 0.74
## [1] 0.73
## [1] 0.77
## [1] 0.78
## [1] 0.86
## [1] 0.79
## [1] 0.82
## [1] 0.78
## [1] 0.73
## [1] 0.73
## [1] 0.8
## [1] 0.65
## [1] 0.74
## [1] 0.83
## [1] 0.79
## [1] 0.8
## [1] 0.69
## [1] 0.81
## [1] 0.73
## [1] 0.79
## [1] 0.77
## [1] 0.79
## [1] 0.8
## [1] 0.82
## [1] 0.81
## [1] 0.79
## [1] 0.79
## [1] 0.83
## [1] 0.76
## [1] 0.75
## [1] 0.8
## [1] 0.89
## [1] 0.75
## [1] 0.81
## [1] 0.81
## [1] 0.84
## [1] 0.81
## [1] 0.78
## [1] 0.78
## [1] 0.85
## [1] 0.85
## [1] 0.79
## [1] 0.89
## [1] 0.75
## [1] 0.82
## [1] 0.76
## [1] 0.8
## [1] 0.86
## [1] 0.79
## [1] 0.81
## [1] 0.82
## [1] 0.83
## [1] 0.86
## [1] 0.88
## [1] 0.81
## [1] 0.9
## [1] 0.89
## [1] 0.85
## [1] 0.84
## [1] 0.92
## [1] 0.88
## [1] 0.83
## [1] 0.92
## [1] 0.79
## [1] 0.88
## [1] 0.92
## [1] 0.89
## [1] 0.89
## [1] 0.9
## [1] 0.85
## [1] 0.89
## [1] 0.89
## [1] 0.83
## [1] 0.78
## [1] 0.81
## [1] 0.88
## [1] 0.87
## [1] 0.84
## [1] 0.85
## [1] 0.92
## [1] 0.86
## [1] 0.6
## [1] 0.56
## [1] 0.59
## [1] 0.71
## [1] 0.67
## [1] 0.65
## [1] 0.65
## [1] 0.72
## [1] 0.72
## [1] 0.67
## [1] 0.78
## [1] 0.79
## [1] 0.77
## [1] 0.84
## [1] 0.77
## [1] 0.76
## [1] 0.79
## [1] 0.78
## [1] 0.75
## [1] 0.72
## [1] 0.8
## [1] 0.79
## [1] 0.86
## [1] 0.73
## [1] 0.78
## [1] 0.77
## [1] 0.73
## [1] 0.81
## [1] 0.81
## [1] 0.8
## [1] 0.83
## [1] 0.84
## [1] 0.8
## [1] 0.84
## [1] 0.8
## [1] 0.75
## [1] 0.79
## [1] 0.85
## [1] 0.78
## [1] 0.77
## [1] 0.85
## [1] 0.82
## [1] 0.88
## [1] 0.86
## [1] 0.84
## [1] 0.81
## [1] 0.8
## [1] 0.76
## [1] 0.8
## [1] 0.84
## [1] 0.81
## [1] 0.89
## [1] 0.88
## [1] 0.75
## [1] 0.78
## [1] 0.73
## [1] 0.73
## [1] 0.79
## [1] 0.76
## [1] 0.83
## [1] 0.86
## [1] 0.81
## [1] 0.78
## [1] 0.75
## [1] 0.75
## [1] 0.78
## [1] 0.83
## [1] 0.82
## [1] 0.79
## [1] 0.81
## [1] 0.84
## [1] 0.93
## [1] 0.9
## [1] 0.81
## [1] 0.82
## [1] 0.8
## [1] 0.84
## [1] 0.84
## [1] 0.82
## [1] 0.83
## [1] 0.75
## [1] 0.82
## [1] 0.81
## [1] 0.9
## [1] 0.85
## [1] 0.86
## [1] 0.89
## [1] 0.87
## [1] 0.85
## [1] 0.82
## [1] 0.85
## [1] 0.86
## [1] 0.85
## [1] 0.89
## [1] 0.86
## [1] 0.9
## [1] 0.88
## [1] 0.9
## [1] 0.91
## [1] 0.81
## [1] 0.55
## [1] 0.64
## [1] 0.63
## [1] 0.66
## [1] 0.71
## [1] 0.71
## [1] 0.69
## [1] 0.79
## [1] 0.77
## [1] 0.81
## [1] 0.72
## [1] 0.79
## [1] 0.78
## [1] 0.77
## [1] 0.77
## [1] 0.8
## [1] 0.7
## [1] 0.76
## [1] 0.86
## [1] 0.84
## [1] 0.88
## [1] 0.84
## [1] 0.84
## [1] 0.79
## [1] 0.85
## [1] 0.83
## [1] 0.8
## [1] 0.81
## [1] 0.77
## [1] 0.76
## [1] 0.76
## [1] 0.71
## [1] 0.77
## [1] 0.71
## [1] 0.73
## [1] 0.86
## [1] 0.78
## [1] 0.8
## [1] 0.81
## [1] 0.75
## [1] 0.82
## [1] 0.74
## [1] 0.83
## [1] 0.8
## [1] 0.82
## [1] 0.86
## [1] 0.79
## [1] 0.85
## [1] 0.81
## [1] 0.78
## [1] 0.83
## [1] 0.82
## [1] 0.81
## [1] 0.84
## [1] 0.84
## [1] 0.81
## [1] 0.82
## [1] 0.82
## [1] 0.85
## [1] 0.78
## [1] 0.77
## [1] 0.71
## [1] 0.81
## [1] 0.79
## [1] 0.86
## [1] 0.81
## [1] 0.86
## [1] 0.78
## [1] 0.85
## [1] 0.83
## [1] 0.85
## [1] 0.84
## [1] 0.86
## [1] 0.86
## [1] 0.86
## [1] 0.87
## [1] 0.9
## [1] 0.89
## [1] 0.86
## [1] 0.92
## [1] 0.85
## [1] 0.83
## [1] 0.91
## [1] 0.82
## [1] 0.89
## [1] 0.84
## [1] 0.85
## [1] 0.82
## [1] 0.8
## [1] 0.82
## [1] 0.85
## [1] 0.75
## [1] 0.84
## [1] 0.84
## [1] 0.87
## [1] 0.87
## [1] 0.87
## [1] 0.85
## [1] 0.91
## [1] 0.86
## [1] 0.61
## [1] 0.67
## [1] 0.66
## [1] 0.6
## [1] 0.67
## [1] 0.64
## [1] 0.84
## [1] 0.78
## [1] 0.76
## [1] 0.83
## [1] 0.7
## [1] 0.84
## [1] 0.85
## [1] 0.83
## [1] 0.78
## [1] 0.79
## [1] 0.81
## [1] 0.83
## [1] 0.83
## [1] 0.81
## [1] 0.81
## [1] 0.79
## [1] 0.83
## [1] 0.82
## [1] 0.78
## [1] 0.78
## [1] 0.87
## [1] 0.81
## [1] 0.81
## [1] 0.79
## [1] 0.8
## [1] 0.77
## [1] 0.85
## [1] 0.81
## [1] 0.88
## [1] 0.79
## [1] 0.81
## [1] 0.83
## [1] 0.83
## [1] 0.82
## [1] 0.78
## [1] 0.8
## [1] 0.79
## [1] 0.78
## [1] 0.8
## [1] 0.82
## [1] 0.89
## [1] 0.79
## [1] 0.92
## [1] 0.85
## [1] 0.85
## [1] 0.83
## [1] 0.82
## [1] 0.84
## [1] 0.83
## [1] 0.85
## [1] 0.87
## [1] 0.79
## [1] 0.87
## [1] 0.85
## [1] 0.87
## [1] 0.82
## [1] 0.88
## [1] 0.83
## [1] 0.93
## [1] 0.88
## [1] 0.84
## [1] 0.83
## [1] 0.86
## [1] 0.85
## [1] 0.83
## [1] 0.88
## [1] 0.88
## [1] 0.81
## [1] 0.88
## [1] 0.81
## [1] 0.82
## [1] 0.85
## [1] 0.86
## [1] 0.88
## [1] 0.8
## [1] 0.88
## [1] 0.82
## [1] 0.84
## [1] 0.83
## [1] 0.82
## [1] 0.86
## [1] 0.88
## [1] 0.84
## [1] 0.84
## [1] 0.87
## [1] 0.89
## [1] 0.83
## [1] 0.87
## [1] 0.8
## [1] 0.84
## [1] 0.74
## [1] 0.85
## [1] 0.85
## [1] 0.8
## [1] 0.59
## [1] 0.58
## [1] 0.66
## [1] 0.76
## [1] 0.72
## [1] 0.66
## [1] 0.77
## [1] 0.75
## [1] 0.79
## [1] 0.86
## [1] 0.72
## [1] 0.82
## [1] 0.77
## [1] 0.77
## [1] 0.78
## [1] 0.83
## [1] 0.88
## [1] 0.69
## [1] 0.66
## [1] 0.67
## [1] 0.76
## [1] 0.78
## [1] 0.78
## [1] 0.83
## [1] 0.78
## [1] 0.78
## [1] 0.76
## [1] 0.78
## [1] 0.82
## [1] 0.75
## [1] 0.67
## [1] 0.74
## [1] 0.74
## [1] 0.73
## [1] 0.81
## [1] 0.74
## [1] 0.83
## [1] 0.85
## [1] 0.77
## [1] 0.78
## [1] 0.76
## [1] 0.85
## [1] 0.82
## [1] 0.76
## [1] 0.71
## [1] 0.76
## [1] 0.73
## [1] 0.79
## [1] 0.78
## [1] 0.81
## [1] 0.77
## [1] 0.8
## [1] 0.72
## [1] 0.83
## [1] 0.82
## [1] 0.85
## [1] 0.85
## [1] 0.79
## [1] 0.81
## [1] 0.78
## [1] 0.73
## [1] 0.79
## [1] 0.75
## [1] 0.75
## [1] 0.82
## [1] 0.76
## [1] 0.78
## [1] 0.74
## [1] 0.73
## [1] 0.74
## [1] 0.87
## [1] 0.79
## [1] 0.82
## [1] 0.83
## [1] 0.83
## [1] 0.79
## [1] 0.82
## [1] 0.82
## [1] 0.81
## [1] 0.81
## [1] 0.85
## [1] 0.81
## [1] 0.79
## [1] 0.85
## [1] 0.79
## [1] 0.75
## [1] 0.87
## [1] 0.79
## [1] 0.78
## [1] 0.86
## [1] 0.87
## [1] 0.86
## [1] 0.88
## [1] 0.89
## [1] 0.88
## [1] 0.92
## [1] 0.86
## [1] 0.85
## [1] 0.83
## [1] 0.86
## [1] 0.57
## [1] 0.69
## [1] 0.66
## [1] 0.64
## [1] 0.58
## [1] 0.63
## [1] 0.58
## [1] 0.7
## [1] 0.69
## [1] 0.68
## [1] 0.74
## [1] 0.77
## [1] 0.78
## [1] 0.71
## [1] 0.78
## [1] 0.75
## [1] 0.77
## [1] 0.75
## [1] 0.78
## [1] 0.73
## [1] 0.77
## [1] 0.8
## [1] 0.8
## [1] 0.78
## [1] 0.84
## [1] 0.79
## [1] 0.77
## [1] 0.73
## [1] 0.7
## [1] 0.8
## [1] 0.73
## [1] 0.75
## [1] 0.82
## [1] 0.78
## [1] 0.81
## [1] 0.77
## [1] 0.78
## [1] 0.87
## [1] 0.76
## [1] 0.84
## [1] 0.77
## [1] 0.79
## [1] 0.82
## [1] 0.81
## [1] 0.87
## [1] 0.85
## [1] 0.8
## [1] 0.76
## [1] 0.83
## [1] 0.83
## [1] 0.84
## [1] 0.85
## [1] 0.78
## [1] 0.84
## [1] 0.82
## [1] 0.83
## [1] 0.85
## [1] 0.87
## [1] 0.84
## [1] 0.86
## [1] 0.89
## [1] 0.9
## [1] 0.87
## [1] 0.9
## [1] 0.82
## [1] 0.89
## [1] 0.8
## [1] 0.83
## [1] 0.88
## [1] 0.89
## [1] 0.77
## [1] 0.83
## [1] 0.86
## [1] 0.9
## [1] 0.89
## [1] 0.84
## [1] 0.8
## [1] 0.91
## [1] 0.88
## [1] 0.92
## [1] 0.94
## [1] 0.93
## [1] 0.92
## [1] 0.85
## [1] 0.86
## [1] 0.88
## [1] 0.9
## [1] 0.93
## [1] 0.85
## [1] 0.89
## [1] 0.9
## [1] 0.92
## [1] 0.87
## [1] 0.86
## [1] 0.87
## [1] 0.88
## [1] 0.84
## [1] 0.94
## [1] 0.89
## [1] 0.87
## [1] 0.6
## [1] 0.55
## [1] 0.59
## [1] 0.69
## [1] 0.74
## [1] 0.71
## [1] 0.66
## [1] 0.73
## [1] 0.77
## [1] 0.76
## [1] 0.77
## [1] 0.79
## [1] 0.75
## [1] 0.77
## [1] 0.84
## [1] 0.8
## [1] 0.77
## [1] 0.85
## [1] 0.76
## [1] 0.76
## [1] 0.76
## [1] 0.77
## [1] 0.77
## [1] 0.83
## [1] 0.81
## [1] 0.74
## [1] 0.8
## [1] 0.9
## [1] 0.85
## [1] 0.77
## [1] 0.83
## [1] 0.74
## [1] 0.71
## [1] 0.71
## [1] 0.71
## [1] 0.75
## [1] 0.75
## [1] 0.88
## [1] 0.77
## [1] 0.82
## [1] 0.8
## [1] 0.73
## [1] 0.84
## [1] 0.81
## [1] 0.9
## [1] 0.88
## [1] 0.89
## [1] 0.8
## [1] 0.84
## [1] 0.82
## [1] 0.88
## [1] 0.83
## [1] 0.87
## [1] 0.93
## [1] 0.85
## [1] 0.87
## [1] 0.77
## [1] 0.89
## [1] 0.84
## [1] 0.86
## [1] 0.87
## [1] 0.86
## [1] 0.88
## [1] 0.83
## [1] 0.87
## [1] 0.89
## [1] 0.83
## [1] 0.78
## [1] 0.85
## [1] 0.9
## [1] 0.77
## [1] 0.84
## [1] 0.9
## [1] 0.85
## [1] 0.91
## [1] 0.84
## [1] 0.84
## [1] 0.83
## [1] 0.87
## [1] 0.78
## [1] 0.79
## [1] 0.8
## [1] 0.86
## [1] 0.87
## [1] 0.81
## [1] 0.85
## [1] 0.9
## [1] 0.83
## [1] 0.85
## [1] 0.85
## [1] 0.88
## [1] 0.83
## [1] 0.86
## [1] 0.83
## [1] 0.83
## [1] 0.88
## [1] 0.84
## [1] 0.81
## [1] 0.86
## [1] 0.87
## [1] 0.577 0.619 0.649 0.665 0.687 0.665 0.710 0.739 0.743 0.764 0.747 0.777
## [13] 0.771 0.783 0.779 0.794 0.777 0.779 0.776 0.771 0.790 0.776 0.805 0.814
## [25] 0.807 0.780 0.788 0.796 0.772 0.788 0.751 0.749 0.795 0.767 0.785 0.766
## [37] 0.779 0.825 0.773 0.808 0.790 0.780 0.817 0.790 0.807 0.819 0.823 0.789
## [49] 0.818 0.823 0.823 0.815 0.807 0.815 0.823 0.812 0.808 0.815 0.829 0.819
## [61] 0.831 0.817 0.809 0.805 0.833 0.829 0.841 0.812 0.824 0.827 0.835 0.855
## [73] 0.858 0.830 0.850 0.831 0.862 0.844 0.862 0.840 0.841 0.855 0.841 0.851
## [85] 0.863 0.852 0.876 0.866 0.848 0.846 0.877 0.851 0.840 0.857 0.848 0.870
## [97] 0.835 0.859 0.875 0.859
plot(colMeans(result_runs), type = "l")