4.0.1 • Published 3 years ago

es6-fuzz v4.0.1

Weekly downloads
2
License
MIT
Repository
github
Last release
3 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

3 years ago

3.0.6

3 years ago

4.0.1

3 years ago

4.0.0

3 years ago

3.0.5

6 years ago

3.0.4

7 years ago

3.0.2

7 years ago

3.0.1

8 years ago

2.7.3

8 years ago

2.7.2

8 years ago

2.7.1

8 years ago

2.7.0

8 years ago

2.6.4

8 years ago

2.6.3

8 years ago

2.6.2

8 years ago

2.6.1

8 years ago

2.6.0

8 years ago

2.5.10

8 years ago

2.5.9

8 years ago

2.5.8

8 years ago

2.5.7

8 years ago

2.5.6

8 years ago

2.5.5

8 years ago

2.5.3

8 years ago

2.5.2

9 years ago

2.5.1

9 years ago

2.5.0

9 years ago

2.4.4

9 years ago

2.4.3

9 years ago

2.4.2

9 years ago

2.2.0

9 years ago

2.1.0

9 years ago

3.0.0

10 years ago

2.0.0

10 years ago

1.10.0

10 years ago

1.9.0

10 years ago

1.8.0

10 years ago

1.7.0

10 years ago

1.6.0

10 years ago

1.5.0

10 years ago

1.4.1

10 years ago

1.3.3

10 years ago

1.3.2

10 years ago

1.3.1

10 years ago

1.3.0

10 years ago