樹演算法
『壹』 哈夫曼樹演算法
題目的闡述:以N進制編碼方式對一個英文字串中的字元進行編碼,每個不同的字元其編碼不同.使得由新的編碼替代原串後總碼長最小,且輸入0,1,2,...,N-1構成的數字串後,依照該編碼方式可以正確的對譯出唯一的英文原串.如:N=3英文原串為ABBCBADDACE其對應的一種編碼方式為A:00B:01C:020D:021E:022原串對譯後的編碼為000101020010002102100020022其碼長為27若輸入編碼串0102002200則對應的英文原串為BCEA 分析: 假設英文原串中的字元存放於字元集S中,‖S‖=X,每個字元在字串中出現的概率為W[i],L[i]為字元i的編碼長.依題意得,對S集合中的不同字元進行N進制編碼後要求1)新字串的碼長最短WPL=∑W[i]*L[i]
(i∈1..X)使得在WPL是所有編碼方式中的最小值2)編碼無二義性任意一字元編碼都不為其它字元編碼的前綴 此題以哈夫曼樹來解答是非常適宜的.N為此哈夫曼樹的分叉數,S字元集里的元素即為此N叉哈夫曼樹的葉子,概率W[i]即為葉子結點的權重,從根結點到各葉子結點的路徑長即為該葉子結點的編碼長L[i].由哈夫曼樹的思想可以知道哈夫曼樹的建立是一步到位的貪心法,即權重越大的結點越靠近該樹的根,這樣,出現頻率越大的字元其編碼就越短.但具體應該怎樣建立起此N叉哈夫曼樹呢?我們首先以N=2為例:S={A,B,C,D}W=[3,1,2,1]首先從W中選出兩個最小權,1,1,將其刪去,並以2(即1+1)替代W=[3,2,2];再從新的W中取出兩個最小權,2,2,將其刪去,並以4(即2+2)替代W=[3,4];依此類推,直到W中只一個值時合並結束,此時W=[7]以上兩兩合並的過程即為二叉哈夫曼樹的建立過程,每一次的合並即是將兩棵子樹歸於一個根結點下,於是可以建立二叉樹如下: m0åæ1mmA0åæ1mmC0åæ1mmBD MIN-WPL=3*1+1*3+2*2+1*3=13 從某一根結點出發走向其左子樹標記為0,走向其右子樹標記為1,則可以得到以下編碼A,B,C,D對應的編碼為A:0B:110C:10D:111
N=3時又是怎樣一種情況呢?設S={A,B,C,D,E}W=[7,4,2,5,3}則按權重排序可得S={D,B,E,C,A}W=[7,5,4,3,2]那麼此哈夫曼樹的樹形應為怎樣呢?是以下的左圖,還是右圖,或是兩者均不是mmåâæåæmmllmåæåæCAåælllllmADBEDåæ
lmBåællEC 顯然,要帶權路徑長WPL最短,那麼,此樹的高度就應盡可能的小,由此可知將此樹建成豐滿N叉樹是最合理的,於是我們盡量使樹每一層都為N個分枝.對於這道題的情況,我們具體來分析.按照哈夫曼樹的思想,首先從W中取出權最小的三個值,即2,3,4,並以9(2+3+4)來代替,得到新的W=[9,7,5];再將這三個值合並成9+7+5=21這個結點.於是得到三叉哈夫曼樹如下:måâællmDBåâælllECAWPL=1*7+1*5+2*2+2*3+2*4=30以0..N-1依次標記每個根結點的N個分枝,則可以得到每個字元相對應的編碼:A:22B:1C:21D:0E:20我們發現對於這種情況恰巧每層均為N個分枝,但事實上並非所有的N叉哈夫曼樹都可得到每層N個分枝.例於當N=3,‖S‖=6時就不可能構成一棵每層都為三個分枝的三叉樹.如何來處理這種情況呢?最簡單的處理方式就是添加若干出現概率為0的空字元填補在N叉樹的最下一層,這些權為0的虛結點並無實際意義但卻非常方全便於這棵N叉樹的建立.空字元的添加個數add的計算如下:Y=‖S‖mod(n-1)add=0(Y=1)add=1(Y=0)add=N-Y(Y>1) 虛結點的加入使得權重最小的N-add個字元構成了距根結點最遠的分枝,使其它字元構成的N叉樹保持了豐滿的N叉結構.例:N=3S={A,B,C,D,E,F}W=[1,2,3,4,5,6}則y:=6mod(3-1)=0add=1於是構成N叉樹如下:為虛結點¡åâællmFEåâællmDCåâæBAWPL=1*6+1*5+2*4+2*3+3*2+3*1+3*0=33對應編碼為:A:221B:220C:21D:20E:1F:0
『貳』 簡單介紹樹回歸的演算法原理
簡單介紹樹回歸的演算法原理
線性回歸方法可以有效的擬合所有樣本點(局部加權線性回歸除外)。當數據擁有眾多特徵並且特徵之間關系十分復雜時,構建全局模型的想法一個是困難一個是笨拙。此外,實際中很多問題為非線性的,例如常見到的分段函數,不可能用全局線性模型來進行擬合。
樹回歸將數據集切分成多份易建模的數據,然後利用線性回歸進行建模和擬合。
構建回歸樹演算法偽代碼:
尋找當前最佳待切特徵和特徵值並返回
如果當前最佳特徵沒有找到,不可切分,則把當前結點的數據均值作為葉節點
否則用最佳特徵和特徵值構建當前結點
切分後的左右節點分別遞歸以上演算法
尋找最佳特徵演算法偽代碼:
如果該數據集的特徵值只有一種,不可切分,返回當前結點的數據均值作為特徵值
否則重復一下步驟直到找到最小總方差
遍歷每一列
遍歷每列的值
用該值切分數據
計算總方差
如果總方差差值小於最初設定的閾值,不可切分
如果左右樣本數小於最初設定的閾值,不可切分
否則返回最佳特徵和最佳特徵值。
需要輸入的參數有:數據集,葉節點模型函數(均值),誤差估計函數(總方差),允許的總方差最小下降值,節點最小樣本數。
『叄』 最優二叉樹演算法的基本概念
最優二叉樹,也稱哈夫曼(Haffman)樹,是指對於一組帶有確定權值的葉結點,構造的具有最小帶權路徑長度的二叉樹。
那麼什麼是二叉樹的帶權路徑長度呢?
在前面我們介紹過路徑和結點的路徑長度的概念,而二叉樹的路徑長度則是指由根結點到所有葉結點的路徑長度之和。如果二叉樹中的葉結點都具有一定的權值,則可將這一概念加以推廣。設二叉樹具有n個帶權值的葉結點,那麼從根結點到各個葉結點的路徑長度與相應結點權值的乘積之和叫做二叉樹的帶權路徑長度,記為:
WPL= Wk·Lk
其中Wk為第k個葉結點的權值,Lk 為第k個葉結點的路徑長度。如圖7.2所示的二叉樹,它的帶權路徑長度值WPL=2×2+4×2+5×2+3×2=28。
在給定一組具有確定權值的葉結點,可以構造出不同的帶權二叉樹。例如,給出4個葉結點,設其權值分別為1,3,5,7,我們可以構造出形狀不同的多個二叉樹。這些形狀不同的二叉樹的帶權路徑長度將各不相同。圖7.3給出了其中5個不同形狀的二叉樹。
這五棵樹的帶權路徑長度分別為:
(a)WPL=1×2+3×2+5×2+7×2=32
(b)WPL=1×3+3×3+5×2+7×1=29
(c)WPL=1×2+3×3+5×3+7×1=33
(d)WPL=7×3+5×3+3×2+1×1=43
(e)WPL=7×1+5×2+3×3+1×3=29
最優二叉樹演算法 最優二叉樹演算法
由此可見,由相同權值的一組葉子結點所構成的二叉樹有不同的形態和不同的帶權路徑長度,那麼如何找到帶權路徑長度最小的二叉樹(即哈夫曼樹)呢?根據哈夫曼樹的定義,一棵二叉樹要使其WPL值最小,必須使權值越大的葉結點越靠近根結點,而權值越小的葉結點越遠離根結點。
哈夫曼(Haffman)依據這一特點於1952年提出了一種方法,這種方法的基本思想是:
(1)由給定的n個權值{W1,W2,…,Wn}構造n棵只有一個葉結點的二叉樹,從而得到一個二叉樹的集合F={T1,T2,…,Tn};
(2)在F中選取根結點的權值最小和次小的兩棵二叉樹作為左、右子樹構造一棵新的二叉樹,這棵新的二叉樹根結點的權值為其左、右子樹根結點權值之和;
(3)在集合F中刪除作為左、右子樹的兩棵二叉樹,並將新建立的二叉樹加入到集合F中;
(4)重復(2)(3)兩步,當F中只剩下一棵二叉樹時,這棵二叉樹便是所要建立的哈夫曼樹。
『肆』 二叉樹演算法如何學習
理解是關鍵,多看書,有條件上機,對理解有幫助,慢慢就會了!!!
加油啊!!!
『伍』 求二叉樹高度的原理、演算法是什麼,越詳細越好,C語言,謝謝
二叉樹高度的計算是通過遍歷來實現的,主要的遍歷方法有三種:前序遍歷、中序遍歷、後序遍歷,這幾種方法又有共同的實現方法:一般採用遞歸來實現。遞歸演算法在C語言中是個很重要的知識點。
希望回答對你有幫助。
『陸』 二叉樹 演算法
原因就在於Status CreatBitTree(BitTree e) 這個函數的參數BitTree e,既然e是參數,因此你在函數體內用e=NULL; 及e=(BitTree)malloc(sizeof(BitNode)); 來給e賦值都是沒有用的,賦值不會返回給調用處。修改的話改成引用就可以了。也就是把Status CreatBitTree(BitTree e) 這一行改成Status CreatBitTree(BitTree &e) 就行了。
還有:二叉樹演算法遞歸中序輸入是abc##de#g##f### (你這應該是前序輸入吧?)
『柒』 平衡二叉樹演算法
多值結點平衡二叉樹的結構及演算法研究
1引言
傳統的AV1.樹是一種應用較為廣泛的數據結構,適合」幾組織在內存中的較小索引.它的
每個結l從上存儲有一個關鍵字、一個平衡因子和兩個指針項,山」幾它是一棵接近」幾理想狀態的
平衡二叉樹,所以AV1.樹具有很高的查詢效率.但正如任何事物都具有兩而性一樣,AV1.樹同
樣存在比較嚴重的缺l從,一是存儲效率比較低:真正有用的關鍵字在結l從上所,片的空間比例較
小,而作為輔助信息的平衡因子和指針卻,片據較大的空間;二是額外運算量比較大:當有結l從
被插入或刪除而導致AV1.樹不平衡時,AV1.樹就需要進行調整而保持它的平衡性,山」幾每個
結l從上只有一個關鍵字,所以任何一次的數據插入或刪除都有可能導致AV1.樹的平衡調整,
這種頻繁的調整運算將大大降低AV1.樹的存取效率.為解決以上問題,結合T3樹每個結l從可
以存儲多個關鍵字項的優l側}l,木文提出了多值結l從平衡二叉樹(簡稱MAV1.樹),它的主要特
點在」幾每個MAV1.樹的結l從都存儲有多個關鍵字項,而其它信息仍與AV1.樹一樣,即一個平
衡因子和兩個指針項.
2 MAV1.樹結構描述
MAV1.樹仍舊是一種平衡二叉樹,它的整體樹型結構和演算法也是建立在傳統的平衡二叉
樹基礎之上的.MAV1.樹的特徵在」幾它的每個結l從都可以存儲多個關鍵字(較理想的取值大約
在20} 50個之間).用C++語言描述的MAV1.樹結l從結構如卜:
struct NodeStruct
int IJ1emsOnNode;
int bf:
struct NodPStruct*lch;ld:
//一結點中項的數目
//平衡因子
//夕.子
struct NodeStruct * rchild:
}lemType }lemsi Max}lem} ;//結點中的項數組
Node T:
在這種結構中.ElemsOnNode反映的是「當前狀態卜」該結l從中關鍵字項的個數.當在此結
點插入一個關鍵字時.FlemsOnNode值加1.當刪除一個關鍵字時.則FlemsOnNode值減1.每個
結l從上可存儲的關鍵字個數介J幾1 } M axElem之間.bf為平衡因r.其作用等同J幾AV1.樹的平
衡因r. MAV1.樹的任一結l從的平衡因r只能取一1 ,0和1.如果一個結l從的平衡因r的絕對
值大」幾1.則這棵樹就失去了平衡.需要做平衡運算保持平衡.lehild和:child分別為指向左右
J"樹根結0的指針.Flems[ i]為結0中第i個關鍵字項.Flems} MaxFlem」是一個按升序排列的
關鍵字數組.具體的MAV1.樹結l從結構如圖1所示.
}lemsOnNode一h『一* leh;ld一
圖1
reh擊3
}lemsi 0}一
樹結點結構
}lemsi Max}lem}
MAVT
MAV1.樹的結構特l從使它比AV1.樹具有更高的存儲效率.在AV1.樹或MAV1.樹中.實際
有用的信急只有關鍵字.1f1! ElemsOnNode ,bf ,lehild和:child都是為了構建樹型結構If1J不得不添
加的輔助信急. MAV1.樹就是通過減小這些輔助信急的比例來獲得較高的存儲效率.山MAV1.
樹結l從的定義可以看出:FlemsOnNode和bf為int型.各,片4個位元組長度.指針型的lchild和
rchild也各,片4個位元組長度.在以上四項信急中.AV1.樹結l從除了沒有ElemsOnNode外.其餘和
MAV1.樹相同.現假設關鍵字長度為24位元組.M axFl二值定為50.則對AV1.樹來說.它的結l從
長度為36位元組.其中輔助信h,長度為12位元組;If}J MAV1.樹的結l從長度是1. 2K位元組.其中輔助
信急長度為16位元組.山此可以看出.MAV1.樹在存儲時.結l從中輔助信急長度,片整個結l從長度
的比例是很小的.它對存儲空間的利用效率比 AV1.樹要高.這一l從對」幾主要而向內存應用的
MAV1.樹來說是非常重要的.
在實際的應用中.當MAV1.樹作為資料庫索引結構時.為進一步節約內存空間.結l從中Fl-
emType的結構可根據實際需要作不同的定義.
( 1)當排序關鍵字較短時.可以直接將資料庫中的關鍵字值拷貝到索引文件中.這樣
MAV1.樹既有較快的運行速度又不會,片用太大的空間.此時ElemType定義如卜
struct IdxRlemStruct
{
int RecPos://金己錄號
KeyType Key://關鍵字
}R1emType;
( 2}當排序關鍵字較長時.如果直接將資料庫中的關鍵字值拷貝到索引文件中會,片據較大
的空間.此時可以採用只存儲關鍵字地址的形式.這樣不管關鍵字有多長.映射到MAV1.樹後
都只,片據一個指針的固定長度.這種以時間換空間的方法比較適合內存容量有限的情況.此時
ElemType定義如卜
struct Tdxl?lemStruct
int RecPos:
char * Key
R1emType;
//記錄號
//關鍵字指釗
3基於MAUI.樹的運算
MAUI.樹的基木運算.包括MAUI.樹的建立、記錄的插入、刪除、修改以及查詢.這些演算法
與基J幾AVI.樹的演算法相似.都建立在一叉查詢和平衡演算法基礎上.
3. 1 MAVI,樹的平衡運算
如果在一棵原木是平衡的MAUI.樹中插入一個新結l從.造成了不平衡.此時必須調整樹的
結構.使之平衡化「21 .MAUI.樹的平衡演算法與AVI.樹的平衡演算法是相同的.但山J幾MAUI.樹的
每個結l從中都存儲有多個關鍵字.所以在關鍵字個數相同的情況卜. MAUI.樹的應用可以大大
減少平衡運算的次數.例如.假設具有n個關鍵字的待插入序列在插入過程中有5%(根據隨
機序列特l從的不同.此數值會有所差異.這里以比較保守的5%為例)的新產生結l從會導致一
叉樹出現不平衡.對AVI.樹來說.山」幾需要為每個關鍵字分配一個結l從.所以在整個插入過程
中做平衡的次數為n * 5%;對J幾MAUI.樹.設MAUI.樹中M axFl二的值被定義為k(k為大J幾1
的正整數少,則平均每k次的數據插入才會有一個新結l從產生,所以在整個插入過程中需做平
衡的次數僅為(nlk) * 5%.即在M axFl二取值為k的情況卜.對」幾相同的待插入關鍵字序列.
在插入過程中MAUI.樹用J幾平衡運算的開銷是AVI.樹的1/ k.
3. 2數據查找
在MAUI.樹上進行查找.是一個從根結l從開始.沿某一個分支逐層向卜進行比較判等的過
程.假設要在MAUI.樹上查找的值為GetKey.查找過程從根結l從開始.如果根指針為NU1.1..則
查找失敗;否則把要查找的值GetKey與根結l從關鍵字數組中的最小項Elems [ 0]進行比較.如
果GetKev小」幾當前結i最小關鍵字.則遞歸查找左r樹;如果GetKey'大」幾Elems [ 0].則將
GetKey'與根結0關鍵字數組中的最大項Fletns} MaxFl二一1]進行比較.如果GetKey'大」幾當前
結l從最大關鍵字.則遞歸查找右r樹;否則.對當前結l從的關鍵字數組進行查找(山」幾是有序序
列.可以採用折半查找以提高效率).如果有與GetKey'相匹配的值.則查找成功.返回成功信
息,7{報告查找到的關鍵字地址.
3. 3數據插入
數據插入是構建MAV1.樹的基礎.設要在MAV1.樹*T上插入一個新的數據兀素GetKev,
其遞歸演算法描述如卜:
(1)若*T為空樹.則申清一新結} ' Elems} MaxElem}.將GetKey'插入到Flems[ 0]的位置.樹
的深度增1.
(2)若*T未滿.則在*T中找到插入位置後將GetKey'插入.JI在插入後保持結l從中的各
關鍵項有序遞增.若己存在與GetKev相同的項.則不進行插入.
(3)如果*T為滿結l從目一GetKey'值介」幾Flems[ 0]和Flems} MaxFlem]之間.則在*T中找到
GetKev的插入位置posit ion.山」幾*T木身就是滿結l從.所以GetKev的插入必然會將原來*T中
的某個數據擠出去JI卜降到r樹中.根據插入位置position的不同.分以卜幾種情況處理:若*
T中存在與C etl} e`'相同的項.則不進行插入;若插入位置在*T結ii的前半部分(即position <
=MaxFlem/ 2).則將Flems[ 1]到Fletns} position」的數據依次左移一位.再把GetKey插入到Elems
} MaxFlem」中position的位置.Ifn原來*T中最左邊項數據將被擠入到*T的左r樹中.考察此
數據的特l從.它必然大」幾*T左r樹中的任一數據項.所以此時不需要作任何的額外運算.直
接將此數據插入到*T左r樹根結i從的最右r孫位置處就可以了(見圖2中插入,}} 11"後「1,>
的位置變化);若插入位置在*T結ii的後半部分(即position> MaxFlem/ 2).則將Fletns} posi-
tion}到Fletns} MaxFl二一2}的數據依次右移一位.再把GetKev插入到*T結0中position的位
置.與前一種情況類似.結l從中最右邊被擠出的項將被插入到*T的右r樹根結l從的最左r孫
的位置(見圖2中插入「25"後" 30"的位置變化).
插入,"}i」插入」zs0
}o i is i }a
s}土 s
圖2
滿結點插入數據的過程
(4)若GetKey的值小」幾T的最小項值.則將GetKey遞歸插入到T的左r樹中.即在遞歸調
用時GetKey值不變Ifn T= T->lehild.
(5)若GetKey的值大」幾T的最大項值.則將GetKey遞歸插入到T的右r樹中.即在遞歸調
用時GetKey值不變Ifn T= T->rehild.
4結束語
山J幾MAV1.樹的結l從中存儲有多個關鍵字值.所以它具有較高的存儲效率;對MAV l樹進
行查找是_分查找和順序查找的結合.其查詢效率只略低」幾AV1.樹.血山」幾MAV1.樹的平衡
運算比AV1.樹要少得多.所以MAV1.樹有很優秀的綜合運算效率.綜上所述.在數據量大、內
存容量相對較小、數據增刪運算比較頻繁的情況卜.用MAV1.樹作為常駐內存的索引結構是一
種理想的選擇.
『捌』 二叉樹演算法
int deep(BiTree T)
{
int a,b;
if(T==NULL)//若為空樹,深度為0
return 0;
if((a=deep(T->lchild))>(b=deep(T->rchild)))//若左孩子深度大於右孩子
return(a+1);//返回左孩子深度+1
else reurn(b+1);//否則返回右孩子深度+1
}
『玖』 數據結構與演算法 二叉樹交換左右子樹演算法
原來節點結構體:
typedef struct
{
Element X;
Node* pLeft;
Node* pRight;
}Node;
現在從新定義一個結構
typedef struct
{
Element X;
NewNode* pRight;
NewNode* pLeft;
}NewNode;
然後用新樹的根指向原樹的根
Node* pOldTree; 老樹
NewNode* pNewTree = (NewNode*)pOldTree;
這樣省的交換了,省事吧 -_,-
『拾』 生成樹演算法
「生成樹」資料
交換機內的生成樹演算法(STA)使你可以創建一條備用鏈路(當網路中存在多台交換機時)。在主鏈路正常工作時,備用鏈路處於空閑狀態(不工作);只有在主鏈路出現問題時,備用鏈路才不需要任何人工干預自動地接替主鏈路。
這種自動重構的功能,使得網路上的用戶能夠最大限度地與網路保持正常的連接。生成樹演算法較復雜,所以,建議最好在充分研究理解其之後,再更改其一些設置。請仔細閱讀並理解下述內容之後,再去更改交換機上的生成樹的默認設置。
網路環路的偵測和預防(Network loop detection and prevention):任何兩個區域網之間應該只有一條路徑,否則,網路中將出現環路。如果存在著多於一條的路徑,那麼生成樹演算法將會偵測到環路的發生,並自動選擇開銷值(c ost)最低的那條路徑作為可使用的路徑(主鏈路),而阻斷其它路徑,將它們作為備用路徑(備用鏈路)。
自動拓撲重構(Automatic topology re-configuration):當主鏈路出現故障時,生成樹演算法將自動啟用備用鏈路,重構網路結構。
生成樹的級別(STA Operation Levels)
生成樹有兩種工作級別:橋級別(bridge level)和埠級別(port level)。在橋一級上,生成樹演算法為每台交換機計算橋的標志級數(Bridge Identifier),然後設定根橋(Root Bridge)和指定橋(Designated Bridges)。而在埠一級上,生成樹演算法設定根埠(Root Port)和指定埠(Designated Ports)。詳述如下:
在橋一級上(On the Bridge Level):
根橋(Root Bridge):具有最小橋標志級數的(lowest Bridge Identifier)交換機是根橋(Root Bridge)。當然,你希望根橋是環路中所有交換機當中最好的一台(交換機),以保證能夠提供最好的網路性能和可靠性。
橋標志級數(Bridge Identifier):橋標志級數是橋的優先順序(Bridge Priority)和交換機的MAC地址的綜合數值,其中橋的優先順序(Bridge Priority)是一個你可以設定的參數。例如,「4 00 80 C8 00 01 00」中的「4」是橋的優先順序,「00 80 C8 00 01 00」是交換機的MAC地址。交換機的橋標志級數越低,則交換機的優先順序越高,這樣可以增加其成為根橋的可能性。
指定橋(Designated Bridge):在每個網段中,到根橋(Root Bridge)的路徑開銷最低的(lowest Root Path Cost)橋將成為指定橋(Designated Bridge),數據包將通過它轉發到網段。一旦所有的交換機具有相同的根路徑開銷(Root Path Cost),那麼具有最低的橋標志級數的(lowest Bridge Identifier)交換機才會被定為指定橋(De signated Bridge)。
根路徑開銷(Root Path Cost):一台交換機的根路徑開銷(Root Path Cost)是根埠(Root Port)的路徑開銷(Path Cost)與數據包經過的所有交換機的根路徑開銷(Root Path Cost)之和。根橋(Root Bridge)的根路徑開銷(Root Path Cost)是零。
橋的優先順序(Bridge Priority):是一個用戶可以設定的參數。設定的值越小,優先順序越高。交換機具有越高的優先順序,才越有可能成為根橋。
在埠一級上(On the Port Level):
根埠(Root Port):每台交換機都有一個根埠(Root Port),這個埠到根橋的路徑開銷最低。一旦多個埠具有相同的到根橋的路徑開銷時,那麼具有最低的埠標志級別的才會成為根埠。
指定埠(Designated Port):指定埠就是指定橋(Designated Bridge)上的埠。
埠優先順序(Port Priority):數值越小,埠的優先順序就越高。具有越高埠優先順序,才越有可能成為根埠。
路徑開銷(Path Cost):這是一個可變的參數,它將隨著生成樹中的設定值的變化而變化。依據STA的默認參數值,每個1000Mbps網段有一個指定的路徑開銷值為4 ,100Mbps網段的路徑開銷值19,10Mbps網段的路徑開銷值100.
生成樹參數(STA Parameters)
生成樹的參數用戶可以根據自己的需要進行修改,但是建議最好使用出廠時的默認設置。除非確實需要對出廠設置值進行變動時,再去改動默認值。用戶可以改動的生成樹參數有如下幾個:
橋優先順序(Bridge Priority):數值范圍從0到65535.「0」的優先順序最高。
呼叫時間(Bridge Hello Time):數值范圍從1秒到10秒。是指根橋向其它所有交換機發出BPDU數據包的時間間隔,以告知其它所有交換機它是根橋。如果你的交換機還未是根橋時為其設置了呼叫時間,那麼,一旦你的交換機成為根橋,該呼叫時間就會派上用處。
注意:呼叫時間不能大於橋的最大老化時間(Max. Age),否則,將出現錯誤信息。
最大的橋老化時間(Bridge Max. Age):數值范圍從6秒到40秒。如果在超出最大老化時間之後,還沒有收到根橋發出的BPDU數據包,那麼,在允許的條件下你的交換機將充當根橋向其它所有的交換機發出B PDU數據包。如果交換機確實具有最小的橋標志級數,那麼,它將隨之成為根橋。
橋轉發時延(Bridge Forward Delay):數值范圍從4秒到30秒。是指交換機的埠從阻塞狀態轉為轉發狀態所用的監聽時間。
當你欲變動生成樹參數時,請一定記住下述公式:
最大的橋老化時間≤ 2 x(橋轉發時延 – 1秒)
即:Max. Age ≤ 2 x (Forward Delay - 1 second)
最大的橋老化時間≥ 2 x(呼叫時間 + 1秒)
即:Max. Age ≥ 2 x (Hello Time + 1 second)
埠優先順序(Port Priority):數值范圍從0到255.數值越小,那麼該埠越可能成為根埠。