---
# System prepended metadata

title: 計算智慧與規劃WEEK13 -PSO
tags: [計算智慧與規劃]

---

###### tags:    `計算智慧與規劃`
# 計算智慧與規劃WEEK13 -PSO
## PSO

### flowchart
![](https://i.imgur.com/pcBBBOo.png)

### 公式
- 要考慮CPU、GPU、頻寬
- 每一個TPU都會有記憶上限
![](https://i.imgur.com/FTZdpr3.png =500x)

### 實踐
![](https://i.imgur.com/7yszmCA.png =400x)
- 第一行為使用者，第二行(格子內)為對應到的CPU

![](https://i.imgur.com/FYLI11Y.png)
- 解決的問題
    - 如果記憶體超過上限，用GA的處罰方式
    - 處罰方式:因為結果越小越好，所以若是超過就加分
ex:
![](https://i.imgur.com/AAO0mxh.png)



##
### use of lbest
- 視野大小
- 用 lbest 控制收斂速度，讓他不要收斂太快或太慢
### Use of Vmax 最大速率
- 最大步伐長度
- 田口正交法：幫你找出較適合的參數組合，才不用像無頭蒼蠅一樣亂下參數，造成資源浪費
- 最差利分析:找出最低的標準進行運算
  > 如果用亂數:隨機產生的亂數都很大，就會爆衝
  >           隨機產生的亂數都很小，變化不大，難分析
  > 如果不用亂數:產生的結果都會相同
- 如果沒有 Vmax ，約在 150 代時會爆衝
### impact of c
- 回頭的強度，讓震動幅度不會那麼大
- c = c1 + c2 = 3 時，效果最好 (c1, c2 大約等於 1.5)
### use of inertia weight 慣性權重
- 證明：![](https://i.imgur.com/pWWdZo5.png)
- ![](https://i.imgur.com/bKE8YVH.png =300x)
  - k1: 單一隻小鳥會收斂到的位置 (個人最佳解與群體最佳解的平均)
  - k2, k3
- ![](https://i.imgur.com/grSDMq1.png)
  - 若 w 在這個範圍，k2, k3 幾乎等於 0 ，可以只看 k1
  - 若符合圖片中的if條件 -> 結果為收斂
- ![](https://i.imgur.com/Jc4sMdf.png)
  - pbest=1，gbest=0，所以權重=(1+0)/2=0.5
- 加上權重的公式： ( )
ex:
![](https://i.imgur.com/vA13622.png)
- 上圖為前面為大部分的機率為收斂的，小部分的機率會爆衝 (大約在 230 次時)
- 暴衝 - 收斂 - 暴衝 - 收斂 ... => 沒效率，所以應該設Vmax
   > 理論的設定好的 w, c1, c2，不需要 Vmax 就會收斂，但實務上發現有設 Vmax 效果還是比較好 (避免一次走太大步忽略最佳解) 
   > Vmax 可以自動調整
- ![](https://i.imgur.com/6srXtiO.jpg)
  - r1、r2 -> [0,1]


## 蜜蜂演算法
有三種蜂
1. 工蜂
2. 等待要出去的蜂
3. 偵查蜂

- 偵查蜂出去找random (random 產生亂數local search)
- 其他的蜜蜂按機率去不同偵查蜂附近找