https://github.com/cschen1205/java-ai-minefield-navigator
Package provides java implementation of a multi-agent learning simulator based on FALCON ANN and RL
https://github.com/cschen1205/java-ai-minefield-navigator
adaptive-resonance-theory agent-based-simulation intelligent-agent neural-network reinforcement-learning
Last synced: 3 months ago
JSON representation
Package provides java implementation of a multi-agent learning simulator based on FALCON ANN and RL
- Host: GitHub
- URL: https://github.com/cschen1205/java-ai-minefield-navigator
- Owner: cschen1205
- License: mit
- Created: 2017-05-31T02:12:13.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-06-18T06:26:46.000Z (almost 8 years ago)
- Last Synced: 2024-01-26T13:20:33.896Z (about 1 year ago)
- Topics: adaptive-resonance-theory, agent-based-simulation, intelligent-agent, neural-network, reinforcement-learning
- Language: Java
- Size: 784 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# java-ai-minefield-navigator
Package provides java implementation of a multi-agent learning simulator based on FALCON ANN and RL
# Introduction
TD-FALCON is a fusion architecture that incorporates temporal difference methods and self-organizing neural networks for reinforcement learning with delayed rewards. It learns by creating cognitive codes across sensory input, actions, and rewards.
The implementation of TD-FALCON can be found in the minefield navigation simulator in this java project, alongside with its reactive version R-FALCON, and a backpropagation network based Q-learning system.
# Install
Add the following dependency to your POM file:
```xml
com.github.cschen1205
java-ai-minefield-navigator
1.0.2```
# Usage: Invoke GUI-based Simulator
The sample code below shows how to invoke the Q-Learn TD-FALCON MineField Navigator GUI:
```java
public static void main(String[] args) {
MineFieldSimulatorConfig config = new MineFieldSimulatorConfig();
config.setImmediateRewardProvided(true);
config.setNumAgents(1);
FalconConfig falconConfig = new FalconConfig();
falconConfig.numAction = FalconNavAgent.numAction;
falconConfig.numState = config.numState();
falconConfig.numReward = 2;
MineFieldSimulatorGUI gui = new MineFieldSimulatorGUI(config, falconConfig);
}
```# Usage: Invoke Command-line based Simulator
The sample code below shows show to run the TD-FALCON MineField Navigator simulation in console mode:
```java
public static void main(String[] args) {
MineFieldSimulatorConfig config = new MineFieldSimulatorConfig();
config.setImmediateRewardProvided(false);
config.setNumRuns(1);
config.setMaxTrial(300);
FalconConfig falconConfig = new FalconConfig();
falconConfig.numAction = FalconNavAgent.numAction;
falconConfig.numState = config.numState();
falconConfig.numReward = 2;
falconConfig.isBounded = false;
MineFieldSimulator simulator = new MineFieldSimulatorQ(config, falconConfig);
simulator.runSims();
}
```The above codes invoke the Q-Learn TD-FALCON simulator, to switch to other learning paradigms, change the
"MineFieldSimulatorQ" to one of the following:
* MineFieldSimulatorSARSA: state-action-reward-state-action
* MineFieldSimulatorQLambda: Q-Learning with lambda trails
* MineFieldSimulatorSARSALambda: SARSA with lambda trails
* MineFieldSimulatorR: R-Learning