#优化 #示例 #PSO #粒子 # #应用

app simple-pso-demo-rs

基于粒子群优化(PSO)的简单应用模拟

3个版本

0.1.2 2023年4月30日
0.1.1 2023年4月30日
0.1.0 2023年4月29日

157模拟 中排名

每月下载 34

MIT 协议

600KB
177 代码行

simple-pso-demo-rs

Crates.io

英语 | 简体中文

粒子群优化(PSO)的简单应用

根据PSO计算最有价值的商品,并在Rust中实现。

根据课程要求,部分代码由ChatGPT生成并进行修改。

要解决的问题

模拟从同一类型商品的不同品牌中选择相对最有价值的商品,并使用PSO解决问题。

在此项目中,商品简单地定义为以下内容

pub struct Product {
    /// Individual fitness
    p_best: f64,

    /// There is a three-dimensional space, whose coordinate axis x, y, z's meaning
    /// is below:
    /// 
    /// x.0 (x)- restocking_price
    /// 
    /// x.1 (y)- selling_price
    /// 
    /// x.2 (z)- market_demand
    /// 
    /// Score value is 1.
    x: (f64, f64, f64),

    /// Velocity vector
    v: (i32, i32, i32),

    w1: f64,
    w2: f64,
}

单个粒子(商品)的适应度(价值)使用以下公式计算

((purchase price - selling price) * w1) * market demand * w2

所有粒子(商品)位于二维空间中,通过PSO,在指定次数的迭代中计算出当前空间中最有价值的商品。

所有粒子的步长基本单位为1。当售价低于购价时,粒子只更新速度而不移动。

-- 由ChatGPT生成。

依赖项