Tower of Hanoi Complexity of solutions of interesting variants of the known game.

Slides:



Advertisements
Similar presentations
3/25/2017 Chapter 16 Recursion.
Advertisements

Tower of Hanoi Tower of Hanoi is a mathematical puzzle invented by a French Mathematician Edouard Lucas in The game starts by having few discs stacked.
The Towers of Hanoi or Apocalypse When?.
CS1010: Programming Methodology
The Algorithmic problems?
Towers of Hanoi
Ford Fulkerson. Ford-Fulkerson (N=(G, c, s, t)) ; G = (V, E) for each edge, while exists a path P from s to t in residual network N f do for each edge.
Problem definition The Tower of Hanoi is a mathematical game or puzzle. It consists of three rods, and a number of disks of different sizes which can.
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved Chapter 20 Recursion.
COSC 2006 Data Structures I Recursion III
פונקציונל פונקציה מספר פונקציונל דוגמאות לא פונקציונל פונקציונל.
Representational Choices The Towers of Hanoi Problem.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
1 On a question of Leiss regarding the Towers of Hanoi problem.
Chapter Day 25. © 2007 Pearson Addison-Wesley. All rights reserved Agenda Day 25 Problem set 5 Posted (Last one)  Due Dec 8 Friday Capstones Schedule.
1 CSCD 300 Data Structures Recursion. 2 Proof by Induction Introduction only - topic will be covered in detail in CS 320 Prove: N   i = N ( N + 1.
01/01/01 אמיר ווינשטוק עירן חוף שקופית מס ’ 1 מימוש ובדיקת אלגוריתם ללמידה ע"י חיזוקים עבור רובוט המשחק הוקי - אויר : מגישים עירן חוף אמיר ווינשטוק : מנחה.
Recursion!. Question Stephen King’s books J. R. R. Tolkien’s books Recursion Do they have something in common?
The Cyclic Multi-peg Tower of Hanoi מעגלי חד-כווני סבוכיות הפתרון בגרסאות עם יותר מ-3 עמודים.
הקדמה. תנועת גל בחומר. קריסת הגל. משוואת ברגר (Burgers’ equation) ופתרונה. גלי הלם. סיכום.
The Tower of Hanoi
ELC 310 Day 24. © 2004 Pearson Addison-Wesley. All rights reserved11-2 Agenda Questions? Problem set 5 Parts A Corrected  Good results Problem set 5.
1 מבוא למדעי המחשב backtracking. 2 מוטיבציה בעיית n המלכות: נתון: לוח שחמט בגודל. המטרה: לסדר על הלוח n מלכות כך שאף אחת לא תאיים על השנייה. דוגמא: עבור.
1 מבוא למדעי המחשב רקורסיה. 2 רקורסיה היא שיטה לפתרון בעיות המבוססת על העיקרון העומד ביסוד אינדוקציה מתמטית: אם ידועה הדרך לפתור בעיה עבור המקרים הבסיסיים.
Introduction to Programming (in C++) Recursion Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer Science, UPC.
Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley C H A P T E R 12 Recursion.
Recursion Jordi Cortadella Department of Computer Science.
R. Johnsonbaugh Discrete Mathematics 5 th edition, 2001 Chapter 5 Recurrence Relations.
By: Lokman Chan Recursive Algorithm Recursion Definition: A function that is define in terms of itself. Goal: Reduce the solution to.
מבוא למדעי המחשב הרצאה 11: תכנות רקורסיבי 4 כולל מיון רקורסיבי 1.
Upon completion, the world will end…
11 Project 2 Towers of Hanoi. 22 Towers of Hanoi is a well known puzzle that can be very difficult to solve manually but can be programmed very easily.
Chapter 6.1: Recurrence Relations Discrete Mathematical Structures: Theory and Applications.
Hanoi Towers Big Oh Recursion Data Structures and Algorithms CS 244 Brent M. Dingle, Ph.D. Department of Mathematics, Statistics, and Computer Science.
Lecture - 8 On Stacks, Recursion. Prepared by, Jesmin Akhter, Lecturer, IIT,JU Lecture Outline Quick sort Algorithm Recursion –Calculate n factorial –Fibonacci.
מבוא למדעי המחשב הרצאה 9: תכנות רקורסיבי 2 1. חישוב עצרת: רקורסיית זנב public static int fact (int n){ return factacc(n,1); } public static int factacc.
Recursive Algorithms A recursive algorithm calls itself to do part of its work The “call to itself” must be on a smaller problem than the one originally.
22C:19 Discrete Math Advanced Counting Fall 2010 Sukumar Ghosh.
Pass the Buck Every good programmer is lazy, arrogant, and impatient. In the game “Pass the Buck” you try to do as little work as possible, by making your.
1 Programming for Engineers in Python Autumn Lecture 9: Sorting, Searching and Time Complexity Analysis.
UNIT 17 Recursion: Towers of Hanoi.
CMPF144 FUNDAMENTALS OF COMPUTING THEORY Module 9: The Tower of Hanoi.
1 CS1120: Recursion. 2 What is Recursion? A method is said to be recursive if the method definition contains a call to itself A recursive method is a.
Recursion Chapter What is recursion? Recursion occurs when a method calls itself, either directly or indirectly. Used to solve difficult, repetitive.
Hanoi Towers part 1 CS 244 Brent M. Dingle, Ph.D. Game Design and Development Program Department of Mathematics, Statistics, and Computer Science University.
1 In this puzzle, the player begins with n disks of decreasing diameter placed one on top of the other on one of three pegs of the game board. The player.
Tower of Hanoi Tower of Hanoi is a mathematical puzzle invented by a French Mathematician Edouard Lucas in The game starts by having few discs stacked.
Recursively Defined Sequences Lecture 40 Section 8.1 Wed, Apr 11, 2007.
Aumm-e-hani munir Maria umer Rakhshanda batool Faiza.
CPS Today’s topics Programming Recursion Invariants Reading Great Ideas, p Brookshear, Section Upcoming Copyrights, patents, and.
1 Towers of Hanoi Three pegs, one with n disks of decreasing diameter; two other pegs are empty Task: move all disks to the third peg under the following.
Lecture 11 Recursion. A recursive function is a function that calls itself either directly, or indirectly through another function; it is an alternative.
Recursive. Recursive F(n) = F(n-1) + F(n-2) n! = (n-1)! x n C(m,n) = C(m-1,n-1)+C(m-1,n)......
Tower of Hanoi problem: Move the pile of rings from one peg to another
C Programming.
Recursive Algorithm R ecursive Algorithm.
FAA FAA (int s, int val) { temp = s; s = s + val; return temp; }
Recursive Thinking Chapter 9 introduces the technique of recursive programming. As you have seen, recursive programming involves spotting smaller occurrences.
More Recursion.
Recursive Thinking Chapter 9 introduces the technique of recursive programming. As you have seen, recursive programming involves spotting smaller occurrences.
Jordi Cortadella Department of Computer Science
Marina Kogan Sadetsky –
CS1120: Recursion.
Tower of Hanoi problem: Move the pile of rings from one peg to another
The Hanoi Tower Problem
Tower of Hanoi Algorithm
Tower of Hanoi Txt: 10.4 and p. 478 & SOL: DM.10
Recursion.
Tower of Hanoi problem: Move the pile of rings from one peg to another
Presentation transcript:

Tower of Hanoi Complexity of solutions of interesting variants of the known game

Joint work with Prof. Daniel Berend CS, BGU

The known game Three sticks (pegs, posts) n (64?) disks, different diameters No disk can be on top of a smaller one Well known initial and final configurations (regular conf.)

Some pictures

הכללים בכל מהלך מזיזים בדיוק טבעת אחת היא חייבת להיות עליונה באף שלב טבעת לא תהיה מונחת על קטנה ממנה (מצבים חוקיים – regular configurations)

הגרסה הידועה Tower(N,src,dest,aux) If |N| ≥ 1 –Tower(N-{|N|},src,aux,dest) –Put({|N|},src,dest) –Tower(N-{|N|},aux,dest,src) Time analysis –a n = 2a n –a 1 = 1 –  a n = 2 n – 1 Best possible

What is it good for? Limited budget research –3 research tools; 3  9.99 Other reasons –Fun –Teaching recursion in programming –Next?

גרסאות עיקריות גרסא מקורית עמודים... גדולה על קטנה Minsker גישה Scorer Stockmeyer התחלה וסיום Er צבעים Minsker קשירות לא חזקה Leiss

שאלות לכל גרסה פתרון כלשהוא פתרון רקורסיבי מול איטרטיבי מול מקבילי זמן ריצה

נושאי השיחה הקדמה המקרה הקלאסי: חסמי מלעיל ומלרע מגבלות גישה בין העמודים דרך פתרון: דוגמא עם מסילה דוגמא מורכבת: Cyclic++ אלגוריתם אחיד

נושאי השיחה הקדמה המקרה הקלאסי: חסמי מלעיל ומלרע מגבלות גישה בין העמודים –מיהם המקרים האפשריים? –כיצד לתאר גרסה? –כיצד לתאר פתרון? –תנאי הכרחי ומספיק לפתרון דרך פתרון: דוגמא עם מסילה דוגמא מורכבת: Cyclic++ האלגוריתם האחיד

Graphs for 3 pegs מעגלי Cyclic Cyclic++ Complete-- שלםComplete מסילהPath

תנאי הכרחי ומספיק G ק.ח.  G (n) ק.ח. גרף מצבים

נושאי השיחה הקדמה המקרה הקלאסי: חסמי מלעיל ומלרע מגבלות גישה בין העמודים דרך פתרון: דוגמא עם מסילה –בעיות וסימטריה –נוסחאות נסיגה –פתרון מערכת נוסחאות –פתרון מדוקדק דוגמא מורכבת: Cyclic++ האלגוריתם האחיד

מסילה נוסחאות נסיגה –a n = a n-1 + b n –b n = 3b n-1 + 2

נושאי השיחה הקדמה המקרה הקלאסי: חסמי מלעיל ומלרע מגבלות גישה בין העמודים דרך פתרון: דוגמא עם מסילה דוגמא מורכבת: Cyclic++ –נוסחאות נסיגה –שקילות מענינת –פתרון מערכת נוסחאות האלגוריתם האחיד

פעולות –T 12,{n}  T 13,{n-1} T 12,n T 32,{n-1} –T 13,{n}  T 13,{n-1} T 12,n T 31,{n-1} T 23,n T 13,{n-1} –T 21,{n}  T 23,{n-1} T 21,n T 31,{n-1} –T 23,{n}  T 21,{n-1} T 23,n T 13,{n-1} –T 31,{n}  T 32,{n-1} T 31,n T 21,{n-1} –T 32,{n}  T 32,{n-1} T 31,n T 23,{n-1} T 21,n T 32,{n-1} Cyclic++

נוסחאות נסיגה –a n = 2b n –b n = 2b n-1 + d n –c n = 2d n –d n = b n-1 + c n Cyclic++

לדוגמא:

נושאי השיחה הקדמה המקרה הקלאסי: חסמי מלעיל ומלרע מגבלות גישה בין העמודים דרך פתרון: דוגמא עם מסילה דוגמא מורכבת: Cyclic++ האלגוריתם האחיד –הצגה –נכונות –אופטימליות

פתרון עבור 3 עמודים If n  1 האלגוריתם –If (src,dest)  E(G) Move the smallest n-1 disks from src to aux Move disk number n from src to dest Move the n-1 disks from aux to dest –Else Move the smallest n-1 disks from src to dest Move disk number n from src to aux Move the n-1 disks from dest to src Move disk number n from aux to dest Move the n-1 disks from src to dest נכונות אופטימליות

דוגמת ריצה העברה מ-א ל-ב ג בא

דוגמת ריצה העברה מ-ב ל-א ג בא