Llwybr Euleraidd

Oddi ar Wicipedia
Aml-graff Pontydd Königsberg. Nid yw'r aml-graff hwn yn Euleraidd, felly, nid oes datrysiad yn bodoli.
Mae gan bob fertig y graff hwn gradd sy'n eilrif. Felly, graff Euleraidd yw hwn. Mae dilyn yr ymylon yn nhrefn yr wyddor yn rhoi cylchlwybr Euleraidd.

Mewn damcaniaeth graffiau, mae llwybr Euleraidd (neu drywydd Euleraidd) yn llwybr mewn graff meidraidd sy'n ymweld â phob ymyl unwaith yn union (yn caniatáu ailymweld â'r fertigau). Yn yr un modd, mae cylchlwybr Euleraidd yn llwybr Euleraidd sy'n cychwyn ac yn gorffen ar yr un fertig. Fe'u trafodwyd yn gyntaf gan Leonhard Euler wrth ddatrys y broblem enwog Saith Pont Königsberg ym 1736.

Profodd Euler mai amod angenrheidiol ar gyfer bodolaeth cylchlwybrau Euleraidd yw bod gan bob fertig yn y graff gradd sy'n eilrif, a nododd heb brawf bod gan raffiau cysylltiedig sydd â phob fertig gradd sy'n eilrif gylchlwybr Euleraidd. Cyhoeddwyd y prawf cyflawn cyntaf o'r honiad olaf hwn gan Carl Hierholzer ym 1873, ar ôl marwolaeth.[1] Gelwir hyn yn Theorem Euler:

Mae gan graff cysylltiedig gylchlwybr Euleraidd os a dim ond os oes gan bob fertig radd sy'n eilrif.

Mae dau ystyr i'r term graff Euleraidd: un ystyr yw graff gyda chylchlwybr Euleraidd, a'r llall yw graff lle mae gan bob fertig gradd sy'n eilrif. Mae'r diffiniadau hyn yn gywerth ar gyfer graffiau cysylltiedig.[2]

Ar gyfer bodolaeth llwybrau Euleraidd mae'n angen bod gan sero neu ddau fertig sydd â gradd sy'n odrif. Mae hyn yn golygu nad yw graff Königsberg yn Euleraidd. Os nad oes fertigau sydd â gradd sy'n odrif, mae pob llwybr Euleraidd yn gylchlwybrau. Os oes gan ddau fertig yn union gradd sy'n odrif, mae'r holl lwybrau Euleraidd yn cychwyn yn un ohonynt ac yn gorffen yn y llall. Gelwir graff sydd â llwybr Euleraidd ond dim cylchlwybr Euleraidd yn graff lled-Euleraidd.

Priodweddau[golygu | golygu cod]

  • Mae gan graff heb ei gyfeirio cylchlwybr Euleraidd os a dim ond os oes gan bob fertig radd sy'n eilrif, a bod ei holl fertigau â gradd nad yw'n sero yn perthyn i un gydran gysylltiedig.
  • Gellir dadelfennu graff heb ei gyfeirio yn gylchlwybrau ymyl-digyswllt os a dim ond os mad gradd bob un o'i fertigau yn eilrif. Felly, mae gan graff gylchlwybr Euleraidd os a dim ond os gellir ei ddadelfennu i gylchlwybrau ymyl-digyswllt ac mae ei holl fertigau â gradd nad yw'n sero yn perthyn i un gydran gysylltiedig.
  • Mae gan graff heb ei gyfeirio llwybr Euleraidd os a dim ond os oes gan sero neu ddau fertig radd sy'n odrif, a bod ei holl fertigau â gradd nad yw'n sero yn perthyn i un gydran gysylltiedig.
  • Mae gan graff cyfeiriedig gylchlwybr Euleraidd os a dim ond os oes gan bob fertig mewnradd yn hafal i'w allradd, a bod ei holl fertigau â gradd nad yw'n sero yn perthyn i un gydran gysylltiedig gryf. Yn gywerth, mae gan graff cyfeiriedig gylchlwybr Euleraidd os a dim ond os gellir ei ddadelfennu'n gylchlwybrau cyfeiriedig ymyl-digyswllt ac mae ei holl fertigau â gradd nad yw'n sero yn perthyn i un gydran gysylltiedig gryf.
  • Mae gan graff cyfeiriedig lwybr Euleraidd os a dim ond os oes gan un fertig ar y mwyaf (allradd) − (mewnradd) = 1, ar y mwyaf un fertig â (mewnradd) − (allradd) = 1, mae gan bob fertig arall allradd a mewnradd gyfartal, ac mae ei holl fertigau â gradd nad yw'n sero yn perthyn i un gydran gysylltiedig o'r graff tanfodol sydd heb ei gyfeirio.

Canfod llwybrau a chylchlwybrau Euleraidd[golygu | golygu cod]

Algorithm Fleury[golygu | golygu cod]

Mae algorithm Fleury yn algorithm cain ond aneffeithlon sy'n dyddio yn ôl i 1883.[3] Ystyriwch graff anghyfeiriedig Euleraidd neu lled-Euleraidd.

  • Os yw'r graff yn lled-Euleraidd mae'r algorithm yn cychwyn ar un o'r fertigau sydd â gradd sy'n odrif;
  • Neu os yw'r graff yn Euleraidd mae'n dechrau ar unrhyw fertig.

