Upload
quang-trung-luu
View
458
Download
2
Embed Size (px)
DESCRIPTION
BTL tổ chức quy hoạch mạng
Citation preview
I HC BCH KHOA H NI VIN IN T - VIN THNG
ti: THUT TON MENTOR II
Ging vin hng dn: Trn Ngc Lan
Sinh vin thc hin:
1. L Thi Hng KSTN-TVT-K52
2. Trn Hu Cng KSTN-TVT-K52
3. Phm Vn Ch KSTN-TVT-K52
4. Bi Th Th H KSTN-TVT-K52
H Ni, thng 11 nm 2011
2
Mc Lc
1. Gii Thiu ................................................................................................................................................. 3
YU CU CA BI TP ........................................................................................................................... 5
2. L thuyt ................................................................................................................................................... 6
2.1 Thut ton Mentor ......................................................................................................................... 6
2.1.1 Xc nh node backbone v node trung tm ......................................................................... 6
2.1.2 Chuyn yu cu node sang xng sng. ............................................................................... 7
2.1.3 Xy dng cy Prim-Dijkstra vi tham s ........................................................................... 8
2.2 Thut ton Mentor II ..................................................................................................................... 8
2.2.1 t vn .................................................................................................................................... 8
2.2.2 ISP(Incremental Shortest Path) ............................................................................................. 9
3. Trin khai thut ton ........................................................................................................................... 13
3.1. Tng quan v kin trc .................................................................................................................... 13
3.2. Xy dng thi c s ...................................................................................................................... 13
3.2.1 Class Node ................................................................................................................................. 13
3.2.2 Class Arc ................................................................................................................................... 14
3.2.3. Class Graph ............................................................................................................................... 14
3.3. Thut ton ................................................................................................................................... 15
3.3.1 classMentor ......................................................................................................................... 15
3.3.2 Class Prim Dijkstra .......................................................................................................... 16
3.3.3 Class Floyd Warshall ...................................................................................................... 16
3.3.4 Class ISP ............................................................................................................................. 16
3.4. Form chnh ....................................................................................................................................... 18
4 Kt lun ............................................................................................................................................... 21
3
1. Gii Thiu
Nh ta bit, vin thng c hiu l cch trao i d liu thng qua k
thut in, in t v cc cng ngh hin i khc. V h thng vin thng l tp
hp cc trang thit b k thut cung cp dch v vin thng cho ngi s dng.
Ngay t ngy xa xa, nhng ngi tin s bit dng khi bo hiu, nhng
ngi th dn nhng hn o xa xi dng cc ct khi lin lc, bo hiu v
truyn tin. Nhng vin thng c chnh thc s dng khi con ngi pht minh ra
in bo v in thoi. Cng ngh vin thng t ngy cng pht trin nhanh chng
v vt bc, ng dng trong mi lnh vc. Trn quy m x hi, vin thng lm nn
mt h thn kinh thng minh nhy bn trn tri t, lm thay i b mt, tnh cch ca
tng quc gia v t trong n hnh thnh ln mt mng li lin kt mi ngi ca mi
quc gia trn tri t. S hi t cng ngh trong lnh vc vin thng cng s pht trin
tng trng mnh ca kinh t - x hi, nhu cu s dng cng nh truyn d liu ca
con ngi cng tng ln theo hm s m v ngy cng tr nn phc tp, c khuynh
hng k thut cao vi cht lng cao. V vy, vic t chc mt mng vin thng p
ng c nhu cu y v pht trin t chc mng li ny thnh mt thnh phn c
bn quan trng ca x hi thng tin ha cao trong tng lai na l khng h n gin,
n ng mt vai tr rt quan trng.
gii quyt bi ton trn, ta nhn h thng vin thng trn c phng din
phn cng v phn mm:
V phng din phn cng, h thng vin thng gm cc thit b nh:
Thit b u cui thng tin, thit b chuyn mch, thit b truyn dn.
V phng din phn mm, h thng vin thng cho bit cc phn cng
lin h vi nhau th no ( Topo mng, vi topo mng ta s phn bit c
mng AN(Access Network) v mng li), cc giao thc mng, cc giao
thc lin kt, giao thc trao i thng tin (gia hai giao thc ny c
th tch ri, c th kt hp vi nhau), qun l v khai thc mng.
Trn phng din phn mm, xy dng mng, ta phi xy dng c cu
hnh ca cc phn t mng. MENTOR (Mesh Network Topology Optimization
Routing) l mt thut ton rt hu ch cho vic thit k mng thng tin v n khng
ph thuc vo c im ca bt k mt cng ngh hay kin trc mng no. N ch ph
thuc vo nguyn tc thit k mng. MENTOR c th ng dng cho nhiu loi mng,
c bit l mng ATM (Asynchronous Transfer Mode). V chng trnh MENTOR l
mt ng dng tin hc trong vic thit k Topology cho mng bng chnh thut ton
MENTOR.
4
Trong ti ny yu cu chng em vit mt chng trnh MENTOR nh th.
Chng trnh chng em vit trong thi gian ngn v kin thc c hn nn c rt nhiu
nhng hn ch nht nh nh ch c tnh cht m phng, cc gi thit, iu kin cha
hon ton ging vi yu cu thc t. Tuy nhin, chng em hy vng chng trnh ny
cng gip mi ngi nm c qu trnh xy dng Topology cho mng.
Trong qu trnh thc hin bi tp ln, chng em xin cm n s tn tnh gip
ca c Trn Ngc Lan gip chng em hon thnh bi tp ny. Chng em rt mong
nhn c nhng li khuyn t thy chng em c th khc phc c nhng ci
cha lm c trong ti chng em c th hiu su sc hn v thut ton cng
nh chng trnh MENTOR trong xy dng Topology cho mng vin thng, ng
thi hiu r hn v mn hc T chc v quy hoch mng vin thng.
Chng em xin chn thnh cm n c!
5
YU CU CA BI TP
Vit mt phn mm to topology mng vin thng theo thut ton MENTOR
2.
nn : S lng nt trong mng:
Cost: Chi ph kt ni gia cc nt l mt ma trn [nxn]
Req: Ma trn [nxn] yu cu
Pc, W, R/D: Cc tham s xc nh nt BackBone
: Tham s xc nh cy
: H s s dng bng thng
Cmax [nxn]: Gi tr ti a dung lng ca lin kt gia cc nt( hiu dng)
- Tm cy kt ni cc nt, cho bit cy l dng MST hay PST, MENTOR.
- Tng chiu di cy, chiu di ng i
- Direct link: Tm kt ni Direct link
- ng i trn cy
Tt c th hin trn mn hnh ha.
6
2. L thuyt
2.1 Thut ton Mentor
2.1.1 Xc nh node backbone v node trung tm
Xc nh MAXCOST
Xc nh node backbone tho mn iu kin nw(i) > w
Xc nh node truy cp ca node backbone xc nh
Tm node trung tm ca node cha phn loi, tnh merrit t tm node backbone trong tp cha xc nh , cp
nht li danh sch backbone v node truy cp
Tnh moment ri xc nh node root
Bt u
Mentor
Kt thc
Hnh 2.2.1 Lu thut ton xc nh node backbone
Bc 1: xc nh node backbone tha mn tiu chun trng s:
+ Trng s ca mt node l tng ca tt c cc lu lng vo v ra node
+ Trng s chun ha da vo node i l NW(i) = W(i) / C
+W l tham s
+ Node c NW(i) > W c chn lm node xng sng
Bc 2: xc nh MAXCOST
+ MAXCOST = maxi,j cost(Ni,Nj) = maxi,j
Bc 3: Xc inh node truy cp ca node backbone xc nh
+ Tt c cc node khng tho mn tiu chun trng s v gn node xng
sng s c chn lm node truy cp
7
+ gn c nh ngha l khi gi lin kt t node truy cp e n node
xng sng l nh hn mt phn ca gi lin kt ln nht. cost(e,Ni) <
MAXCOST * RPARM, hay < MAXCOST *
RPARM.
Bc 4: xc inh node backbone v truy cp cho nhng node cn li thuc tp
M
+ Tm trung tm ca trng lc (xctr, yctr).
- xctr =
- yctr =
+ Khong cch ti CG
- dcn =
- maxdc = max(dcn)
- maxW = max (Wn)
+ Tnh merit
- merritn =
+ Phn loi cc node cn li
- merrit a ra gi tr cn bng gia v tr gn trung tm v trng s ca
n.
- Trng s nhng node cha c phn loi, chn node c thng cao
nht v chuyn node ny thnh node xng sng.
- Phn loi cc node mi thnh cc node truy cp.
- C tip tc cho n khi tt c cc node c phn loi.
Bc 5: Tm node trung tm
+ la chn node xng sng trung tm vi gi tr moment nh nht n trung
tm
- Moment(n) =
2.1.2 Chuyn yu cu node sang xng sng.
8
+ xt ei l node truy cp ca node bi, bi l node trc trong cy. V d xt
e1,e2,b1v b2 nu b1 = b2 th khng chuyn yu cu ca e1 v e2 sang b1 v b2,
v ngc li.
Hnh 2.1.2 v d v chuyn yu cu
2.1.3 Xy dng cy Prim-Dijkstra vi tham s
+ cc node u vo l node backbone xc nh trn v root l node trung
tm.
+ Thut ton:
- Nhn Prim = minneighbors dist(node, neighbor)
- Nhn Dijkstra = minneighbors [dist(root, neighbor) + dist(neighbor, node)]
- Nhn Prim-Dijkstra = minneighbors [* dist(root, neighbor) +
dist(neighbor, node)]
2.2 Thut ton Mentor II
2.2.1 t vn
Sau khi chng ta thit k xong mng, chng ta xem xt xem lu lng s i qua u.
a ra mt vn m trung tm chnh l cht lng hot ng ca thut ton nh
tuyn.
Nu ch s dng thut ton Prim Dijkstra, s lng lin kt l t nht m vn m
bo c mt v ch mt ng i duy nht gia 2 node bt k. Tuy nhin vi thit k
nh th, s tn ti nhng lin kt m lu lng i qua n rt ln, iu ng ngha
vi vic khng m bo tnh n nh cho mng
9
Hnh 2.2.1v d mng backbone sau mentor 1
Nh hnh v trn, ta c th thy lin kt gia node 8 v 9 c lu lng i qua ln do
yu cu t cc cc node backbone 9, 2, 14 n node backbone 8, 4. Trong khi , lin
kt gia 2 node 2 v 14 li t do ch c cc yu cu i t node 14 n cc node cn li.
khc phc iu ny, chng ta c th thm cc lin kt trc tip gia cc node. V
d, node 14 v node 4. Nh vy, mt s yu cu t mt s node (VD: node 2, 14) s i
qua lin kt mi ny.
Tuy nhin, nu thm cc lin kt trc tip ny th kh nng mt s lin kt c t
trc s gim lu lng (VD: trong trng hp ny l lin kt 9 8, 9 2) i lc lu
lng ny tr v 0. Hay ni cch khc, thut ton nh tuyn s tm thy ng i
ngn nht nhng ng i c th khng tm thy ng kh thi cho thit k mng
ca chng ta.
Nh vy, cn ci thit gii thut mentor thm cc lin kt trc tip nhng vn phi
xem xt lun n gii hn ca thut ton inh tuyn. Kt qu l thut ton Mentor II
ra i.
2.2.2 ISP(Incremental Shortest Path)
10
y l bc ci tin p ng phn no yu cu trnh by trn. Mc ch ca
thut ton ISP l xc nh tt c nhng cp c th s dng lin kt trc tip thay cho
ng hin thi.
Bt u
Xc nh sp_dist[][], sp_pred[][].
i=0;S(i)
J=0;D(j)
i< numBackbone
j< numBackbone
Xc nh S_list && D_list
Cp nht sp_dist[][] &&
sp_pred[][]
Tnh maxL[n][m]
Sp xt theo th t gin dn cc cp c maxL[n][m] > D
J++
i++
Kt thc
+ u vo l cc thng s kt thc thut ton Mentor
no yes
noyes
ISP
Hnh 2.2.2 lu thut ton ISP
2.2.2.1 Ma trn khong cch thut ton Floyd Warshall
thc hin iu ny ta cn c 2 ma trn
11
Khong cch ng ngn nht Shortest-path distances gia 2 node i,
j(sp_dist)nxn
Ma trn con tr node trn ng i ngn nht gia 2 node i, j(sp_pred)nxn
Hai ma trn ny lun c cp nht sau mi ln thm lin kt. Cch xy dng ma trn
ny vi th bt k rt ging trong thut ton Floyd Warshall
Hnh 2.2.2.1 v d xy dng sp_dist[][] v sp_pred[][]
2.2.2.2 Th t xem xt cc cp cnh
Chng ta sp xt cc cp cnh theo th t bc nhy. V coi l th t cn xt xem
c thm lin kt trc tip hay khng
Hnh 2.2.2.2 v d v sp xp cc cnh theo th t
2.2.2.3 Xt cnh thm vo
Khi xem xt liu c thm lin kt trc tip gia node ngun S v node ch D
di lin kt SD = L. ta xy dng s_list v d_list
o s_list vi ngha tp node c hng li nu mun i n node khc
nu dng lin kt trc tip SD
12
o d_list vi ngha tp node c hng li nu mun i n node
khc nu dng lin kt trc tip DS
Vi ngha nh trn, cch xy dng s_list v d_list nh sau:
o Thm node vo s_list nu: sp_dist[node, s] + L < sp_dist[node, d]
o Thm node vo d_list nu: sp_dist[node, d] + L < sp_dist[node, s]
Hnh 2.2.2.3 v d xy dng s_list[] v d_list[]
Xem xt tt c cc cp (ni, nj) trong ni thuc s_list v nj thuc d_list. Khi
, lu lng (ni, nj) s chuyn sang lin kt d nh nu
sp_dist[ni, s] + L + sp_dist[d, nj] < sp_dist[ni, nj]
di ln nht cho c th n nh lu lng (ni, nj) chuyn i theo ng ny l
maxL = sp_dist[ni, nj] - sp_dist[ni, s] + sp_dist[d, nj]
iu ny c ngha l nu o di lin kt (ni, nj) n nh trong khong (L, maxL) th
lu lng s chuyn i theo ng i SD mi ny
Vi mi cp (ni, nj) ta s c s maxL. Ta sp xp cc cp ny theo th t t
trn xung
maxL(P1) = 2000
maxL(P2) = 1800
maxL(P3) = 1800
maxL(P4) = 1700
y, nu chn gi tr cnh l bao nhiu s quyt nh c bao nhiu cp (ni, nj) c th
s dng lin kt ny. V d SD = 1750 th c cc cp P1, P1, P3 s dng lin kt mi
ny.
13
3. Trin khai thut ton
3.1. Tng quan v kin trc
3.2. Xy dng thi c s
3.2.1 Class Node
+ Thuc tnh:
o public const int isRoot = -1; o public const int unknown = -2; o public const int drawIndex = 0x10; o public const int drawWeigh = 0x20;
// thong so co ban
o public int index; // thu tu node o public int x, y; // toa do o public double weigh; // trong luong nut o public int priority; // >=0 neu la nut truy
nhap, = index la backbone, -1 neu la goc, - neu chua xac
dinh
// Ket noi voi cac nut khac
o public int numNode; o public List otherNodes; o public List send, recv; o public List distance; o public List connected;
+ Operator:
o public Node(int _index, double _weigh, int _priority = Node.unknown, int _x = 0, int _y = 0, int _numNode = 0, List _otherNodes = null,
List _send = null, List _recv = null, List _distance = null, List _connected = null) {}
//hm to o public bool IsOne(Node other, int r = 50) {}
o public void SetPosition(int _x, int _y) {}
o public double GetDistance(Node Other) {} // Ly ta thc
trn Decac(cha b thay i bi mentor)
o public void ConnectNodes(Node Other) // chi dung trong ham CreateNodes. nhu vay se dung thu tu luon - chu y la
no phai connet voi chinh minh
o public void DrawNode(Graphics Grfx, int draw, double div = 2, int r = 7) {} //v node // Hm ny s hin th node vi mu sc ca node v s th t tng ng vi node
14
3.2.2 Class Arc
+ Thuc tnh:
o public Node destination, source; //so thu tu 2 diem source, destination
o public double distance; //do dai canh: distance
o public double c; //dung luong 1 lien ket
o public double ratio; //dung luong cuc dai ung voi moi lien ket (tinh theo %)
o public double capacity; //dung luong tren canh nay voi moi lien ket capacity = c * ratio = 2 * 60%
o public double flow; //tong luu luong tren canh nay: flow
o public int paths; //so luong lien ket song song: paths
o public int priority;
o public const int drawDist = 0x01; o public const int drawCap = 0x02; o public const int drawFlow = 0x04; o public const int drawPaths = 0x08;
+ Operator:
o public Arc(Node _source, Node _destination, double _flow = 0.0, double _c = 2.0, double _ratio = 0.6, int _priority = Node.unknown) {} // hm to
o public void DrawArc(Graphics Grfx, int div = 2) {} // v cnh
o public void DrawParameter(Graphics Grfx, int draw, int div = 2, int r = 8) {} //v cnh, hin thi cc thng s cnh
3.2.3. Class Graph
+ Thuc tnh:
o const int MAX_X = 1500, MAX_Y = 1500; o public List LN; o public List LA; o public int numNode = 0, numArc = 0; o public double cost = 0.0; o public int root = -1; o private Random rd = new Random();
+ Operator:
o public Graph(){} // hm to
15
o public void CreatNodes(int _numNode) {} // Khi to node trn mt phng ta cng cc tham s
tng t class node
o public void AddNode(Node node) {} // Thm node mi vo hnh
o public void ChangeDistNode(Node n1, Node n2, double dist) {} //Thay i khong cch gia cc node
o public void DeleLightBluelArcs() {} o public void AddArc(Arc arc) {} o public void AddArc(Node source, Node destination, double flow
= 0.0) {} // Thm cnh vi cc tham s cnh: node ngun, node ich,
flow
o public void ChangeFlowArc(Arc arc, double flow) {} // Thay i flow
o public void ChangePriorityArcs() {} o public void DrawPath(Graphics Grfx, List nodes, int div
= 2) {} // v cnh
o public void CopyFromGraph(Graph _graph) {} o public void CopyToGraph(Graph _graph) {} o public void AllCopyFromGraph(Graph _graph) {}
// copy ton b graph ti tng vng nh o public void ClearGraph() {} o public double TotalCost() {}
// Tnh tng cost o public void DrawGraph(Graphics Grfx, int draw, int div = 2) {} o protected int Compare(Arc x, Arc y){}
// so snh cc cnh
o public void SortDistArc(List Arcs){} // sp xp cc cnh
3.3. Thut ton
3.3.1 classMentor
+ K tha t class Graph
+ Thuc tnh
o private double[] merit; o private double[] moment; o private double[] dc; o private double W; o private double C; o private double R; o private double MAXCOST = 0;
+ Operator
o private void FindAcessNode(Node node) {}
16
//chua add canh nhe. moi chi chinh nut truy cap thoi
o public void Process(Graph _graph, double _W = 4.0, double _C = 2.0, double _R = 0.3) {}
// hm ny c l xc nh node backbone v node trung tm
o public Mentor(){}
// hm to
3.3.2 Class Prim Dijkstra
+ Thuc tnh:
o private int[] convertIndex; //anh xa nguoc. tu index cua node => thu tu luu trong List node (chu y la gio no khong theo thu tu)
o const int vc = 2000000000; o private double alpha; o private int start; o private double[] label; o private bool[] free;
o public double[] dist; o public int[] pred;
+ Operator:
o public PrimDijkstra() {} // Thut ton chnh
3.3.3 Class Floyd Warshall
Tm ng i ngn nht, gia 2 node bt k, lu vo mng sp_dist, lu li truy vt
sp_pred v s node i ti node ch sp_hop.
+ Thuc tnh:
o private int[] convertIndex; //anh xa nguoc. tu index cua node => thu tu luu trong List node (chu y la gio no khong
theo thu tu)
o const double vc = 2000000000.0; o private double[,] sp_dist; o private int[,] sp_pred; o private int[,] sp_hop;
+Operator:
o public void Process(Graph _graph, double[,] _sp_dist, int[,] _sp_pred, int[,] _sp_hop){}
//Th tc x l x l chnh, thao tc trn th graph.
//Lu gi tr tr v _sp_dist, _sp_pred, _sp_hop
3.3.4 Class ISP
Trin khai thut ton ISP:
17
+ Thuc tnh:
o private int[] convertIndex; //anh xa nguoc. tu index cua node => thu tu luu trong List node (chu y la gio no khong
theo thu tu)
o private List findArc; o private double[,] sp_dist; o private int[,] sp_pred; o private int[,] sp_hop;
o private List d_list; o private List s_list; o private List req_len; o private double esilon = 0.001;
o private double d; // = 1.0 neu muon cho qua 100%. o private double alpha;
o private double[,] NA; o double[] LW;
o public int maxNumberOfAdd = 0; o private int numberOfAdd = 0;
+ Operator:
o private bool ChangedDistArc(Arc arc) {} //t gi tr cho cnh (ni, nj)
o public void UpdatePath(int src, int des, double flow){}
//Trn ng i t node ni n node nj th tt c cc
cnh c update lu lng mi, cc nh c update
trng s mi
o public void UpdateFlowGraph(){} //Update tt c cc cp (ni, nj). Th tc ny s gi
void UpdatePath
o private int CompareHop(Arc x, Arc y){} //So snh cc cp nh (ni, nj) theo s lng bc
nhy
o public void Process(Graph _graph, double _alpha = 0.4, double _d = 0.5){}
//X l chnh trn th backbone vi cc tham s
alpha v d
o private void FindPath(int src, int des){} //Tm ng i ngt nht gia 2 node backbone
(optional)
18
o public void MainFindPath(Node src, Node des, List _path){}
//Tm ng i gia 2 node bt k (optional). Th tc
ny gi void FindPath(){}
3.4. Form chnh
Hnh 3.4.1. Giao din chnh ca chng trnh
Cc chc nng:
1. Chn cc thng s u vo.
19
- Nhp s lng node (mc nh l 90). Chng trnh s to ra N node c
nh s t 0 n N-1.
- La chn cc thng s u vo:
o H s dng trong thut ton Mentor
o R: Bn knh ca mng truy nhp
o D: H s s dng dng trong thut ton Mentor
Ngoi ra, gi tr W: ngng la chn node Backbone xc nh theo d
liu ca bi tp.
2. Thc hin
Sau khi thit lp cc thng s, ti Box Control, ta ln lt thc hin cc chc
nng cn thit:
Mentor: Xc nh cc node Backbone v node truy nhp
PrimDijkstra: Thit lp mng gia cc node Backbone
Next: Thm ng (theo thut ton Mentor 2)
Back: Quay tr v trng thi trc khi Next
Hnh 3.4.2. (2a) La chn thng s u vo (2b) Thc hin
20
Hnh 3.4.3. Thay i cc thng s
- hin th cc thuc tnh gia cc nt mng: ch ph, lu lng, W, CMax, hay
ng qu ti ta nh du vo cc trng nh bn cnh nhng thuc tnh mun
xem.
21
Hnh 3.4.4. Thuc tnh mng v thit lp
Chng trnh cn cho php tm ng gia 2 nt bt k c ni vi nhau nh
hnh 1 l nt 67 v 16.
4 Kt lun
Qua bi tp ln ny, chng em phn no hiu r hn v thut ton
MENTOR v cch hnh thnh cy theo thut ton MENTOR cng nh xy dng
cy PST v MST. c bit, chng em c c hi lm vic trn ngn ng lp trnh
C#, mt ngn ng kh mnh trong lp trnh hng i tng vi ha tt.
Qua bi tp ln, chng em mt ln na pht huy v rn luyn k nng lm vic
nhm v c lp cho mi c nhn.
Tuy nhin, nhm cng c nhiu hn ch cha lm c trong bi tp ln ny,
l mi ch lp trnh c mng Backbone, cha lp trnh c mng Access
(truy nhp).
Do thi gian c hn, nn qu trnh thc hin khng trnh khi sai st hoc
cha c nh mong mun. Chng em xin ha s lm tt hn vo cc bi tp ln
khc.
Chng em xin cm n c Trn Ngc Lan gip chng em trong qu trnh
thc hin bi tp ln ny.