2015年9月23日

[隨筆] 研究的實驗結果這回事

最近看了許多跟系統架構相關的文章,讓我想到剛升碩一時不知天高地厚的跑去修了虛擬機器這門課,然後因為各種聽不懂大受打擊的事情 XD 當時這門課的期末專題是要想辦法找出 QEMU 中可以改善的地方,然後做實驗說明改善的結果跟幅度,現在想想當初能順利做完這個專題還拿到高分實在是運氣破表 XD

2015年9月22日

[筆記] 最佳化演算法 (Optimization Algorithm) 的使用與誤用

(這篇的數學式有用到 javascript 來顯示,請不要檔掉 JS,不然顯示上會很奇怪 XD)

最佳化演算法簡單來說就是個搜尋演算法,這類演算法的再做的事情是給定一個問題,定義合法的解集合 (或是空間,英文是 solution space),再給一個函數用以判別一個解的好壞 (objective function),這類最佳化演算法就會在解集合中找出符合要求的一個解。

有點難懂?舉個例子:假設我想要再一個 2D 的平面座標中找到一個點使得 $f(x, y) = (x - 5)^2 + (y + 3)^2$ 得值最小,求 (x, y) 為?在這個例子中,solution space 就是 2D 平面上所有可能的點座標,而 objective function 就是 $f(x, y) = (x - 5)^2 + (y + 3)^2$。而最佳化演算法就是針對 "任何" 這樣的問題,找出一個盡可能滿足 objective function 也合法的解給你。沒錯,就是任何這類需要在一個 solution space 中找解的問題都行。所以這類演算法很萬用,但也因此容易被誤用。