《計算機算法基礎》關于選擇問題算法:找第k小元素,時間復雜度為O(n);
上傳時間: 2013-12-31
上傳用戶:天涯
if (pfile() == 0) unlink(inname) else fprintf(stderr, "%s: I/O Error -- File unchanged\n", inname) fclose(outfile) fclose(infile) } exit(0)
標簽: unchanged fprintf inname unlink
上傳時間: 2015-03-12
上傳用戶:l254587896
系統資源(r1…rm),共有m類,每類數目為r1…rm。隨機產生進程Pi(id,s(j,k),t),0
上傳時間: 2014-01-27
上傳用戶:天誠24
實現聚類K均值算法: K均值算法:給定類的個數K,將n個對象分到K個類中去,使得類內對象之間的相似性最大,而類之間的相似性最小。 缺點:產生類的大小相差不會很大,對于臟數據很敏感。 改進的算法:k—medoids 方法。這兒選取一個對象叫做mediod來代替上面的中心 的作用,這樣的一個medoid就標識了這個類。步驟: 1,任意選取K個對象作為medoids(O1,O2,…Oi…Ok)。 以下是循環的: 2,將余下的對象分到各個類中去(根據與medoid最相近的原則); 3,對于每個類(Oi)中,順序選取一個Or,計算用Or代替Oi后的消耗—E(Or)。選擇E最小的那個Or來代替Oi。這樣K個medoids就改變了,下面就再轉到2。 4,這樣循環直到K個medoids固定下來。 這種算法對于臟數據和異常數據不敏感,但計算量顯然要比K均值要大,一般只適合小數據量。
上傳時間: 2015-04-03
上傳用戶:sardinescn
求解網絡中的最短路徑。假設某個計算機網絡有n個站點,依次編號為1,2,…,n;有的站點之間有直接的線路連接(即這兩個站點之間沒有其它站點),有的站點之間沒有直接的線路連接。如果用三元組(i,j,f)來表示該網絡中的站點I和站點j之間有直接的線路連接且它們之間的距離為f 當已知該網絡各站點之間的直接連接情況由m個三元組(i1,j1,f1),(i2,j2,f2),…,(im,jm,fm)確定時,要求計算出對于網絡中任意一個站點g(1≤g≤n)到其余各站點的最短距離。
上傳時間: 2013-12-27
上傳用戶:asdkin
.數據結構 假設有M個進程N類資源,則有如下數據結構: MAX[M*N] M個進程對N類資源的最大需求量 AVAILABLE[N] 系統可用資源數 ALLOCATION[M*N] M個進程已經得到N類資源的資源量 NEED[M*N] M個進程還需要N類資源的資源量 2.銀行家算法 設進程I提出請求Request[N],則銀行家算法按如下規則進行判斷。 (1)如果Request[N]<=NEED[I,N],則轉(2);否則,出錯。 (2)如果Request[N]<=AVAILABLE,則轉(3);否則,出錯。 (3)系統試探分配資源,修改相關數據: AVAILABLE=AVAILABLE-REQUEST ALLOCATION=ALLOCATION+REQUEST NEED=NEED-REQUEST (4)系統執行安全性檢查,如安全,則分配成立;否則試探險性分配作廢,系統恢復原狀,進程等待。 3.安全性檢查 (1)設置兩個工作向量WORK=AVAILABLE;FINISH[M]=FALSE (2)從進程集合中找到一個滿足下述條件的進程, FINISH[i]=FALSE NEED<=WORK 如找到,執行(3);否則,執行(4) (3)設進程獲得資源,可順利執行,直至完成,從而釋放資源。 WORK=WORK+ALLOCATION FINISH=TRUE GO TO 2 (4)如所有的進程Finish[M]=true,則表示安全;否則系統不安全。
上傳時間: 2014-01-05
上傳用戶:moshushi0009
數據結構 假設有M個進程N類資源,則有如下數據結構: MAX[M*N] M個進程對N類資源的最大需求量 AVAILABLE[N] 系統可用資源數 ALLOCATION[M*N] M個進程已經得到N類資源的資源量 NEED[M*N] M個進程還需要N類資源的資源量 2.銀行家算法 設進程I提出請求Request[N],則銀行家算法按如下規則進行判斷。 (1)如果Request[N]<=NEED[I,N],則轉(2);否則,出錯。 (2)如果Request[N]<=AVAILABLE,則轉(3);否則,出錯。 (3)系統試探分配資源,修改相關數據: AVAILABLE=AVAILABLE-REQUEST ALLOCATION=ALLOCATION+REQUEST NEED=NEED-REQUEST (4)系統執行安全性檢查,如安全,則分配成立;否則試探險性分配作廢,系統恢復原狀,進程等待。 3.安全性檢查 (1)設置兩個工作向量WORK=AVAILABLE;FINISH[M]=FALSE (2)從進程集合中找到一個滿足下述條件的進程, FINISH[i]=FALSE NEED<=WORK 如找到,執行(3);否則,執行(4) (3)設進程獲得資源,可順利執行,直至完成,從而釋放資源。 WORK=WORK+ALLOCATION FINISH=TRUE GO TO 2 (4)如所有的進程Finish[M]=true,則表示安全;否則系統不安全。
上傳時間: 2013-12-24
上傳用戶:alan-ee
本程序用C語言實現了集成神經網絡解決廣義異或問題。用神經網絡集成方法做成表決網,可克服初始權值的影響,對神經網絡分類器來說:假設有N個獨立的子網,采用絕對多數投票法,再假設每個子網以1-p的概率給出正確結果,且網絡之間的錯誤不相關,則表決系統發生錯誤的概率為 Perr = ( ) pk(1-p)N-k 當p<1/2時 Perr 隨N增大而單調遞減. 在工程化設計中,先設計并訓練數目較多的子網,然后從中選取少量最佳子網形成表決系統,可以達到任意高的泛化能力。
上傳時間: 2015-05-03
上傳用戶:kiklkook
提供一個人工免疫算法源程序,其算法過程包括: 1.設置各參數 2.隨機產生初始群體——pop=initpop(popsize,chromlength) 3.故障類型編碼,每一行為一種!code(1,:),正常;code(2,:),50%;code(3,:),150%。實際故障測得數據編碼,這里Unnoralcode,188% 4.開始迭代(M次): 1)計算目標函數值:歐氏距離[objvalue]=calobjvalue(pop,i) 2)計算群體中每個個體的適應度fitvalue=calfitvalue(objvalue) 3)選擇newpop=selection(pop,fitvalue) objvalue=calobjvalue(newpop,i) % 交叉newpop=crossover(newpop,pc,k) objvalue=calobjvalue(newpop,i) % 變異newpop=mutation(newpop,pm) objvalue=calobjvalue(newpop,i) % 5.求出群體中適應值最大的個體及其適應值 6.迭代停止判斷。
上傳時間: 2014-01-01
上傳用戶:trepb001
1.能實現不同的個數的矩陣連乘. 2.最后矩陣大小是8X8. 3是最優的矩陣相乘. 描 述:給定n 個矩陣{A1, A2,...,An},其中Ai與Ai+1是可乘的,i=1,2…,n-1。考察這n個矩陣的連乘積A1A2...An。矩陣A 和B 可乘的條件是矩陣A的列數等于矩陣B 的行數。若A 是一個p x q矩陣,B是一個q * r矩陣,則其乘積C=AB是一個p * r矩陣,需要pqr次數乘。
上傳時間: 2013-12-04
上傳用戶:wang5829