4.0.1 • Published 2 years ago

es6-fuzz v4.0.1

Weekly downloads
2
License
MIT
Repository
github
Last release
2 years ago

es6-fuzz

Fuzzy Logic in Javascript

npm license GitHub tag Travis GitHub issues

Supported fuzzyfiers

  • Constant
  • Grade
  • Reverse Grade
  • Sigmoid
  • Trapezoid
  • Triangle

Install and Usage

es6-fuzz is available as a NPM package.

npm install es6-fuzz

Example

var logic = new Logic();
var res = logic
  .init('noAttack', new Triangle(0, 20, 40))
  .or('normalAttack', new Trapezoid(20, 30, 90, 100))
  .or('enragedAttack', new Grade(90, 100))
	.defuzzify(40);
  • enraged attack

Example 2

var Trapezoid = require('./lib/curve/trapezoid');

var logic = new Logic();
var res = logic
  .init('cold', new Trapezoid(0, 12, 18, 20))   
  .or('hot', new Trapezoid(12, 14, 16, 100)) 
  .defuzzify(20);
  • hot

Usage with boon-js

In order to combine 2 fuzzy functions with boolean logic, there is a compat layer for boon-js which allows the sauge of 'boolean expression language'.

Example of a monster biting when its cold and you are close to it:

Heat part:

var logicHeat = new Logic();
const optimalTemperature = new Triangle(10, 20, 30);
const toColdTemperature = new Triangle(0, 10, 15);
const toHotTemperature = new Triangle(25, 40, 60);

logicHeat.init('cold', toColdTemperature)
logicHeat.or('optimal', optimalTemperature)
logicHeat.or('hot', toHotTemperature);

Distance Part

var logicDistance = new Logic();
const close = new Triangle(0, 10, 20);
const far = new Triangle(5, 50, 100);

logicDistance.init('close', close)
logicDistance.or('far', far)

Now we marry the 2 and use boon js

const monsterBiteTest = getEvaluator(
    'heat.cold AND distance.close',
);
const resHeat = logicHeat.defuzzify(2, 'heat');
const resClose = logicDistance.defuzzify(2, 'distance');

const jsBoonInput = { ...resHeat.boonJsInputs, ...resClose.boonJsInputs }

monsterBiteTest(jsBoonInput) 
// returns true

development

Tests use mocha and a plugin for traceur

npm test
  • docs: npm run docs, npm run docs:site

Stuff

Supported Node.js Versions

Versions: 6 and 7

Related

3.0.7

2 years ago

3.0.6

2 years ago

4.0.1

2 years ago

4.0.0

2 years ago

3.0.5

5 years ago

3.0.4

6 years ago

3.0.2

6 years ago

3.0.1

7 years ago

2.7.3

7 years ago

2.7.2

7 years ago

2.7.1

7 years ago

2.7.0

7 years ago

2.6.4

7 years ago

2.6.3

7 years ago

2.6.2

7 years ago

2.6.1

7 years ago

2.6.0

7 years ago

2.5.10

7 years ago

2.5.9

7 years ago

2.5.8

7 years ago

2.5.7

7 years ago

2.5.6

7 years ago

2.5.5

7 years ago

2.5.3

7 years ago

2.5.2

8 years ago

2.5.1

8 years ago

2.5.0

8 years ago

2.4.4

8 years ago

2.4.3

8 years ago

2.4.2

8 years ago

2.2.0

8 years ago

2.1.0

8 years ago

3.0.0

9 years ago

2.0.0

9 years ago

1.10.0

9 years ago

1.9.0

9 years ago

1.8.0

9 years ago

1.7.0

9 years ago

1.6.0

9 years ago

1.5.0

9 years ago

1.4.1

9 years ago

1.3.3

9 years ago

1.3.2

9 years ago

1.3.1

9 years ago

1.3.0

9 years ago