Source code online books for professionals by professionals



Download 4,67 Mb.
Pdf ko'rish
bet75/266
Sana31.12.2021
Hajmi4,67 Mb.
#213682
1   ...   71   72   73   74   75   76   77   78   ...   266
Bog'liq
2 5296731884800181221

Figure 5-4.  A dodecahedron, where the objective is to trace the edges so you visit each vertex exactly once. The 
illustration is taken from Récréations Mathématiques, vol 2 (Lucas, 1896, p. 205)


Chapter 5 

 traversal: the skeleton key of algorithmiCs
99
it’s not so hard to see that connectedness and even-degree nodes are necessary conditions (disconnectedness 
is clearly a barrier, and an odd-degree node will necessarily stop your tour at some point). it’s a little less obvious 
that they are sufficient conditions. We can prove this by induction (big surprise, eh?), but we need to be a bit 
careful about our induction parameter. if we start removing nodes or edges, the reduced problem may no longer 
be eulerian, and our induction hypothesis won’t apply. let’s not worry about connectivity. if the reduced graph 
isn’t connected, we can apply the hypothesis to each connected component. But what about the even degrees?
We’re allowed to visit the nodes as often as we want, so what we’ll be removing (or “using up”) is a set of edges. 
if we remove an even number of edges from each node we visit, out hypothesis will apply. one way of doing this 
would be to remove the edges of some closed walk (not necessarily visiting all nodes, of course). the question 
is whether such a closed walk will always exist in an eulerian graph. if we just start walking from some node, u
every node we enter will go from even degree to odd degree, so we can safely leave it again. as long as we never 
visit an edge twice, we will eventually get back to u.
now, let the induction hypothesis be that any connected graph with even-degree nodes and fewer than E edges 
has a closed walk containing each edge exactly once. We start with E edges and remove the edges of an arbitrary 
closed walk. We now have one or more eulerian components, each of which is covered by our hypothesis. the 
last step is to combine the euler tours in these components. our original graph was connected, so the closed walk 
we removed will necessarily connect the components. the final solution consists of this combined walk, with a 
“detour” for the euler tour of each component.
in other words, deciding whether a graph is eulerian is pretty easy, and finding an euler tour isn’t that hard either 
(see exercise 5-2). the eulerian tour does, however, have a more problematic relative: the hamilton cycle.
the hamilton cycle is named after sir William rowan hamilton, an irish mathematician (among other things), 
who proposed it as a game (called The Icosian Game), where the objective is to visit each of the vertices of a 
dodecahedron (a 12-sided platonic solid, or d12) exactly once and return to your origin (see figure 
5-4
). more 
generally, a hamilton cycle is a subgraph containing all the nodes of the full graph (exactly once, as it is a proper 
cycle). as i’m sure you can see, königsberg is hamiltonian (that is, it has a hamilton cycle). showing that the 
dodecahedron is hamiltonian is a bit harder. in fact, the problem of finding hamilton paths in general graphs 
is a hard problem—one for which no efficient algorithm is known (more on this in Chapter 11). sort of odd, 
considering how similar the problems are, don’t you think?
A Walk in the Park
It’s late autumn in 1887, and a French telegraphic engineer is wandering through a well-kept garden maze, watching 
the leaves beginning to turn. As he walks through the passages and intersections of the maze, he recognizes some 
of the greenery and realizes that he has been moving in a circle. Being an inventive sort, he starts to ponder how he 
could have avoided this blunder and how he might best find his way out. He remembers being told, as a child, that 
if he kept turning left at every intersection, he would eventually find his way out, but he can easily see that such a 
simple strategy won’t work. If his left turns take him back where he started before he gets to the exit, he’s trapped in 
an infinite cycle. No, he’ll need to find another way. As he finally fumbles his way out of the maze, he has a flash of 
insight. He rushes home to his notebooks, ready to start sketching out his solution.
OK, this might not be how it actually happened. I admit it, I made it all up, even the year.
5
 What is true, though, is 
that a French telegraphic engineer named Trémaux in the late 1880s invented an algorithm for traversing mazes. I’ll 
get to that in a second, but first let’s explore the “keep turning left” strategy (also known as the left-hand rule) and see 
how it works—and when it doesn’t.
5
Hey, even the story of Newton and the apple is apocryphal.


Chapter 5 

 traversal: the skeleton key of algorithmiCs
100
No Cycles Allowed
Consider the maze in Figure 
5-5
. As you can see, there are no cycles in it; its underlying structure is that of a tree, 
as illustrated by the figure on the right. Here the “keep one hand on the wall” strategy will work nicely.
6
 One way of 
seeing why it works is to observe that the maze really has only one inner wall (or, to put it another way, if you put 
wallpaper inside it, you could use one continuous strip). Look at the outer square. As long as you’re not allowed 
to create cycles, any obstacles you draw have to be connected to it in exactly one place, and this doesn’t create any 
problems for the left-hand rule. Following this traversal strategy, you’ll discover all nodes and walk every passage 
twice (once in either direction).
a
b
c
d
e
f
g
h
i
j
k
l

Download 4,67 Mb.

Do'stlaringiz bilan baham:
1   ...   71   72   73   74   75   76   77   78   ...   266




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish