1.0.0 • Published 7 months ago

ant-colony-optimization-algorithm v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

AntColonyOptimization-ACO

npm version install size check-code-coverage npm type definitions NPM

Ant colony optimization algorithm

Installing

Package manager

Using npm:

npm install @alsk1369854/ant-colony-optimization

Using yarn:

yarn add @alsk1369854/ant-colony-optimization

Example

  • DEMO

Basic example

index.ts

import {
  AntColonyOptimization,
  Vector3D,
} from "@alsk1369854/ant-colony-optimization";

function getRandomVectorList(
  length: number,
  maxValue: number = 10
): Vector3D[] {
  let result: Vector3D[] = [];
  for (let i = 0; i < length; i++) {
    result.push({
      x: Math.floor(Math.random() * maxValue),
      y: Math.floor(Math.random() * maxValue),
      z: Math.floor(Math.random() * maxValue),
    });
  }
  return result;
}

// 向量序列
const vectorList: Vector3D[] = getRandomVectorList(10);

// 蟻群優化算法
const aco: AntColonyOptimization<Vector3D> = new AntColonyOptimization(
  vectorList
);

// 獲得運算結果
aco.getResult().then((result) => console.log(result));

AntColonyOptimization API

Constructor

ConstructorDescription
constructor(vectorList: Vector[], option?: AntColonyOptimizationOption)vectorList: 座標點向量序列, option: 配置參數

Methods

MethodsDescription
async getResult():Promise<AntColonyOptimizationResult>獲得螞蟻演算法計算結果

AntColonyOptimizationOption API

Setting options

ValuesDescription
antAmount: number螞蟻數量
maximumRounds: number最大迭代回合
maximumRounds: number最大迭代回合
initialPheromone: number初始費洛蒙
pheromoneIncrement: number每隻螞蟻經過路徑費洛蒙增量 (增量 / 螞蟻行走距離)
pheromoneWeakeningRate: number每次迭代的費洛蒙衰退率 0 ~ 1 (上一次 * (1 - 衰退率))
pheromoneWeight: number費洛蒙權重
distanceWeight: number距離權重 (建議: 距離權重 > 費洛蒙權重)
onRoundEnds: (result: AntColonyOptimizationResult) => void回調 回每合結束時

License

MIT