Библиотека алгоритмов роевого интеллекта (в том числе PSO — Particle Swarm Optimization). Позволяет искать минимум или максимум целевой функции с помощью роя частиц (boids).
- Swarm — рой частиц, выполняющий итерации и обновляющий лучшую найденную позицию.
- Целевые функции — Paraboloid, Rastrigin, Rosenbrock, Griewank, Schwefel (подключение своих функций поддерживается).
- Визуализация — модуль рендера на Canvas для отображения роя и поверхности целевой функции.
- Демо — интерактивное приложение с выбором функции и отрисовкой в реальном времени.
npm install swarm-intelligence
# или
yarn add swarm-intelligenceimport { Swarm, getArrayWithRandomValues } from 'swarm-intelligence';
import { createConfig } from 'swarm-intelligence/swarmCreators';
import { paraboloid } from 'swarm-intelligence/objectiveFunctions';
const config = createConfig({
maxX: 800,
maxY: 600,
recommendedVelocities: paraboloid.recommendedVelocities,
velocity: 0.4,
});
const swarm = new Swarm({
...config,
getArrayWithRandomValues,
objectiveFunction: paraboloid.function,
isBetterValueOfBestValue: paraboloid.isBetterValueOfBestValue,
});
// Итерации
for (let i = 0; i < 100; i++) {
swarm.nextIteration();
}
console.log('Лучшая позиция:', swarm.bestPosition);
console.log('Лучшее значение:', swarm.bestValue);Локальный запуск демо с визуализацией:
yarn startОткроется страница с выбором целевой функции (Paraboloid, Rastrigin, Rosenbrock, Griewank, Schwefel), отображением формулы и анимацией роя на Canvas. Опция «следовать за курсором» задаёт целевую точку по положению мыши.
| Команда | Описание |
|---|---|
yarn build |
Сборка библиотеки |
yarn build:demo |
Сборка демо |
yarn start |
Запуск демо в режиме разработки |
yarn test |
Запуск тестов |
yarn test:watch |
Тесты в режиме наблюдения |
yarn test:coverage |
Покрытие кода тестами |
yarn lint |
Проверка линтером |
yarn format |
Форматирование кода |