TD-FALCON MineField Navigator Intelligent Agent

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.

License

License

MIT
Categories

Categories

Java Languages
GroupId

GroupId

com.github.cschen1205
ArtifactId

ArtifactId

java-ai-minefield-navigator
Last Version

Last Version

1.0.2
Release Date

Release Date

Type

Type

jar
Description

Description

TD-FALCON MineField Navigator Intelligent Agent
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.
Project URL

Project URL

https://github.com/cschen1205/java-ai-minefield-navigator
Source Code Management

Source Code Management

https://github.com/cschen1205/java-ai-minefield-navigator

Download java-ai-minefield-navigator

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.cschen1205/java-ai-minefield-navigator/ -->
<dependency>
    <groupId>com.github.cschen1205</groupId>
    <artifactId>java-ai-minefield-navigator</artifactId>
    <version>1.0.2</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.cschen1205/java-ai-minefield-navigator/
implementation 'com.github.cschen1205:java-ai-minefield-navigator:1.0.2'
// https://jarcasting.com/artifacts/com.github.cschen1205/java-ai-minefield-navigator/
implementation ("com.github.cschen1205:java-ai-minefield-navigator:1.0.2")
'com.github.cschen1205:java-ai-minefield-navigator:jar:1.0.2'
<dependency org="com.github.cschen1205" name="java-ai-minefield-navigator" rev="1.0.2">
  <artifact name="java-ai-minefield-navigator" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.cschen1205', module='java-ai-minefield-navigator', version='1.0.2')
)
libraryDependencies += "com.github.cschen1205" % "java-ai-minefield-navigator" % "1.0.2"
[com.github.cschen1205/java-ai-minefield-navigator "1.0.2"]

Dependencies

compile (5)

Group / Artifact Type Version
org.slf4j : slf4j-api jar 1.7.20
org.slf4j : slf4j-log4j12 jar 1.7.20
com.github.cschen1205 : java-ann-falcon jar 1.0.1
com.alibaba : fastjson jar 1.2.7
commons-cli : commons-cli jar 1.3.1

provided (1)

Group / Artifact Type Version
org.projectlombok : lombok jar 1.16.6

test (11)

Group / Artifact Type Version
org.testng : testng jar 6.9.10
org.hamcrest : hamcrest-core jar 1.3
org.hamcrest : hamcrest-library jar 1.3
org.assertj : assertj-core jar 3.5.2
org.powermock : powermock-core jar 1.6.5
org.powermock : powermock-api-mockito jar 1.6.5
org.powermock : powermock-module-junit4 jar 1.6.5
org.powermock : powermock-module-testng jar 1.6.5
org.mockito : mockito-core jar 2.0.2-beta
org.mockito : mockito-all jar 2.0.2-beta
net.sf.doolin : javadocking jar 1.4.2

Project Modules

There are no modules declared in this project.

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:

<dependency>
  <groupId>com.github.cschen1205</groupId>
  <artifactId>java-ai-minefield-navigator</artifactId>
  <version>1.0.2</version>
</dependency>

Usage: Invoke GUI-based Simulator

The sample code below shows how to invoke the Q-Learn TD-FALCON MineField Navigator GUI:

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:

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

Versions

Version
1.0.2
1.0.1