- Google Guava version 23.0
- JCuda 0.8.0 (Mainly JCublas...)
- I didn't deploy my QLearningAI in the game, because I had encounted problems with NeuralNetwork.
- To be honest, I don't know what is going wrong in my NeuralNetwork.java, NetworkLayer.java and VectorDNN.java.
- However, my UCTAI and AlphaBeta-pruning AI are proved correct and the whole game frame is runnable.
- Please contact me if you find something wrong, especially in the files that I mention above, thanks!
- Added TrainFrame class.
- Added alpha-beta pruning Min-max AI, referring to:
- Added NeuralNetwork class, referring to:
- http://ufldl.stanford.edu/tutorial/supervised/MultiLayerNeuralNetworks/
- http://ufldl.stanford.edu/wiki/index.php/%E5%8F%8D%E5%90%91%E4%BC%A0%E5%AF%BC%E7%AE%97%E6%B3%95
- https://www.zybuluo.com/hanbingtao/note/476663
- http://shuokay.com/2016/06/11/optimization/
- Added IOHandler class.
- Corrected the mistakes in NeuralNetwork.java, rewrote the backward function.
- Finished QLearningAI.java and its debugging.
- Added many static functions in Board.java as helper function.
- Recorrected the mistakes in NeuralNetwork.java, also attaching some comments.
- Rewrote backward function, corrected the previous misunderstanding of minibatch-sgd, referring to:
- Finished debugging QLearningAI and rewrote some special cases.
- Corrected the wrong method for updating minibatches.
- Fixed some small bugs.
- Changed name: TrainFrame.java -> Playground.java
- Fixed numerous misunderstandable bugs in AlphaBetaAI... (Java function passes the reference of an object input?)
- Fixed bugs of state-determining logics in GUI.java and Playground.java.
- Adjusted some default parameters.
- Finished UCT AI, referring to:
- http://blog.csdn.net/Dinosoft/article/details/50893291
- http://www.jianshu.com/p/d011baff6b64
- http://mcts.ai/pubs/mcts-survey-master.pdf
- Adjusted some parameters in AlphaBetaAI.java.
- Fixed bugs in Board.java and added new static functions as helper functions.
- Converted previous version README.md to English version. (Please forgive me for my non-native expressions...)
-
Wrote vector-based DNN VectorDNN.java. (Haven't finished yet...)
-
Used JCublas API for matrix-related or vector-related computations. (VectorMatrix.java)
- http://www.jcuda.org/jcuda/jcublas/doc/index.html
- http://blog.csdn.net/cqupt0901/article/details/26393857
- http://www.jcuda.org/jcuda/JCuda.html#Runtime
- http://www.jcuda.org/jcuda/jcublas/JCublas.html
- https://devtalk.nvidia.com/default/topic/1005058/cuda-programming-and-performance/jcuda-matrices-addition/
- Wrapped up Activator Functions. (Activator.java)
- Organized the files.
- To do next:fix VectorDNN...QAQ
- Important references:
Modified on 2017.10.11.