笨事
今晚外出吃飯,回來遇大雨,與好友一同回來,我穿著雨衣騎車,好友坐我後面(未著雨衣),我騎車騎到一半,他大叫一聲,啊,他說他有兩件輕便型雨衣在包包裡。
囧
---
聽 孫燕姿 逆光 中
Let's see how far we can go.
今晚外出吃飯,回來遇大雨,與好友一同回來,我穿著雨衣騎車,好友坐我後面(未著雨衣),我騎車騎到一半,他大叫一聲,啊,他說他有兩件輕便型雨衣在包包裡。
囧
---
聽 孫燕姿 逆光 中
written by yen3 in 8:50 下午 2 comments
tag: life
有一天我的室友和我聊天時(我幾乎天天和我室友聊天),我室友問起我,為什麼我肯為了念書(大部分是CLRS)而那麼衝,我不會累嗎?
Absolutely yes.
我並沒有和Josh Ko 一樣,能夠在高三到現在還是保持大概相同的想法與目標,我說過,我高三曾經念書念到壓力極大,剛好又被人發卡XD,每天一直念書一直念書,靠的就是每天聽三十分鐘的音樂(內容一定固定為F.I.R. - Fly away為開頭,中間一定有DAI - 樂園, for the future),似乎就只是為了這些歌中的信念活下去。
到大學了,念書,有時候真的會覺得,原文書難念的跟鬼一樣,我到底是為了什麼而活下去?不為了什麼很複雜的目標,就只是想要活下去而己。
在我高一時代,我曾經花了一個晚上看完吉川英治所寫的 宮本武藏,雖然吉川英治的文筆很美麗(這當然跟譯者也有關係),如同他所著的三國英雄傳,渲染了小說的每一個角色,把個性強化了,回到本文,宮本武藏一生的信念只有如下八個字
一切即劍,萬里一空
記錄一:已經校稿的成果拖了三天,我對不起Josh..Orz
記錄二:為了VHDL從九點畫到四點
記錄三:7個人去家樂福買了約4300元
written by yen3 in 6:32 下午 0 comments
tag: life
從昨天馬不停蹄的念書(假設寫隨機客的上課筆記blog也算),昨天晚餐沒吃,今天早餐只喝牛奶,午餐麵包,由於課相當的輕鬆,還是一樣保持高度的念書熱誠,只是到下午,胃莫名奇妙的痛起來,痛到食慾不佳,這會讓我想起我在高中寫程式寫到胃痛的日子(也是一樣整天不吃),似乎我想做事,就會比Josh還糟,連飯都不吃了XD
念書念到沒時間吃飯,好像不是理由XD
---
睡了一覺之後,只剩些微了
written by yen3 in 7:36 下午 0 comments
tag: life
老酒新調,了無新意,目前自修,準備搭配OOPs上的Instruction to Algorithm Fall, 2005課程來自修,現在用Leture 1學習,效果比直接讀書來的好的多。
看到老師上課的簡報...嗯...不予置評
written by yen3 in 9:11 上午 0 comments
tag: learning
非正題:嗯,今天是騎車去上課有史以來最塞的一次,也是我有史以來上課最認真聽的一次(拿著筆電狂打)事實上還有很多不懂的地方,寫到這裡就要很感謝,哈密瓜的討論,Josh Ko的支持與校正,隨機客上課的精采,這些都是我邊碎碎念騎車邊快樂上課的動力:)
這個問題的主要起源是Boruvka被波蘭政府委託在Bohemia這塊土地上牽電線,而讓每個城市都有線,而要怎麼樣牽電線會讓所耗費的成本為最小,就成為Minimum Spanning Tree的原始問題(yen3註:也蠻經典的XD)
- Input: A connected n-node m-edge graph G with edge weight w.
- Output: A spanning tree T of G with minimum w(T).
We may assume that all edge weights are distinct(yen3註:假設每一個邊的權重(重量)是不一樣的,而這樣子的假設不失一般性(JK註:不失一般性的原因,如果遇到這樣的狀況,也可以加以修改而符合假設。),原因是,在真實世界上,也很難找到一樣權重的路)
(JK註:假設並不會得問題的範圍變狹隘。)(相同權重的邊,稍微加一個數字造成些微的不同,雖然相同權重的邊有些許的不同,但是所算出的結果仍然一樣。)
對於任何一點,連接此node的lightest edge此點為週圍鄰邊最輕的,此edge必得在MST上
至於正確性的證明是和Boruvka' s algorithm 一模一樣的。但是效率會好一點,會等於O(m log m) = O(m log n)
- 每個node自為成一個集合
- For each edge (u,v), taken in non-decreasing order by weights
if Find-set(u) ≠Find-set(v) then(從權重最輕的邊依序處理,若兩集合不相等,則此兩邊必為相連的MST,所以印出edge(u, v),把u, v兩個集合做一個結合成新集合)
Output edge (u,v)
Union(u,v)
從任一點開始,尋找權重最輕的邊,每連一個點,就視為一個connected component,縮為一個點,再尋找權重最輕的點,相連,直至連接G 上所有node為止
所有不在MST的edge必為T heavy edge(if and only if)。
給一個spanning tree,把所有的T heave edge 丟掉,則此spanning tree必為Minimum Spanning Tree.
The strategy: Using random sampling to further delete at least a constant factor of edges on average after each phase of edge contraction.(yen3註:這這裡不是那麼了解,課堂上的大意為random 取node,然後把T heave node刪掉,約取三次,最後會最多只剩n/3 nodes需要再做處理)
written by yen3 in 11:10 下午
tag: DA and Algorithm, learning, programming
有人跟我反應上課筆記看不懂,我是沒有差啦,反正我還錯誤很多需要訂正:) 現在的確是分段寫(04已經累積至1200字左右,尚未寫完),但是正在想會不會一篇文章太長,所以要分開po(我絕對沒有要賺篇數),這個問題...就再說吧,目前會為了完整性一次po。
written by yen3 in 7:45 下午 0 comments
tag: learning
這似乎對要前往台大的我不太妙,不過已經告訴自己風雨無阻了
補記:從7:30騎車至08:50,一路塞車到台大,還好沒有下大雨:)
補記2:回來從1:30至2:10,頗為順利,公里表為7050(三個禮拜前到校為6450)
---
筆電+筆記本 = 全身行囊
written by yen3 in 7:16 上午 0 comments
tag: life
老師帶領學生去東京比賽,停課一次XD
written by yen3 in 12:22 上午 2 comments
tag: DA and Algorithm, learning, programming
非正題
工院盃快結束了,我所能做的事也暫告一段落,所以我決定在下次上課前趕快把上課隨筆寫出來,不然lag到就麻煩了,也很久沒有寫blog了。
G = (V,E) to denote that G is a graph, where V consists of the nodes of G and E consists of the nodes of G and E consists of the edges of G. (yen3註:簡而言之,一張圖G由節點V,和連接邊E所組成),通常使用(n,m) 元素個數來代表(V,E)的集合。
- adjacency matrix
一個很直覺的方法,使用一個space為O(n^2)來儲存(yen3註:很直覺存法就是使用二維陣列),若(1,2)有所連結,則在table的(1,2)(2,1)標示為1,代表有其連結,其優點是速度快,在Insertion, Deletion, Query 都是O(1) ,缺點是,若是連接邊集中於某些點JK:若是matrix 很稀疏,意指邊很少的狀況下,則會浪費很多空間。- Adjacency list
很直覺的方法,為絕大部分Graph Algorithm所使用的Data Structure,方法是,每一個節點建立一個sortedlist(JK註,不一定為sorted,為sorted也沒什麼好處),若和此邊有所連接,則插入(見s.8)(yen3註:在C++中,可用link list或者是STL中的vector儲存節點),優點是節省空間,缺點是速度較慢,Insertion, Deletion 為O(1) (yen3註:O(n) 也是有可能的,端看如何設計) ,Query 為O(deg) (deg 為資料深度), Space 為O(m) (m 為edge數)- Adjacency list with balanced search tree
方法與第二種相同,只是儲存資料時改用BST來儲存,如此在Query則會降成O(log deg)。
Each connected component of graph G=(V,E) is maximan subset U of V such that any tow nodes in U are connected in G.(yen3註:簡而言之,在一圖型G中,尋找subgraph G 包含最多節點n)
Each strongly connetced component of graph G= (V,E) is a max imal subset U of V such that any two nodes in U are reachable(through directed paths) from each ohter in G.(yen3註:在directed graph中,尋找max cycle的subgraph)
- 用
Topological sortDFS讓每個node有一順序- 將圖上的directed edge全部反向
- 再跑一次
Topological sortDFS(根據第一次跑出來的Topological sort list來執行),每一個list代表一個答案
written by yen3 in 11:32 下午 0 comments
tag: DA and Algorithm, learning, programming