ant-colony-optimization-algorithm
v1.0.0
Published
Ant colony optimization algorithm
Downloads
6
Maintainers
Readme
AntColonyOptimization-ACO
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
| Constructor | Description | | ----------------------------------------------------------------------- | -------------------------------------------- | | constructor(vectorList: Vector[], option?: AntColonyOptimizationOption) | vectorList: 座標點向量序列, option: 配置參數 |
Methods
| Methods | Description | | --------------------------------------------------------- | ---------------------- | | async getResult():Promise<AntColonyOptimizationResult> | 獲得螞蟻演算法計算結果 |
AntColonyOptimizationOption API
Setting options
| Values | Description | | -------------------------------------------------------------------- | ----------------------------------------------------- | | antAmount: number | 螞蟻數量 | | maximumRounds: number | 最大迭代回合 | | maximumRounds: number | 最大迭代回合 | | initialPheromone: number | 初始費洛蒙 | | pheromoneIncrement: number | 每隻螞蟻經過路徑費洛蒙增量 (增量 / 螞蟻行走距離) | | pheromoneWeakeningRate: number | 每次迭代的費洛蒙衰退率 0 ~ 1 (上一次 * (1 - 衰退率)) | | pheromoneWeight: number | 費洛蒙權重 | | distanceWeight: number | 距離權重 (建議: 距離權重 > 費洛蒙權重) | | onRoundEnds: (result: AntColonyOptimizationResult) => void | [回調] 回每合結束時 |