Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@kenwebb
Last active April 25, 2020 12:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kenwebb/be9cab67ffa7a0b3510b0d9f9211dc54 to your computer and use it in GitHub Desktop.
Save kenwebb/be9cab67ffa7a0b3510b0d9f9211dc54 to your computer and use it in GitHub Desktop.
Learning classifier systems (LCS)
<?xml version="1.0" encoding="UTF-8"?>
<!--Xholon Workbook http://www.primordion.com/Xholon/gwt/ MIT License, Copyright (C) Ken Webb, Sat Apr 25 2020 08:05:14 GMT-0400 (Eastern Daylight Time)-->
<XholonWorkbook>
<Notes><![CDATA[
Xholon
------
Title: Learning classifier systems (LCS)
Description:
Url: http://www.primordion.com/Xholon/gwt/
InternalName: be9cab67ffa7a0b3510b0d9f9211dc54
Keywords:
My Notes
--------
April 25, 2020
References
----------
() https://en.wikipedia.org/wiki/Learning_classifier_system
Learning classifier systems, or LCS, are a paradigm of rule-based machine learning methods that combine a discovery component
(e.g. typically a genetic algorithm) with a learning component (performing either supervised learning, reinforcement learning, or unsupervised learning).
Learning classifier systems seek to identify a set of context-dependent rules that collectively store and apply knowledge in a piecewise manner in order to make predictions
(e.g. behavior modeling, classification, data mining, regression, function approximation, or game strategy).
This approach allows complex solution spaces to be broken up into smaller, simpler parts.
() search: learning classifier systems
() https://github.com/ryanurbs/eLCS
Educational Learning Classifier System (eLCS) - Implementation of a basic, generic Michigan-style LCS algorithm
Python
KSW I downloaded the .zip from the website, and ran the following: (it works)
cd Demo_1
python ./eLCS_Run.py
() https://github.com/ryanurbs/eLCS_JupyterNotebook
Educational Learning Classifier System (eLCS) - Jupyter Notebook implementation of a basic, generic Michigan-style LCS algorithm
() https://github.com/ryanurbs/ExSTraCS_2.0
Extended Supervised Tracking and Classifying System (ExSTraCS) Version 2.0.2 Beta (Python 3.5)
() https://github.com/tofti/java-zcs
Java Implementation of the simplified strength based learning classifier system
() https://www.researchgate.net/publication/26850330_Learning_Classifier_Systems_A_Complete_Introduction_Review_and_Roadmap
Learning Classifier Systems: A Complete Introduction, Review, and Roadmap
Ryan J. Urbanowicz, Jason H Moore, 2009
Abstract
If complexity is your problem, learning classifier systems (LCSs) may offer a solution.
These rule-based, multifaceted, machine learning algorithms originated and have evolved in the cradle of evolutionary biology and artificial intelligence.
The LCS concept has inspired a multitude of implementations adapted to manage the different problem domains to which it has been applied
(e.g., autonomous robotics, classification, knowledge discovery, and modeling).
One field that is taking increasing notice of LCS is epidemiology, where there is a growing demand for powerful tools to facilitate etiological discovery.
Unfortunately, implementation optimization is nontrivial, and a cohesive encapsulation of implementation alternatives seems to be lacking.
This paper aims to provide an accessible foundation for researchers of different backgrounds interested in selecting or developing their own LCS.
Included is a simple yet thorough introduction, a historical review, and a roadmap of algorithmic components, emphasizing differences in alternative LCS implementations.
]]></Notes>
<_-.XholonClass>
<!-- domain objects -->
<PhysicalSystem/>
<Block/>
<Brick/>
<!-- quantities -->
<Height superClass="Quantity"/>
</_-.XholonClass>
<xholonClassDetails>
<Block>
<port name="height" connector="Height"/>
</Block>
</xholonClassDetails>
<PhysicalSystem>
<Block>
<Height>0.1 m</Height>
</Block>
<Brick multiplicity="2"/>
</PhysicalSystem>
<Blockbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[
var a = 123;
var b = 456;
var c = a * b;
if (console) {
console.log(c);
}
//# sourceURL=Blockbehavior.js
]]></Blockbehavior>
<Heightbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[
var myHeight, testing;
var beh = {
postConfigure: function() {
testing = Math.floor(Math.random() * 10);
myHeight = this.cnode.parent();
},
act: function() {
myHeight.println(this.toString());
},
toString: function() {
return "testing:" + testing;
}
}
//# sourceURL=Heightbehavior.js
]]></Heightbehavior>
<Brickbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[
$wnd.xh.Brickbehavior = function Brickbehavior() {}
$wnd.xh.Brickbehavior.prototype.postConfigure = function() {
this.brick = this.cnode.parent();
this.iam = " red brick";
};
$wnd.xh.Brickbehavior.prototype.act = function() {
this.brick.println("I am a" + this.iam);
};
//# sourceURL=Brickbehavior.js
]]></Brickbehavior>
<Brickbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[
console.log("I'm another brick behavior");
]]></Brickbehavior>
<SvgClient><Attribute_String roleName="svgUri"><![CDATA[data:image/svg+xml,
<svg width="100" height="50" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Block</title>
<rect id="PhysicalSystem/Block" fill="#98FB98" height="50" width="50" x="25" y="0"/>
<g>
<title>Height</title>
<rect id="PhysicalSystem/Block/Height" fill="#6AB06A" height="50" width="10" x="80" y="0"/>
</g>
</g>
</svg>
]]></Attribute_String><Attribute_String roleName="setup">${MODELNAME_DEFAULT},${SVGURI_DEFAULT}</Attribute_String></SvgClient>
</XholonWorkbook>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment