Trees Hierarchical Structures. Outlines Definition of trees Modeling by trees Properties of trees Applications – Binary search trees – Prefix codes –

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
“ The Four Principles of Spirituality ”
Advertisements

Texture การประมวลผลภาพแบบดิจิตอล Ian Thomas
โครงสร้างข้อมูลทรีและไบนารีทรี (Tree and Binary Tree)
จำนวน สถานะ NUMBER OF STATES. ประเด็นที่ สนใจ The number of distinct states the finite state machine needs in order to recognize a language is related.
สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ.เลาขวัญ งามประสิทธิ์
ตัวเก็บประจุและความจุไฟฟ้า
AVL Tree.
Asst.Prof. Dr.Surasak Mungsing
MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (6) ทรี-ต้นไม้(Trees)
Merchant Marine Training Centre วิชาการเป็นเลิศ เชิดชู คุณธรรม ผู้นำ.
Chapter 3 Simple Supervised learning
โครงสร้างข้อมูลทรีและไบนารีทรี (Tree and Binary Tree)
In-Class Exercises Discrete Mathematics
Lecture9 Tree อ. วรวิทย์ วีระพันธุ์ เรียบเรียงโดย อ
Mathematical Model of Physical Systems. Mechanical, electrical, thermal, hydraulic, economic, biological, etc, systems, may be characterized by differential.
English for everyday use
ว เคมีพื้นฐาน พันธะเคมี
ภาษาอังกฤษ อ่าน-เขียน 2
ปริมาณสัมพันธ์ ผู้สอน อ. ศราวุทธ แสงอุไร Composition Stoichiometry ว ปริมาณสัมพันธ์ สถานะของ สาร และเคมีไฟฟ้า นายศราวุทธ แสงอุไร ครูวิชาการสาขาเคมี
ครูวิชาการสาขาเคมี โรงเรียนมหิดลวิทยานุสรณ์
ภาษาอังกฤษ ชั้นมัธยมศึกษาปึที่ 4 Grammar & Reading ครูรุจิรา ทับศรีนวล.
หน่วยที่ 6 กราฟ (Graphs)
Timed Math Quiz. โปรแกรมสุ่มคำนวณเลขแข่งกับ เวลา.
Allocatable Array. Modules A packaging method for data and subprograms. Syntax of the form: A packaging method for data and subprograms. Syntax of the.
Page : Stability and Statdy-State Error Chapter 3 Design of Discrete-Time control systems Stability and Steady-State Error.
สื่อการเรียนรู้ด้วยตัวเอง ชุดฝึกเขียนสรุป (Writing Summary)
A Powerful Purpose – Part 1
Department of Computer Science, BUU
Burin Rujjanapan Updated:
บทที่ 12 กราฟ (Graph).
“เอาชนะเนื้อหนัง” OVERCOMING THE FLESH. “เอาชนะเนื้อหนัง” OVERCOMING THE FLESH.
คิดไว สรุปไว ด้วย MIND MAP ยินดีต้อนรับผู้เข้าร่วมสัมมนาหลักสูตร
“ชีวิตที่ไร้กังวล” A WORRY FREE LIFE. “ชีวิตที่ไร้กังวล” A WORRY FREE LIFE.
Graph Lecturer : Kritawan Siriboon, Boontee Kruatrachue Room no. 913
1. นี่เป็นสิ่งที่พระเยซูทรงทำ พระองค์ทรงรักษาทุกคน ที่เจ็บป่วยให้หายดี
Graph Lecturer : Kritawan Siriboon, Boontee Kruatrachue Room no. 913
Tree 2.
Trees (2) University of Phayao Sanchai Yeewiyom
Graph Lecturer : Kritawan Siriboon, Boontee Kruatrachue Room no. 913
Graph Lecturer : Kritawan Siriboon, Boontee Kruatrachue Room no. 913
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
เตรียมลูกๆ ของท่านให้พร้อม
Dr.Surasak Mungsing CSE 221/ICT221 การวิเคราะห์และออกแบบขั้นตอนวิธี Lecture 13: การคำนวณได้และการตัดสินใจของปัญหา ที่ยากต่อการแก้ไข.
บทที่ 1 ความรู้เบื้องต้น เกี่ยวกับระบบสารสนเทศ
Asst.Prof. Dr.Surasak Mungsing
ตอนที่ 3: ท่านเป็นผู้ชอบธรรมได้อย่างไร?
คำเทศนาชุด: ท่านมีของประทาน
“คิดอย่างแชมป์” THINK LIKE A CHAMPION. “คิดอย่างแชมป์” THINK LIKE A CHAMPION.
Good morning welcome to Calvary Chapel at the Bridge สวัสดีตอนเช้าขอต้อนรับสู่ โบสถ์แคล'วะรีแชพ'เพิลที่สะพาน.
1 ยอห์น 1:5-7 5 นี่เป็นเรื่องราวซึ่งเราได้ยินจากพระองค์และประกาศแก่ท่าน คือพระเจ้าทรงเป็นความสว่าง ในพระองค์ไม่มีความมืดเลย 6 ถ้าเราอ้างว่ามีสามัคคีธรรมกับพระองค์แต่ยังดำเนินในความมืด.
ต้นไม้เอวีแอล (AVL Tree)
1 E 1 S E M N G Reading & Writing
ที่มาและหน่วยงานกาชาดต่างๆ
บทที่7 ทฤษฎีกราฟเบื้องต้น
ตอนที่ 2: ค้นพบของประทานของท่าน Part 2: Finding Your Gift
Dr.Surasak Mungsing CSE 221/ICT221 การวิเคราะห์และออกแบบขั้นตอนวิธี Lecture 05: การวิเคราะห์ความซับซ้อนของ ขั้นตอนวิธีการเรียงลำดับข้อมูล.
แล้วไงเกี่ยวกับความจริง What About Truth?
“เคลื่อนไปสู่ชีวิตใหม่ ตอนที่ 2” Moving Into the Newness of Life
Data Structures and Algorithms 2/2561
1. พระเยซูทรงต้องการให้เราเป็น เหมือนพระองค์
ตอนที่ 4: เคลื่อนไปกับของประทานของท่าน Part 4: Flowing In Your Gift
Tree.
บทที่ 2 การวัด.
4.4 AVL Trees AVL (Adelson-Velskii and Landis) tree เป็น binary search tree กำกับด้วยเงื่อนไขของการสมดุล และประกันว่า depth ของ tree จะเป็น O(log n) อย่างง่ายที่สุดคือกำหนดว่า.
4.7. B-Trees โครงสร้าง tree ที่กล่าวถึงมาแล้วนั้น อยู่บนสมมติฐานที่ว่าโครงสร้างทั้งหมดสามารถจัดเก็บอยู่ในหน่วยความจำของเครื่องคอมพิวเตอร์ได้ ถ้า จำนวนข้อมูลมีปริมาณมากเกินกว่าที่จะเก็บไว้ใน.
โครงการสัมมนาเชิงปฏิบัติการบูรณาการภาครัฐและเอกชนในการจัดยุทธศาสตร์เศรษฐกิจภาคตะวันออก This template can be used as a starter file to give updates for.
4 โครงสร้างข้อมูลแบบลิงค์ลิสต์ (LINKED LIST).
การวิเคราะห์และออกแบบขั้นตอนวิธี
Dr.Surasak Mungsing CSE 221/ICT221 การวิเคราะห์และออกแบบขั้นตอนวิธี Lecture 12: เทคนิคการออกแบบขั้นตอนวิธีตอนวิธี Dynamic.
Color Standards A pixel color is represented as a point in 3-D space. Axis may be labeled as independent colors such as R, G, B or may use other independent.
ใบสำเนางานนำเสนอ:

Trees Hierarchical Structures

Outlines Definition of trees Modeling by trees Properties of trees Applications – Binary search trees – Prefix codes – Game trees Tree traversal Spanning trees TREES

DEFINITIONS TREES3

Definition A tree is a connected undirected graph with no simple circuits TREES4 Trees Not trees

THEOREM An undirected graph is a tree iff there is a unique simple path between any two of its vertices. Proof: There are two parts of the proof. (I)If there is a unique simple path between any two of its vertices in a graph, then the graph is a tree. (II)If an undirected graph G is a tree then there is a unique simple path between any two of its vertices in G. (Part I) Let G be a graph, and there is a unique simple path between any two vertices. Because there is a path between any two vertices, G is a connected graph. Because there is a unique path between any two vertices, there is no circuits in G. Thus, G is a tree TREES5

THEOREM (Part II) If an undirected graph G is a tree then there is a unique simple path between any two of its vertices in G. Let T be a tree. Then, there is no simple circuits in T. Let x and y be two vertices in T. T is a connected graph; there is a simple path P from x to y. Assume there is another simple path Q between x and y. Then, there is a cycle in T created from path P and path Q. But there is no circuit in a tree, which leads to a contradiction. Then, our assumption is not true. It means there is no other path between x and y. That is, there is only one unique path between x and y TREES6

Rooted Trees A rooted tree is a tree in which one vertex has been designated as the root and every edge is directed away from the root TREES7

T Terminologies If v is a vertex other than the root, the parent of v is the unique vertex u such that there is a directed edge from u to v. If u is a parent of v, then v is a child of u. If u and v have the same parent, then u and v are siblings. If v is a vertex other than the root, the ancestor of v is a vertex u on the path from the root to v. If u is a ancestor of v, then v is a descendant of u. A vertex in a tree is called a leaf if it has no children. A vertex is a tree is called an internal vertex if it has at least one child TREES8 r u v v u u v

m-ary Trees A rooted tree is called an m-ary tree if every internal vertex has no more than m children. The tree is called a full m-ary tree if every internal vertex has exactly m children. An m-ary tree with m=2 is called a binary tree TREES9 … … … … … … … …

MODELING BY TREES

Organization Chart Chulalongkorn University ScienceBiologyBotonyZoologyChemistry Material Science CeramicsPolymersMathematics Computer Science PhysicsEngineering Industrial Engineering Computer Engineering Electrical Engineering Mechanical Engineering TREES11

File System rootusersFacultyNitiThitiPitiStudentVanaVipaVivatsystemOSDriversMonitorKeyboardMouse TREES12

PROPERTIES OF TREES TREES13

THEOREM A tree with n vertices has n -1 edges. Proof: We will prove this theorem by induction on the number of vertices in a tree. Let T be a tree with n vertices. Basis: ( n =1) T is a tree with only one vertex. Assume that there is at least one edge in this tree. Then, that edge must connect the only vertex, and create a circuit. Thus, it is not a tree, which is a contradiction. Therefore, there is no edge in T. Induction hypothesis: A tree with n vertices has n -1 edges TREES14

THEOREM Induction step: We can construct a tree T’ with n +1 vertices from a tree T with n vertices by adding another vertex v in T. In T’, we can add an edge e from: (1)v to v, (2)one vertex x to another vertex y in T, and (3) v to any vertex in T TREES15 v T x y

THEOREM In case (1), it creates a cycle at v, and T’ cannot be a tree. Thus, this type of edge cannot be added in T’. In case (2), there is a path between x and y (since T is a tree) and an edge between x and y. Thus, a circuit is created and this type of edge cannot be added in T ’. In case (3), if an edge is added between v and another vertex y in T, there is a path from v to y, which has a path to each of the other vertices in T. Thus, there are paths from v to any vertex in T. Thus, T’ is a tree. If another edge is added in T’, it created a cycle and it is no longer a tree. Therefore, only one edge can be added to created a tree. Then, there are n edges in T’ TREES16 v T x y

THEOREM A full m -ary tree with i internal vertices contains n = mi +1 vertices. Proof: For a full m -ary tree, each vertex has m children. If there are i internal vertices, then there are mi children in this tree. But we also need to consider the root which is not a child of any vertex. Thus, the total number of vertices is mi TREES17

THEOREM A full m -ary tree with n vertices has i = ( n -1)/ m internal vertices and l = [( m -1) n +1]/ m leaves, Proof: Let n be the total number of vertices, i be the number of internal vertices, and l be the number of leaves, and n = i + l. From the previous theorem, n = mi + 1. Thus, i = ( n - 1)/ m. Also, n = mi + 1 = i + l. Then, l = i(m -1) + 1 = = = = TREES18

THEOREM A full m -ary tree with i internal vertices has n = mi +1 vertices and l = ( m -1) i + 1 leaves, Proof: Let n be the total number of vertices, i be the number of internal vertices, and l be the number of leaves, and n = mi + 1. Since n = i + l, mi + 1 = i + l. Then, l = mi – i + 1 = i(m -1) TREES19

THEOREM A full m -ary tree with l leaves has n = ( ml -1)/( m -1) vertices and i =( l -1)/( m -1) internal vertices. Proof: Let n be the total number of vertices, i be the number of internal vertices, and l be the number of leaves. From the previous theorem, n = mi + 1. (I) Since n = i + l, i = n - l. (II) Substitute (II) in (I), n = m(n-l) + 1. Then, n = mn - ml + 1 and mn - n = ml - 1 That is, n(m – 1) = ml - 1, and n = ( ml -1)/( m -1). (III) Substitute (III) in (II), i = ( ml -1)/( m -1) - l. Then, i = ( ml -1- ml + l )/( m -1), and i = ( l -1)/( m -1) TREES20

THEOREM ต้นไม้ m-ary ที่มีความสูง h มีใบไม่เกิน m h ใบ Proof: Basis: h =1. ต้นไม้ m-ary ที่มีความสูง 1 มีใบไม่เกิน m ใบ ( ดังแสดงใน รูป ) Induction hypothesis: ต้นไม้ m-ary ที่มีความสูง h มีใบไม่ เกิน m h ใบ Induction step: จะแสดงว่าต้นไม้ m-ary ที่มีความสูง h+1 มีใบไม่เกิน m h+1 ใบ สร้างต้นไม้สูง h+1 จากต้นไม้ที่สูง h โดยให้ใบของต้นไม้ ที่สูง h ทุกใบมีลูก จาก induction hypothesis, ใบของต้นไม้ที่สูง h มีไม่เกิน m h ใบ เนื่องจากต้นไม้นี้เป็นต้นไม้ m-ary แต่ละโหนดมีลูกไม่เกิน m ดังนั้นต้นไม้ที่สร้างขึ้นนี้มีใบ ไม่เกิน m  m h = m h+1 ใบ TREES21 …

COROLLARY ถ้าต้นไม้ m-ary สูง h มีใบ l ใบแล้ว h   log m l  Proof: จากทฤษฎีที่แล้ว l  m h. ดังนั้น h  log m l เนื่องจาก h เป็นจำนวนเต็ม h   log m l  TREES22

COROLLARY ถ้าต้นไม้ full m-ary สูง h มีใบ l ใบและเป็นต้นไม้ที่ balanced แล้ว h =  log m l  Proof: ให้ T เป็นต้นไม้ full m-ary ที่ balanced และสูง h ใบของ T อยู่ที่ระดับ h หรือ h-1 และต้องมีใบที่ระดับ h ดังนั้นต้องมีใบมากกว่า m h-1 ใบ นั่นคือ m h-1 < l  m h และ h-1 < log m l  h ดังนั้น h =  log m l  TREES23

APPLICATIONS TREES24

Binary Search Tree: Dictionary melodyhierarchydecisionabilityjeopardyidentitylingerkingdommakerparticleobligeneglecttangiblevehiclewheel TREES25

Prefix Codes TREES26 e a s t n r c i mth d e a s t n i t d r esta dea

Game Trees TREES27 x xx xoxox o x o x o x o x x o x xx o xx o

TREE TRAVERSAL TREES28

Traversal Algorithms Inorder traversalPreorder traversalPostorder traversal TREES29

Inorder Traversal Let T be an ordered rooted tree with root r. If T consists of r only, then r is the inorder traversal of T. Otherwise, the inorder traversal of T is composed of the inorder traversal of T 1, r, the inorder traversal of T 2, …, and the inorder traversal of T n, when T 1, T 2, …, and T n are subtrees at r from left to right TREES30 a c fed b acfedb

Inorder Traversal Algorithm procedure inorder(T: tree) r := root of T if r is a leaf then list r else begin lchild := first child of r inorder(subtree with lchild as its root) list r for each child c of r from left to right, except lchild inorder(subtree with c as its root) end TREES31

Preorder Traversal Let T be an ordered rooted tree with root r. If T consists of r only, then r is the preorder traversal of T. Otherwise, the preorder traversal of T is composed of r, the preorder traversal of T 1, the preorder traversal of T 2, …, and the preorder traversal of T n, when T 1, T 2, …, and T n are subtrees at r from left to right TREES32 a c fed b acfedb

Preorder Traversal Algorithm procedure preorder(T: tree) r := root of T list r for each child c of r from left to right begin preorder(subtree with c as its root) end TREES33

Postorder Traversal Let T be an ordered rooted tree with root r. If T consists of r only, then r is the postorder traversal of T. Otherwise, the preorder traversal of T is composed of the postorder traversal of T 1, the postorder traversal of T 2, …, the postrorder traversal of T n, and r, when T 1, T 2, …, and T n are subtrees at r from left to right TREES34 a c fed b acfedb

Postorder Traversal Algorithm procedure postorder(T: tree) r := root of T if r is a leaf then list r else begin for each child c of r from left to right postorder(subtree with c as its root) list r end TREES35

a Depth-first Search TREES36 a b cd klm rts efg opq hij procedure DFS(T: tree) r := root of T if r has at least one child then for each child c of node r begin Q := subtree with root c DFS(Q) end cbodfpgqerisjthlmk stack Bottom of stack backtracking

Breadth-first Search TREES37 a b cd klm rts efg opq hij procedure BFS(T: tree) r := root of T Q := enpty queue Add r to Q while Q is not empty begin Remove v from Q for each child c of v Add c to Q end bcdeafghijklopqrmst Queue

SPANNING TREES TREES38

Spanning Trees Definition Let G be a simple graph. A spanning tree of G is a subgraph of G that is a tree containing every vertex of G TREES39 A E B I C FHG J D A E B I C FHG J D A E B I C FHG J D

Finding a Spanning Tree Eliminating cycles TREES40 A E B I C FHG J D

THOEREM A simple graph is connected iff it has a spanning tree. Proof: Part 1: A simple graph is connected if it has a spanning tree. Part 2: A simple graph has a spanning tree if it is connected TREES41

Part 1 A simple graph is connected if it has a spanning tree. Proof: กำหนดให้ G เป็น simple graph ที่มี spanning tree เนื่องจาก G มี spanning tree ดังนั้นต้องมีวิถีระหว่าง โหนดทุกคู่ นั่นคือ G เป็น connected graph TREES42

Part 2 A simple graph has a spanning tree if it is connected. Proof: กำหนดให้ G เป็น simple graph ที่ connected ถ้า G เป็นต้นไม้ G มี spanning tree แล้ว ถ้า G เป็นต้นไม้แล้วต้องมี circuit ใน G ดังนั้นให้ C เป็น cycle ใน G ถ้าลบเส้นเชื่อมหนึ่งเส้นใน C ออกแล้วยังมีวิถีระหว่าง โหนดทุกคู่ใน cycle C ดังนั้นยังมีเส้นเชื่อมระหว่างทุกโหนดใน G ถ้าเราทำเช่นนี้จนไม่มี cycle เหลือแล้ว จะยังคงมีวิถี ระหว่างโหนดทุกคู่ใน G Graph ที่เหลือนี้เป็น spanning tree นั่นคือ G มี spanning tree TREES43

Finding a Spanning Tree Using Depth-first Traversal TREES44 A E B I C FHG J D procedure DFS(G: graph, r: vertex) T := a tree with root r visit(r, T) procedure visit(v: vertex, T: tree) for each child c of node v begin add vertex c and edge {v,c} to T visit(c) end

Finding a Spanning Tree Using Breadth-first Traversal TREES45 A E B I C FHG J D procedure BFS(G: graph) T := tree containing a vertex r Q := enpty queue Add r to Q while Q is not empty begin Remove v from Q for each neighbor c of v if c is not in Q nor T then begin add c to Q add c and {v, c} to T end Queue AEBFCIGHJD

Minimum Spanning Trees Definition A minimum spanning tree in a connected weighted graph is a spanning tree that has the smallest possible sum of weights of its edges TREES46

Example TREES47 A E B I C FHG J D A E B I C FHG J D A E B I C FHG J D A E B I C FHG J D A spanning tree: weight=21A spanning tree: weight=24 graphA minimum spanning tree: weight=10

Prim’s Algorithm Choose the lightest edge first. Then, choose the lightest edge connecting to one of the already-chosen edges, as long as no circuit is created TREES48 A E B I C FHG J D

Prim’s Algorithm Choose the lightest edge first. Then, choose the lightest edge connecting to one of the already-chosen edges, as long as no circuit is created. procedure Prim(G: weighted, undirected graph) T := {e | e is lightest edge} for i:=1 to number_of_node (G)-2 begin e := a lightest edge incident to a vertex in T, and not creating a cycle in T. Add e to T. end TREES49

THEOREM Prim’s algorithm creates a minimum spanning tree. Proof: กำหนดให้ G เป็นกราฟเชื่อมต่อแบบมีน้ำหนักที่มี n vertex กำหนดให้ T เป็นกราฟย่อยที่สร้างจาก Prim’s algorithm ขั้นแรก เราจะแสดงว่า T เป็น spanning tree. เนื่องจาก Prim’s algorithm เลือก edge ที่ไม่ทำให้เกิด cycle เรารู้ว่า T เป็นกราฟที่ไม่มีวงจร ด้วย induction proof เราบอกได้ว่ามีวิถีระหว่างโหนด ทุกคู่ เนื่องจาก T เป็นกราฟเชื่อมต่อที่ไม่มีวงจร ดังนั้น T เป็น ต้นไม้ เมื่อ Prim’s algorithm ทำงานจบ T มีโหนดทั้งหมด n โหนด ดังนั้น T เป็น spanning tree TREES50

THEOREM ขั้นต่อมา เราจะแสดงว่า T เป็น spanning tree ที่มีน้ำหนักน้อย สุด สมมุติว่า T ไม่เป็น spanning tree ที่มีน้ำหนักน้อยสุด และ w(T) เป็นน้ำหนักรวมของ edge ใน T ดังนั้นให้ H เป็น spanning tree ที่มีน้ำหนักน้อยสุด เและมี edge ร่วมกับ T มากที่สุด กำหนดให้ e 1, e 2,…, e n-1 เป็นเส้นเชื่อมที่เลือกโดยขั้นตอนวิธี Prim’s เรียงตามลำดับ สมมุติว่า e i เป็น edge แรกใน T ที่ไม่อยู่ใน H ถ้าเพิ่ม e i ใน H จะทำให้เกิดวงจรและ H จะไม่เป็นต้นไม้ ดังนั้นเราจะลบ e j ที่อยู่ในวงจรแต่ไม่อยู่ใน T ออกจาก H เพื่อให้ H ยังเป็นต้นไม้ ( ต้นไม้นี้คือ H-{e j }  {e i }) แต่ w(e j ) > w(e i ) เพราะ Prim’s algorithm เลือก e i ก่อน e j ดังนั้น H ไม่เป็น spanning tree ที่มีน้ำหนักน้อยสุด ซึ่งทำให้เกิด ข้อขัดแย้ง สรุปได้ว่า T ไม่เป็น spanning tree ที่มีน้ำหนักน้อยสุด TREES51

Kruskal’s Algorithm Choose the lightest edge, as long as no circuit is created. procedure Kruskal(G: weighted, undirected graph) T := empty graph for i:=1 to number_of_node(G)-1 begin e := any lightest edge which is not in T and does not create a circuit in T. Add e to T. end TREES52

Kruskal’s Algorithm Choose the lightest edge, as long as no circuit is created. procedure Kruskal(G: weighted, undirected graph) TREES53 A E B I C FHG J D

THEOREM Kruskal’s algorithm correctly finds a minimum spanning tree. Proof Let G be a graph and T be a subgraph selected from Kruskal algorithm In the first step, T is a spanning tree with minimum weight in the forest we have constructed so far (initially, F consists of n trees of 1 node each, and at each step two trees get merged until finally F is just a single tree at the end) TREES54

THEOREM Assume by induction that there exists an MST M of G that is consistent with F, i.e., all edges in F are also in M ; this is clearly true at the start when F has no edges. Let e be the next edge added by the algorithm. Our goal is to show that there exists an MST M′ of G consistent with F ∪ { e } TREES55

THEOREM If e ∈ M then we are done ( M′ = M ). Else add e into M, creating a cycle. Since the two endpoints of e were in different trees of F, if you follow around the cycle you must eventually traverse some edge e′ = e whose endpoints are also in two different trees of F (because you eventually have to get back to the node you started from). Now, both e and e′ were eligible to be added into F, which by definition of our algorithm means that len ( e ) ≤ len ( e′ ). So, adding e and removing e′ from M creates a tree M′ that is also a MST and contains F ∪ { e }, as desired TREES56