上個學期的學習經驗告訴我要勤總計。新的學期開始總結這週做的事。
本週學習四天半,內容主要兩部分
python中特有的資料結構
元組tuple (1,2,3,4) 同list,但不能修改
無list的方法
字典dict
插入d[『e』] = 5,pop(鍵值) d.get(鍵值)
使用鍵-值儲存
集合set
無重複元素
add(值),remove(值)
函式引數
位置引數(普通引數)
預設引數(給引數賦初值)
可變引數(*引數名)
def calc(x): calc([1,2,3])
def calc(*x): calc(1,2,3)
上面兩個等價,可變引數傳入的引數構成list
關鍵字引數(**引數名)
def person(**kw): person(name=」aa」,age=18)
在函式內部組裝為dict 即kw的值為
命名關鍵字引數(*,關鍵字引數名)
在關鍵字引數的基礎上限制了傳入的引數名
def person (name,age,*,city,job):
定義順序
位置引數、預設引數、可變引數/命名關鍵字引數、關鍵字引數
可變引數和命名關鍵字引數不能同時使用
列表生成式
如: [x * x for x in range(1,11) if x%2==0 ]
迭代器、可迭代物件
迭代器(generator):可用next()方法訪問的物件。用生成器定義(列表生成式的改為() )或帶有yield的迭代函式
迭代器都是可迭代物件,但可迭代物件不一定都是迭代器
可迭代物件是可以用for訪問的物件,一類是集合資料型別:list、tuple、set、dict、str;一類是generator 其他
python中全部大寫表示常量
encode() decode() 編碼解碼
/的結果為浮點數 //的結果取整數部分 m**n 其實是m^n
注意if else for def while後面都有:
函式返回多個值其實是返回tuple
type()判斷型別 str.lower()大寫轉換小寫 str.capitalize()首字母大寫 list將iterator中的元素轉為list isinstance()判斷是否為某種型別
遺傳演算法(ga)
編碼、初始化種群、適應度函式、選擇、交叉、變異
多種群遺傳演算法(mpga):多個種群在不同引數下進化,各種群通過移民運算元(定期的將出現的最優個體引入其他種群)交流,通過人工選擇演算法儲存各個種群每個進化代中的最優個體(精華種群不進行選擇、交叉、變異)
量子遺傳演算法(qga):將標準遺傳演算法的遺傳操作替換為量子門更新
多層編碼遺傳演算法:把個體編碼分為多層,每層編碼表示不同的含義,多層編碼共同完整表達了問題的解(其實就是可以把乙個編碼串劃分為幾個部分,每個部分代表不同含義)例如:車間排程演算法把編碼的前半部分表示為加工順序,後半部分表示為加工對應的機器
1.根據問題選擇合適的編碼方式
實數或二進位制
2.設定合適的演算法引數
種群大小(20-100)、編碼長度、交叉概率、變異概率(0.4-0.99)、精英數等
3.初始化群體
4.適應度評估
一般使用目標函式
5.選擇
輪盤賭等方式
6.交叉
根據問題特點擊擇交叉的方式
7.變異
根據問題特點擊擇變異方式 專案
編碼方式
選擇交叉
變異一元函式優化
二進位制輪盤賭
交換兩個體某一點後的二進位制
某一位變異
多元函式優化
二進位制(有幾個變數就有相應長度的編碼)
同上同上
同上tsp問題(旅行商問題)
實數同上
部分對映雜交,確保沒有重複的城市
選擇乙個個體的兩個個位置交換元素
- 用遺傳演算法優化其他演算法列舉:
專案優化方式
編碼方式
非線性規劃的函式尋優演算法
使用遺傳演算法全域性尋找非線性規劃的初始值再使用fmincon函式區域性求解
實數bp神經網路優化演算法
使用遺傳演算法求解初始的權值和閾值,再使用神經網路演算法訓練網路後得到測試誤差作為適應度,進行下一輪
二進位制
免疫演算法
與遺傳演算法類似,都是採用群體搜尋策略,都要經過「初始種群產生->評價標準計算->種群間個體資訊交換->新種群產生」
對比免疫演算法
遺傳演算法
問題抗原
問題可行解
抗體個體
個體評價
期望繁殖概率(抗體與抗體之間的親和度和抗體濃度決定)
適應度操作
轉殖選擇、免疫記憶、疫苗接種、交叉、變異
選擇、交叉、變異
前端學習 2018 3 3
今天是週六,學校沒有課,本來打算上午學習就將4,5章學完的,後來發現太高估自己的能力,硬是拖到了下午才學完,導致原定的看書時間就不太夠了,但是既然是學習,就要認真學習,還是細緻的過一遍比較好。本來學完沒有什麼感覺,翻到慕課網中的同學 後,發現我也可以向他學習,將自己學習的內容通過網頁的形式做乙個小小...
每週總結 12 5 12 11
關於時間格式 string型別轉date型別 string datestr2 2012 01 10t00 00 00 replace t dateformat dateformat new dateformat yyyy mm dd hh mm ss date date dateformat.par...
每週總結 2018 3 10
這周開始上課,沒學什麼其他的,為了向某人交差,還是寫寫吧。智慧型演算法快速瀏覽 遺傳演算法 編碼 初始化種群 適應度函式 選擇 交叉 變異免疫演算法 編碼 初始化種群 適應度函式 轉殖選擇 免疫記憶 疫苗接種 交叉 變異粒子群演算法 編碼 初始化種群 適應度函式 粒子速度及位置更新魚群演算法 編碼 ...