Ar bob cam:

  • Dewiswch ymyl nesaf y llwybr i fod un na fyddai ei ddileu yn datgysylltu'r graff; neu os nad oes ymyl o'r fath, rhaid bod ond un ymyl ar ôl, felly dewiswch yr ymyl hyn.
  • Yna mae'n teithiwch ar hyd yr ymyl hyn i'w ddiweddbwynt, ac yn dileu'r ymyl.

Ar ddiwedd yr algorithm nid oes unrhyw ymylon ar ôl, ac mae'r dilyniant yr ymylon a ddewiswyd yn ffurfio cylchlwybr Euleraidd os yw'r graff yn Euleraidd, neu lwybr Euleraidd yw'r graff yn lled-Euleraidd.

Er bod y teithio ar hyd ymylon y graff yn llinol yn ôl nifer yr ymylon, h.y. , mae angen i ni hefyd ystyried cymhlethdod canfod pontydd. Yn defnyddio algorithm Tarjan i wneud hyn, bydd gan algorithm Fleury gymhlethdod amser . Mae algorithm deinamig o ddarganfod pontydd gan Thorup (2000) caniatáu gwella hyn i gymhlethdod amser , mae hyn yn dal yn sylweddol arafach nag algorithmau amgen.

Algorithm Hierholzer[golygu | golygu cod]

Mae papur Hierholzer ym 1873 yn darparu dull gwahanol ar gyfer dod o hyd i gylchlwybrau Euler sy'n fwy effeithlon nag algorithm Fleury:

  • Dewiswch unrhyw fertig cychwynnol v, a dilynwch lwybr ymylon o'r fertig hwnnw nes dychwelyd i v. Nid yw'n bosibl mynd yn sownd ar unrhyw fertig heblaw v, oherwydd gan fod gan bob fertig radd sy'n eilrif, pan fydd y llwybr yn mynd i mewn i fertig arall w, rhaid bod ymyl na ddefnyddiwyd yn barod yn gadael w. Mae'r llwybr a ffurfiwyd fel hyn yn gylchlwybr, ond efallai na fydd yn gorchuddio holl fertigau ac ymylon y graff cychwynnol.
  • Cyn belled â bod fertig u yn perthyn i'r daith gyfredol ond sydd ag ymylon cyfagos nad yw'n rhan o'r daith, dechreuwch lwybr arall o u, gan ddilyn ymylon ni ddefnyddiwyd eto nes dychwelyd i u, ac ymuno'r llwybr a ffurfiwyd yn y modd hwn i'r llwybr blaenorol.
  • Oherwydd bod y graff yn Euleraidd mae'n gysylltiedig, felly bydd ailadrodd y cam blaenorol yn ychwanegu holl ymylon y graff i'r cylchlwybr.

Mae gan yr algorithm hwn cymhlethdod amser .[4]

Cymwysiadau[golygu | golygu cod]

Defnyddir llwybrau Euleraidd mewn biowybodeg i ailadeiladu dilyniannau DNA o'i dameidiau toredig.[5] Fe'u defnyddir hefyd wrth ddylunio cylchedau CMOS i ddod o hyd i drefn gatiau rhesymeg gorau bosib.[6] Mae yna rai algorithmau ar gyfer prosesu coed graffiau sy'n dibynnu ar lwybrau Euleraidd.[7][8]

Cyfeiriadau[golygu | golygu cod]

  1. N. L. Biggs, E. K. Lloyd and R. J. Wilson, Graph Theory 1736–1936, Clarendon Press, Oxford, 1976, 8–9, ISBN 0-19-853901-0.
  2. C. L. Mallows, N. J. A. Sloane (1975). "Two-graphs, switching classes and Euler graphs are equal in number". SIAM Journal on Applied Mathematics 28 (4): 876–880. doi:10.1137/0128070. JSTOR 2100368. http://neilsloane.com/doc/MallowsSloane.pdf.
  3. Fleury, M. (1883), "Deux problèmes de Géométrie de situation" (yn French), Journal de mathématiques élémentaires, 2nd ser. 2: pp. 257–261, https://books.google.com/books?id=l-03AAAAMAAJ&pg=PA257.
  4. Fleischner, Herbert (1991), "X.1 Algorithms for Eulerian Trails", Eulerian Graphs and Related Topics: Part 1, Volume 2, Annals of Discrete Mathematics, 50, Elsevier, pp. X.1–13, ISBN 978-0-444-89110-5.
  5. Pevzner, Pavel A.; Tang, Haixu; Waterman, Michael S. (2001). "An Eulerian trail approach to DNA fragment assembly". Proceedings of the National Academy of Sciences of the United States of America 98 (17): 9748–9753. Bibcode 2001PNAS...98.9748P. doi:10.1073/pnas.171285098. PMC 55524. PMID 11504945. http://www.pnas.org/content/98/17/9748.long.
  6. Roy, Kuntal (2007). "Optimum Gate Ordering of CMOS Logic Gates Using Euler Path Approach: Some Insights and Explanations". Journal of Computing and Information Technology 15 (1): 85–92. doi:10.2498/cit.1000731. http://cit.srce.unizg.hr/index.php/CIT/article/view/1629/1333.
  7. Tarjan, Robert E.; Vishkin, Uzi (1985). "An efficient parallel biconnectivity algorithm". SIAM Journal on Computing 14: 862–874. doi:10.1137/0214061.
  8. Berkman, Omer; Vishkin, Uzi (Apr 1994). "Finding level-ancestors in trees". J. Comput. Syst. Sci.. 2 48: 214–230. doi:10.1016/S0022-0000(05)80002-9. https://dx.doi.org/10.1016/S0022-0000(05)80002-9.