Untitled

Transcription

Untitled
Ž£« ¢«¥­¨¥
à¥¤¨á«®¢¨¥
â ª­¨£ ¯®¤à®¡­® à á᪠§ë¢ ¥â ® ᮢ६¥­­ëå ¬¥â®¤ å ¯®áâ஥­¨ï ¨ ­ «¨§ «£®à¨â¬®¢. ‚ ­¥© ¯®¤à®¡­® à §®¡à ­® ¬­®£® ª®­ªà¥â­ëå «£®à¨â¬®¢; ¬ë áâ à «¨áì à á᪠§ âì ® ­¨å ¯®­ïâ­®, ­®
­¥ ®¯ãáª ï ¤¥â «¥© ¨ ­¥ ¦¥àâ¢ãï áâண®áâìî ¨§«®¦¥­¨ï.
€«£®à¨â¬ë § ¯¨á ­ë á ¢¨¤¥ "¯á¥¢¤®ª®¤ " ¨ ¯à®ª®¬¬¥­â¨à®¢ ­ë
¢ ⥪áâ¥; ¬ë áâ à «¨áì ᤥ« âì ®¯¨á ­¨¥ «£®à¨â¬ ¯®­ïâ­ë¬ «î¤ï¬ á ¬¨­¨¬ «ì­ë¬ ¯à®£à ¬¬¨áâ᪨¬ ®¯ë⮬. Š­¨£ ᮤ¥à¦¨â ¡®«¥¥ 260 à¨áã­ª®¢, ¯®ïá­ïîé¨å à ¡®âã à §«¨ç­ëå «£®à¨â¬®¢. Œë
®¡à é ¥¬ ®á®¡®¥ ¢­¨¬ ­¨¥ ­ íä䥪⨢­®áâì à áᬠâਢ ¥¬ëå «£®à¨â¬®¢ ¨ ¯à¨¢®¤¨¬ ®æ¥­ª¨ ¢à¥¬¥­¨ ¨å à ¡®âë.
Œë áâ à «¨áì ­ ¯¨á âì ã祡­¨ª ¯® ¯®áâ஥­¨î «£®à¨â¬®¢ ¨
áâàãªâãà ¤ ­­ëå, ª®â®àë© ¬®£«¨ ¡ë ¨á¯®«ì§®¢ âì ¯à¥¯®¤ ¢ ⥫¨
¨ áâ㤥­âë | ®â ¯¥à¢®ªãàá­¨ª®¢ ¤® á¯¨à ­â®¢. Š­¨£ ¬®¦¥â ¡ëâì
¨á¯®«ì§®¢ ­ ¨ ¤«ï á ¬®®¡à §®¢ ­¨ï ¯à®ä¥áᨮ­ «ì­ëå ¯à®£à ¬¬¨á⮢.
à¥¯®¤ ¢ ⥫ï¬:
Œë áâ à «¨áì ᤥ« âì ¢®§¬®¦­ë¬ ¨á¯®«ì§®¢ ­¨¥ ª­¨£¨ ­ à §­ëå ã஢­ïå | ®â ­ ç «ì­®£® ªãàá ¯® ¯à®£à ¬¬¨à®¢ ­¨î ¨ áâàãªâãà ¬ ¤ ­­ëå ¤® á¯¨à ­â᪮£® ªãàá ¯® íä䥪⨢­ë¬ «£®à¨â¬ ¬. ‚ ­¥© £®à §¤® ¡®«ìè¥ ¬ â¥à¨ « , 祬 ¬®¦­® ¢ª«îç¨âì ¢ ᥬ¥áâà®¢ë© ªãàá, â ª çâ® ¢ë ¬®¦¥â¥ ¢ë¡à âì £« ¢ë ¯® ¢ªãáã.
Œë áâ à «¨áì ᤥ« âì £« ¢ë ¤®áâ â®ç­® ­¥§ ¢¨á¨¬ë¬¨. Š ¦¤ ï
£« ¢ ­ 稭 ¥âáï á ¡®«¥¥ ¯à®á⮣® ¬ â¥à¨ « ; ¡®«¥¥ âàã¤­ë¥ â¥¬ë
®â­¥á¥­ë ¢ à §¤¥«ë, ¯®¬¥ç¥­­ë¥ §¢ñ§¤®çª®© ¨ ¯®¬¥éñ­­ë¥ ¢ ª®­¥æ
£« ¢ë. ‚ «¥ªæ¨ïå ¤«ï ­ 稭 îé¨å ¬®¦­® ®£à ­¨ç¨âìáï ­¥áª®«ìª¨¬¨ ¯¥à¢ë¬¨ à §¤¥« ¬¨ ¢ë¡à ­­ëå ¢ ¬¨ £« ¢, ®áâ ¢¨¢ ¯®¤à®¡­®¥
¨§ã祭¨¥ ®áâ «ì­ëå ¤«ï ¡®«¥¥ ¯à®¤¢¨­ã⮣® ªãàá .
Š ¦¤ë© à §¤¥« á­ ¡¦ñ­ ã¯à ¦­¥­¨ï¬¨ (¢á¥£® ¨å ¡®«¥¥ 900): ª ¦¤ ï £« ¢ § ª ­ç¨¢ ¥âáï § ¤ ç ¬¨ (¢á¥£® ¡®«¥¥ 120). Š ª ¯à ¢¨«®,
ã¯à ¦­¥­¨ï ¯à®¢¥àïîâ ¯®­¨¬ ­¨¥ ¨§«®¦¥­­®£® ¬ â¥à¨ « (ç áâì
¨§ ­¨å | ãáâ­ë¥ ¢®¯à®áë, ç áâì ¯®¤å®¤ïâ ¤«ï ¯¨á쬥­­®£® ¤®¬ è-
3
­¥£® § ¤ ­¨ï). ‡ ¤ ç¨ ¡®«¥¥ à §¢ñà­ãâë; ¬­®£¨¥ ¨§ ­¨å ¤®¯®«­ïîâ
⥮à¥â¨ç¥áª¨© ¬ â¥à¨ « ᮮ⢥âáâ¢ãî饩 £« ¢ë ¨ à §¡¨âë ­ ç áâ¨, ᮮ⢥âáâ¢ãî騥 íâ ¯ ¬ ¤®ª § ⥫ìá⢠¨«¨ ¯®áâ஥­¨ï.
‡¢ñ§¤®çª®© ®â¬¥ç¥­ë ¡®«¥¥ âàã¤­ë¥ ã¯à ¦­¥­¨ï ¨ à §¤¥«ë; ®­¨
¯à¥¤­ §­ 祭ë ᪮॥ ¤«ï áâ à襪ãàá­¨ª®¢ ¨ á¯¨à ­â®¢.  §¤¥«ë
á® §¢ñ§¤®çª®© ç áâ® âॡãîâ «ãç襩 ¬ ⥬ â¨ç¥áª®© ¯®¤£®â®¢ª¨;
ã¯à ¦­¥­¨¥ á® §¢ñ§¤®çª®© ¬®¦¥â â ª¦¥ âॡ®¢ âì ¤®¯®«­¨â¥«ì­ëå
§­ ­¨© ¨«¨ ¯à®áâ® ¡ëâì ¡®«¥¥ âà㤭ë¬.
‘â㤥­â ¬:
Œë ­ ¤¥¥¬áï, çâ® ª­¨£ ¤®áâ ¢¨â ¢ ¬ 㤮¢®«ìá⢨¥ ¨ ¯®§­ ª®¬¨â á ¬¥â®¤ ¬¨ ¯®áâ஥­¨ï «£®à¨â¬®¢. Œë áâ à «¨áì ¯¨á âì ¯®¤à®¡­®, ¯®­ïâ­® ¨ ¨­â¥à¥á­®, ­ ¯®¬¨­ ï ¯® 室㠤¥« ­¥®¡å®¤¨¬ë¥ ᢥ¤¥­¨ï ¨§ ¬ ⥬ ⨪¨. ®¤£®â®¢¨â¥«ì­ë¥ ᢥ¤¥­¨ï ®¡ëç­®
á®¡à ­ë ¢ ­ ç «ì­ëå à §¤¥« å £« ¢ë, ª®â®àë¥ ¬®¦­® ¡¥£«® ¯à®á¬®âà¥âì, ¥á«¨ ¢ë 㦥 §­ ª®¬ë á ⥬®©.
Š­¨£ íâ ¢¥«¨ª , ¨ ­ «¥ªæ¨ïå, ᪮॥ ¢á¥£®, ¡ã¤¥â à §®¡à ­ «¨èì ç áâì ¬ â¥à¨ « . Œë ­ ¤¥¥¬áï, çâ® ®áâ ¢è ïáï ç áâì ¡ã¤¥â
¢ ¬ ¯®«¥§­ ¥á«¨ ­¥ ᥩç á, â ª ¢ ¡ã¤ã饬, â ª çâ® ¢ë á®åà ­¨â¥
ª­¨£ã ¢ ª ç¥á⢥ á¯à ¢®ç­¨ª .
—â® ­ã¦­® §­ âì, ¯à¨áâã¯ ï ª ç⥭¨î? Œë à ááç¨âë¢ ¥¬, çâ®
¢ë
¨¬¥¥â¥ ­¥ª®â®àë© ¯à®£à ¬¬¨áâ᪨© ®¯ëâ, ¨ ४ãàᨢ­ë¥ ¯à®æ¥¤ãàë, ¬ áá¨¢ë ¨ ᯨ᪨ ¢ á ­¥ ¯ã£ îâ;
¯à®áâë¥ ¬ ⥬ â¨ç¥áª¨¥ à áá㦤¥­¨ï (᪠¦¥¬, ¤®ª § ⥫ìá⢠¯®
¨­¤ãªæ¨¨) ¢ ¬ â ª¦¥ §­ ª®¬ë (ª®¥-£¤¥ ¯®­ ¤®¡ïâáï ®â¤¥«ì­ë¥
ä ªâë ¨§ ªãàá ¬ ⥬ â¨ç¥áª®£® ­ «¨§ ; ¢ ¯¥à¢®© ç á⨠¡®«ìè¥
­¨ç¥£® ¨§ ¬ ⥬ ⨪¨ ­¥ ¯®âॡã¥âáï).
à®£à ¬¬¨áâ ¬:
‚ ª­¨£ã ¢ª«îç¥­ë «£®à¨â¬ë ¤«ï á ¬ëå à §­ëå § ¤ ç ¨ ¥ñ
¬®¦­® ¨á¯®«ì§®¢ âì ª ª á¯à ¢®ç­¨ª. ƒ« ¢ë ¯®ç⨠­¥§ ¢¨á¨¬ë, â ª
çâ® ¬®¦­® áà §ã ¢ë¡à âì ¨­â¥à¥áãî騩 ¢ á ¬ â¥à¨ «.
®«ì設á⢮ ®¡á㦤 ¥¬ëå «£®à¨â¬®¢ ¢¯®«­¥ ¬®£ãâ ¡ëâì ¨á¯®«ì§®¢ ­ë ­ ¯à ªâ¨ª¥, ¨ ¬ë 㤥«ï¥¬ ¤®«¦­®¥ ¢­¨¬ ­¨¥ ¤¥â «ï¬
ॠ«¨§ 樨. …᫨ «£®à¨â¬ ¯à¥¤áâ ¢«ï¥â ᪮॥ ⥮à¥â¨ç¥áª¨© ¨­â¥à¥á, ¬ë ®â¬¥ç ¥¬ íâ® ¨ ®¡á㦤 ¥¬ «ìâ¥à­ ⨢­ë¥ ¯®¤å®¤ë.
 è ¯á¥¢¤®ª®¤ «¥£ª® ¯¥à¥¢¥á⨠­ «î¡®© ï§ëª ¯à®£à ¬¬¨à®¢ ­¨ï, ¥á«¨ íâ® ¯®­ ¤®¡¨âáï.  ¤® ⮫쪮 ¨¬¥âì ¢ ¢¨¤ã, çâ® ¬ë ­¥
¢ª«îç ¥¬ ¢ «£®à¨â¬ë á¨á⥬­®-§ ¢¨á¨¬ë¥ äà £¬¥­âë (®¡à ¡®âªã
®è¨¡®ª ¨ â. ¯.), çâ®¡ë ­¥ § ⥬­ïâì áã⨠¤¥« .
4
Žè¨¡ª¨
Š­¨£ â ª®£® ®¡êñ¬ ­¥ ¬®¦¥â ­¥ ᮤ¥à¦ âì ®è¨¡®ª. …᫨ ¢ë
®¡­ à㦨«¨ ®è¨¡ªã ¢ ­£«¨©áª®¬ ®à¨£¨­ «¥ ª­¨£¨, ¨«¨ ã ¢ á ¥áâì
¯à¥¤«®¦¥­¨ï ¯® ¥ñ ¨á¯à ¢«¥­¨î, ¬ë ¡ã¤¥¬ à ¤ë 㧭 âì ®¡ í⮬.
Œë ¡ã¤¥¬ ®á®¡¥­­® à ¤ë ­®¢ë¬ ã¯à ¦­¥­¨ï¬ ¨ § ¤ ç ¬ (­®, ¯®¦ «ã©áâ , ¯à¨áë« ©â¥ ¨å á à¥è¥­¨ï¬¨). ®çâ®¢ë© ¤à¥á:
Introduction to Algorithms
MIT Labratory for Computer Science
545 Technology Square
Cambridge, Massachusetts 02139
Œ®¦­® â ª¦¥ ¯®«ãç¨âì ᯨ᮪ ¨§¢¥áâ­ëå ®¯¥ç ⮪ ¨ á®®¡é¨âì ® ­ ©¤¥­­ëå ®è¨¡ª å á ¯®¬®éìî í«¥ªâà®­­®© ¯®çâë; çâ®¡ë ¯®«ãç¨âì ¨­áâàãªæ¨¨, ¯®è«¨â¥ ¯® ¤à¥áã
[email protected] ¯¨á쬮, ᮤ¥à¦ 饥 Subject:
help ¢ § £®«®¢ª¥. ˆ§¢¨­¨â¥, çâ® ¬ë ­¥ ¬®¦¥¬ «¨ç­® ®â¢¥â¨âì ­ ¢á¥ ¯¨áì¬ .
[à¨ ¯¥à¥¢®¤¥ ¡ë«¨ ãçâ¥­ë ¢á¥ ¨á¯à ¢«¥­¨ï, ¨¬¥¢è¨¥áï ­ ¬®¬¥­â ¨§¤ ­¨ï ¯¥à¥¢®¤ (¤¥ª ¡àì 1997), ªà®¬¥ ⮣®, ¨á¯à ¢«¥­® ­¥áª®«ìª® ®¡­ à㦥­­ëå ¯à¨ ¯¥à¥¢®¤¥ ®¯¥ç ⮪, ­®, ¢®§¬®¦­®, ¢®§­¨ª«¨ ­®¢ë¥ (¢ çñ¬ ¢¨­®¢ â ­ ãç­ë© । ªâ®à ª­¨£¨, €. ˜¥­ì).
®í⮬ã, ®¡­ à㦨¢ ®è¨¡ªã ¢ àãá᪮¬ ⥪áâ¥, ­¥ ¯®áë« ©â¥ ¥ñ
áà §ã ¢â®à ¬: ¬®¦¥â ¡ëâì, ®­ ¢®§­¨ª« ¯à¨ ¯¥à¥¢®¤¥! ‘®®¡é¨â¥ ®
­¥© á­ ç « ¯¥à¥¢®¤ç¨ª ¬, ¯® ¤à¥áã [email protected] ¨«¨ ¯® ¯®çâ¥
(Œ®áª¢ , 121002, ®«ì让 ‚« á쥢᪨© ¯¥à., 11, Œ®áª®¢áª¨© 業âà
­¥¯à¥à뢭®£® ¬ ⥬ â¨ç¥áª®£® ®¡à §®¢ ­¨ï, ¨§¤ ⥫ìá⢮).]
« £®¤ à­®áâ¨
Œ­®£¨¥ ¤àã§ìï ¨ ª®««¥£¨ ­¥¬ «® ᤥ« «¨ ¤«ï ã«ãç襭¨ï í⮩
ª­¨£¨. Œë ¡« £®¤ ਬ ¢á¥å ¨å § ¯®¬®éì ¨ ª®­áâàãªâ¨¢­ãî ªà¨â¨ªã.
‹ ¡®à â®à¨ï ¨­ä®à¬ ⨪¨ Œ áá çãá¥â᪮£® â¥å­®«®£¨ç¥áª®£®
¨­áâ¨âãâ (Massachusetts Institute of Technology, Laboratory for
Computer Science) ¡ë« ¨¤¥ «ì­ë¬ ¬¥á⮬ ¤«ï à ¡®âë ­ ¤ ª­¨£®©.  è¨ ª®««¥£¨ ¯® ⥮à¥â¨ç¥áª®© £à㯯¥ í⮩ « ¡®à â®à¨¨
¡ë«¨ ®á®¡¥­­® â¥à¯¨¬ë ¨ «î¡¥§­® ᮣ« è «¨áì ¯à®á¬ âਢ âì
£« ¢ë ª­¨£¨. Œë å®â¥«¨ ¡ë ®á®¡¥­­® ¯®¡« £®¤ à¨âì á«¥¤ãîé¨å ¨§
­¨å: Baruch Awerbuch, Sha Goldwasser, Leo Guibas, Tom Leighton,
Albert Meyer, David Shmoys, Eva Tardos. Š®¬¯ìîâ¥àë, ­ ª®â®àëå £®â®¢¨« áì ª­¨£ (âàñå ⨯®¢: Microvax, Apple Macintosh,
Sun Sparcstation) ¯®¤¤¥à¦¨¢ «¨ William Ang, Sally Bemus, Ray
Hirschfeld ¨ Mark Reinhold; ®­¨ ¦¥ ¯¥à¥ª®¬¯¨«¨à®¢ «¨ TEX, ª®£¤ ­ è¨ ä ©«ë ¯¥à¥áâ «¨ ¯®¬¥é âìáï ¢ ¥£® áâ ­¤ àâ­ãî ¢¥àá¨î.
Š®¬¯ ­¨ï Thinking Machines ¯®¤¤¥à¦¨¢ « — à«ì§ ‹¥©§¥àá®­ ¢
5
¯¥à¨®¤ ¥£® à ¡®âë ¢ í⮩ ª®¬¯ ­¨¨.
Œ­®£¨¥ ­ è¨ ª®««¥£¨ ¨á¯®«ì§®¢ «¨ ¯à¥¤¢ à¨â¥«ì­ë¥ ¢ ਠ­âë
í⮩ ª­¨£¨ ¢ ᢮¨å «¥ªæ¨®­­ëå ªãàá å, ¨ ¯à¥¤«®¦¨«¨ à §«¨ç­ë¥
ã«ãç襭¨ï. Œë å®â¥«¨ ¡ë ®á®¡¥­­® ¯®¡« £®¤ à¨âì á«¥¤ãîé¨å ­ è¨å ª®««¥£: Richard Beigel (Yale), Andrew Goldberg (Stanford), Joan
Lucas (Rutgers), Mark Overmars (Utrecht), Alan Sherman (Tufts,
Maryland), Diane Souvaine (Rutgers).
à¨ ç⥭¨¨ «¥ªæ¨© ¯® ¬ â¥à¨ « ¬ í⮩ ª­¨£¨ ­ ¬ ¯®¬®£ «¨
­ è¨ ª®««¥£¨, ª®â®àë¥ ¢­¥á«¨ ¬­®£® ã«ãç襭¨©. Œë ®á®¡¥­­®
¯à¨§­ ⥫ì­ë: Alan Baratz, Bonnie Berger, Aditi Dhagat, Burt
Kaliski, Arthur Lent, Andrew Moulton, Marios Papaefthymiou, Cindy
Phillips, Mark Reinhold, Phil Rogaway, Flavio Rose, Arie Rudich, Alan
Sherman, Cli Stein, Susmita Sur, Gregory Troxel, Margaret Tuttle.
Œ­®£¨¥ «î¤¨ ¯®¬®£«¨ ­ ¬ ¢ à ¡®â¥ ­ ¤ ª­¨£®© ¢ à §­ëå ®â­®è¥­¨ïå: à ¡®â ¢ ¡¨¡«¨®â¥ª¥ (Denise Sergent), £®á⥯ਨ¬á⢮
¢ ç¨â «ì­®¬ § «¥ (Maria Sensale), ¤®áâ㯠ª «¨ç­®© ¡¨¡«¨®â¥ª¥
(Albert Meyer), ¯à®¢¥àª ã¯à ¦­¥­¨© ¨ ¯à¨¤ã¬ë¢ ­¨¥ ­®¢ëå
(Shlomo Kipnis, Bill Niehaus, David Wilson), á®áâ ¢«¥­¨¥ ¨­¤¥ªá (Marios Papaefthymiou, Gregory Troxel), â¥å­¨ç¥áª ï ¯®¬®éì
(Inna Radzihovsky, Denise Sergent, Gayle Sherman, ¨ ®á®¡¥­­® Be
Hubbard).
Œ­®£¨¥ ®è¨¡ª¨ ®¡­ à㦨«¨ ­ è¨ áâ㤥­âë, ®á®¡¥­­® Bobby
Blumofe, Bonnie Eisenberg, Raymond Johnson, John Keen, Richard
Lethin, Mark Lillibridge, John Pesaris, Steve Ponzio, Margaret Tuttle.
Œ­®£¨¥ ­ è¨ ª®««¥£¨ á®®¡é¨«¨ ­ ¬ ¯®«¥§­ãî ¨­ä®à¬ æ¨î ®
ª®­ªà¥â­ëå «£®à¨â¬ å, â ª¦¥ ªà¨â¨ç¥áª¨ ¯à®ç¨â «¨ ®â¤¥«ì­ë¥
£« ¢ë ª­¨£¨; ¢ ¨å ç¨á«¥ Bill Aiello, Alok Aggrawal, Eric Bach, Vasek
Chvatal, Richard Cole, Johan Hastad, Alex Ishii, David Johnson, Joe
Kilian, Dina Kravets, Bruce Maggs, Jim Orlin, James Park, Thane
Plambeck, Herschel Safer, Je Shallit, Cli Stein, Gil Strang, Bob
Tarjan, Paul Wang. Œ­®£¨¥ ¨§ ­¨å ¯à¥¤«®¦¨«¨ ­ ¬ § ¤ ç¨ ¤«ï
­ 襩 ª­¨£¨, á।¨ ­¨å Andrew Goldberg, Danny Sleator, Umesh
Vazirani.
€­£«¨©áª¨© ®à¨£¨­ « ª­¨£¨ ¡ë« ¯®¤£®â®¢«¥­ á ¯®¬®éìî LATEX
(¬ ªà®¯ ª¥â ¤«ï á¨á⥬ë TEX). ¨áã­ª¨ ¤¥« «¨áì ­ ª®¬¯ìîâ¥à¥ Apple Macintosh á ¯®¬®éìî ¯à®£à ¬¬ë Mac Draw II; ¬ë
¡« £®¤ à­ë § ®¯¥à ⨢­ãî â¥å­¨ç¥áªãî ¯®¤¤¥à¦ªã ¢ í⮩ ®¡« á⨠(Joanna Terry, Claris Corporation; Michael Mahoney, Advanced
Computer Graphics). ˆ­¤¥ªá ¡ë« ¯®¤£®â®¢«¥­ á ¯®¬®éìî ¯à®£à ¬¬ë Windex, ­ ¯¨á ­­®© ¢â®à ¬¨. ‘¯¨á®ª «¨â¥à âãàë £®â®¢¨«áï á ¯®¬®éìî ¯à®£à ¬¬ë BibTEX. Žà¨£¨­ «-¬ ª¥â ­£«¨©-
᪮£® ¨§¤ ­¨ï ¡ë« ¯®¤£®â®¢«¥­ ¢ €¬¥à¨ª ­áª®¬ ¬ ⥬ â¨ç¥áª®¬
®¡é¥á⢥ á ¯®¬®éìî ä®â®­ ¡®à­®© ¬ 設ë ä¨à¬ë Autologic;
¬ë ¯à¨§­ ⥫ì­ë § ¯®¬®éì ¢ í⮬ (Ralph Youngen, €¬¥à¨ª ­áª®¥ ¬ ⥬ â¨ç¥áª®¥ ®¡é¥á⢮). Œ ª¥â à §à ¡®â «¨: Rebecca Daw,
Amy Henderson (ॠ«¨§ æ¨ï ¬ ª¥â ¤«ï á¨á⥬ë LATEX), Jeannet
6
Leendertse (®¡«®¦ª ).
€¢â®àë ¯®«ã稫¨ ¡®«ì讥 㤮¢®«ìá⢨¥ ®â á®âà㤭¨ç¥áâ¢ á ¨§¤ ⥫ìá⢠¬¨ MIT Press (Frank Sallow, Terry Ehling, Larry Cohen,
Lorrie Lejeune) ¨ McGraw-Hill (David Shapiro) ¨ ¡« £®¤ à­ë ¨¬
§ ¯®¤¤¥à¦ªã ¨ â¥à¯¥­¨¥, â ª¦¥ § ¬¥ç ⥫쭮¥ । ªâ¨à®¢ ­¨¥
(Larry Cohen).
 ª®­¥æ, ¢â®àë ¡« £®¤ àïâ ᢮¨å ¦ñ­ (Nicole Cormen, Lina Lue
Leicerson, Gail Rivest) ¨ ¤¥â¥© (Ricky, William ¨ Debby Leicerson;
Alex ¨ Christopher Rivest) § «î¡®¢ì ¨ ¯®¤¤¥à¦ªã ¯à¨ à ¡®â¥ ­ ¤
ª­¨£®© (Alex Rivest â ª¦¥ ¯®¬®£ ­ ¬ á "¯ à ¤®ªá®¬ ¤­¥© ஦¤¥­¨ï
­ Œ àá¥" (à §¤¥« 6.6.1). ‹î¡®¢ì, â¥à¯¥­¨¥ ¨ ¯®¤¤¥à¦ª ­ è¨å
ᥬ¥© ᤥ« «¨ íâã ª­¨£ã ¢®§¬®¦­®©; ¨¬ ®­ ¨ ¯®á¢ïé ¥âáï.
Š¥¬¡à¨¤¦,
Œ áá çãá¥âá
¬ àâ 1990 £®¤ ’®¬ á Š®à¬¥­ (Thomas H. Cormen)
— à«ì§ ‹¥©§¥àá®­ (Charles E. Leiserson)
®­ «ì¤ ¨¢¥áâ (Ronald L. Rivest)
Žâ ¯¥à¥¢®¤ç¨ª®¢:
Œë ¯à¨§­ ⥫ì­ë ¨§¤ ⥫ìáâ¢ã MIT ¨ ¢â®à ¬ § à §à¥è¥­¨¥
¯¥à¥¢¥á⨠ª­¨£ã, ¨ § ¯®¬®éì ¯à¨ ¯®¤£®â®¢ª¥ ¯¥à¥¢®¤ (¢ ⮬ ç¨á«¥ § ¯à¥¤®áâ ¢«¥­¨¥ ­£«¨©áª®£® ⥪áâ ª­¨£¨ ¨ ¨««îáâà 権 ¢
í«¥ªâà®­­®© ä®à¬¥). ˆ§¤ ­¨¥ ¯¥à¥¢®¤ áâ «® ¢®§¬®¦­® ¡« £®¤ àï
䨭 ­á®¢®© ¯®¤¤¥à¦ª¥ ®áᨩ᪮£® ä®­¤ äã­¤ ¬¥­â «ì­ëå ¨áá«¥¤®¢ ­¨© (à㪮¢®¤¨â¥«ì ¯à®¥ªâ ‚.€. “ᯥ­áª¨©).
‚ à ¡®â¥ ­ ¤ ¯¥à¥¢®¤®¬ ª­¨£¨ ãç á⢮¢ « ¡®«ìè ï £à㯯 áâ㤥­â®¢, á¯¨à ­â®¢ ¨ á®âà㤭¨ª®¢ Œ®áª®¢áª®£® 業âà ­¥¯à¥à뢭®£® ¬ ⥬ â¨ç¥áª®£® ®¡à §®¢ ­¨ï, ¥§ ¢¨á¨¬®£® Œ®áª®¢áª®£® ã­¨¢¥àá¨â¥â ¨ Œƒ“:
K. ¥«®¢, ž. ®à ¢«ñ¢, „. ®â¨­, ‚. ƒ®à¥«¨ª, „. „¥à­
ž. Š «­¨èª ­, €. Š â ­®¢ , ‘. ‹ì¢®¢áª¨©, €. ®¬ 饭ª®, Š. ‘®­¨­, Š. ’àã誨­, Œ. “è ª®¢, €. ˜¥­ì, ‚. ˜ã¢ «®¢, Œ. ž¤ 誨­
(¯¥à¥¢®¤)
€. €ª¨¬®¢, Œ. ‚ì­, „. „¥à­, €. …¢ä¨¬ì¥¢áª¨©, ž. Š «­¨èª ­, €. ®¬ 饭ª®, €. —¥à­®¢ Œ. “è ª®¢, A. ˜¥­ì (। ªâ¨à®¢ ­¨¥)
‚.  ¤¨®­®¢ (¢ñàá⪠)
‚.‚. Ÿé¥­ª® (। ªâ®à)
1
‚¢¥¤¥­¨¥
‚ í⮩ £« ¢¥ ¬ë à §¡¨à ¥¬ ®á­®¢­ë¥ ¯®­ïâ¨ï ¨ ¬¥â®¤ë, á¢ï§ ­­ë¥
á ¯®áâ஥­¨¥¬ ¨ ­ «¨§®¬ «£®à¨â¬®¢, ­ ¯à¨¬¥à¥ ¤¢ãå «£®à¨â¬®¢ á®àâ¨à®¢ª¨ | ¯à®á⥩襣® «£®à¨â¬ á®àâ¨à®¢ª¨ ¢áâ ¢ª ¬¨
¨ ¡®«¥¥ íä䥪⨢­®£® «£®à¨â¬ á®àâ¨à®¢ª¨ ᫨ﭨ¥¬.
 íâ¨å ¯à¨¬¥à å ¬ë ¯®§­ ª®¬¨¬áï á ¯á¥¢¤®ª®¤®¬, ­ ª®â®à®¬
¬ë ¡ã¤¥¬ § ¯¨áë¢ âì «£®à¨â¬ë, ®¡®§­ 祭¨ï¬¨ ¤«ï ᪮à®á⨠à®áâ ä㭪権, ¬¥â®¤®¬ "à §¤¥«ï© ¨ ¢« áâ¢ã©" ¯®áâ஥­¨ï «£®à¨â¬®¢, â ª¦¥ á ¤à㣨¬¨ ¯®­ïâ¨ï¬¨, ª®â®àë¥ ¡ã¤ãâ ¢áâà¥ç âìáï ­ ¬
­ ¯à®â殮­¨¨ ¢á¥© ª­¨£¨.
1.1 €«£®à¨â¬ë
€«£®à¨â¬ (algorithm) | íâ® ä®à¬ «ì­® ®¯¨á ­­ ï ¢ëç¨á«¨â¥«ì­ ï ¯à®æ¥¤ãà , ¯®«ãç îé ï ¨á室­ë¥ ¤ ­­ë¥ (input), ­ §ë¢ ¥¬ë¥
â ª¦¥ ¢å®¤®¬ «£®à¨â¬ ¨«¨ ¥£® à£ã¬¥­â®¬, ¨ ¢ë¤ îé ï १ã«ìâ â ¢ëç¨á«¥­¨© ­ ¢ë室 (output).
€«£®à¨â¬ë áâà®ïâáï ¤«ï à¥è¥­¨ï â¥å ¨«¨ ¨­ëå ¢ëç¨á«¨â¥«ì­ëå
§ ¤ ç (computational problems). ”®à¬ã«¨à®¢ª § ¤ ç¨ ®¯¨áë¢ ¥â,
ª ª¨¬ âॡ®¢ ­¨ï¬ ¤®«¦­® 㤮¢«¥â¢®àïâì à¥è¥­¨¥ § ¤ ç¨, «£®à¨â¬, à¥è î騩 íâã § ¤ çã, ­ 室¨â ®¡ê¥ªâ, í⨬ âॡ®¢ ­¨ï¬
㤮¢«¥â¢®àïî騩.
‚ í⮩ £« ¢¥ ¬ë à áᬠâਢ ¥¬ § ¤ çã á®àâ¨à®¢ª¨ (sorting
problem); ¯®¬¨¬® ᢮¥© ¯à ªâ¨ç¥áª®© ¢ ¦­®á⨠íâ § ¤ ç á«ã¦¨â 㤮¡­ë¬ ¯à¨¬¥à®¬ ¤«ï ¨««îáâà 樨 à §«¨ç­ëå ¯®­ï⨩ ¨
¬¥â®¤®¢. Ž­ ®¯¨áë¢ ¥âáï â ª:
‚室: ®á«¥¤®¢ ⥫쭮áâì n ç¨á¥« (a1 ; a2; : : :; an ).
‚ë室: ¥à¥áâ ­®¢ª (a01; a02; : : :; a0n ) ¨á室­®© ¯®á«¥¤®¢ ⥫쭮áâ¨,
¤«ï ª®â®à®© a01 6 a02 6 : : : 6 a0n .
 ¯à¨¬¥à, ¯®«ã稢 ­ ¢å®¤ h31; 41; 59; 26; 41; 58i, «£®à¨â¬ á®àâ¨à®¢ª¨ ¤®«¦¥­ ¢ë¤ âì ­ ¢ë室 h26; 31; 41; 41; 58; 59i.
®¤«¥¦ é ï á®àâ¨à®¢ª¥ ¯®á«¥¤®¢ ⥫쭮áâì ­ §ë¢ ¥âáï ¢å®¤®¬
(instance) § ¤ ç¨ á®àâ¨à®¢ª¨.
8
ƒ« ¢ 1 ‚¢¥¤¥­¨¥
Œ­®£¨¥ «£®à¨â¬ë ¨á¯®«ì§ãîâ á®àâ¨à®¢ªã ¢ ª ç¥á⢥ ¯à®¬¥¦ãâ®ç­®£® è £ . ˆ¬¥¥âáï ¬­®£® à §­ëå «£®à¨â¬®¢ á®àâ¨à®¢ª¨; ¢ë¡®à ¢ ª®­ªà¥â­®© á¨âã 樨 § ¢¨á¨â ®â ¤«¨­ë á®àâ¨à㥬®© ¯®á«¥¤®¢ ⥫쭮áâ¨, ®â ⮣®, ¢ ª ª®© á⥯¥­¨ ®­ 㦥 ®âá®àâ¨à®¢ ­ ,
â ª¦¥ ®â ⨯ ¨¬¥î饩áï ¯ ¬ï⨠(®¯¥à ⨢­ ï ¯ ¬ïâì, ¤¨áª¨,
¬ £­¨â­ë¥ «¥­âë).
€«£®à¨â¬ áç¨â îâ ¯à ¢¨«ì­ë¬ (correct), ¥á«¨ ­ «î¡®¬ ¤®¯ãá⨬®¬ (¤«ï ¤ ­­®© § ¤ ç¨) ¢å®¤¥ ®­ ®­ § ª ­ç¨¢ ¥â à ¡®âã ¨ ¢ë¤ ¥â
१ã«ìâ â, 㤮¢«¥â¢®àïî騩 âॡ®¢ ­¨ï¬ § ¤ ç¨. ‚ í⮬ á«ãç ¥
£®¢®àïâ, çâ® «£®à¨â¬ à¥è ¥â (solves) ¤ ­­ãî ¢ëç¨á«¨â¥«ì­ãî § ¤ çã. ¥¯à ¢¨«ì­ë© «£®à¨â¬ ¬®¦¥â (¤«ï ­¥ª®â®à®£® ¢å®¤ ) ¢®¢á¥
­¥ ®áâ ­®¢¨âìáï ¨«¨ ¤ âì ­¥¯à ¢¨«ì­ë© १ã«ìâ â. (‚¯à®ç¥¬, íâ®
­¥ ¤¥« ¥â «£®à¨â¬ § ¢¥¤®¬® ¡¥á¯®«¥§­ë¬ | ¥á«¨ ®è¨¡ª¨ ¤®áâ â®ç­® ।ª¨. ®¤®¡­ ï á¨âã æ¨ï ¢áâà¥â¨âáï ­ ¬ ¢ £« ¢¥ 33 ¯à¨
¯®¨áª¥ ¡®«ìè¨å ¯à®áâëå ç¨á¥«. ® íâ® ¢áñ ¦¥ ᪮॥ ¨áª«î祭¨¥,
祬 ¯à ¢¨«®.)
€«£®à¨â¬ ¬®¦¥â ¡ëâì § ¯¨á ­ ­ àãá᪮¬ ¨«¨ ­£«¨©áª®¬ ï§ëª¥,
¢ ¢¨¤¥ ª®¬¯ìîâ¥à­®© ¯à®£à ¬¬ë ¨«¨ ¤ ¦¥ ¢ ¬ 設­ëå ª®¤ å |
¢ ¦­® ⮫쪮, çâ®¡ë ¯à®æ¥¤ãà ¢ëç¨á«¥­¨© ¡ë« çñ⪮ ®¯¨á ­ .
Œë ¡ã¤¥¬ § ¯¨áë¢ âì «£®à¨â¬ë á ¯®¬®éìî ¯á¥¢¤®ª®¤ (pseudocode), ª®â®àë© ­ ¯®¬­¨â ¢ ¬ §­ ª®¬ë¥ ï§ëª¨ ¯à®£à ¬¬¨à®¢ ­¨ï (‘¨,  ᪠«ì, €«£®«).  §­¨æ ¢ ⮬, çâ® ¨­®£¤ ¬ë
¯®§¢®«ï¥¬ ᥡ¥ ®¯¨á âì ¤¥©áâ¢¨ï «£®à¨â¬ "᢮¨¬¨ á«®¢ ¬¨",
¥á«¨ â ª ¯®«ãç ¥âáï ïá­¥¥. Šà®¬¥ ⮣®, ¬ë ®¯ã᪠¥¬ â¥å­®«®£¨ç¥áª¨¥ ¯®¤à®¡­®á⨠(®¡à ¡®âªã ®è¨¡®ª, ᪠¦¥¬), ª®â®àë¥
­¥®¡å®¤¨¬ë ¢ ॠ«ì­®© ¯à®£à ¬¬¥, ­® ¬®£ãâ § á«®­¨âì áãé¥á⢮
¤¥« .
‘®àâ¨à®¢ª ¢áâ ¢ª ¬¨
‘®àâ¨à®¢ª ¢áâ ¢ª ¬¨ (insertion sort) 㤮¡­ ¤«ï á®àâ¨à®¢ª¨ ª®à®âª¨å ¯®á«¥¤®¢ ⥫쭮á⥩. ˆ¬¥­­® â ª¨¬ ᯮᮡ®¬ ®¡ëç­® á®àâ¨àãîâ ª àâë: ¤¥à¦ ¢ «¥¢®© à㪥 㦥 㯮à冷祭­ë¥ ª àâë ¨ ¢§ï¢
¯à ¢®© à㪮© ®ç¥à¥¤­ãî ª àâã, ¬ë ¢áâ ¢«ï¥¬ ¥ñ ¢ ­ã¦­®¥ ¬¥áâ®,
áà ¢­¨¢ ï á ¨¬¥î騬¨áï ¨ ¨¤ï á¯à ¢ ­ «¥¢® (á¬. à¨á. 1.1)
‡ ¯¨è¥¬ íâ®â «£®à¨â¬ ¢ ¢¨¤¥ ¯à®æ¥¤ãàë Insertion-Sort, ¯ à ¬¥â஬ ª®â®à®© ï¥âáï ¬ áᨢ A[1 : :n] (¯®á«¥¤®¢ ⥫쭮áâì
¤«¨­ë n, ¯®¤«¥¦ é ï á®àâ¨à®¢ª¥). Œë ®¡®§­ ç ¥¬ ç¨á«® í«¥¬¥­â®¢ ¢ ¬ áᨢ¥ A ç¥à¥§ length[A]. ®á«¥¤®¢ ⥫쭮áâì á®àâ¨àã¥âáï
"­ ¬¥áâ¥" (in place), ¡¥§ ¤®¯®«­¨â¥«ì­®© ¯ ¬ï⨠(¯®¬¨¬® ¬ áᨢ ¬ë ¨á¯®«ì§ã¥¬ «¨èì 䨪á¨à®¢ ­­®¥ ç¨á«® ï祥ª ¯ ¬ïâ¨). ®á«¥ ¢ë¯®«­¥­¨ï ¯à®æ¥¤ãàë Insertion-Sort ¬ áᨢ A 㯮à冷祭
¯® ¢®§à áâ ­¨î.
€«£®à¨â¬ë
9
¨áã­®ª 1.1 ‘®àâ¨à®¢ª ª àâ ¢áâ ¢ª ¬¨
Insertion-Sort(A)
1 for j 2 to length[A]
2
do key A[j ]
3
. ¤®¡ ¢¨âì A[j ] ª ®âá®àâ¨à®¢ ­­®© ç á⨠A[1 : :j ; 1].
4
i j ;1
5
while i > 0 and A[i] > key
6
do A[i + 1] A[i]
7
i i;1
8
A[i + 1] key
¨áã­®ª 1.2  ¡®â ¯à®æ¥¤ãàë Insertion-Sort ¤«ï ¢å®¤ A = h5; 2; 4; 6; 1; 3i.
®§¨æ¨ï j ¯®ª § ­ ªà㦪®¬.
 à¨á. 1.2 ¯®ª § ­ à ¡®â «£®à¨â¬ ¯à¨ A = h5; 2; 4; 6; 1; 3i.
ˆ­¤¥ªá j 㪠§ë¢ ¥â "®ç¥à¥¤­ãî ª àâã" (⮫쪮 çâ® ¢§ïâãî á®
á⮫ ). “ç á⮪ A[1 : :j ; 1] á®áâ ¢«ïîâ 㦥 ®âá®àâ¨à®¢ ­­ë¥
ª àâë («¥¢ ï à㪠), A[j + 1 : :n] | ¥éñ ­¥ ¯à®á¬®â७­ë¥. ‚ 横«¥ for ¨­¤¥ªá j ¯à®¡¥£ ¥â ¬ áᨢ á«¥¢ ­ ¯à ¢®. Œë ¡¥àñ¬ í«¥¬¥­â
10
ƒ« ¢ 1 ‚¢¥¤¥­¨¥
A[j ] (áâப 2 «£®à¨â¬ ) ¨ ᤢ¨£ ¥¬ ¨¤ã騥 ¯¥à¥¤ ­¨¬ ¨ ¡®«ì訥
¥£® ¯® ¢¥«¨ç¨­¥ í«¥¬¥­âë (­ 稭 ï á j ; 1-£®) ¢¯à ¢®, ®á¢®¡®¦¤ ï
¬¥áâ® ¤«ï ¢§ï⮣® í«¥¬¥­â . (áâப¨ 4{7). ‚ áâப¥ 8 í«¥¬¥­â A[j ]
¯®¬¥é ¥âáï ¢ ®á¢®¡®¦¤ñ­­®¥ ¬¥áâ®.
á¥¢¤®ª®¤
‚®â ®á­®¢­ë¥ ᮣ« 襭¨ï, ª®â®àë¥ ¬ë ¡ã¤¥¬ ¨á¯®«ì§®¢ âì:
1. Žâáâ㯠®â «¥¢®£® ¯®«ï 㪠§ë¢ ¥â ­ ã஢¥­ì ¢«®¦¥­­®áâ¨.  ¯à¨¬¥à, ⥫® 横« for (áâப 1) á®á⮨⠨§ áâப 2{8, ⥫® 横« while (áâப 5) ᮤ¥à¦¨â áâப¨ 6{7, ­® ­¥ 8. â® ¦¥ ¯à ¢¨«®
¯à¨¬¥­ï¥âáï ¨ ¤«ï if-then-else. â® ¤¥« ¥â ¨§«¨è­¨¬ á¯¥æ¨ «ì­ë¥
ª®¬ ­¤ë ⨯ begin ¨ end ¤«ï ­ ç « ¨ ª®­æ ¡«®ª . (‚ ॠ«ì­ëå
ï§ëª å ¯à®£à ¬¬¨à®¢ ­¨ï â ª®¥ ᮣ« 襭¨¥ ¯à¨¬¥­ï¥âáï ।ª®,
¯®áª®«ìªã § âà㤭ï¥â ç⥭¨¥ ¯à®£à ¬¬, ¯¥à¥å®¤ïé¨å á® áâà ­¨æë
­ áâà ­¨æã.)
2. –¨ª«ë while, for, repeat ¨ ãá«®¢­ë¥ ª®­áâàãªæ¨¨ if, then, else
¨¬¥îâ â®â ¦¥ á¬ëá«, çâ® ¢  ᪠«¥.
3. ‘¨¬¢®« . ­ 稭 ¥â ª®¬¬¥­â ਩ (¨¤ã騩 ¤® ª®­æ áâப¨).
4. Ž¤­®¢à¥¬¥­­®¥ ¯à¨á¢ ¨¢ ­¨¥ i j e (¯¥à¥¬¥­­ë¥ i ¨ j
¯®«ãç îâ §­ 祭¨¥ e) § ¬¥­ï¥â ¤¢ ¯à¨á¢ ¨¢ ­¨ï j e ¨ i j (¢
í⮬ ¯®à浪¥).
5. ¥à¥¬¥­­ë¥ (¢ ¤ ­­®¬ á«ãç ¥ i; j; key ) «®ª «ì­ë ¢­ãâਠ¯à®æ¥¤ãàë (¥á«¨ ­¥ ®£®¢®à¥­® ¯à®â¨¢­®¥).
6. ˆ­¤¥ªá ¬ áᨢ ¯¨è¥âáï ¢ ª¢ ¤à â­ëå ᪮¡ª å: A[i] ¥áâì i-©
í«¥¬¥­â ¢ ¬ áᨢ¥ A. ‡­ ª ": :" ¢ë¤¥«ï¥â ç áâì ¬ áᨢ : A[1 : :j ]
®¡®§­ ç ¥â ãç á⮪ ¬ áᨢ A, ¢ª«îç î騩 A[1]; A[2]; : : :; A[j ].
7. — áâ® ¨á¯®«ì§ãîâáï ®¡ê¥ªâë (objects), á®áâ®ï騥 ¨§
­¥áª®«ìª¨å ¯®«¥© (elds), ¨«¨, ª ª £®¢®àïâ, ¨¬¥î騥 ­¥áª®«ìª® âਡã⮢ (attributes). ‡­ 祭¨¥ ¯®«ï § ¯¨áë¢ ¥âáï ª ª
¨¬ï ¯®«ï[¨¬ï ®¡ê¥ªâ ].  ¯à¨¬¥à, ¤«¨­ ¬ áᨢ áç¨â ¥âáï ¥£®
âਡã⮬ ¨ ®¡®§­ ç ¥âáï length, â ª çâ® ¤«¨­ ¬ áᨢ A § ¯¨è¥âáï ª ª length[A]. —â® ®¡®§­ ç îâ ª¢ ¤à â­ë¥ ᪮¡ª¨ (í«¥¬¥­â
¬ áᨢ ¨«¨ ¯®«¥ ®¡ê¥ªâ ), ¡ã¤¥â ïá­® ¨§ ª®­â¥ªáâ .
¥à¥¬¥­­ ï, ®¡®§­ ç îé ï ¬ áᨢ ¨«¨ ®¡ê¥ªâ, áç¨â ¥âáï 㪠§ ⥫¥¬ ­ á®áâ ¢«ïî騥 ¥£® ¤ ­­ë¥. ®á«¥ ¯à¨á¢ ¨¢ ­¨ï y x ¤«ï
«î¡®£® ¯®«ï f ¢ë¯®«­¥­® f [y] = f [x]. ®«¥¥ ⮣®, ¥á«¨ ¬ë ⥯¥àì
¢ë¯®«­¨¬ ®¯¥à â®à f [x] 3, â® ¡ã¤¥â ­¥ ⮫쪮 f [x] = 3, ­® ¨
f [y] = 3, ¯®áª®«ìªã ¯®á«¥ y x ¯¥à¥¬¥­­ë¥ x ¨ y 㪠§ë¢ îâ ­ ®¤¨­ ¨ â®â ¦¥ ®¡ê¥ªâ.
“ª § â¥«ì ¬®¦¥â ¨¬¥âì á¯¥æ¨ «ì­®¥ §­ 祭¨¥ nil, ­¥ 㪠§ë¢ î饥 ­¨ ­ ®¤¨­ ®¡ê¥ªâ.
8.  à ¬¥âàë ¯¥à¥¤ îâáï ¯® §­ 祭¨î (by value): ¢ë§¢ ­­ ï ¯à®æ¥¤ãà ¯®«ãç ¥â ᮡá⢥­­ãî ª®¯¨î ¯ à ¬¥â஢; ¨§¬¥­¥­¨¥ ¯ à ¬¥âà ¢­ãâਠ¯à®æ¥¤ãàë á­ à㦨 ­¥¢¨¤¨¬®. à¨ ¯¥à¥¤ ç¥ ®¡ê¥ª-
€­ «¨§ «£®à¨â¬®¢
11
⮢ ª®¯¨àã¥âáï 㪠§ â¥«ì ­ ¤ ­­ë¥, á®áâ ¢«ïî騥 íâ®â ®¡ê¥ªâ,
á ¬¨ ¯®«ï ®¡ê¥ªâ | ­¥â.  ¯à¨¬¥à, ¥á«¨ x | ¯ à ¬¥âà ¯à®æ¥¤ãàë, â® ¯à¨á¢ ¨¢ ­¨¥ x y, ¢ë¯®«­¥­­®¥ ¢­ãâਠ¯à®æ¥¤ãàë,
á­ à㦨 § ¬¥â¨âì ­¥«ì§ï, ¯à¨á¢ ¨¢ ­¨¥ f [x] 3 | ¬®¦­®.
“¯à ¦­¥­¨ï
1.1-1
‘«¥¤ãï ®¡à §æã à¨á. 1.2, ¯®ª ¦¨â¥, ª ª à ¡®â ¥â Insertion-
Sort ­ ¢å®¤¥ A = h31; 41; 59; 26; 41; 58i.
1.1-2 ˆ§¬¥­¨â¥ ¯à®æ¥¤ãàã Insertion-Sort â ª, çâ®¡ë ®­ á®àâ¨à®¢ « ç¨á« ¢ ­¥¢®§à áâ î饬 ¯®à浪¥ (¢¬¥áâ® ­¥ã¡ë¢ î饣®).
1.1-3  áᬮâਬ á«¥¤ãîéãî § ¤ çã ¯®¨áª :
‚室: ®á«¥¤®¢ ⥫쭮áâì n ç¨á¥« A = ha1; a2; : : :; an i ¨ ç¨á«® v .
‚ë室: ˆ­¤¥ªá i, ¤«ï ª®â®à®£® v = A[i], ¨«¨ á¯¥æ¨ «ì­®¥ §­ 祭¨¥
nil, ¥á«¨ v ­¥ ¢áâà¥ç ¥âáï ¢ A.
 ¯¨è¨â¥ ¯à®£à ¬¬ã «¨­¥©­®£® ¯®¨áª (linear search), ª®â®àë©
¯®á«¥¤®¢ ⥫쭮 ¯à®á¬ âਢ ¥â A ¢ ¯®¨áª å v.
1.1-4 „ ­ë ¤¢ n-§­ ç­ëå ¤¢®¨ç­ëå ç¨á« , § ¯¨á ­­ëå ¢ ¢¨¤¥
n-í«¥¬¥­â­ëå ¬ áᨢ®¢ A ¨ B . ’ॡã¥âáï ¯®¬¥áâ¨âì ¨å á㬬ã (¢
¤¢®¨ç­®© § ¯¨á¨) ¢ (n + 1)-í«¥¬¥­â­ë© ¬ áᨢ C . “â®ç­¨â¥ ¯®áâ ­®¢ªã § ¤ ç¨ ¨ § ¯¨è¨â¥ ᮮ⢥âáâ¢ãîéãî ¯à®£à ¬¬ã ­ ¯á¥¢¤®ª®¤¥.
1.2 €­ «¨§ «£®à¨â¬®¢
 áᬠâਢ ï à §«¨ç­ë¥ «£®à¨â¬ë à¥è¥­¨ï ®¤­®© ¨ ⮩ ¦¥ § ¤ ç¨, ¯®«¥§­® ¯à® ­ «¨§¨à®¢ âì, ᪮«ìª® ¢ëç¨á«¨â¥«ì­ëå à¥áãàᮢ ®­¨ âॡãîâ (¢à¥¬ï ¢ë¯®«­¥­¨ï, ¯ ¬ïâì), ¨ ¢ë¡à âì ­ ¨¡®«¥¥
íä䥪⨢­ë©. Š®­¥ç­®, ­ ¤® ¤®£®¢®à¨âìáï ® ⮬, ª ª ï ¬®¤¥«ì ¢ëç¨á«¥­¨© ¨á¯®«ì§ã¥âáï. ‚ í⮩ ª­¨£¥ ¢ ª ç¥á⢥ ¬®¤¥«¨ ¯® ¡®«ì襩
ç á⨠¨á¯®«ì§ã¥âáï ®¡ëç­ ï ®¤­®¯à®æ¥áá®à­ ï ¬ 設 á ¯à®¨§¢®«ì­ë¬ ¤®áâ㯮¬ (random-access machine, RAM), ­¥ ¯à¥¤ãᬠâਢ îé ï ¯ à ««¥«ì­®£® ¢ë¯®«­¥­¨ï ®¯¥à 権. (Œë à áᬮâਬ ­¥ª®â®àë¥ ¬®¤¥«¨ ¯ à ««¥«ì­ëå ¢ëç¨á«¥­¨© ¢ ¯®á«¥¤­¥© ç á⨠ª­¨£¨.)
‘®àâ¨à®¢ª ¢áâ ¢ª ¬¨: ­ «¨§
‚६ï á®àâ¨à®¢ª¨ ¢áâ ¢ª ¬¨ § ¢¨á¨â ®â à §¬¥à á®àâ¨à㥬®£®
¬ áᨢ : 祬 ¡®«ìè¥ ¬ áᨢ, ⥬ ¡®«ìè¥ ¬®¦¥â ¯®âॡ®¢ âìáï ¢à¥¬¥­¨. Ž¡ëç­® ¨§ãç îâ § ¢¨á¨¬®á⨠¢à¥¬¥­¨ à ¡®âë ®â à §¬¥à ¢å®¤ . (‚¯à®ç¥¬, ¤«ï «£®à¨â¬ á®àâ¨à®¢ª¨ ¢áâ ¢ª ¬¨ ¢ ¦¥­ ­¥
12
ƒ« ¢ 1 ‚¢¥¤¥­¨¥
⮫쪮 à §¬¥à ¬ áᨢ , ­® ¨ ¯®à冷ª ¥£® í«¥¬¥­â®¢: ¥á«¨ ¬ áᨢ
¯®ç⨠㯮à冷祭, â® ¢à¥¬¥­¨ âॡã¥âáï ¬¥­ìè¥.)
Š ª ¨§¬¥àïâì à §¬¥à ¢å®¤ (input size)? â® § ¢¨á¨â ®â ª®­ªà¥â­®© § ¤ ç¨. ‚ ®¤­¨å á«ãç ïå à §ã¬­® áç¨â âì ç¨á«® í«¥¬¥­â®¢ ­ ¢å®¤¥ (á®àâ¨à®¢ª , ¯à¥®¡à §®¢ ­¨¥ ”ãàì¥). ‚ ¤àã£¨å ¡®«¥¥ ¥áâ¥á⢥­­® áç¨â âì ®¡é¥¥ ç¨á«® ¡¨â®¢, ­¥®¡å®¤¨¬®¥ ¤«ï ¯à¥¤áâ ¢«¥­¨ï ¢á¥å ¢å®¤­ëå ¤ ­­ëå. ˆ­®£¤ à §¬¥à ¢å®¤ ¨§¬¥àï¥âáï ­¥ ®¤­¨¬ ç¨á«®¬, ­¥áª®«ìª¨¬¨ (­ ¯à¨¬¥à, ç¨á«® ¢¥à設 ¨ ç¨á«® àñ¡¥à
£à ä ).
‚६¥­¥¬ à ¡®âë (running time) «£®à¨â¬ ¬ë ­ §ë¢ ¥¬ ç¨á«®
í«¥¬¥­â à­ëå è £®¢, ª®â®àë¥ ®­ ¢ë¯®«­ï¥â | ¢®¯à®á ⮫쪮 ¢
⮬, çâ® áç¨â âì í«¥¬¥­â à­ë¬ è £®¬. Œë ¡ã¤¥¬ ¯®« £ âì, çâ®
®¤­ áâப ¯á¥¢¤®ª®¤ âॡã¥â ­¥ ¡®«¥¥ 祬 䨪á¨à®¢ ­­®£® ç¨á« ®¯¥à 権 (¥á«¨ ⮫쪮 íâ® ­¥ á«®¢¥á­®¥ ®¯¨á ­¨¥ ª ª®©-â® á«®¦­®©
®¯¥à 樨 | ⨯ "®âá®àâ¨à®¢ âì ¢á¥ â®çª¨ ¯® x-ª®®à¤¨­ â¥").
Œë ¡ã¤¥¬ à §«¨ç âì â ª¦¥ ¢ë§®¢ (call) ¯à®æ¥¤ãàë (­ ª®â®àë© ã室¨â 䨪á¨à®¢ ­­®¥ ç¨á«® ®¯¥à 権) ¨ ¥ñ ¨á¯®«­¥­¨¥ (execution), ª®â®à®¥ ¬®¦¥â ¡ëâì ¤®«£¨¬.
ˆâ ª, ¢¥à­ñ¬áï ª ¯à®æ¥¤ãॠInsertion-Sort ¨ ®â¬¥â¨¬ ®ª®«® ª ¦¤®© áâப¨ ¥ñ á⮨¬®áâì (ç¨á«® ®¯¥à 権) ¨ ç¨á«® à §, ª®â®à®¥ íâ áâப ¨á¯®«­ï¥âáï. „«ï ª ¦¤®£® j ®â 2 ¤® n (§¤¥áì n = length[A] |
à §¬¥à ¬ áᨢ ) ¯®¤áç¨â ¥¬, ᪮«ìª® à § ¡ã¤¥â ¨á¯®«­¥­ áâப 5,
¨ ®¡®§­ 稬 íâ® ç¨á«® ç¥à¥§ tj . (‡ ¬¥â¨¬, çâ® áâப¨ ¢­ãâਠ横« ¢ë¯®«­ïîâáï ­ ®¤¨­ à § ¬¥­ìè¥, 祬 ¯à®¢¥àª , ¯®áª®«ìªã ¯®á«¥¤­ïï ¯à®¢¥àª ¢ë¢®¤¨â ¨§ 横« .)
Insertion-Sort(A)
á⮨¬®áâì ç¨á«® à §
1 for j 2 to length[A]
c1 n
2
do key A[j ]
c2 n ; 1
3
. ¤®¡ ¢¨âì A[j ] ª ®âá®àâ¨à®. ¢ ­­®© ç á⨠A[1 : :j ; 1]. 0
n;1
4
i j ;1
c4 nP; 1
5
while i > 0 and A[i] > key
c5 Pnj=2 tj
6
do A[i + 1] A[i]
c6 Pnj=2 (tj ; 1)
n (t ; 1)
7
i i;1
c7
j =2 j
8
A[i + 1] key
c8 n ; 1
‘âப á⮨¬®á⨠c, ¯®¢â®àñ­­ ï m à §, ¤ ñâ ¢ª« ¤ cm ¢ ®¡é¥¥
ç¨á«® ®¯¥à 権. („«ï ª®«¨ç¥á⢠¨á¯®«ì§®¢ ­­®© ¯ ¬ï⨠í⮣® ᪠-
€­ «¨§ «£®à¨â¬®¢
13
§ âì ­¥«ì§ï!) ‘«®¦¨¢ ¢ª« ¤ë ¢á¥å áâப, ¯®«ã稬
T (n) = c1n + c2(n ; 1) + c4(n ; 1) + c5
+ c6
n
X
j =2
n
X
j =2
(tj ; 1) + c7
tj +
n
X
j =2
(tj ; 1) + c8 (n ; 1):
Š ª ¬ë 㦥 £®¢®à¨«¨, ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë § ¢¨á¨â ­¥ ⮫쪮
®â n, ­® ¨ ®â ⮣®, ª ª®© ¨¬¥­­® ¬ áᨢ à §¬¥à n ¯®¤ ­ ¥© ­ ¢å®¤.
„«ï ¯à®æ¥¤ãàë Insertion-Sort ­ ¨¡®«¥¥ ¡« £®¯à¨ï⥭ á«ãç ©, ª®£¤ ¬ áᨢ 㦥 ®âá®àâ¨à®¢ ­. ’®£¤ 横« ¢ áâப¥ 5 § ¢¥àè ¥âáï
¯®á«¥ ¯¥à¢®© ¦¥ ¯à®¢¥àª¨ (¯®áª®«ìªã A[i] 6 key ¯à¨ i = j ; 1), â ª
çâ® ¢á¥ tj à ¢­ë 1, ¨ ®¡é¥¥ ¢à¥¬ï ¥áâì
T (n) = c1n + c2(n ; 1) + c4(n ; 1) + c5(n ; 1) + c8 (n ; 1) =
= (c1 + c2 + c4 + c5 + c8 )n ; (c2 + c4 + c5 + c8):
’ ª¨¬ ®¡à §®¬, ¢ ­ ¨¡®«¥¥ ¡« £®¯à¨ïâ­®¬ á«ãç ¥ ¢à¥¬ï T (n), ­¥®¡å®¤¨¬®¥ ¤«ï ®¡à ¡®âª¨ ¬ áᨢ à §¬¥à n, ï¥âáï «¨­¥©­®© ä㭪樥© (linear function) ®â n, â. ¥. ¨¬¥¥â ¢¨¤ T (n) = an + b ¤«ï ­¥ª®â®àëå ª®­áâ ­â a ¨ b. (â¨ ª®­áâ ­âë ®¯à¥¤¥«ïîâáï ¢ë¡à ­­ë¬¨
§­ 祭¨ï¬¨ c1; : : :; c8.)
…᫨ ¦¥ ¬ áᨢ à ᯮ«®¦¥­ ¢ ®¡à â­®¬ (ã¡ë¢ î饬) ¯®à浪¥,
¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë ¡ã¤¥â ¬ ªá¨¬ «ì­ë¬: ª ¦¤ë© í«¥¬¥­â
A[j ] ¯à¨¤ñâáï áà ¢­¨âì á® ¢á¥¬¨ í«¥¬¥­â ¬¨ A[1] : : :A[j ; 1]. à¨
í⮬ tj = j . ‚ᯮ¬¨­ ï, çâ®
n
X
j =2
j = n(n2+ 1) ; 1;
n
X
j =2
(j ; 1) = n(n2; 1)
(á¬. £«. 3), ¯®«ãç ¥¬, çâ® ¢ åã¤è¥¬ á«ãç ¥ ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë
à ¢­®
n
(
n
+
1)
T (n) = c1n + c2(n ; 1) + c4(n ; 1) + c5
2 ;1 +
+ c n(n ; 1) + c n(n ; 1) + c (n ; 1) =
8
2
= c25 + c26 + c27 n2 + c1 + c2 + c4 + c25 ; c26 ; c27 + c8 n ;
; (c2 + c4 + c5 + c8):
6
2
7
’¥¯¥àì äã­ªæ¨ï T (n) | ª¢ ¤à â¨ç­ ï (quadratic function), â. ¥.
¨¬¥¥â ¢¨¤ T (n) = an2 + bn + c. (Š®­áâ ­âë a, b ¨ c á­®¢ ®¯à¥¤¥«ïîâáï §­ 祭¨ï¬¨ c1{c8.)
14
ƒ« ¢ 1 ‚¢¥¤¥­¨¥
‚६ï à ¡®âë ¢ åã¤è¥¬ á«ãç ¥ ¨ ¢ á।­¥¬
ˆâ ª, ¬ë ¢¨¤¨¬, çâ® ¢à¥¬ï à ¡®âë ¢ åã¤è¥¬ á«ãç ¥ ¨ ¢ «ãç襬
á«ãç ¥ ¬®£ãâ ᨫ쭮 à §«¨ç âìáï. ®«ì襩 ç áâìî ­ á ¡ã¤¥â ¨­â¥à¥á®¢ âì ¢à¥¬ï à ¡®âë ¢ åã¤è¥¬ á«ãç ¥ (worst-case running time),
ª®â®à®¥ ®¯à¥¤¥«ï¥âáï ª ª ¬ ªá¨¬ «ì­®¥ ¢à¥¬ï à ¡®âë ¤«ï ¢å®¤®¢
¤ ­­®£® à §¬¥à . ®ç¥¬ã? ‚®â ­¥áª®«ìª® ¯à¨ç¨­.
‡­ ï ¢à¥¬ï à ¡®âë ¢ åã¤è¥¬ á«ãç ¥, ¬ë ¬®¦¥¬ £ à ­â¨à®¢ âì,
çâ® ¢ë¯®«­¥­¨¥ «£®à¨â¬ § ª®­ç¨âáï § ­¥ª®â®à®¥ ¢à¥¬ï, ¤ ¦¥
­¥ §­ ï, ª ª®© ¨¬¥­­® ¢å®¤ (¤ ­­®£® à §¬¥à ) ¯®¯ ¤ñâáï.
 ¯à ªâ¨ª¥ "¯«®å¨¥" ¢å®¤ë (¤«ï ª®â®àëå ¢à¥¬ï à ¡®âë ¡«¨§ª®
ª ¬ ªá¨¬ã¬ã) ¬®£ãâ ç áâ® ¯®¯ ¤ âìáï.  ¯à¨¬¥à, ¤«ï ¡ §ë ¤ ­­ëå ¯«®å¨¬ § ¯à®á®¬ ¬®¦¥â ¡ëâì ¯®¨áª ®âáãâáâ¢ãî饣® í«¥¬¥­â (¤®¢®«ì­® ç áâ ï á¨âã æ¨ï).
‚६ï à ¡®âë ¢ á।­¥¬ ¬®¦¥â ¡ëâì ¤®¢®«ì­® ¡«¨§ª® ª ¢à¥¬¥­¨
à ¡®âë ¢ åã¤è¥¬ á«ãç ¥. ãáâì, ­ ¯à¨¬¥à, ¬ë á®àâ¨à㥬 á«ãç ©­® à ᯮ«®¦¥­­ë¥ n ç¨á¥« ¢ ¯®¬®éìî ¯à®æ¥¤ãàë InsertionSort. ‘ª®«ìª® à § ¯à¨¤ñâáï ¢ë¯®«­¨âì 横« ¢ áâப å 5{8? ‚
á।­¥¬ ®ª®«® ¯®«®¢¨­ë í«¥¬¥­â®¢ ¬ áᨢ A[1 : :j ; 1] ¡®«ì¥ A[j ],
â ª çâ® tj ¢ á।­¥¬ ¬®¦­® áç¨â âì à ¢­ë¬ j=2, ¨ ¢à¥¬ï T (n)
ª¢ ¤à â¨ç­® § ¢¨á¨â ®â n.
‚ ­¥ª®â®àëå á«ãç ïå ­ á ¡ã¤¥â ¨­â¥à¥á®¢ âì â ª¦¥ á।­¥¥ ¢à¥¬ï
à ¡®âë (average-case running time, expexted running time) «£®à¨â¬ ­ ¢å®¤ å ¤ ­­®© ¤«¨­ë. Š®­¥ç­®, íâ ¢¥«¨ç¨­ § ¢¨á¨â ®â ¢ë¡à ­­®£® à á¯à¥¤¥«¥­¨ï ¢¥à®ïâ­®á⥩ (®¡ëç­® à áᬠâਢ ¥âáï à ¢­®¬¥à­®¥ à á¯à¥¤¥«¥­¨¥), ¨ ­ ¯à ªâ¨ª¥ ॠ«ì­®¥ à á¯à¥¤¥«¥­¨¥ ¢å®¤®¢ ¬®¦¥â ®ª § âìáï ᮢᥬ ¤à㣨¬. (ˆ­®£¤ ¥£® ¬®¦­® ¯à¥®¡à §®¢ âì ¢ à ¢­®¬¥à­®¥, ¨á¯®«ì§ãï ¤ â稪 á«ãç ©­ëå ç¨á¥«.)
®à冷ª à®á⠍ è ­ «¨§ ¢à¥¬¥­¨ à ¡®âë ¯à®æ¥¤ãàë Insertion-Sort ¡ë«
®á­®¢ ­ ­ ­¥áª®«ìª¨å ã¯à®é îé¨å ¯à¥¤¯®«®¦¥­¨ïå. ‘­ ç « ¬ë ¯à¥¤¯®«®¦¨«¨, çâ® ¢à¥¬ï ¢ë¯®«­¥­¨ï i-© áâப¨ ¯®áâ®ï­­® ¨
à ¢­® ci. ‡ ⥬ ¬ë ®£à㡨«¨ ®æ¥­ªã ¤® an2 + bn + c. ‘¥©ç á ¬ë
¯®©¤ñ¬ ¥éñ ¤ «ìè¥ ¨ ᪠¦¥¬, çâ® ¢à¥¬ï à ¡®âë ¢ åã¤è¥¬ á«ãç ¥
¨¬¥¥â ¯®à冷ª à®áâ (rate of growth, order of growth) n2, ®â¡à áë¢ ï ç«¥­ë ¬¥­ìè¨å ¯®à浪®¢ («¨­¥©­ë¥) ¨ ­¥ ¨­â¥à¥áãïáì ª®íää¨æ¨¥­â®¬ ¯à¨ n2. â® § ¯¨áë¢ îâ â ª: T (n) = (n2) (¯®¤à®¡­®¥
®¡êïá­¥­¨¥ ®¡®§­ 祭¨© ¬ë ®â«®¦¨¬ ¤® á«¥¤ãî饩 £« ¢ë).
€«£®à¨â¬ á ¬¥­ì訬 ¯®à浪®¬ à®á⠢६¥­¨ à ¡®âë ®¡ëç­®
¯à¥¤¯®çâ¨â¥«¥­: ¥á«¨, ᪠¦¥¬, ®¤¨­ «£®à¨â¬ ¨¬¥¥â ¢à¥¬ï à ¡®âë
(n2 ), ¤à㣮© | (n3 ), â® ¯¥à¢ë© ¡®«¥¥ íä䥪⨢¥­ (¯® ªà ©­¥©
¬¥à¥ ¤«ï ¤®áâ â®ç­® ¤«¨­­ëå ¢å®¤®¢; ¡ã¤ãâ «¨ ॠ«ì­ë¥ ¢å®¤ë
â ª®¢ë¬¨ | ¤à㣮© ¢®¯à®á).
®áâ஥­¨¥ «£®à¨â¬®¢
15
“¯à ¦­¥­¨ï
ã¤¥¬ á®àâ¨à®¢ âì ¬ áᨢ ¨§ n í«¥¬¥­â®¢ â ª: ¯à®á¬®âਬ
¥£® ¨ ­ ©¤ñ¬ ¬¨­¨¬ «ì­ë© í«¥¬¥­â, ª®â®àë© áª®¯¨à㥬 ¢ ¯¥à¢ãî
ï祩ªã ¤à㣮£® ¬ áᨢ . ‡ ⥬ ¯à®á¬®âਬ ¥£® á­®¢ ¨ ­ ©¤ñ¬ á«¥¤ãî騩 í«¥¬¥­â, ¨ â ª ¤ «¥¥. ’ ª®© ᯮᮡ á®àâ¨à®¢ª¨ ¬®¦­® ­ §¢ âì á®àâ¨à®¢ª®© ¢ë¡®à®¬ (selection sort). ‡ ¯¨è¨â¥ íâ®â «£®à¨â¬
á ¯®¬®éìî ¯á¥¢¤®ª®¤ . “ª ¦¨â¥ ¢à¥¬ï ¥£® à ¡®âë ¢ «ãç襬 ¨ åã¤è¥¬ á«ãç ïå, ¨á¯®«ì§ãï -®¡®§­ 祭¨ï.
1.2-2 ‚¥à­ñ¬áï ª «£®à¨â¬ã «¨­¥©­®£® ¯®¨áª (ã¯à. 1.1-3).
‘ª®«ìª® áà ¢­¥­¨© ¯®âॡã¥âáï ¢ á।­¥¬ í⮬㠫£®à¨â¬ã, ¥á«¨
¨áª®¬ë¬ í«¥¬¥­â®¬ ¬®¦¥â ¡ëâì «î¡®© í«¥¬¥­â ¬ áᨢ (á ®¤¨­ ª®¢®© ¢¥à®ïâ­®áâìî)? Š ª®¢® ¢à¥¬ï à ¡®âë ¢ åã¤è¥¬ á«ãç ¥ ¨ ¢
á।­¥¬? Š ª § ¯¨á âì í⨠¢à¥¬¥­ á ¯®¬®éìî -®¡®§­ 祭¨©?
1.2-3 „ ­ ¯®á«¥¤®¢ ⥫쭮áâì ç¨á¥« x1 ; x2; : : :; xn . ®ª ¦¨â¥,
çâ® § ¢à¥¬ï (n log n) ¬®¦­® ®¯à¥¤¥«¨âì, ¥áâì «¨ ¢ í⮩ ¯®á«¥¤®¢ ⥫쭮á⨠¤¢ ®¤¨­ ª®¢ëå ç¨á« .
1.2-4 „ ­ë ª®íää¨æ¨¥­âë a0; a1; : : :; an;1 ¬­®£®ç«¥­ ; âॡã¥âáï
­ ©â¨ ¥£® §­ 祭¨¥ ¢ § ¤ ­­®© â®çª¥ x. Ž¯¨è¨â¥ ¥áâ¥á⢥­­ë© «£®à¨â¬, âॡãî騩 ¢à¥¬¥­¨ (n2). Š ª ¢ë¯®«­¨âì ¢ëç¨á«¥­¨ï § ¢à¥¬ï (n), ­¥ ¨á¯®«ì§ãï ¤®¯®«­¨â¥«ì­®£® ¬ áᨢ ? ˆá¯®«ì§ã©â¥
"á奬㠃®à­¥à ":
1.2-1
nX
;1
i=0
ai xi = (: : : (an;1x + an;2 )x + : : : + a1 )x + a0:
Š ª § ¯¨á âì ¢ëà ¦¥­¨¥ n3=1000 ; 100n2 ; 100n + 3 á ¯®¬®éìî -®¡®§­ 祭¨©?
1.2-6 ®ç⨠«î¡®© «£®à¨â¬ ¬®¦­® ­¥¬­®£® ¨§¬¥­¨âì, à ¤¨ª «ì­® 㬥­ì訢 ¢à¥¬ï ¥£® à ¡®âë ¢ «ãç襬 á«ãç ¥. Š ª?
1.2-5
1.3 ®áâ஥­¨¥ «£®à¨â¬®¢
…áâì ¬­®£® áâ ­¤ àâ­ëå ¯à¨ñ¬®¢, ¨á¯®«ì§ã¥¬ëå ¯à¨ ¯®áâ஥­¨¨
«£®à¨â¬®¢. ‘®àâ¨à®¢ª ¢áâ ¢ª ¬¨ ï¥âáï ¯à¨¬¥à®¬ «£®à¨â¬ ,
¤¥©áâ¢ãî饣® ¯® è £ ¬ (incremental approach): ¬ë ¤®¡ ¢«ï¥¬ í«¥¬¥­âë ®¤¨­ § ¤à㣨¬ ª ®âá®àâ¨à®¢ ­­®© ç á⨠¬ áᨢ .
‚ í⮬ à §¤¥«¥ ¬ë ¯®ª ¦¥¬ ¢ ¤¥©á⢨¨ ¤à㣮© ¯®¤å®¤, ª®â®àë©
­ §ë¢ îâ "à §¤¥«ï© ¨ ¢« áâ¢ã©" (divide-and-conquer approach), ¨
¯®áâந¬ á ¥£® ¯®¬®éìî §­ ç¨â¥«ì­® ¡®«¥¥ ¡ëáâàë© «£®à¨â¬ á®àâ¨à®¢ª¨.
16
ƒ« ¢ 1 ‚¢¥¤¥­¨¥
1.3.1 à¨­æ¨¯ "à §¤¥«ï© ¨ ¢« áâ¢ã©"
Œ­®£¨¥ «£®à¨â¬ë ¯® ¯à¨à®¤¥ ४ãàᨢ­ë (recursive algorithms):
à¥è ï ­¥ª®â®àãî § ¤ çã, ®­¨ ¢ë§ë¢ îâ á ¬¨å á¥¡ï ¤«ï à¥è¥­¨ï
¥ñ ¯®¤§ ¤ ç. ˆ¤¥ï ¬¥â®¤ "à §¤¥«ï© ¨ ¢« áâ¢ã©" á®á⮨⠪ ª à § ¢
í⮬. ‘­ ç « § ¤ ç à §¡¨¢ ¥âáï ­ ­¥áª®«ìª® ¯®¤§ ¤ ç ¬¥­ì襣®
à §¬¥à . ‡ ⥬ í⨠§ ¤ ç¨ à¥è îâáï (á ¯®¬®éìî ४ãàᨢ­®£® ¢ë§®¢ | ¨«¨ ­¥¯®á।á⢥­­®, ¥á«¨ à §¬¥à ¤®áâ â®ç­® ¬ «).  ª®­¥æ, ¨å à¥è¥­¨ï ª®¬¡¨­¨àãîâáï ¨ ¯®«ãç ¥âáï à¥è¥­¨¥ ¨á室­®©
§ ¤ ç¨.
„«ï § ¤ ç¨ á®àâ¨à®¢ª¨ í⨠âਠíâ ¯ ¢ë£«ï¤ïâ â ª. ‘­ ç « ¬ë
à §¡¨¢ ¥¬ ¬ áᨢ ­ ¤¢¥ ¯®«®¢¨­ë ¬¥­ì襣® à §¬¥à . ‡ ⥬ ¬ë
á®àâ¨à㥬 ª ¦¤ãî ¨§ ¯®«®¢¨­ ®â¤¥«ì­®. ®á«¥ í⮣® ­ ¬ ®áâ ñâáï
ᮥ¤¨­¨âì ¤¢ 㯮à冷祭­ëå ¬ áᨢ ¯®«®¢¨­­®£® à §¬¥à ¢ ®¤¨­.
¥ªãàᨢ­®¥ à §¡¨¥­¨¥ § ¤ ç¨ ­ ¬¥­ì訥 ¯à®¨á室¨â ¤® â¥å ¯®à,
¯®ª à §¬¥à ¬ áᨢ ­¥ ¤®©¤ñâ ¤® ¥¤¨­¨æë («î¡®© ¬ áᨢ ¤«¨­ë 1
¬®¦­® áç¨â âì 㯮à冷祭­ë¬).
¥âਢ¨ «ì­®© ç áâìî ï¥âáï ᮥ¤¨­¥­¨¥ ¤¢ãå 㯮à冷祭­ëå
¬ áᨢ®¢ ¢ ®¤¨­. Ž­® ¢ë¯®«­ï¥âáï á ¯®¬®éìî ¢á¯®¬®£ ⥫쭮©
¯à®æ¥¤ãàë Merge(A; p; q; r).  à ¬¥âà ¬¨ í⮩ ¯à®æ¥¤ãàë ïîâáï ¬ áᨢ A ¨ ç¨á« p; q; r, 㪠§ë¢ î騥 £à ­¨æë ᫨¢ ¥¬ëå
ãç á⪮¢. à®æ¥¤ãà ¯à¥¤¯®« £ ¥â, çâ® p 6 q < r ¨ çâ® ãç á⪨
A[p : :q] ¨ A[q + 1 : :r] 㦥 ®âá®àâ¨à®¢ ­ë, ¨ ᫨¢ ¥â (merges) ¨å ¢
®¤¨­ ãç á⮪ A[p : :r].
Œë ®áâ ¢«ï¥¬ ¯®¤à®¡­ãî à §à ¡®âªã í⮩ ¯à®æ¥¤ãàë ç¨â ⥫î
(ã¯à. 1.3-2), ­® ¤®¢®«ì­® ïá­®, çâ® ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë Merge
¥áâì (n), £¤¥ n | ®¡é ï ¤«¨­ ᫨¢ ¥¬ëå ãç á⪮¢ (n = r ; p +1).
â® «¥£ª® ®¡êïá­¨âì ­ ª àâ å. ãáâì ¬ë ¨¬¥¥¬ ¤¢¥ á⮯ª¨ ª àâ,
¨ ¢ ª ¦¤®© ª àâë ¨¤ãâ ᢥàåã ¢­¨§ ¢ ¢®§à áâ î饬 ¯®à浪¥. Š ª
ᤥ« âì ¨§ ­¨å ®¤­ã?  ª ¦¤®¬ è £¥ ¬ë ¡¥àñ¬ ¬¥­ìèãî ¨§ ¤¢ãå
¢¥àå­¨å ª àâ ¨ ª« ¤ñ¬ ¥ñ (à㡠誮© ¢¢¥àå) ¢ १ã«ìâ¨àãîéãî
á⮯ªã. Š®£¤ ®¤­ ¨§ ¨á室­ëå á⮯®ª áâ ­®¢¨âáï ¯ãá⮩, ¬ë ¤®¡ ¢«ï¥¬ ¢á¥ ®á⠢訥áï ª àâë ¢â®à®© á⮯ª¨ ª १ã«ìâ¨àãî饩
á⮯ª¥. Ÿá­®, çâ® ª ¦¤ë© è £ âॡã¥â ®£à ­¨ç¥­­®£® ç¨á« ¤¥©á⢨©, ¨ ®¡é¥¥ ç¨á«® ¤¥©á⢨© ¥áâì (n).
’¥¯¥àì ­ ¯¨è¥¬ ¯à®æ¥¤ãàã á®àâ¨à®¢ª¨ ᫨ﭨ¥¬ Merge-Sort(A; p; r),
ª®â®à ï á®àâ¨àã¥â ãç á⮪ A[p : :r] ¬ áᨢ A, ­¥ ¬¥­ïï ®áâ «ì­ãî ç áâì ¬ áᨢ . à¨ p > r ãç á⮪ ᮤ¥à¦¨â ¬ ªá¨¬ã¬ ®¤¨­
í«¥¬¥­â, ¨ ⥬ á ¬ë¬ ã¦¥ ®âá®àâ¨à®¢ ­. ‚ ¯à®â¨¢­®¬ á«ãç ¥
¬ë ®âë᪨¢ ¥¬ ç¨á«® q, ª®â®à®¥ ¤¥«¨â ãç á⮪ ­ ¤¢¥ ¯à¨¬¥à­®
à ¢­ë¥ ç á⨠A[p : :q] (ᮤ¥à¦¨â dn=2e í«¥¬¥­â®¢) ¨ A[q + 1 : :r]
(ᮤ¥à¦¨â bn=2c í«¥¬¥­â®¢). ‡¤¥áì ç¥à¥§ bxc ¬ë ®¡®§­ ç ¥¬ 楫ãî
ç áâì x (­ ¨¡®«ì襥 楫®¥ ç¨á«®, ¬¥­ì襥 ¨«¨ à ¢­®¥ x), ç¥à¥§
dxe | ­ ¨¬¥­ì襥 楫®¥ ç¨á«®, ¡®«ì襥 ¨«¨ à ¢­®¥ x.
®áâ஥­¨¥ «£®à¨â¬®¢
17
sorted sequence | ®âá®àâ¨à®¢ ­­ ï ¯®á«¥¤®¢ ⥫쭮áâì
merge | ᫨ﭨ¥
initial sequence | ­ ç «ì­ ï ¯®á«¥¤®¢ ⥫쭮áâì
¨áã­®ª 1.3 ‘®àâ¨à®¢ª ᫨ﭨ¥¬ ¤«ï ¬ áᨢ A = h5; 2; 4; 6; 1; 3; 2; 6i.
Merge-Sort (A; p; r)
1 if p < r
2 then q b(p + r)=2c
3
Merge-Sort(A; p; q )
4
Merge-Sort(A; q + 1; r)
5
Merge(A; p; q; r)
‚¥áì ¬ áᨢ ⥯¥àì ¬®¦­® ®âá®àâ¨à®¢ âì á ¯®¬®éìî ¢ë§®¢ Merge-Sort(A; 1; length[A]). …᫨ ¤«¨­ ¬ áᨢ n = length[A]
¥áâì á⥯¥­ì ¤¢®©ª¨, â® ¢ ¯à®æ¥áᥠá®àâ¨à®¢ª¨ ¯à®¨§®©¤ñâ ᫨ﭨ¥
¯ à í«¥¬¥­â®¢ ¢ ®âá®àâ¨à®¢ ­­ë¥ ãç á⪨ ¤«¨­ë 2, § ⥬ ᫨ﭨ¥
¯ à â ª¨å ãç á⪮¢ ¢ ®âá®àâ¨à®¢ ­­ë¥ ãç á⪨ ¤«¨­ë 4 ¨ â ª
¤ «¥¥ ¤® n (­ ¯®á«¥¤­¥¬ è £¥ ᮥ¤¨­ïîâáï ¤¢ ®âá®àâ¨à®¢ ­­ëå
ãç á⪠¤«¨­ë n=2). â®â ¯à®æ¥áá ¯®ª § ­ ­ à¨á. 1.3.
1.3.2 €­ «¨§ «£®à¨â¬®¢ ⨯ "à §¤¥«ï© ¨ ¢« áâ¢ã©"
Š ª ®æ¥­¨âì ¢à¥¬ï à ¡®âë ४ãàᨢ­®£® «£®à¨â¬ ? à¨ ¯®¤áçñ⥠¬ë ¤®«¦­ë ãç¥áâì ¢à¥¬ï, § âà 稢 ¥¬®¥ ­ ४ãàᨢ­ë¥
¢ë§®¢ë, â ª çâ® ¯®«ãç ¥âáï ­¥ª®â®à®¥ ४ãà७⭮¥ ᮮ⭮襭¨¥
(recurrence equation). „ «¥¥ á«¥¤ã¥â ®æ¥­¨âì ¢à¥¬ï à ¡®âë, ¨á室ï
¨§ í⮣® ᮮ⭮襭¨ï.
‚®â ¯à¨¬¥à­® ª ª íâ® ¤¥« ¥âáï. à¥¤¯®«®¦¨¬, çâ® «£®à¨â¬ à §¡¨¢ ¥â § ¤ çã à §¬¥à n ­ a ¯®¤§ ¤ ç, ª ¦¤ ï ¨§ ª®â®àëå ¨¬¥¥â
¢ b à § ¬¥­ì訩 à §¬¥à. ã¤¥¬ áç¨â âì, çâ® à §¡¨¥­¨¥ âॡã¥â
¢à¥¬¥­¨ D(n), ᮥ¤¨­¥­¨¥ ¯®«ã祭­ëå à¥è¥­¨© | ¢à¥¬¥­¨ C (n).
18
ƒ« ¢ 1 ‚¢¥¤¥­¨¥
’®£¤ ¯®«ãç ¥¬ ᮮ⭮襭¨¥ ¤«ï ¢à¥¬¥­¨ à ¡®âë T (n) ­ § ¤ ç å
à §¬¥à n (¢ åã¤è¥¬ á«ãç ¥): T (n) = aT (n=b) + D(n) + C (n). â®
ᮮ⭮襭¨¥ ¢ë¯®«­¥­® ¤«ï ¤®áâ â®ç­® ¡®«ìè¨å n, ª®£¤ § ¤ çã
¨¬¥¥â á¬ëá« à §¡¨¢ âì ­ ¯®¤§ ¤ ç¨. „«ï ¬ «ëå n, ª®£¤ â ª®¥
à §¡¨¥­¨¥ ­¥¢®§¬®¦­® ¨«¨ ­¥ ­ã¦­®, ¯à¨¬¥­ï¥âáï ª ª®©-â® ¯àאַ© ¬¥â®¤ à¥è¥­¨ï § ¤ ç¨. ®áª®«ìªã n ®£à ­¨ç¥­®, ¢à¥¬ï à ¡®âë
⮦¥ ­¥ ¯à¥¢®á室¨â ­¥ª®â®à®© ª®­áâ ­âë.
€­ «¨§ á®àâ¨à®¢ª¨ ᫨ﭨ¥¬
„«ï ¯à®áâ®âë ¡ã¤¥¬ ¯à¥¤¯®« £ âì, çâ® à §¬¥à ¬ áᨢ (n) ¥áâì
á⥯¥­ì ¤¢®©ª¨. (Š ª ¬ë 㢨¤¨¬ ¢ £« ¢¥ 4, íâ® ­¥ ®ç¥­ì áãé¥á⢥­­®.) ’®£¤ ­ ª ¦¤®¬ è £¥ á®àâ¨àã¥¬ë© ãç á⮪ ¤¥«¨âáï ­ ¤¢¥ à ¢­ë¥ ¯®«®¢¨­ë.  §¡¨¥­¨¥ ­ ç á⨠(¢ëç¨á«¥­¨¥ £à ­¨æë)
âॡã¥â ¢à¥¬¥­¨ (1), ᫨ﭨ¥ | ¢à¥¬¥­¨ (n). ®«ãç ¥¬ ᮮ⭮襭¨¥
(
¥á«¨ n = 1,
T (n) = (1);
2T (n=2) + (n=2); ¥á«¨ n > 1.
Š ª ¬ë 㢨¤¨¬ ¢ £« ¢¥ 4, í⮠ᮮ⭮襭¨¥ ¢«¥çñâ T (n) =
(n log n), £¤¥ ç¥à¥§ log ¬ë ®¡®§­ ç ¥¬ ¤¢®¨ç­ë© «®£ à¨ä¬ (®á­®¢ ­¨¥ «®£ à¨ä¬®¢, ¢¯à®ç¥¬, ­¥ ¨£à ¥â ஫¨, â ª ª ª ¯à¨¢®¤¨â
«¨èì ª ¨§¬¥­¥­¨î ª®­áâ ­âë). ®í⮬㠤«ï ¡®«ìè¨å n á®àâ¨à®¢ª ᫨ﭨ¥¬ íä䥪⨢­¥¥ á®àâ¨à®¢ª¨ ¢áâ ¢ª ¬¨, âॡãî饩
¢à¥¬¥­¨ (n2).
“¯à ¦­¥­¨ï
1.3-1 ‘«¥¤ãï ®¡à §æã à¨á. 1.3, ¯®ª § âì à ¡®âã á®àâ¨à®¢ª¨ ᫨ﭨ¥¬ ¤«ï ¬ áᨢ A = h3; 41; 52; 26; 38; 57; 9; 49i.
1.3-2  ¯¨á âì ⥪áâ ¯à®æ¥¤ãàë Merge(A; p; q; r).
1.3-3 „®ª ¦¨â¥ ¯® ¨­¤ãªæ¨¨, çâ® ¥á«¨
T (n) =
(
2;
¥á«¨ n = 2,
2T (n=2) + n; ¥á«¨ n = 2k ¨ k > 1,
â® T (n) = n log n (¯à¨ ¢á¥å n, ïîé¨åáï á⥯¥­ï¬¨ ¤¢®©ª¨).
1.3-4 ‘®àâ¨à®¢ªã ¢áâ ¢ª ¬¨ ¬®¦­® ®ä®à¬¨âì ª ª ४ãàᨢ­ãî
¯à®æ¥¤ãàã: ¦¥« ï ®âá®àâ¨à®¢ âì A[1 : :n], ¬ë (४ãàᨢ­®) á®àâ¨à㥬 A[1 : :n ; 1], § ⥬ áâ ¢¨¬ A[n] ­ ¯à ¢¨«ì­®¥ ¬¥áâ® ¢ ®âá®àâ¨à®¢ ­­®¬ ¬ áᨢ¥ A[1 : :n ; 1].  ¯¨è¨â¥ ४ãà७⭮¥ ᮮ⭮襭¨¥ ¤«ï ¢à¥¬¥­¨ à ¡®âë â ª®© ¯à®æ¥¤ãàë.
®áâ஥­¨¥ «£®à¨â¬®¢
19
‚®§¢à é ïáì ª § ¤ ç¥ ¯®¨áª (ã¯à. 1.1-3), § ¬¥â¨¬, çâ® ¯à¨
¯®¨áª¥ ¢ ®âá®àâ¨à®¢ ­­®¬ ¬ áᨢ¥ ¬ë ¬®¦¥¬ á­ ç « áà ¢­¨âì ¨áª®¬ë© í«¥¬¥­â á® á।­¨¬ í«¥¬¥­â®¬ ¬ áᨢ , 㧭 âì, ¢ ª ª®© ¯®«®¢¨­¥ ¥£® á«¥¤ã¥â ¨áª âì, § ⥬ ¯à¨¬¥­¨âì âã ¦¥ ¨¤¥î ४ãàᨢ­®. ’ ª®© ᯮᮡ ­ §ë¢ ¥âáï ¤¢®¨ç­ë¬ ¯®¨áª®¬ (binary search).
 ¯¨è¨â¥ ᮮ⢥âáâ¢ãîéãî ¯à®£à ¬¬ã, ¨á¯®«ì§ãï 横« ¨«¨ ४ãàá¨î. Ž¡êïá­¨â¥, ¯®ç¥¬ã ¢à¥¬ï ¥ñ à ¡®âë ¥áâì (log n).
1.3-6 ‡ ¬¥â¨¬, ç⮠横« while ¢ áâப å 5{7 ¯à®æ¥¤ãàë
Insertion-Sort (à §¤. 1.1) ¯à®á¬ âਢ ¥â í«¥¬¥­âë ®âá®àâ¨à®¢ ­­®£® ãç á⪠A[1 : :j ; 1] ¯®¤àï¤. ‚¬¥áâ® í⮣® ¬®¦­® ¡ë«®
¡ë ¨á¯®«ì§®¢ âì ¤¢®¨ç­ë© ¯®¨áª (ã¯à. 1.3-5), çâ®¡ë ­ ©â¨ ¬¥áâ®
¢áâ ¢ª¨ § ¢à¥¬ï (log n). “¤ áâáï «¨ â ª¨¬ ®¡à §®¬ ᤥ« âì
®¡é¥¥ ¢à¥¬ï à ¡®âë à ¢­ë¬ (n log n)?
1.3-7? „ ­ ¬ áᨢ S ¨§ n ¤¥©á⢨⥫ì­ëå ç¨á¥«, â ª¦¥ ç¨á«® x.
Š ª § ¢à¥¬ï (n log n) ®¯à¥¤¥«¨âì, ¬®¦­® «¨ ¯à¥¤áâ ¢¨âì x ¢ ¢¨¤¥
áã¬¬ë ¤¢ãå í«¥¬¥­â®¢ ¬ áᨢ S ?
1.3-5
‡ ¬¥ç ­¨ï
Š ª ¬®£ ¡ë ᪠§ âì Š®§ì¬ àã⪮¢, å®à®è¨© «£®à¨â¬ ¯®¤®¡¥­
®áâ஬㠭®¦ã | â®â ¨ ¤à㣮© ¤®á⨣ îâ 楫¨ «¥£ª® ¨ ¯à®áâ®. „à㣮¥ áà ¢­¥­¨¥: 祫®¢¥ª, ¯®«ì§ãî騩áï ¯«®å¨¬ «£®à¨â¬®¬, ¯®¤®¡¥­
¯®¢ àã, ®â¡¨¢ î饬㠬ïá® ®â¢ñà⪮©: ¥¤¢ áꥤ®¡­ë© ¨ ¬ «®¯à¨¢«¥ª ⥫ì­ë© १ã«ìâ â ¤®á⨣ ¥âáï 業®© ¡®«ìè¨å ãᨫ¨©.
— áâ® à §­¨æ ¬¥¦¤ã ¯«®å¨¬ ¨ å®à®è¨¬ «£®à¨â¬®¬ ¡®«¥¥ áãé¥á⢥­­ , 祬 ¬¥¦¤ã ¡ëáâàë¬ ¨ ¬¥¤«¥­­ë¬ ª®¬¯ìîâ¥à®¬. ãáâì
¬ë å®â¨¬ ®âá®àâ¨à®¢ âì ¬ áᨢ ¨§ ¬¨««¨®­ ç¨á¥«. —â® ¡ëáâ॥
| á®àâ¨à®¢ âì ¥£® ¢áâ ¢ª ¬¨ ­ á㯥મ¬¯ìîâ¥à¥ (100 ¬¨««¨®­®¢ ®¯¥à 権 ¢ ᥪ㭤ã) ¨«¨ ᫨ﭨ¥¬ ­ ¤®¬ è­¥¬ ª®¬¯ìîâ¥à¥
(1 ¬¨««¨®­ ®¯¥à 権)? ãáâì ª ⮬㠦¥ á®àâ¨à®¢ª ¢áâ ¢ª ¬¨ ­ ¯¨á ­ ­ áᥬ¡«¥à¥ ç१¢ëç ©­® íª®­®¬­®, ¨ ¤«ï á®àâ¨à®¢ª¨ n
ç¨á¥« ­ã¦­®, ᪠¦¥¬, «¨èì 2n2 ®¯¥à 権. ‚ â® ¦¥ ¢à¥¬ï «£®à¨â¬
᫨ﭨ¥¬ ­ ¯¨á ­ ¡¥§ ®á®¡®© § ¡®âë ®¡ íä䥪⨢­®á⨠¨ ç¨á«® ®¯¥à 権 ¥áâì 50n log n. „«ï á®àâ¨à®¢ª¨ ¬¨««¨®­ ç¨á¥« ¯®«ãç ¥¬
2 (106)2 ®¯¥à 権 = 20 000 ᥪ㭤 5;56 ç ᮢ
108 ®¯¥à 権 ¢ ᥪ㭤ã
¤«ï á㯥મ¬¯ìîâ¥à ¨ ¢á¥£®
50 (106) log(106) ®¯¥à 権 1 000 ᥪ㭤 17 ¬¨­ãâ
106 ®¯¥à 権 ¢ ᥪ㭤ã
¤«ï ¤®¬ è­¥£® ª®¬¯ìîâ¥à .
Œë ¢¨¤¨¬, çâ® à §à ¡®âª íä䥪⨢­ëå «£®à¨â¬®¢ | ­¥ ¬¥­¥¥
¢ ¦­ ï ª®¬¯ìîâ¥à­ ï â¥å­®«®£¨ï, 祬 à §à ¡®âª ¡ëáâன í«¥ªâà®­¨ª¨. ‚ í⮩ ®¡« á⨠⠪¦¥ ¯à®¨á室¨â § ¬¥â­ë© ¯à®£à¥áá.
20
ƒ« ¢ 1 ‚¢¥¤¥­¨¥
“¯à ¦­¥­¨ï
ãáâì á®àâ¨à®¢ª¨ ¢áâ ¢ª ¬¨ ¨ ᫨ﭨ¥¬ ¨á¯®«­ïîâáï ­ ®¤­®© ¨ ⮩ ¦¥ ¬ 設¥ ¨ âॡãîâ 8n2 ¨ 64n log n ᮮ⢥âá⢥­­®.
„«ï ª ª¨å §­ 祭¨© n á®àâ¨à®¢ª ¢áâ ¢ª ¬¨ ï¥âáï ¡®«¥¥ íä䥪⨢­®©? Š ª ¬®¦­® ã«ãçè¨âì «£®à¨â¬ á®àâ¨à®¢ª¨ ᫨ﭨ¥¬?
1.3-2 à¨ ª ª®¬ ­ ¨¬¥­ì襬 §­ 祭¨¨ n «£®à¨â¬, ¤¥« î騩
100n2 ®¯¥à 権, íä䥪⨢­¥¥ «£®à¨â¬ , ¤¥« î饣® 2n ®¯¥à 権?
1.3-1
‡ ¤ ç¨
1-1 ‘à ¢­¥­¨¥ ¢à¥¬¥­¨ à ¡®âë
ãáâì ¨¬¥¥âáï «£®à¨â¬, à¥è î騩 § ¤ çã à §¬¥à n § f (n) ¬¨ªà®á¥ªã­¤. Š ª®¢ ¬ ªá¨¬ «ì­ë© à §¬¥à § ¤ ç¨, ª®â®àãî ®­ ᬮ¦¥â
à¥è¨âì § ¢à¥¬ï t?  ©â¨ ¥£® ¤«ï ä㭪権 ¨ ¢à¥¬ñ­, ¯¥à¥ç¨á«¥­­ëå ¢ â ¡«¨æ¥.
1
log
pn
1
1
1
1
1
1
ᥪ ¬¨­ ç á ¤¥­ì ¬¥áïæ £®¤ ¢¥ª
n
n
n log n
n2
n3
2n
n!
1-2 ‘®àâ¨à®¢ª ¢áâ ¢ª ¬¨ ¤«ï ª®à®âª¨å ªã᪮¢
€á¨¬¯â®â¨ç¥áª¨ á®àâ¨à®¢ª ᫨ﭨ¥¬ ¡ëáâ॥ á®àâ¨à®¢ª¨
¢áâ ¢ª ¬¨, ­® ¤«ï ¬ «ëå n ᮮ⭮襭¨¥ ®¡à â­®¥. ®í⮬㠨¬¥¥â
á¬ëá« ¤®áâ â®ç­® ª®à®âª¨¥ ªã᪨ ­¥ à §¡¨¢ âì ¤ «ìè¥, ¯à¨¬¥­ïâì ª ­¨¬ á®àâ¨à®¢ªã ¢áâ ¢ª ¬¨. ‚®¯à®á ¢ ⮬, £¤¥ á«¥¤ã¥â
¯à®¢¥á⨠£à ­¨æã.
. ãáâì ¬ áᨢ ¤«¨­ë n à §¡¨â ­ k ç á⥩ à §¬¥à n=k. ®ª ¦¨â¥, çâ® ¬®¦­® ®âá®àâ¨à®¢ âì ¢á¥ ç á⨠¯® ®â¤¥«ì­®á⨠(á ¯®¬®éìî á®àâ¨à®¢ª¨ ¢áâ ¢ª ¬¨) § ¢à¥¬ï (nk).
¡. ®ª ¦¨â¥, çâ® ¯®á«¥ í⮣® ¬®¦­® ᫨âì ¢á¥ ç á⨠¢ ®¤¨­ 㯮à冷祭­ë© ¬ áᨢ § ¢à¥¬ï (n log(n=k)).
¢. ’¥¬ á ¬ë¬ ®¡é¥¥ ¢à¥¬ï à ¡®âë â ª®£® á¬¥è ­­®£® «£®à¨â¬ ¥áâì (nk + n log(n=k)). Š ª®¢ ¬ ªá¨¬ «ì­ ï ᪮à®áâì à®áâ k ª ª
ä㭪樨 ®â n, ¯à¨ ª®â®à®¬ íâ® ¢à¥¬ï ¯®-¯à¥¦­¥¬ã ¥áâì (n log n)?
£. Š ª ¡ë ¢ë áâ «¨ ¢ë¡¨à âì ®¯â¨¬ «ì­®¥ §­ 祭¨¥ k ­ ¯à ª-
‡ ¬¥ç ­¨ï ª £« ¢¥ 1
21
⨪¥?
1-3 —¨á«® ¨­¢¥àᨩ
ãáâì A[1 : :n] | ¬ áᨢ ¨§ n à §«¨ç­ëå ç¨á¥«.  á ¡ã¤¥â ¨­â¥à¥á®¢ âì ª®«¨ç¥á⢮ ¨­¢¥àᨩ (inversions) ¢ í⮬ ¬ áᨢ¥, â. ¥. ç¨á«®
¯ à i < j , ¤«ï ª®â®àëå A[i] > A[j ].
. “ª ¦¨â¥ ¯ïâì ¨­¢¥àᨩ ¢ ¬ áᨢ¥ h2; 3; 8; 6; 1i.
¡. Š ª®¢® ¬ ªá¨¬ «ì­® ¢®§¬®¦­®¥ ç¨á«® ¨­¢¥àᨩ ¢ ¬ áᨢ¥
¤«¨­ë n?
¢. Š ª á¢ï§ ­® ¢à¥¬ï à ¡®âë «£®à¨â¬ á®àâ¨à®¢ª¨ ¢áâ ¢ª ¬¨ ¨
ç¨á«® ¨­¢¥àᨩ? Ž¡êï᭨⥠᢮© ®â¢¥â.
£. ®áâன⥠«£®à¨â¬, ª®â®àë© áç¨â ¥â ç¨á«® ¨­¢¥àᨩ ¢ ¬ áᨢ¥ ¤«¨­ë n § ¢à¥¬ï (n log n). (“ª § ­¨¥: Œ®¤¨ä¨æ¨àã©â¥ «£®à¨â¬ á®àâ¨à®¢ª¨ ᫨ﭨ¥¬.)
‡ ¬¥ç ­¨ï
…áâì ¬­®¦¥á⢮ å®à®è¨å ª­¨£ ® ¯®áâ஥­¨¨ «£®à¨â¬®¢. ‚®â ­¥ª®â®àë¥ ¨§ ­¨å: €å®, •®¯ªà®äâ ¨ “«ì¬ ­ [4,5],  á [14], à áá à
¨ à¥â«¨ [14], •®à®¢¨æ ¨ ‘ å­¨ [105], Š­ãâ [121, 122, 123], Œ ­¡¥à
[142], Œ¥«ìå®à­ [144, 145, 146], ãम¬ ¨ à ã­ [164], ¥©­£®«ì¤,
¨¢¥à£¥«ìâ ¨ „¥® [167], ‘¥¤¦¢¨ª [175], “¨«ä [201]. à ªâ¨ç¥áª¨¥
ᯥªâë à §à ¡®âª¨ íä䥪⨢­ëå «£®à¨â¬®¢: ¥­â«¨ [24,25], ƒ®­­¥â [90].
‚ 1968 £®¤ã Š­ãâ ®¯ã¡«¨ª®¢ « ¯¥à¢ë© ¨§ âàñå ⮬®¢ á¥à¨¨ ˆáªãáá⢮ ¯à®£à ¬¬¨à®¢ ­¨ï ¤«ï ‚Œ [121, 122, 123], ª®â®àë© áâ «
­ ç «®¬ ­®¢®© í¯®å¨ ¢ ­ 㪥 ®¡ íä䥪⨢­ëå «£®à¨â¬ å. ‚ᥠâà¨
⮬ ¤® á¨å ¯®à ®áâ îâáï ­¥§ ¬¥­¨¬ë¬ á¯à ¢®ç­¨ª®¬. Š ª ¯¨è¥â
Š­ãâ, á«®¢® " «£®à¨â¬" ¯à®¨á室¨â ®â ¨¬¥­¨ à ¡áª®£® ¬ ⥬ ⨪ ¤¥¢ï⮣® ¢¥ª €«-•®à¥§¬¨ (al-Khow^arizm^, ¨«¨ al-Khw^arizm^).
€å®, •®¯ªà®äâ ¨ “«ì¬ ­ [4] 㪠§ «¨ ­ ¢ ¦­®áâì ᨬ¯â®â¨ç¥áª®£® ­ «¨§ ¢à¥¬¥­¨ à ¡®âë ª ª á।á⢠áà ¢­¥­¨ï íä䥪⨢­®á⨠«£®à¨â¬®¢. Ž­¨ è¨à®ª® ¨á¯®«ì§®¢ «¨ ४ãà७â­ë¥ ᮮ⭮襭¨ï ¤«ï ¯®«ã祭¨ï ®æ¥­®ª ¢à¥¬¥­¨ à ¡®âë.
Š­¨£ Š­ãâ [123] ᮤ¥à¦¨â ¨áç¥à¯ë¢ î饥 ¨§«®¦¥­¨¥ ¬­®¦¥á⢠«£®à¨â¬®¢ á®àâ¨à®¢ª¨. Ž­ áà ¢­¨¢ ¥â à §«¨ç­ë¥ «£®à¨â¬ë,
â®ç­® ¯®¤áç¨âë¢ ï ç¨á«® à §«¨ç­ëå è £®¢ (¬ë ¤¥« «¨ íâ® ¤«ï á®àâ¨à®¢ª¨ áà ¢­¥­¨¥¬).  áᬠâਢ îâáï à §«¨ç­ë¥ ¢ ਠ­âë á®àâ¨à®¢ª¨ ¢áâ ¢ª ¬¨, ¢ª«îç ï á®àâ¨à®¢ªã ˜¥«« (D. L. Shell), ª®â®à ï ¨á¯®«ì§ã¥â á®àâ¨à®¢ªã ¯®¤¯®á«¥¤®¢ ⥫쭮á⥩ á ¯®áâ®ï­­ë¬
è £®¬ ¤«ï 㬥­ì襭¨ï ç¨á« ®¯¥à 権.
‘®àâ¨à®¢ª ᫨ﭨ¥¬ â ª¦¥ ®¯¨á ­ ¢ ª­¨£¥ Š­ãâ , ª®â®àë©
㪠§ë¢ ¥â, çâ® ¬¥å ­¨ç¥áª®¥ ãáâனá⢮ ¤«ï á«¨ï­¨ï ¤¢ãå á⮯®ª ¯¥à䮪 àâ § ®¤¨­ ¯à®å®¤ ¡ë«® ¨§®¡à¥â¥­® ¢ 1938 £®¤ã. ®-
22
ƒ« ¢ 1 ‚¢¥¤¥­¨¥
¢¨¤¨¬®¬ã, „¦®­ ä®­ ¥©¬ ­ (J. von Neumann), ®¤¨­ ¨§ ®á­®¢ ⥫¥© ¨­ä®à¬ ⨪¨, ­ ¯¨á « ¯à®£à ¬¬ã á®àâ¨à®¢ª¨ ᫨ﭨ¥¬ ¤«ï
ª®¬¯ìîâ¥à EDVAC ¢ 1945 £®¤ã.
I
Œ ⥬ â¨ç¥áª¨¥ ®á­®¢ë ­ «¨§ «£®à¨â¬®¢
‚¢¥¤¥­¨¥
‚ í⮩ ç áâ¨ á®¡à ­ë ᢥ¤¥­¨ï ¨§ ¬ ⥬ ⨪¨, ª®â®àë¥ ¨á¯®«ì§ãîâáï ¯à¨ ­ «¨§¥ «£®à¨â¬®¢. Œë ᮢ¥â㥬 ¡¥£«® ¯à®á¬®âà¥âì
¥ñ ¨ ¯¥à¥©â¨ ª á«¥¤ãî騬 £« ¢ ¬, ¢®§¢à é ïáì ª ¯à®á¬®â७­®¬ã
¯® ¬¥à¥ ­ ¤®¡­®áâ¨.
‚ £« ¢¥ 2 ¬ë ¢¢®¤¨¬ ¯®­ïâ¨ï ¨ ®¡®§­ 祭¨ï, á¢ï§ ­­ë¥ á ᨬ¯â®â¨ª®© ä㭪権 ( ¨ ¤à.), â ª¦¥ ­¥ª®â®àë¥ ¤à㣨¥.  è 楫ì
§¤¥áì ­¥ à á᪠§ âì ® çñ¬-â® ­®¢®¬, ¯à®á⮠ᮣ« ᮢ âì ®¡®§­ 祭¨ï ¨ â¥à¬¨­®«®£¨î.
‚ £« ¢¥ 3 ¯à¨¢®¤ïâáï à §«¨ç­ë¥ ¬¥â®¤ë ¢ëç¨á«¥­¨ï ¨ ®æ¥­ª¨
á㬬 (¯®¤à®¡­®¥ ¨§«®¦¥­¨¥ ¬®¦­® ­ ©â¨ ¢ «î¡®¬ ã祡­¨ª¥ ¬ ⥬ â¨ç¥áª®£® ­ «¨§ ).
ƒ« ¢ 4 ¯®á¢ï饭 ¯à¥®¡à §®¢ ­¨î ४ãà७â­ëå ᮮ⭮襭¨© ¢
ï¢­ë¥ ®æ¥­ª¨. Œë ä®à¬ã«¨à㥬 ¨ ¤®ª §ë¢ ¥¬ ®¡é¥¥ ã⢥ত¥­¨¥
â ª®£® த (⥮६ 4.1), ª®â®à®£® ¢ ¡®«ì設á⢥ á«ãç ¥¢ ®ª §ë¢ ¥âáï ¤®áâ â®ç­®. …£® ¤®ª § ⥫ìá⢮ ¤®¢®«ì­® ¤«¨­­®, ­® ¢
¤ «ì­¥©è¥¬ ­¥ ¨á¯®«ì§ã¥âáï, â ª çâ® ¯à¨ ¯¥à¢®¬ ç⥭¨¨ ¥£® ¬®¦­®
¯à®¯ãáâ¨âì.
‚ £« ¢¥ 5 ¬ë ¤ ñ¬ ®¯à¥¤¥«¥­¨ï à §«¨ç­ëå ¯®­ï⨩, á¢ï§ ­­ëå
á ¬­®¦¥á⢠¬¨, ®â­®è¥­¨ï¬¨, äã­ªæ¨ï¬¨, £à ä ¬¨ ¨ ¤¥à¥¢ìﬨ, ¨
¢¢®¤¨¬ ᮮ⢥âáâ¢ãî騥 ®¡®§­ 祭¨ï.
ƒ« ¢ 6 ¯®á¢ï饭 ®á­®¢­ë¬ ¯®­ïâ¨ï¬ ª®¬¡¨­ â®à¨ª¨ ¨ ⥮ਨ
¢¥à®ïâ­®á⥩. ®«ìè ï ç áâì ª­¨£¨ ­¥ ¨á¯®«ì§ã¥â í⮣® ¬ â¥à¨ « , â ª çâ® ¯à¨ ¯¥à¢®¬ ç⥭¨¨ íâã £« ¢ã (®á®¡¥­­® ¯®á«¥¤­¨¥ à §¤¥«ë) ¬®¦­® ᬥ«® ¯à®¯ãáâ¨âì, ¢®§¢à é ïáì ª ¯à®¯ã饭­®¬ã ¯®
¬¥à¥ ­ ¤®¡­®áâ¨.
2
‘ª®à®áâì à®áâ ä㭪権
‘à ¢­¨¢ ï ¤¢ «£®à¨â¬ á®àâ¨à®¢ª¨ ¢ £« ¢¥ 1, ¬ë ãáâ ­®¢¨«¨,
çâ® ¢à¥¬ï à ¡®âë ®¤­®£® (á®àâ¨à®¢ª ᫨ﭨ¥¬) ¯à¨¬¥à­® ¯à®¯®à樮­ «ì­® n2, ¤à㣮£® (á®àâ¨à®¢ª ¢áâ ¢ª ¬¨) | n lg n. Š ª®¢ë
¡ë ­¨ ¡ë«¨ ª®íää¨æ¨¥­âë ¯à®¯®à樮­ «ì­®áâ¨, ¤«ï ¤®áâ â®ç­®
¡®«ìè¨å n ¯¥à¢ë© «£®à¨â¬ à ¡®â ¥â ¡ëáâ॥.
€­ «¨§¨àãï «£®à¨â¬, ¬®¦­® áâ à âìáï ­ ©â¨ â®ç­®¥ ç¨á«® ¢ë¯®«­ï¥¬ëå ¨¬ ¤¥©á⢨©. ® ¢ ¡®«ì設á⢥ á«ãç ¥¢ ¨£à ­¥ á⮨â
ᢥç, ¨ ¤®áâ â®ç­® ®æ¥­¨âì ᨬ¯â®â¨ªã à®á⠢६¥­¨ à ¡®âë «£®à¨â¬ ¯à¨ áâ६«¥­¨¨ à §¬¥à ¢å®¤ ª ¡¥áª®­¥ç­®á⨠(asymptotic
eciency). …᫨ ã ®¤­®£® «£®à¨â¬ ᪮à®áâì à®áâ ¬¥­ìè¥, 祬 ã
¤à㣮£®, â® ¢ ¡®«ì設á⢥ á«ãç ¥¢ ®­ ¡ã¤¥â íä䥪⨢­¥¥ ¤«ï ¢á¥å
¢å®¤®¢, ªà®¬¥ ᮢᥬ ª®à®âª¨å. (•®âï ¡ë¢ îâ ¨ ¨áª«î祭¨ï.)
2.1 €á¨¬¯â®â¨ç¥áª¨¥ ®¡®§­ 祭¨ï
•®âï ¢® ¬­®£¨å á«ãç ïå í⨠®¡®§­ 祭¨ï ¨á¯®«ì§ãîâáï ­¥ä®à¬ «ì­®, ¯®«¥§­® ­ ç âì á â®ç­ëå ®¯à¥¤¥«¥­¨©.
-®¡®§­ 祭¨¥
‚ £« ¢¥ 2 ¬ë £®¢®à¨«¨, çâ® ¢à¥¬ï T (n) à ¡®âë «£®à¨â¬ á®àâ¨à®¢ª¨ ¢áâ ¢ª ¬¨ ­ ¢å®¤ å ¤«¨­ë n ¥áâì (n2 ). ’®ç­ë© á¬ëá«
í⮣® ã⢥ত¥­¨ï â ª®©: ­ ©¤ãâáï â ª¨¥ ª®­áâ ­âë c1; c2 > 0 ¨ â ª®¥ ç¨á«® n0, çâ® c1n2 6 T (n) 6 c2n2 ¯à¨ ¢á¥å n > n0. ‚®®¡é¥, ¥á«¨
g(n) | ­¥ª®â®à ï äã­ªæ¨ï, â® § ¯¨áì f (n) = (g(n)) ®§­ ç ¥â, çâ®
­ ©¤ãâáï â ª¨¥ c1; c2 > 0 ¨ â ª®¥ n0, çâ® 0 6 c1g(n) 6 f (n) 6 c2g(n)
¤«ï ¢á¥å n > n0 (á¬. à¨á. 2.1). (‡ ¯¨áì f (n) = (g(n)) ç¨â ¥âáï â ª:
"íä ®â í­ ¥áâì âí⠮⠦¥ ®â í­".)
[!!!!!!!!! ¨áã­®ª 2.1 - ¯®¤¯¨áì ª ­¥¬ã: ]
ˆ««îáâà 樨 ª ®¯à¥¤¥«¥­¨ï¬ f (n) = (g(n)), f (n) = O(g(n)) ¨
f (n) = (g(n)).
 §ã¬¥¥âáï, íâ® ®¡®§­ 祭¨¥ á«¥¤ã¥â 㯮âॡ«ïâì á ®áâ®à®¦­®áâìî: ãáâ ­®¢¨¢, çâ® f1(n) = (g(n)) ¨ f2(n) = (g(n)), ­¥ á«¥¤ã¥â
€á¨¬¯â®â¨ç¥áª¨¥ ®¡®§­ 祭¨ï
27
§ ª«îç âì, çâ® f1(n) = f2(n)!
Ž¯à¥¤¥«¥­¨¥ (g(n)) ¯à¥¤¯®« £ ¥â, çâ® ä㭪樨 f (n) ¨ g(n) ᨬ¯â®â¨ç¥áª¨ ­¥®âà¨æ ⥫ì­ë, â. ¥. ­¥®âà¨æ ⥫ì­ë ¤«ï ¤®áâ â®ç­®
¡®«ìè¨å §­ 祭¨© n. ‡ ¬¥â¨¬, çâ® ¥á«¨ ä㭪樨 f ¨ g áâண®
¯®«®¦¨â¥«ì­ë, â® ¬®¦­® ¨áª«îç¨âì n0 ¨§ ®¯à¥¤¥«¥­¨ï (¨§¬¥­¨¢
ª®­áâ ­âë c1 ¨ c2 â ª, çâ®¡ë ¤«ï ¬ «ëå n ­¥à ¢¥­á⢮ â ª¦¥ ¢ë¯®«­ï«®áì).
…᫨ f (n) = (g(n)), â® £®¢®àïâ, çâ® g(n) ï¥âáï ᨬ¯â®â¨ç¥áª¨ â®ç­®© ®æ¥­ª®© ¤«ï f (n).  á ¬®¬ ¤¥«¥ íâ® ®â­®è¥­¨¥ ᨬ¬¥âà¨ç­®: ¥á«¨ f (n) = (g(n)), â® g(n) = (f (n)).
‚¥à­ñ¬áï ª ¯à¨¬¥àã ¨§ £« ¢ë 1 ¨ ¯à®¢¥à¨¬, çâ® (1=2)n2 ; 3n =
(n2 ). ‘®£« á­® ®¯à¥¤¥«¥­¨î, ­ ¤® 㪠§ âì ¯®«®¦¨â¥«ì­ë¥ ª®­áâ ­âë c1; c2 ¨ ç¨á«® n0 â ª, çâ®¡ë ­¥à ¢¥­á⢠c1n2 6 12 n2 ; 3n 6 c2n2
¢ë¯®«­ï«¨áì ¤«ï ¢á¥å n > n0.  §¤¥«¨¬ ­ n2:
c1 6 12 ; n3 6 c2
‚¨¤­®, çâ® ¢ë¯®«­¥­¨ï ¢â®à®£® ­¥à ¢¥­á⢠¤®áâ â®ç­® ¯®«®¦¨âì
c2 = 1=2. ¥à¢®¥ ¡ã¤¥â ¢ë¯®«­¥­®, ¥á«¨ (­ ¯à¨¬¥à) n0 = 7 ¨ c1 =
1=14.
„à㣮© ¯à¨¬¥à ¨á¯®«ì§®¢ ­¨ï ä®à¬ «ì­®£® ®¯à¥¤¥«¥­¨ï: ¯®ª ¦¥¬, çâ® 6n3 =
6 (n2). ‚ á ¬®¬ ¤¥«¥, ¯ãáâì ­ ©¤ãâáï â ª¨¥ c2 ¨ n0,
3
çâ® 6n 6 c2n2 ¤«ï ¢á¥å n > n0. ® ⮣¤ n 6 c2=6 ¤«ï ¢á¥å n > n0
| ç⮠® ­¥ â ª.
Žâë᪨¢ ï ᨬ¯â®â¨ç¥áª¨ â®ç­ãî ®æ¥­ªã ¤«ï á㬬ë, ¬ë ¬®¦¥¬ ®â¡à áë¢ âì ç«¥­ë ¬¥­ì襣® ¯®à浪 , ª®â®àë¥ ¯à¨ ¡®«ìè¨å
n áâ ­®¢ïâáï ¬ «ë¬¨ ¯® áà ¢­¥­¨î á ®á­®¢­ë¬ á« £ ¥¬ë¬. ‡ ¬¥â¨¬ â ª¦¥, çâ® ª®íää¨æ¨¥­â ¯à¨ áâ à襬 ç«¥­¥ ஫¨ ­¥ ¨£à ¥â
(®­ ¬®¦¥â ¯®¢«¨ïâì ⮫쪮 ­ ¢ë¡®à ª®­áâ ­â c1 ¨ c2 ).  ¯à¨¬¥à,
à áᬮâਬ ª¢ ¤à â¨ç­ãî äã­ªæ¨î f (n) = an2 +bn+c, £¤¥ a; b; c |
­¥ª®â®àë¥ ª®­áâ ­âë ¨ a > 0. Žâ¡à áë¢ ï ç«¥­ë ¬« ¤è¨å ¯®à浪®¢ ¨ ª®íää¨æ¨¥­â ¯à¨ áâ à襬 ç«¥­¥, ­ 室¨¬, çâ® f (n) = (n2).
—⮡ë ã¡¥¤¨âìáï ¢ í⮬ ä®à¬ «ì­®
p, ¬®¦­® ¯®«®¦¨âì c1 = a=4,
c2 = 7a=4 ¨ n0 = 2 max((jbj=a); jcj=a) (¯à®¢¥àìâ¥, çâ® âॡ®¢ ­¨ï ¤¥©á⢨⥫쭮 ¢ë¯®«­¥­ë). ‚®®¡é¥, ¤«ï «î¡®£® ¯®«¨­®¬ p(n) á⥯¥­¨ d á ¯®«®¦¨â¥«ì­ë¬ áâ à訬 ª®íää¨æ¨¥­â®¬ ¨¬¥¥¬
p(n) = (nd ) (§ ¤ ç 2-1).
“¯®¬ï­¥¬ ¢ ¦­ë© ç áâ­ë© á«ãç © ¨á¯®«ì§®¢ ­¨ï ®¡®§­ 祭¨©: (1) ®¡®§­ ç ¥â ®£à ­¨ç¥­­ãî äã­ªæ¨î, ®â¤¥«ñ­­ãî
®â ­ã«ï ­¥ª®â®àë© ¯®«®¦¨â¥«ì­®© ª®­á⠭⮩ ¯à¨ ¤®áâ â®ç­®
¡®«ìè¨å §­ 祭¨ïå à£ã¬¥­â . (ˆ§ ª®­â¥ªáâ ®¡ëç­® ïá­®, çâ®
¨¬¥­­® áç¨â ¥âáï à£ã¬¥­â®¬ ä㭪樨.)
28
ƒ« ¢ 2 ‘ª®à®áâì à®áâ ä㭪権
O- ¨ -®¡®§­ 祭¨ï
‡ ¯¨áì f (n) = (g(n)) ¢ª«îç ¥â ¢ á¥¡ï ¤¢¥ ®æ¥­ª¨: ¢¥àå­îî ¨
­¨¦­îî. ˆå ¬®¦­® à §¤¥«¨âì. ƒ®¢®àïâ, çâ® f (n) = O(g(n)), ¥á«¨
­ ©¤ñâáï â ª ï ª®­áâ ­â c > 0 ¨ â ª®¥ ç¨á«® n0, çâ® 0 6 f (n) 6
cg (n) ¤«ï ¢á¥å n > n0 ƒ®¢®àïâ, çâ® f (n) = (g (n)), ¥á«¨ ­ ©¤¥âáï
â ª ï ª®­áâ ­â c > 0 ¨ â ª®¥ ç¨á«® n0, çâ® 0 6 cg(n) 6 f (n) ¤«ï
¢á¥å n > n0. â¨ § ¯¨á¨ ç¨â îâáï â ª: "íä ®â í­ ¥áâì ® ¡®«ì讥
®â ¦¥ ®â í­", "íä ®â í­ ¥áâì ®¬¥£ ¡®«ìè ï ®â ¦¥ ®â í­".
®-¯à¥¦­¥¬ã ¬ë ¯à¥¤¯®« £ ¥¬, çâ® ä㭪樨 f ¨ g ­¥®âà¨æ ⥫ì­ë ¤«ï ¤®áâ â®ç­® ¡®«ìè¨å §­ 祭¨© à£ã¬¥­â . ‹¥£ª® ¢¨¤¥âì
(ã¯à. 2.1-5), çâ® ¢ë¯®«­¥­ë á«¥¤ãî騥 ᢮©á⢠:
’¥®à¥¬ 2.1. „«ï «î¡ëå ¤¢ãå ä㭪権 f (n) ¨ g (n) ᢮©á⢮ f (n) =
(g (n)) ¢ë¯®«­¥­® ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ f (n) = O(g (n)) ¨
f (n) = (g (n)).
„«ï «î¡ëå ¤¢ãå ä㭪権 ᢮©á⢠f (n) = O(g(n)) ¨ g(n) =
(f (n)) à ¢­®á¨«ì­ë.
Š ª ¬ë ¢¨¤¥«¨, an2 + bn + c = (n2) (¯à¨ ¯®«®¦¨â¥«ì­ëå a).
®í⮬ã an2 + bn + c = O(n2). „à㣮© ¯à¨¬¥à: ¯à¨ a > 0 ¬®¦­®
­ ¯¨á âì an + b = O(n2) (¯®«®¦¨¬ c = a + jbj ¨ n0 = 1). ‡ ¬¥â¨¬,
çâ® ¢ í⮬ á«ãç ¥ an + b =
6 (n2 ¨ an + b =6 (n2).
€á¨¬¯â®â¨ç¥áª¨¥ ®¡®§­ 祭¨ï (, O ¨ ) ç á⮠㯮âॡ«ïîâáï
¢­ãâਠä®à¬ã«.  ¯à¨¬¥à, ¢ £« ¢¥ 1 ¬ë ¯®«ã稫¨ ४ãà७⭮¥
ᮮ⭮襭¨¥
T (n) = 2T (n=2) + (n)
¤«ï ¢à¥¬¥­¨ à ¡®âë á®àâ¨à®¢ª¨ ᫨ﭨ¥¬. ‡¤¥áì (n) ®¡®§­ ç ¥â
­¥ª®â®àãî äã­ªæ¨î, ¯à® ª®â®àãî ­ ¬ ¢ ¦­® §­ âì «¨èì, çâ® ®­ ­¥ ¬¥­ìè¥ c1n ¨ ­¥ ¡®«ìè¥ c2n ¤«ï ­¥ª®â®àëå ¯®«®¦¨â¥«ì­ëå c1 ¨
c2 ¨ ¤«ï ¢á¥å ¤®áâ â®ç­® ¡®«ìè¨å n.
— á⮠ᨬ¯â®â¨ç¥áª¨¥ ®¡®§­ 祭¨ï 㯮âॡ«ïîâáï ­¥ ¢¯®«­¥
ä®à¬ «ì­®, å®âï ¨å ¯®¤à §ã¬¥¢ ¥¬ë© á¬ëá« ®¡ëç­® ïᥭ ¨§ ª®­â¥ªáâ .  ¯à¨¬¥à, ¬ë ¬®¦¥¬ ­ ¯¨á âì ¢ëà ¦¥­¨¥
n
X
i=1
O(i)
¨¬¥ï ¢ ¢¨¤ã á㬬ã h(1) + h(2) + : : : + h(n), £¤¥ h(i) | ­¥ª®â®à ï
äã­ªæ¨ï, ¤«ï ª®â®à®© h(i) = O(i). ‹¥£ª® ¢¨¤¥âì, çâ® á ¬ íâ á㬬 ª ª äã­ªæ¨ï ®â n ¥áâì O(n2).
’¨¯¨ç­ë© ¯à¨¬¥à ¨á¯®«ì§®¢ ­¨ï ᨬ¯â®â¨ç¥áª¨å ®¡®§­ 祭¨© | 楯®çª à ¢¥­á⢠­ ¯®¤®¡¨¥ 2n2+3n+1 = 2n2+(n) = (n2).
‚â®à®¥ ¨§ íâ¨å à ¢¥­á⢠(2n2 +(n) = (n2)) ¯®­¨¬ ¥âáï ¯à¨ í⮬
â ª: ª ª®¢ ¡ë ­¨ ¡ë« äã­ªæ¨ï h(n) = (n) ¢ «¥¢®© ç áâ¨, á㬬 2n2 + h(n) ¥áâì (n2 ).
€á¨¬¯â®â¨ç¥áª¨¥ ®¡®§­ 祭¨ï
29
o- ¨ !-®¡®§­ 祭¨ï
‡ ¯¨áì f (n) = O(g(n)) ®§­ ç ¥â, çâ® á à®á⮬ n ®â­®è¥­¨¥
f (n)=g (n) ®áâ ñâáï ®£à ­¨ç¥­­ë¬. …᫨ ª ⮬㠦¥
lim f (n) = 0;
(2.1)
n!1 g (n)
â® ¬ë ¯¨è¥¬ f (n) = o(g(n)) (ç¨â ¥âáï "íä ®â í­ ¥áâì ® ¬ «®¥ ®â
¦¥ ®â í­"). ”®à¬ «ì­® £®¢®àï, f (n) = o(g(n)), ¥á«¨ ¤«ï ¢á类£®
¯®«®¦¨â¥«ì­®£® " > 0 ­ ©¤ñâáï â ª®¥ n0, çâ® 0 6 f (n) 6 "g(n) ¯à¨
¢á¥å n > n0. (’¥¬ á ¬ë¬ § ¯¨áì f (n) = o(g(n)) ¯à¥¤¯®« £ ¥â, çâ®
f (n) ¨ g(n) ­¥®âà¨æ ⥫ì­ë ¤«ï ¤®áâ â®ç­® ¡®«ìè¨å n.)
à¨¬¥à: 2n = o(n2), ­® 2n2 =
6 o(n2).
€­ «®£¨ç­ë¬ ®¡à §®¬ ¢¢®¤¨âáï !-®¡®§­ 祭¨¥: £®¢®àïâ, çâ® f (n)
¥áâì !(g(n)) ("íä ®â í­ ¥áâì ®¬¥£ ¬ « ï ®â ¦¥ ®â í­"), ¥á«¨ ¤«ï
«î¡®£® ¯®«®¦¨â¥«ì­®£® c áãé¥áâ¢ã¥â â ª®¥ n0, çâ® 0 6 cg(n) 6
f (n) ¯à¨ ¢á¥å n > n0. „à㣨¬¨ á«®¢ ¬¨, f (n) = ! (g (n)) ®§­ ç ¥â,
çâ® g(n) = o(f (n)).
à¨¬¥à: n2=2 = !(n), ­® n2=2 =
6 !(n2).
‘à ¢­¥­¨¥ ä㭪権
‚¢¥¤ñ­­ë¥ ­ ¬¨ ®¯à¥¤¥«¥­¨ï ®¡« ¤ îâ ­¥ª®â®à묨 ᢮©á⢠¬¨
âà ­§¨â¨¢­®áâ¨, à¥ä«¥ªá¨¢­®á⨠¨ ᨬ¬¥âà¨ç­®áâ¨:
’à ­§¨â¨¢­®áâì:
f (n) = (g (n)) ¨ g (n) = (h(n)) ¢«¥çñâ f (n) = (h(n)),
f (n) = O(g(n)) ¨ g(n) = O(h(n)) ¢«¥çñâ f (n) = O(h(n)),
f (n) = (g (n)) ¨ g (n) = (h(n)) ¢«¥çñâ f (n) = (h(n)),
f (n) = o(g (n)) ¨ g (n) = o(h(n)) ¢«¥çñâ f (n) = o(h(n)),
f (n) = !(g(n)) ¨ g(n) = ! (h(n)) ¢«¥çñâ f (n) = !(h(n)).
¥ä«¥ªá¨¢­®áâì:
f (n) = (f (n)), f (n) = O(f (n)), f (n) = (f (n)).
‘¨¬¬¥âà¨ç­®áâì:
f (n) = (g (n)) ¥á«¨ ¨ ⮫쪮 ¥á«¨ g (n) = (f (n)).
Ž¡à 饭¨¥:
f (n) = O(g(n)) ¥á«¨ ¨ ⮫쪮 ¥á«¨ g (n) = (f (n)),
f (n) = o(g (n)) ¥á«¨ ¨ ⮫쪮 ¥á«¨ g(n) = !(f (n)).
Œ®¦­® ¯à®¢¥á⨠⠪ãî ¯ à ««¥«ì: ®â­®è¥­¨ï ¬¥¦¤ã äã­ªæ¨ï¬¨
f ¨ g ¯®¤®¡­ë ®â­®è¥­¨ï¬ ¬¥¦¤ã ç¨á« ¬¨ a ¨ b:
f (n) = O(g (n))
f (n) = (g (n))
f (n) = (g(n))
f (n) = o(g (n))
f (n) = !(g (n))
a6b
a>b
a=b
a<b
a>b
30
ƒ« ¢ 2 ‘ª®à®áâì à®áâ ä㭪権
 à ««¥«ì íâ , ¢¯à®ç¥¬, ¢¥áì¬ ãá«®¢­ : ᢮©á⢠ç¨á«®¢ëå ­¥à ¢¥­á⢠­¥ ¯¥à¥­®áïâáï ­ ä㭪樨.  ¯à¨¬¥à, ¤«ï «î¡ëå ¤¢ãå
ç¨á¥« a ¨ b ¢á¥£¤ ¨«¨ a 6 b, ¨«¨ a > b, ®¤­ ª® ­¥«ì§ï ã⢥ত âì, çâ® ¤«ï «î¡ëå ¤¢ãå (¯®«®¦¨â¥«ì­ëå) ä㭪権 f (n) ¨ g(n)
¨«¨ f (n) = O(g(n)), ¨«¨ f (n) = (g(n)). ‚ á ¬®¬ ¤¥«¥, ¬®¦­® ¯à®¢¥à¨âì, çâ® ­¨ ®¤­® ¨§ íâ¨å ¤¢ãå ᮮ⭮襭¨© ­¥ ¢ë¯®«­¥­® ¤«ï
f (n) = n ¨ g(n) = n1+sin n (¯®ª § ⥫ì á⥯¥­¨ ¢ ¢ëà ¦¥­¨¨ ¤«ï
g(n) ¬¥­ï¥âáï ¢ ¨­â¥à¢ «¥ ®â 0 ¤® 2). ‡ ¬¥â¨¬ ¥éñ, çâ® ¤«ï ç¨á¥« a 6 b ¢«¥çñâ a < b ¨«¨ a = b, ¢ â® ¢à¥¬ï ª ª ¤«ï ä㭪権
f (n) = O(g(n)) ­¥ ¢«¥çñâ f (n) = o(g (n)) ¨«¨ f (n) = (g (n)).
“¯à ¦­¥­¨ï
ãáâì f (n) ¨ g(n) ­¥®âà¨æ ⥫ì­ë ¤«ï ¤®áâ â®ç­® ¡®«ìè¨å
n. ®ª ¦¨â¥, çâ® max(f (n); g (n)) = (f (n) + g (n)).
2.1-2 ®ª ¦¨â¥, çâ®
(n + a)b = (nb )
(2.2)
¤«ï «î¡®£® ¢¥é¥á⢥­­®£® a ¨ ¤«ï «î¡®£® b > 0.
2.1-3 ®ç¥¬ã ã⢥ত¥­¨¥ "¢à¥¬ï à ¡®âë «£®à¨â¬ A ­¥
¬¥­ìè¥ O(n2)" ­¥ ¨¬¥¥â á¬ëá« ?
2.1-4 Œ®¦­® «¨ ã⢥ত âì, çâ® 2n+1 = O(2n)? —â® 22n = O(2n )?
2.1-5 „®ª ¦¨â¥ ⥮६ã 2.1.
2.1-6 à¨¢¥¤¨â¥ ¯à¨¬¥à ä㭪権 f (n) ¨ g (n), ¤«ï ª®â®àëå f (n) =
O(g (n)), ­® f (n) =
6 o(g(n)) ¨ f (n) =6 (g(n)).
2.1-7 ®ª ¦¨â¥, ç⮠᢮©á⢠f (n) = o(g (n)) ¨ f (n) = ! (g (n)) ­¥
¬®£ãâ ¡ëâì ¢ë¯®«­¥­ë ®¤­®¢à¥¬¥­­®.
2.1-8 €á¨¬¯â®â¨ç¥áª¨¥ ®¡®§­ 祭¨ï ¬®£ãâ ¡ëâì ¢¢¥¤¥­ë ¨ ¤«ï
ä㭪権, § ¢¨áïé¨å ®â ­¥áª®«ìª¨å ¯ à ¬¥â஢. ƒ®¢®àïâ, çâ®
f (m; n) = O(g (m; n)), ¥á«¨ ­ ©¤ãâáï n0 , m0 ¨ ¯®«®¦¨â¥«ì­®¥ c, ¤«ï
ª®â®àëå 0 6 f (m; n) 6 cg(m; n) ¤«ï ¢á¥å n > n0 ¨ m > m0. „ ©â¥
­ «®£¨ç­ë¥ ®¯à¥¤¥«¥­¨ï ¤«ï (g(m; n)) ¨ (g(m; n)).
2.1-1
2.2 ‘â ­¤ àâ­ë¥ ä㭪樨 ¨ ®¡®§­ 祭¨ï
Œ®­®â®­­®áâì
ƒ®¢®àïâ, çâ® äã­ªæ¨ï f (n) ¬®­®â®­­® ¢®§à áâ ¥â (is monotonically
increasing), ¥á«¨ f (m) 6 f (n) ¯à¨ m 6 n. ƒ®¢®àïâ, çâ® äã­ªæ¨ï f (n)
‘â ­¤ àâ­ë¥ ä㭪樨 ¨ ®¡®§­ 祭¨ï
31
¬®­®â®­­® ã¡ë¢ ¥â (is monotonically decreasing), ¥á«¨ f (m) > f (n)
¯à¨ m 6 n. ƒ®¢®àïâ, çâ® äã­ªæ¨ï f (n) áâண® ¢®§à áâ ¥â (is strictly
increasing), ¥á«¨ f (m) < f (n) ¯à¨ m < n. ƒ®¢®àïâ, çâ® äã­ªæ¨ï
f (n) áâண® ã¡ë¢ ¥â (is strictly decreasing), ¥á«¨ f (m) > f (n) ¯à¨
m < n.
–¥«ë¥ ¯à¨¡«¨¦¥­¨ï á­¨§ã ¨ ᢥàåã
„«ï «î¡®£® ¢¥é¥á⢥­­®£® ç¨á« x ç¥à¥§ bxc (the oor of x) ¬ë
®¡®§­ ç ¥¬ ¥£® 楫ãî ç áâì, â. ¥. ­ ¨¡®«ì襥 楫®¥ ç¨á«®, ­¥ ¯à¥¢®á室ï饥 x. ‘¨¬¬¥âà¨ç­ë¬ ®¡à §®¬ dxe (the ceiling of x) ®¡®§­ ç ¥â ­ ¨¬¥­ì襥 楫®¥ ç¨á«®, ­¥ ¬¥­ì襥 x. Žç¥¢¨¤­®,
x ; 1 < bxc 6 x 6 dxe < x + 1
¤«ï «î¡®£® x. Šà®¬¥ ⮣®,
dn=2e + bn=2c = n
¤«ï «î¡®£® 楫®£® n.  ª®­¥æ, ¤«ï «î¡®£® x ¨ ¤«ï «î¡ëå 楫ëå
¯®«®¦¨â¥«ì­ëå a ¨ b ¨¬¥¥¬
ddx=ae=be = dx=abe
(2.3)
¨
bbx=ac=bc = bx=abc
(2.4)
(ç⮡ë ã¡¥¤¨âìáï ¢ í⮬, ¯®«¥§­® § ¬¥â¨âì, çâ® ¤«ï «î¡®£® z ¨ ¤«ï
楫®£® n ᢮©á⢠n 6 z ¨ n 6 bzc à ¢­®á¨«ì­ë).
”㭪樨 x 7! bxc ¨ x 7! dxe ¬®­®â®­­® ¢®§à áâ îâ.
Œ­®£®ç«¥­ë
Œ­®£®ç«¥­®¬ (¯®«¨­®¬®¬) á⥯¥­¨ d ®â ¯¥à¥¬¥­­®© n (polynomial
in n of degree d) ­ §ë¢ îâ äã­ªæ¨î
p(n) =
d
X
i=0
ai ni
(d | ­¥®âà¨æ ⥫쭮¥ 楫®¥ ç¨á«®). —¨á« a0 ; a1; : : :; ad ­ §ë¢ îâ
ª®íää¨æ¨¥­â ¬¨ (coecients) ¬­®£®ç«¥­ . Œë áç¨â ¥¬, çâ® áâ à訩
ª®íää¨æ¨¥­â ad ­¥ à ¢¥­ ­ã«î (¥á«¨ íâ® ­¥ â ª, 㬥­ì訬 d |
íâ® ¬®¦­® ᤥ« âì, ¥á«¨ ⮫쪮 ¬­®£®ç«¥­ ­¥ à ¢¥­ ­ã«î ⮦¤¥á⢥­­®).
„«ï ¡®«ìè¨å §­ 祭¨© n §­ ª ¬­®£®ç«¥­ p(n) ®¯à¥¤¥«ï¥âáï áâ à訬 ª®íää¨æ¨¥­â®¬ (®áâ «ì­ë¥ ç«¥­ë ¬ «ë ¯® áà ¢­¥­¨î á ­¨¬),
32
ƒ« ¢ 2 ‘ª®à®áâì à®áâ ä㭪権
â ª çâ® ¯à¨ ad > 0 ¬­®£®ç«¥­ p(n) ᨬ¯â®â¨ç¥áª¨ ¯®«®¦¨â¥«¥­
(¯®«®¦¨â¥«¥­ ¯à¨ ¡®«ìè¨å n) ¨ ¬®¦­® ­ ¯¨á âì p(n) = (nd ).
à¨ a > 0 äã­ªæ¨ï n 7! na ¬®­®â®­­® ¢®§à áâ ¥â, ¯à¨ a 6 0 |
¬®­®â®­­® ã¡ë¢ ¥â. ƒ®¢®àïâ, çâ® äã­ªæ¨ï f (n) ¯®«¨­®¬¨ «ì­® ®£à ­¨ç¥­ , ¥á«¨ f (n) = nO(1), ¨«¨, ¤à㣨¬¨ á«®¢ ¬¨, ¥á«¨ f (n) = O(nk )
¤«ï ­¥ª®â®à®© ª®­áâ ­âë k (á¬. ã¯à. 2.2-2).
ªá¯®­¥­âë
„«ï «î¡ëå ¢¥é¥á⢥­­ëå m, n ¨ a 6= 0 ¨¬¥¥¬
a0 = 1;
(am )n = amn ;
a1 = a;
(am )n = (an )m ;
a;1 = 1=a;
am an = am+n :
à¨ a > 1 äã­ªæ¨ï n 7! an ¬®­®â®­­® ¢®§à áâ ¥â.
Œë ¡ã¤¥¬ ¨­®£¤ ãá«®¢­® ¯®« £ âì 00 = 1.
”ã­ªæ¨ï n 7! an ­ §ë¢ ¥âáï ¯®ª § ⥫쭮© ä㭪樥©, ¨«¨ íªá¯®­¥­â®© (exponential). à¨ a > 1 ¯®ª § â¥«ì­ ï äã­ªæ¨ï à áâñâ
¡ëáâ॥ «î¡®£® ¯®«¨­®¬ : ª ª®¢® ¡ë ­¨ ¡ë«® b,
nb = 0
lim
(2.5)
n!1 an
¨«¨, ¤à㣨¬¨ á«®¢ ¬¨, nb = o(an ). …᫨ ¢ ª ç¥á⢥ ®á­®¢ ­¨ï á⥯¥­¨ ¢§ïâì ç¨á«® e = 2;71828 : : : , â® íªá¯®­¥­âã ¬®¦­® § ¯¨á âì ¢
¢¨¤¥ àï¤ 1 k
3
2
X
ex = 1 + x + x2! + x3! + : : : = xk!
k=0
(2.6)
£¤¥ k! = 1 2 3 : : : k (á¬. ­¨¦¥ ® ä ªâ®à¨ « å).
„«ï ¢á¥å ¢¥é¥á⢥­­ëå x ¢ë¯®«­¥­® ­¥à ¢¥­á⢮
ex > 1 + x
(2.7)
ª®â®à®¥ ®¡à é ¥âáï ¢ à ¢¥­á⢮ «¨èì ¯à¨ x = 0. à¨ jxj 6 1 ¬®¦­®
®æ¥­¨âì ex ᢥàåã ¨ á­¨§ã â ª:
1 + x 6 ex 6 1 + x + x2
(2.8)
Œ®¦­® ᪠§ âì, çâ® ex = 1 + x + (x2) ¯à¨ x ! 0, ¨¬¥ï ¢ ¢¨¤ã
ᮮ⢥âáâ¢ãî饥 ¨á⮫ª®¢ ­¨¥ ®¡®§­ 祭¨ï (¢ ª®â®à®¬ n ! 1
§ ¬¥­¥­® ­ x ! 0).
;
à¨ ¢á¥å x ¢ë¯®«­¥­® à ¢¥­á⢮ limn!1 1 + nx n = ex.
‘â ­¤ àâ­ë¥ ä㭪樨 ¨ ®¡®§­ 祭¨ï
33
‹®£ à¨ä¬ë
Œë ¡ã¤¥¬ ¨á¯®«ì§®¢ âì â ª¨¥ ®¡®§­ 祭¨ï:
lg n = log2 n (¤¢®¨ç­ë© «®£ à¨ä¬),
ln n = loge n (­ âãà «ì­ë© «®£ à¨ä¬),
lgk n = (lg n)k ;
lg lg n = lg(lg n) (¯®¢â®à­ë© «®£ à¨ä¬).
Œë ¡ã¤¥¬ áç¨â âì, çâ® ¢ ä®à¬ã« å §­ ª «®£ à¨ä¬ ®â­®á¨âáï
«¨èì ª ­¥¯®á।á⢥­­® á«¥¤ãî饬㠧 ­¨¬ ¢ëà ¦¥­¨î, â ª çâ®
lg n + k ¥áâì lg(n) + k ( ­¥ lg(n + k)). à¨ b > 1 äã­ªæ¨ï n 7! logb n
(®¯à¥¤¥«ñ­­ ï ¯à¨ ¯®«®¦¨â¥«ì­ëå n) áâண® ¢®§à áâ ¥â.
‘«¥¤ãî騥 ⮦¤¥á⢠¢¥à­ë ¯à¨ ¢á¥å a > 0, b > 0, c > 0 ¨ ¯à¨
¢á¥å n (¥á«¨ ⮫쪮 ®á­®¢ ­¨ï «®£ à¨ä¬®¢ ­¥ à ¢­ë 1):
a = blogb a ;
logb (1=a) = ; logb a
logc (ab) = logc a + logc b;
logb a = log1 b
(2.9)
logb an = n logb a;
a
ca
alogb c = clogb a
logb a = log
logc b
ˆ§¬¥­¥­¨¥ ®á­®¢ ­¨ï ã «®£ à¨ä¬ 㬭®¦ ¥â ¥£® ­ ª®­áâ ­âã,
¯®í⮬㠢 § ¯¨á¨ ⨯ O(log n) ¬®¦­® ­¥ ãâ®ç­ïâì, ª ª®¢® ®á­®¢ ­¨¥ «®£ à¨ä¬ . Œë ¡ã¤¥¬ ç é¥ ¢á¥£® ¨¬¥âì ¤¥«® á ¤¢®¨ç­ë¬¨
«®£ à¨ä¬ ¬¨ (®­¨ ¯®ï¢«ïîâáï, ª®£¤ § ¤ ç ¤¥«¨âáï ­ ¤¢¥ ç áâ¨)
¨ ¯®â®¬ã ®áâ ¢«ï¥¬ § ­¨¬¨ ®¡®§­ 祭¨¥ lg.
„«ï ­ âãà «ì­®£® «®£ à¨ä¬ ¥áâì àï¤ (ª®â®àë© á室¨âáï ¯à¨
jxj < 1):
2
3
4
5
ln(1 + x) = x ; x2 + x3 ; x4 + x5 ; : : :
à¨ x > ;1 á¯à ¢¥¤«¨¢ë ­¥à ¢¥­á⢠x 6 ln(1 + x) 6 x
(2.10)
1+x
ª®â®àë¥ ®¡à é îâáï ¢ à ¢¥­á⢠«¨èì ¯à¨ x = 0.
ƒ®¢®àïâ, çâ® äã­ªæ¨ï f (n) ®£à ­¨ç¥­ ¯®«¨«®£ à¨ä¬®¬ (is
polylogaritmically bounded), ¥á«¨ f (n) = lgO(1) n. à¥¤¥« (2:5)
¯®á«¥ ¯®¤áâ ­®¢®ª n = lg m ¨ a = 2c ¤ ñâ
lgb m = lim lgb m = 0
lim
m!1 (2c )lg m m!1 mc
¨, â ª¨¬ ®¡à §®¬, lgb n = o(nc ) ¤«ï «î¡®© ª®­áâ ­âë c > 0. „à㣨¬¨ á«®¢ ¬¨, «î¡®© ¯®«¨­®¬ à áâñâ ¡ëáâ॥ «î¡®£® ¯®«¨«®£ à¨ä¬ .
34
ƒ« ¢ 2 ‘ª®à®áâì à®áâ ä㭪権
” ªâ®à¨ «ë
‡ ¯¨áì n! (ç¨â ¥âáï "í­ ä ªâ®à¨ «", \n factorial") ®¡®§­ ç ¥â
¯à®¨§¢¥¤¥­¨¥ ¢á¥å ç¨á¥« ®â 1 ¤® n. ®« £ îâ 0! = 1, â ª çâ® n! =
n (n ; 1)! ¯à¨ ¢á¥å n = 1; 2; 3; : : : .
‘à §ã ¦¥ ¢¨¤­®, çâ® n! 6 nn (ª ¦¤ë© ¨§ ᮬ­®¦¨â¥«¥© ­¥
¡®«ìè¥ n). ®«¥¥ â®ç­ ï ®æ¥­ª ¤ ñâáï ä®à¬ã«®© ‘â¨à«¨­£ (Stirling's approximation), ª®â®à ï £« á¨â, çâ®
p n
n! = 2n ne (1 + (1=n))
(2.11)
ˆ§ ä®à¬ã«ë ‘â¨à«¨­£ á«¥¤ã¥â, çâ®
n! = o(nn);
n! = !(2n );
lg(n!) = (n lg n):
‘¯à ¢¥¤«¨¢ â ª¦¥ á«¥¤ãîé ï ®æ¥­ª :
p n n
p n
2n e 6 n! 6 2n ne e1=12n:
(2.12)
ˆâ¥à 樨 «®£ à¨ä¬ Œë ¨á¯®«ì§ã¥¬ ®¡®§­ 祭¨¥ log n ("«®£ à¨ä¬ á® §¢ñ§¤®çª®© ®â
í­") ¤«ï ä㭪樨: ­ §ë¢ ¥¬®© ¨â¥à¨à®¢ ­­ë¬ «®£ à¨ä¬®¬ (iterated
logarithm). â äã­ªæ¨ï ®¯à¥¤¥«ï¥âáï â ª. ‚­ ç «¥ à áᬮâਬ iãî ¨â¥à æ¨î «®£ à¨ä¬ , äã­ªæ¨î lg(i), ®¯à¥¤¥«ñ­­ãî â ª: lg(0) n =
n ¨ lg(i)(n) = lg(lg(i;1) n) ¯à¨ i > 0. (®á«¥¤­¥¥ ¢ëà ¦¥­¨¥ ®¯à¥¤¥«¥­®, ¥á«¨ lg(i;1) n ®¯à¥¤¥«¥­® ¨ ¯®«®¦¨â¥«ì­®.) ã¤ì⥠¢­¨¬ ⥫ì­ë: ®¡®§­ 祭¨ï lgi n ¨ lg(i) n ¢­¥è­¥ ¯®å®¦¨, ­® ®§­ ç îâ ᮢ¥à襭­® à §­ë¥ ä㭪樨.
’¥¯¥àì lg n ®¯à¥¤¥«ï¥âáï ª ª ¬¨­¨¬ «ì­®¥ ç¨á«® i > 0, ¯à¨ ª®â®à®¬ lg(i) n 6 1. „à㣨¬¨ á«®¢ ¬¨, lg n | íâ® ç¨á«® à §, ª®â®à®¥
­ã¦­® ¯à¨¬¥­¨âì äã­ªæ¨î lg, çâ®¡ë ¨§ n ¯®«ãç¨âì ç¨á«®, ­¥ ¯à¥¢®á室ï饥 1.
”ã­ªæ¨ï lg n à áâñ⠨᪫îç¨â¥«ì­® ¬¥¤«¥­­®:
lg 2 = 1;
lg 4 = 2;
lg 16 = 3;
lg 65536 = 4;
lg 265536 = 5:
®áª®«ìªã ç¨á«® ⮬®¢ ¢ ­ ¡«î¤ ¥¬®© ç á⨠‚ᥫ¥­­®© ®æ¥­¨¢ ¥âáï ª ª 1080, çâ® ¬­®£® ¬¥­ìè¥ 265536, â® §­ 祭¨ï n, ¤«ï ª®â®àëå
lg n > 5, ¢àï¤ «¨ ¬®£ãâ ¢áâà¥â¨âìáï.
‘â ­¤ àâ­ë¥ ä㭪樨 ¨ ®¡®§­ 祭¨ï
35
—¨á« ”¨¡®­ çç¨
®á«¥¤®¢ ⥫쭮áâì ç¨á¥« ”¨¡®­ çç¨ (Fibonacci numbers) ®¯à¥¤¥«ï¥âáï ४ãà७â­ë¬ ᮮ⭮襭¨¥¬:
F0 = 0; F1 = 1; Fi = Fi;1 + Fi;2 ¯à¨ i > 2
(2.13)
„à㣨¬¨ á«®¢ ¬¨, ¢ ¯®á«¥¤®¢ ⥫쭮á⨠”¨¡®­ çç¨
0; 1; 1; 2; 3; 5; 8; 13; 21; 34; 55 : : :
ª ¦¤®¥ ç¨á«® à ¢­® á㬬¥ ¤¢ãå ¯à¥¤ë¤ãé¨å. —¨á« ”¨¡®­ çç¨
á¢ï§ ­ë á â ª ­ §ë¢ ¥¬ë¬ ®â­®è¥­¨¥¬ §®«®â®£® á¥ç¥­¨ï (golden
ratio) ' ¨ á ᮯàï¦ñ­­ë¬ á ­¨¬ ç¨á«®¬ '^:
p
1
+
' = 2 5 = 1;61803 : : : ;
(2.14)
p
5
1
;
= ;0;61803 : : :
'^ =
2
ˆ¬¥­­®, ¨¬¥¥â ¬¥áâ® ä®à¬ã« i
i
Fi = ' p; '^
5
(2.15)
ª®â®àãî ¬®¦­® ¤®ª § âì
¯® ¨­¤ãªæ¨¨ (ã¯à. 2.2-7). ®áª®«ìªã j'^j <
i=p5j ¬¥­ìè¥ 1=p5 < 1=2, â ª çâ® Fi à ¢­® ç¨á«ã
1, á« £ ¥¬®¥
j
'
^
p
'i = 5, ®ªà㣫ñ­­®¬ã ¤® ¡«¨¦ ©è¥£® 楫®£®.
—¨á«® Fi ¡ëáâà® (íªá¯®­¥­æ¨ «ì­®) à áâñâ á à®á⮬ i.
“¯à ¦­¥­¨ï
®ª ¦¨â¥, çâ® ¤«ï ¬®­®â®­­® ¢®§à áâ îé¨å ä㭪権 f (n)
¨ g(n) ä㭪樨 f (n) + g(n) ¨ f (g(n)) ¡ã¤ãâ â ª¦¥ ¬®­®â®­­® ¢®§à áâ âì. …᫨ ª ⮬㠦¥ f (n) ¨ g(n) ­¥®âà¨æ ⥫ì­ë ¯à¨ ¢á¥å n,
â® ¨ äã­ªæ¨ï f (n)g(n) ¡ã¤¥â ¬®­®â®­­® ¢®§à áâ âì.
2.2-2 ®ª ¦¨â¥, çâ® T (n) = nO(1) ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ áãé¥áâ¢ã¥â ¯®«®¦¨â¥«ì­®¥ k, ¯à¨ ª®â®à®¬ T (n) = O(nk ) (áç¨â ¥¬,
çâ® T (n) > 1).
2.2-3 „®ª ¦¨â¥ à ¢¥­á⢠(2.9).
2.2-4 „®ª ¦¨â¥, çâ® lg(n!) = (n lg n) ¨ çâ® n! = o(nn ).
2.2-5? ã¤¥â «¨ äã­ªæ¨ï dlg ne! ¯®«¨­®¬¨ «ì­® ®£à ­¨ç¥­­®©? ã¤¥â «¨ äã­ªæ¨ï dlg lg ne! ¯®«¨­®¬¨ «ì­® ®£à ­¨ç¥­­®©?
2.2-6? —â® ¡®«ìè¥ (¯à¨ ¡®«ìè¨å n): lg(lg n) ¨«¨ lg (lg n)?
2.2-1
36
ƒ« ¢ 2 ‘ª®à®áâì à®áâ ä㭪権
„®ª ¦¨â¥ ¯® ¨­¤ãªæ¨¨ ä®à¬ã«ã (2.15).
2.2-8 „®ª ¦¨â¥ â ªãî ®æ¥­ªã ¤«ï ç¨á¥« ”¨¡®­ çç¨: Fi+2 > 'i
¯à¨ i > 0 (§¤¥áì ' | ®â­®è¥­¨¥ §®«®â®£® á¥ç¥­¨ï).
2.2-7
‡ ¤ ç¨
2-1 €á¨¬¯â®â¨ª ¬­®£®ç«¥­®¢
ãáâì p(n) = a0 + a1n + : : : + adnd | ¬­®£®ç«¥­ á⥯¥­¨ d, ¯à¨çñ¬
ad > 0. „®ª ¦¨â¥, çâ®
. p(n) = O(nk ) ¯à¨ k > d.
¡. p(n) = (nk ) ¯à¨ k 6 d.
¢. p(n) = (nk ) ¯à¨ k = d.
£. p(n) = o(nk ) ¯à¨ k > d.
¤. p(n) = !(nk ) ¯à¨ k < d.
2-2 ‘à ¢­¥­¨¥ ᨬ¯â®â¨ª
„«ï ¢á¥å ª«¥â®ª á«¥¤ãî饩 â ¡«¨æë ®â¢¥âì⥠"¤ " ¨«¨ "­¥â"
­ ¢®¯à®á ® ⮬, ¬®¦­® «¨ § ¯¨á âì A ª ª O, o, , ! ¨«¨ ®â B
(k > 1, " > 0, c > 1 | ­¥ª®â®àë¥ ª®­áâ ­âë).
A
B O o ! . lgk n n"
¡. pnk
cn
¢.
n nsin n
n
£. 2
2n=2
¤. nlg m mlg n
¥. lg(n!) lg(nn)
2-3 ‘à ¢­¥­¨¥ ᪮à®á⨠à®áâ .  ᯮ«®¦¨â¥ á«¥¤ãî騥 30 ä㭪権 ¢ ¯®à浪¥ 㢥«¨ç¥­¨ï ᪮à®á⨠à®áâ (ª ¦¤ ï äã­ªæ¨ï ¥áâì O(á«¥¤ãîé ï)) ¨ ®â¬¥âìâ¥, ª ª¨¥ ¨§ íâ¨å ä㭪権 ­ á ¬®¬ ¤¥«¥ ¨¬¥îâ ®¤¨­ ª®¢ãî ᪮à®áâì
à®áâ (®¤­ ¥áâì ®â ¤à㣮©):
p
lg(lg n) 2lg n ( 2)lg n n2
n!n (lg n)!
2
n
3
(3=2)
n
lg n lg(n!) 22
n1= lg n
n
lg
lg
n
ln ln n
lg n
n2 n
ln n p 1
lg
n
lg
n
n
lg
n
2
(lgpn)
e
4
(n + 1)! lg n
lg lg n 2 2 lg n
n
2n
n lg n 22n
¡. “ª ¦¨â¥ ­¥®âà¨æ ⥫ì­ãî äã­ªæ¨î f (n), ª®â®à ï ­¥ áà ¢­¨¬ ­¨ á ®¤­®© ¨§ ä㭪権 gi í⮩ â ¡«¨æë (f (n) ­¥ ¥áâì O(gi(n))
¨ gi(n) ­¥ ¥áâì O(f (n))).
+1
‡ ¤ ç¨ ª £« ¢¥ 2
37
2-4 ‘¢®©á⢠ᨬ¯â®â¨ç¥áª¨å ®¡®§­ 祭¨©
ãáâì ä㭪樨 f (n) ¨ g(n) ¯®«®¦¨â¥«ì­ë ¯à¨ ¤®áâ â®ç­® ¡®«ìè¨å n. Œ®¦­® «¨ ã⢥ত âì, çâ®
. ¥á«¨ f (n) = O(g(n)), â® g(n) = O(f (n))?
¡. f (n) + g(n) = (min(f (n); g(n)))?
¢. f (n) = O(g(n)) ¢«¥çñâ lg(f (n)) = O(lg(g(n))), ¥á«¨ lg(g(n)) > 0
¨ f (n) > 1 ¤«ï ¤®áâ â®ç­® ¡®«ìè¨å n?
£. f (n) = O(g(n)) ¢«¥çñâ 2f (n) = O(2g(n))?
¤. f (n) = O((f (n))2)?
¥. f (n) = O(g(n)) ¢«¥çñâ g(n) = (f (n))?
¦. f (n) = (f (n=2))?
§. f (n) + o(f (n)) = (f (n))?
2-5 ‚ ਠ­âë ᨬ¯â®â¨ç¥áª¨å ®¡®§­ 祭¨©
‚ ­¥ª®â®àëå ª­¨£ å -®¡®§­ 祭¨¥ ¨á¯®«ì§ã¥âáï ¢ ¨­®¬ á¬ëá«¥.
Œë ¡ã¤¥¬ ¨á¯®«ì§®¢ âì ®¡®§­ 祭¨¥ 1 ¤«ï í⮣® ¢ ਠ­â , ç⮡ë
¨§¡¥¦ âì ¯ãâ ­¨æë. ãáâì f (n) ¨ g(n) | ä㭪樨 ­ âãà «ì­®£®
à£ã¬¥­â . ƒ®¢®àïâ, çâ® f (n) = 1(g(n)), ¥á«¨ ­ ©¤ñâáï ¯®«®¦¨â¥«ì­®¥ ç¨á«® c, ¯à¨ ª®â®à®¬ f (n) > cg(n) > 0 ¤«ï ¡¥áª®­¥ç­®
¬­®£¨å ­ âãà «ì­ëå n.
. ®ª ¦¨â¥, çâ® ¤«ï «î¡ëå ¤¢ãå ä㭪権 f (n) ¨ g(n), ¯®«®¦¨â¥«ì­ëå ¯à¨ ¡®«ìè¨å §­ 祭¨ïå n, ¢ë¯®«­¥­® «¨¡® f (n) = O(g(n)),
«¨¡® f (n) = 1(g(n)), ¨ çâ® ¤«ï ­ 襣® ¯à¥¦­¥£® ®¯à¥¤¥«¥­¨ï
(g (n)) í⮣® ã⢥ত âì ­¥«ì§ï.
¡. Š ª®¢ë ¢®§¬®¦­ë¥ ¤®á⮨­á⢠¨ ­¥¤®áâ ⪨ ¯à¨¬¥­¥­¨ï ®æ¥­®ª ¢¨¤ 1 ¯à¨ ¨áá«¥¤®¢ ­¨¨ ¢à¥¬¥­¨ à ¡®âë «£®à¨â¬®¢?
¥ª®â®àë¥ ¢â®àë ¢ § ¯¨á¨ f (n) = O(g(n)) ­¥ âॡãîâ, ç⮡ë
äã­ªæ¨ï f (n) ¡ë« ᨬ¯â®â¨ç¥áª¨ ¯®«®¦¨â¥«ì­®©. ã¤¥¬ ¨á¯®«ì§®¢ âì ®¡®§­ 祭¨¥ O0 ¨ ᪠¦¥¬, çâ® f (n) = O0(g(n)), ¥á«¨ jf (n)j =
O(g (n)).
¢. —â® ¯à®¨á室¨â ¯à¨ â ª®¬ ®¯à¥¤¥«¥­¨¨ á ã⢥ত¥­¨ï¬¨ ⥮६ë 2.1?
¥ª®â®àë¥ ¢â®àë ¨á¯®«ì§ãîâ ¥éñ ®¤¨­ ¢ ਠ­â ®¯à¥¤¥«¥­¨ï:
¡ã¤¥¬ £®¢®à¨âì, çâ® f (n) = O~ (g(n)), ¥á«¨ ­ ©¤ãâáï ¯®«®¦¨â¥«ì­ë¥
ç¨á« c ¨ k, ¤«ï ª®â®àëå 0 6 f (n) 6 cg(n) lgk n ¤«ï ¢á¥å ¤®áâ â®ç­®
¡®«ìè¨å n.
£. Ž¯à¥¤¥«¨â¥ ~ ¨ ~ ­ «®£¨ç­ë¬ ®¡à §®¬ ¨ ¤®ª ¦¨â¥ ­ «®£
⥮६ë 2.1.
2-6 ˆâ¥à 樨
Œë ¨â¥à¨à®¢ «¨ «®£ à¨ä¬¨ç¥áªãî äã­ªæ¨î, ­® ­ «®£¨ç­ ï
®¯¥à æ¨ï ¢®§¬®¦­ ¨ ¤«ï ¤à㣨å ä㭪権. ãáâì f (n) | ­¥ª®â®à ï
äã­ªæ¨ï, ¯à¨çñ¬ f (n) < n. Ž¯à¥¤¥«¨¬ f (i)(n), ¯®«®¦¨¢ f (0)(n) = n
¨ f (i)(n) = f (f (i;1)(n)) ¯à¨ i > 0.
„«ï 䨪á¨à®¢ ­­®£® ç¨á« c ®¯à¥¤¥«¨¬ äã­ªæ¨î fc(n) ª ª ¬¨-
38
ƒ« ¢ 2 ‘ª®à®áâì à®áâ ä㭪権
­¨¬ «ì­®¥ i > 0, ¤«ï ª®â®à®£® f (i)(n) 6 c. („à㣨¬¨ á«®¢ ¬¨, fc |
í⮠᪮«ìª® à § ­ã¦­® ¯à¨¬¥­ïâì äã­ªæ¨î f , çâ®¡ë ¨§ n ¯®«ãç¨âì
ç¨á«®, ­¥ ¯à¥¢®á室ï饥 c.) ‡ ¬¥â¨¬, çâ® fc(n) ®¯à¥¤¥«¥­® ¤ «¥ª®
­¥ ¢á¥£¤ .
„«ï ª ¦¤®© ¨§ á«¥¤ãîé¨å ä㭪権 f (n) ¨ §­ 祭¨© c ®æ¥­¨â¥ fc
¢®§¬®¦­® â®ç­¥¥:
f (n) c fc(n)
. lg n 1
¡. n ; 1 0
¢. n=2 1
£. n=
2 2
¤. p
n
2
p
¥.
n 1
¦. n1=3 2
§. n= lg n 2
‡ ¬¥ç ­¨ï
Š ª áç¨â ¥â Š­ãâ [121], ¨á¯®«ì§®¢ ­¨¥ O-®¡®§­ 祭¨© ¢®á室¨â ª
ã祡­¨ªã ¯® ⥮ਨ ç¨á¥« (P. Bachmann, 1892). Ž¡®§­ 祭¨¥ o(g(n))
¡ë«® ¨á¯®«ì§®¢ ­® ‹ ­¤ ã (E. Landau) ¢ 1909 £®¤ã ¯à¨ ®¡á㦤¥­¨¨
à á¯à¥¤¥«¥­¨ï ¯à®áâëå ç¨á¥«. ˆá¯®«ì§®¢ ­¨¥ - ¨ -®¡®§­ 祭¨©
४®¬¥­¤®¢ ­® Š­ã⮬ [124]: í⨠®¡®§­ 祭¨ï ¯®§¢®«ïîâ ¨§¡¥¦ âì
â¥å­¨ç¥áª¨ ­¥ª®à४⭮£® 㯮âॡ«¥­¨ï O-®¡®§­ 祭¨© ¤«ï ­¨¦­¨å ®æ¥­®ª (å®âï ¬­®£¨¥ «î¤¨ ¯à®¤®«¦ îâ â ª ¤¥« âì). ®¤à®¡­¥¥
®¡ ᨬ¯â®â¨ç¥áª¨å ®¡®§­ 祭¨ïå á¬. Š­ãâ [121, 124] ¨ à áá à ¨
à¥â«¨ [33].
Ž¤­¨ ¨ ⥠¦¥ ®¡®§­ 祭¨ï ¯®à®© ¨á¯®«ì§ãîâáï ¢ à §«¨ç­ëå á¬ëá« å, å®âï à §­¨æ , ª ª ¯à ¢¨«®, ®ª §ë¢ ¥âáï ­¥áãé¥á⢥­­®©. ‚
ç áâ­®áâ¨, ¨­®£¤ áà ¢­¨¢ ¥¬ë¥ ä㭪樨 ­¥ ¯à¥¤¯®« £ îâáï ­¥®âà¨æ ⥫ì­ë¬¨ ¯à¨ ¡®«ìè¨å n (¨ áà ¢­¨¢ îâáï ¬®¤ã«¨).
‘ãé¥áâ¢ã¥â ¬­®£® á¯à ¢®ç­¨ª®¢, ᮤ¥à¦ é¨å ᢥ¤¥­¨ï ®¡ í«¥¬¥­â à­ëå äã­ªæ¨ïå: €¡à ¬®¢¨ç ¨ ‘⥣㭠[1], ¥©¥à [27]. Œ®¦­®
â ª¦¥ ¢§ïâì «î¡®© ã祡­¨ª ¯® ­ «¨§ã (á¬., ­ ¯à¨¬¥à, €¯®á⮫ [12]
¨«¨ ’®¬ á ¨ ”¨­­¨ [192]). Š­¨£ Š­ãâ [121] ᮤ¥à¦¨â ¬­®£® ¯®«¥§­ëå ¬ ⥬ â¨ç¥áª¨å ᢥ¤¥­¨©, ¨á¯®«ì§ã¥¬ëå ¯à¨ ­ «¨§¥ «£®à¨â¬®¢.
3
‘㬬¨à®¢ ­¨¥
…᫨ «£®à¨â¬ ᮤ¥à¦¨â 横« (for, while), â® ¢à¥¬ï ¥£® à ¡®âë
ï¥âáï á㬬®© ¢à¥¬ñ­ ®â¤¥«ì­ëå è £®¢.  ¯à¨¬¥à, ª ª ¬ë §­ ¥¬
¨§ à §¤¥« 1.2, ¢ë¯®«­¥­¨¥ j -£® è £ «£®à¨â¬ á®àâ¨à®¢ª¨ ¢áâ ¢ª ¬¨ âॡã¥â ¢à¥¬¥­¨, ¯à®¯®à樮­ «ì­®£® j . ®í⮬㠮¡é¥¥ ¢à¥¬ï
¡ã¤¥â ®¯à¥¤¥«ïâìáï á㬬®©
n
X
j =1
j;
ª®â®à ï ¥áâì (n2). ®¤®¡­®£® த áã¬¬ë ­ ¬ ­¥ à § ¢áâà¥âïâáï
(¢ ç áâ­®áâ¨, ¢ £« ¢¥ 4 ¯à¨ ­ «¨§¥ ४ãà७â­ëå ᮮ⭮襭¨©).
‚ à §¤¥«¥ 3.1 ¯¥à¥ç¨á«¥­ë ®á­®¢­ë¥ ᢮©á⢠á㬬. ¥ª®â®àë¥ ¨§
íâ¨å ᢮©á⢠¤®ª §ë¢ îâáï ¢ à §¤¥«¥ 3.2; ¡®«ì設á⢮ ¯à®¯ã饭­ëå ¤®ª § ⥫ìá⢠¬®¦­® ­ ©â¨ ¢ ã祡­¨ª å ¯® ¬ ⥬ â¨ç¥áª®¬ã
­ «¨§ã.
3.1 ‘ã¬¬ë ¨ ¨å ᢮©á⢠„«ï á㬬ë a1 + a2 + : : : + an ¨á¯®«ì§ãîâ ®¡®§­ 祭¨¥
n
X
k=1
ak :
à¨ n = 0 §­ 祭¨¥ á㬬ë áç¨â ¥âáï à ¢­ë¬ 0.
Š ª ¯à ¢¨«®, ­¨¦­¨© ¨ ¢¥àå­¨© ¯à¥¤¥«ë á㬬¨à®¢ ­¨ï | 楫ë¥
ç¨á« . (…᫨ íâ® ­¥ â ª, ®¡ëç­® ¯®¤à §ã¬¥¢ îâáï æ¥«ë¥ ç áâ¨.)
‚ ª®­¥ç­ëå á㬬 å á« £ ¥¬ë¥ ¬®¦­® ¯à®¨§¢®«ì­® ¯¥à¥áâ ¢«ïâì.
‚ ªãàá å ­ «¨§ ®¯à¥¤¥«ïîâ á㬬㠡¥áª®­¥ç­®£® àï¤ (series)
a1 + a2 + a3 + : : : ¨«¨
1
X
ak
k=1
40
ƒ« ¢ 3 ‘㬬¨à®¢ ­¨¥
ª ª ¯à¥¤¥« ¯®á«¥¤®¢ ⥫쭮á⨠ç áâ¨ç­ëå á㬬
lim
n!1
n
X
k=1
ak :
…᫨ ¯à¥¤¥« ­¥ áãé¥áâ¢ã¥â, £®¢®àïâ, çâ® àï¤
P1à á室¨âáï
(diverges); ¢ ¯à®â¨¢­®¬
á«ãç ¥
®­
á室¨âáï
.
ɇǬ
àï¤
k=1 jak j á室¨âáï, â® àï¤ P1
a
­ §ë¢ îâ
¡á®«îâ­®
á室ï騬áï
(absolutely
k=1 k
convergent series); ¢á直© ¡á®«îâ­® á室ï騩áï àï¤ á室¨âáï, ­®
­¥ ­ ®¡®à®â. à¨ ¯¥à¥áâ ­®¢ª¥ ç«¥­®¢ ¡á®«îâ­® á室ï饣®áï àï¤ ®­ ®áâ ñâáï ¡á®«îâ­® á室ï騬áï ¨ ¥£® á㬬 ­¥ ¬¥­ï¥âáï.
‹¨­¥©­®áâì
‘¢®©á⢮ «¨­¥©­®á⨠£« á¨â, çâ®
n
X
k=1
(cak + bk ) = c
n
X
k=1
ak +
n
X
k=1
bk
¤«ï «î¡®£® ç¨á« c ¨ ¤«ï «î¡ëå ª®­¥ç­ëå ¯®á«¥¤®¢ ⥫쭮á⥩
a1; : : :; an ¨ b1; : : :; bn. ®ç«¥­­® ᪫ ¤ë¢ âì ¨ 㬭®¦ âì ­ ç¨á« ¬®¦­® ­¥ ⮫쪮 ª®­¥ç­ë¥ á㬬ë, ­® ¨ á室ï騥áï ¡¥áª®­¥ç­ë¥
àï¤ë.
€à¨ä¬¥â¨ç¥áª¨¥ ¯à®£à¥áᨨ
‘㬬 n
X
k=1
k = 1 + 2 + : : : + n;
ª®â®à ï ¢®§­¨ª« ¯à¨ ­ «¨§¥ «£®à¨â¬ á®àâ¨à®¢ª¨ ¢áâ ¢ª ¬¨,
ï¥âáï à¨ä¬¥â¨ç¥áª®© ¯à®£à¥áᨥ© (arithmetic series). …ñ §­ 祭¨¥
à ¢­®
n
X
k=1
k = 12 n(n + 1) =
= (n2 ):
(3.1)
(3.2)
ƒ¥®¬¥âà¨ç¥áª¨¥ ¯à®£à¥áᨨ
à¨ x 6= 1 á㬬㠣¥®¬¥âà¨ç¥áª®© ¯à®£à¥áᨨ (geometric ¨«¨
exponential series)
n
X
k=0
xk = 1 + x + x2 + : : : + xn
‘ã¬¬ë ¨ ¨å ᢮©á⢠41
¬®¦­® ­ ©â¨ ¯® ä®à¬ã«¥
n
X
k=0
n+1
xk = x x ;;1 1 :
(3.3)
‘㬬 ¡¥áª®­¥ç­® ã¡ë¢ î饩 £¥®¬¥âà¨ç¥áª®© ¯à®£à¥áᨨ (¯à¨
jxj < 1) ¤ ñâáï ä®à¬ã«®©
1
X
k=0
xk = 1 ;1 x :
(3.4)
ƒ ମ­¨ç¥áª¨© àï¤
¨¬¥¥â ¢¨¤ 1 + 1=2 + 1=3 + : : : + 1=n + : : : ; ¥£® n- ï ç áâ¨ç­ ï á㬬 (nth harmonic number) à ¢­ Hn = 1 + 12 + 31 + : : : + n1 =
n
X
1
= ln n + O(1):
k
k=1
(3.5)
®ç«¥­­®¥ ¨­â¥£à¨à®¢ ­¨¥ ¨ ¤¨ää¥à¥­æ¨à®¢ ­¨¥
„¨ää¥à¥­æ¨àãï ¨«¨ ¨­â¥£à¨àãï ®¡¥ ç á⨠¨§¢¥áâ­®£® ⮦¤¥á⢠,
¬®¦­® ¯®«ãç¨âì ­®¢®¥.  ¯à¨¬¥à, ¤¨ää¥à¥­æ¨àãï ⮦¤¥á⢮ (3.4)
¨ 㬭®¦ ï १ã«ìâ â ­ x, ¯®«ãç ¥¬
1
X
kxk = (1 ;x x)2 :
(3.6)
k=0
‘㬬ë à §­®á⥩
„«ï «î¡®© ¯®á«¥¤®¢ ⥫쭮á⨠a0; a1; : : :; an ¬®¦­® § ¯¨á âì ⮦¤¥á⢮
n
X
k=1
(ak ; ak;1 ) = an ; a0
(3.7)
(¢á¥ ¯à®¬¥¦ãâ®ç­ë¥ ç«¥­ë ᮪à é îâáï). ’ ª¨¥ áã¬¬ë ¯®- ­£«¨©áª¨ ­ §ë¢ îâ telescoping series. €­ «®£¨ç­®,
nX
;1
k=0
(ak ; ak+1 ) = a0 ; an :
â®â ¯à¨ñ¬ ¯®§¢®«ï¥â ¯à®á㬬¨à®¢ âì àï¤
1 , ¯®«ãç ¥¬, çâ®
᪮«ìªã k(k1+1) = k1 ; k+1
nX
;1
Pn;1
1
k=1 k(k+1) .
;1 1
1 = nX
1 = 1 ; 1:
;
n
k=1 k(k + 1) k=1 k k + 1
®-
42
ƒ« ¢ 3 ‘㬬¨à®¢ ­¨¥
à®¨§¢¥¤¥­¨ï
à®¨§¢¥¤¥­¨¥ ç¨á¥« a1; : : :; an § ¯¨áë¢ îâ ª ª
n
Y
k=1
ak :
à¨ n = 0 §­ 祭¨¥ defn¯à®¨§¢¥¤¥­¨ï (product) áç¨â ¥âáï à ¢­ë¬ 1. ‹®£ à¨ä¬¨à®¢ ­¨¥ ¯à¥¢à é ¥â ¯à®¨§¢¥¤¥­¨¥ ¢ á㬬ã:
lg
n
Y
k=1
ak =
n
X
k=1
lg ak :
“¯à ¦­¥­¨ï
‚ëç¨á«¨â¥ Pnk=1(2k ; 1).
3.1-2? ®ª ¦¨â¥, ¨á¯®«ì§ãï
ä®à¬ã«ã ¤«ï ç áâ¨ç­ëå á㬬 £ ମ­¨ç¥áª®£® àï¤ , çâ® Pnk=1 1=(2k ; 1) = ln(pn) + O(1).
P
k
3.1-3? ®ª ¦¨â¥, çâ® 1
k=0 (k ; 1)=2 = 0.
P
2k
3.1-4? ‚ëç¨á«¨â¥ á㬬ã 1
k=1 (2k + 1)x .
3.1-5 ˆá¯®«ì§ãï «¨­¥©­®áâì á㬬ë, áä®à¬ã«¨àã©â¥ ¨ ¤®ª ¦¨â¥
ã⢥ত¥­¨¥ ® ¢®§¬®¦­®á⨠¯¥à¥áâ ­®¢ª¨ ᨬ¯â®â¨ç¥áª®£® O®¡®§­ 祭¨ï ¨ á㬬¨à®¢ ­¨ï.
3.1-6 ˆá¯®«ì§ãï «¨­¥©­®áâì á㬬ë, áä®à¬ã«¨àã©â¥ ¨ ¤®ª ¦¨â¥
ã⢥ত¥­¨¥ ® ¢®§¬®¦­®á⨠¯¥à¥áâ ­®¢ª¨ ᨬ¯â®â¨ç¥áª®£® ®¡®§­ 祭¨ï ¨ á㬬¨à®¢ ­¨ï.
Q
3.1-7 ‚ëç¨á«¨â¥ ¯à®¨§¢¥¤¥­¨¥ nk=1 2 4k .
Q
3.1-8? ‚ëç¨á«¨â¥ ¯à®¨§¢¥¤¥­¨¥ nk=2 (1 ; 1=k2).
3.1-1
3.2 Žæ¥­ª¨ á㬬
 áᬮâਬ ­¥áª®«ìª® ¯à¨ñ¬®¢, ª®â®àë¥ ¯®§¢®«ïîâ ­ ©â¨ §­ 祭¨¥ á㬬ë (¨«¨ å®âï ¡ë ®æ¥­¨âì íâã á㬬ã ᢥàåã ¨«¨ á­¨§ã).
ˆ­¤ãªæ¨ï
…᫨ 㤠«®áì 㣠¤ âì ä®à¬ã«ã ¤«ï á㬬ë, ¥ñ «¥£ª® ¯à®¢¥à¨âì á
¯®¬®éìî ¬ ⥬ â¨ç¥áª®© ¨­¤ãªæ¨¨. à¨¬¥à: ¤®ª ¦¥¬, çâ® á㬬 Žæ¥­ª¨ á㬬
43
à¨ä¬¥â¨ç¥áª®© ¯à®£à¥áᨨ Sn = Pnk=1 k à ¢­ n(n +1)=2. à¨ n =
1 íâ® ¢¥à­®. ’¥¯¥àì ¯à¥¤¯®«®¦¨¬, çâ® à ¢¥­á⢮ Sn = n(n + 1)=2
¢¥à­® ¯à¨ ­¥ª®â®à®¬ n ¨ ¯à®¢¥à¨¬ ¥£® ¤«ï n + 1. ‚ á ¬®¬ ¤¥«¥,
nX
+1
k=1
k=
n
X
k=1
k + (n + 1) = n(n + 1)=2 + (n + 1) = (n + 1)(n + 2)=2:
ˆ­¤ãªæ¨î ¬®¦­® ¨á¯®«ì§®¢ âì ¨ ¤«ï ­¥à ¢¥­áâ¢
.  ¯à¨¬¥à, ¯®Pn
k
n
ª ¦¥¬, çâ® á㬬 £¥®¬¥âà¨ç¥áª®©
¯à®£à¥áᨨ
k=0 3 ¥áâì O(3 ).
Pn
k
n
’®ç­¥¥, ¬ë ¯®ª ¦¥¬, çâ® k=0 3 6 c3 ¤«ï ­¥ª®â®à®©
ª®­áâ ­âë c
P0
(ª®â®àãî ¬ë ¢ë¡¥à¥¬ ¯®§¤­¥¥). à¨ n = 0 ¨¬¥¥¬ k=0 3k = 1 6 c1;
íâ® ¢¥à­® ¯à¨ c > 1. à¥¤¯®« £ ï á¯à ¢¥¤«¨¢®áâì ®æ¥­ª¨ ¯à¨ ­¥ª®â®à®¬ n, ¤®ª ¦¥¬ ¥ñ ¤«ï n + 1. ˆ¬¥¥¬:
nX
+1
n
X
1
1
k
k
n
+1
n
n
+1
3 = 3 + 3 6 c3 + 3 = 3 + c c3n+1 6 c3n+1:
k=0
k=0
®á«¥¤­¨©P¯¥à¥å®¤
§ ª®­¥­, ¥á«¨ (1=3 + 1=c) 6 1, â. ¥. ¥á«¨ c > 3=2.
®í⮬ã nk=0 3k = O(3n), çâ® ¨ âॡ®¢ «®áì ¤®ª § âì.
ˆ­¤ãªæ¨¥© á«¥¤ã¥â ¯®«ì§®¢ âìáï ªªãà â­®, ®á®¡¥­­® ¯à¨ ¤®ª § ⥫ìá⢥ ᨬ¯â®â¨ç¥áª¨å ®æ¥­®ª, P¯®áª®«ìªã
âãâ «¥£ª® ®è¨n k = O(n). Žç¥¢¨¤­®,
¡¨âìáï
.
„«ï
¯à¨¬¥à "
¤®ª ¦¥¬
"
,
çâ®
k=1
P1
k=1 k = O(1). à¥¤¯®« £ ï á¯à ¢¥¤«¨¢®áâì ®æ¥­ª¨ ¯à¨ ­¥ª®â®à®¬ n, ¤®ª ¦¥¬ ¥ñ ¤«ï á«¥¤ãî饣® §­ 祭¨ï n. ‚ á ¬®¬ ¤¥«¥,
nX
+1
k=1
k=
n
X
k=1
k + (n + 1) = O(n) + (n + 1) [­¥¢¥à­®!]
= O(n + 1):
Žè¨¡ª ¢ ⮬, çâ® ª®­áâ ­â , ¯®¤à §ã¬¥¢ ¥¬ ï ¢ ®¡®§­ 祭¨¨
O(n), à áâñâ ¢¬¥á⥠á n.
®ç«¥­­ë¥ áà ¢­¥­¨ï
ˆ­®£¤ ¬®¦­® ¯®«ãç¨âì ¢¥àå­îî ®æ¥­ªã ¤«ï á㬬ë, § ¬¥­¨¢
ª ¦¤ë© ¥ñ ç«¥­ ­ ¡®«ì訩 (­ ¯à¨¬¥à, ­ ­ ¨¡®«ì訩 ¨§ ç«¥­®¢
á㬬ë). ’ ª, ¯à®á⥩襩
®æ¥­ª®© ᢥàåã ¤«ï á㬬ë à¨ä¬¥â¨ç¥Pn
᪮© ¯à®£à¥áᨨ k=1 k ¡ã¤¥â
n
X
k=1
‚ ®¡é¥¬ á«ãç ¥
k6
n
X
k=1
n
X
k=1
n = n2:
ak 6 namax;
44
ƒ« ¢ 3 ‘㬬¨à®¢ ­¨¥
£¤¥ amax | ­ ¨¡®«ì襥 ¨§ a1; : : :; an.
‚ ­¥ª®â®àëå á«ãç ïå ¬®¦­® ¯à¨¬¥­¨âì ¡®«¥¥ â®ç­ë© ¬¥â®¤ |
áà ¢­¥­¨¥
á £¥®¬¥âà¨ç¥áª®© ¯à®£à¥áᨥ©. „®¯ãá⨬, ¤ ­ àï¤
Pn
a
á
¯®«®¦¨â¥«ì­ë¬¨
ç«¥­ ¬¨, ¤«ï ª®â®à®£® ak+1 =ak 6 r
k
k=0
¯à¨ ¢á¥å k > 0 ¨ ­¥ª®â®à®¬ r < 1. ’®£¤ ak 6 a0rk , ¨ á㬬 ¬®¦¥â
¡ëâì ®£à ­¨ç¥­ ᢥàåã ¡¥áª®­¥ç­®© ã¡ë¢ î饩 £¥®¬¥âà¨ç¥áª®©
¯à®£à¥áᨥ©:
n
X
k=0
ak 6
1
X
k=0
rk
a0 = a0
1
X
k=0
rk = a0 1 ;1 r :
P1
à¨¬¥­¨¬ íâ®â ¬¥â®¤ ¤«ï á㬬ë k=1 k3;k . ¥à¢ë© ç«¥­ à ¢¥­
1=3, ®â­®è¥­¨¥ á®á¥¤­¨å ç«¥­®¢ à ¢­®
(k + 1)3;(k+1) = 1 k + 1 6 2
k3;k
3 k
3
¤«ï ¢á¥å k > 1. ‘«¥¤®¢ ⥫쭮, ª ¦¤ë© ç«¥­ áã¬¬ë ®æ¥­¨¢ ¥âáï
ᢥàåã ¢¥«¨ç¨­®© (1=3)(2=3)k, â ª çâ®
1
X
k=1
k3;k 6
1
X
1 2 k = 1 1 = 1:
3 1 ; 23
k=1 3 3
‚ ¦­®, çâ® ®â­®è¥­¨¥ á®á¥¤­¨å ç«¥­®¢ ­¥ ¯à®áâ® ¬¥­ìè¥ 1, ®£à ­¨ç¥­® ­¥ª®â®à®© ª®­á⠭⮩ r < 1, ®¡é¥© ¤«ï ¢á¥å ç«¥­®¢
àï¤ .  ¯à¨¬¥à, ¤«ï £ ମ­¨ç¥áª®£® àï¤ ®â­®è¥­¨¥ (k + 1)-£® ¨
k < 1. ’¥¬ ­¥ ¬¥­¥¥
k-£® ç«¥­®¢ à ¢­® k+1
1
X
k=1
n
1 = lim (lg n) = 1:
1 = lim X
k n!1 k n!1
k=1
‡¤¥áì ­¥ áãé¥áâ¢ã¥â ª®­áâ ­âë r, ®â¤¥«ïî饩 ®â­®è¥­¨ï á®á¥¤­¨å
ç«¥­®¢ ®â ¥¤¨­¨æë.
 §¡¨¥­¨¥ ­ ç áâ¨
Œ®¦­® à §¡¨âì á㬬㠭 ç á⨠¨ ®æ¥­¨¢ âì ª ¦¤ãî ç áâì ¯®
®â¤¥«ì­®áâ¨. ‚ ª ç¥á⢥ ¯à¨¬¥à P
¯®«ã稬 ­¨¦­îî ®æ¥­ªã ¤«ï
á㬬ë à¨ä¬¥â¨ç¥áª®© ¯à®£à¥áᨨ nk=1 k. …᫨
¬ë ®æ¥­¨¬ á­¨§ã
ª ¦¤ë© ç«¥­ ¥¤¨­¨æ¥©, â® ¯®«ã稬 ®æ¥­ªã Pnk=1 k > n.  §­¨æ á ¢¥àå­¥© ®æ¥­ª®© O(n2) ᫨誮¬ ¢¥«¨ª , ¯®í⮬㠯®áâ㯨¬ ¯®¤à㣮¬ã:
n
X
k=1
k=
n=2
X
k=1
k+
n
X
k=n=2+1
k>
n=2
X
k=1
0+
n
X
k=n=2+1
n = n 2 :
2
2
Žæ¥­ª¨ á㬬
45
â ®æ¥­ª 㦥 ᨬ¯â®â¨ç¥áª¨ â®ç­ (®â«¨ç ¥âáï ®â ¢¥àå­¥©
®æ¥­ª¨, ¨ ⥬ á ¬ë¬ ®â ¨á⨭­®£® §­ 祭¨ï, ­¥ ¡®«¥¥ 祬 ¢ ª®­áâ ­âã à §).
ˆ­®£¤ ¯®«¥§­® ®â¡à®á¨âì ­¥áª®«ìª® ¯¥à¢ëå ç«¥­®¢ ¯®á«¥¤®¢ ⥫쭮áâ¨, § ¯¨á ¢ (¤«ï 䨪á¨à®¢ ­­®£® k0)
n
X
k=0
ak =
k0
X
k=0
ak +
n
X
k=k0 +1
 ¯à¨¬¥à, ¤«ï àï¤ 1
X
ak = (1) +
n
X
k=k0 +1
ak :
k2
k
k=0 2
®â­®è¥­¨¥ ¯®á«¥¤®¢ ⥫ì­ëå ç«¥­®¢
(k + 1)2=2k+1 = (k + 1)2
k2 =2k
2k2
­¥ ¢á¥£¤ ¬¥­ìè¥ 1. ®í⮬ã, çâ®¡ë ¯à¨¬¥­¨âì ¬¥â®¤ áà ¢­¥­¨ï
á £¥®¬¥âà¨ç¥áª®© ¯à®£à¥áᨥ©, ¢ë¤¥«¨¬ âਠ¯¥à¢ëå ç«¥­ àï¤ .
„«ï ¢á¥å á«¥¤ãîé¨å ç«¥­®¢ (k > 3) ®â­®è¥­¨¥ ­¥ ¯à¥¢®á室¨â 8=9,
¯®í⮬ã
1
X
2 2 X
1 8
k2 = X
k + 1 k2 6 O(1) + 9 X
k=0 2
k
k
k=0 2
k
k=3 2
k
8 k=0 9
= O(1);
¯®áª®«ìªã ¢â®à ï á㬬 | ¡¥áª®­¥ç­® ã¡ë¢ îé ï £¥®¬¥âà¨ç¥áª ï
¯à®£à¥áá¨ï.
 §¡¨¥­¨¥ àï¤ ­ ç á⨠¡ë¢ ¥â ¯®«¥§­® ¨ ¢ ¡®«¥¥ á«®¦­ëå á¨âã æ¨ïå.PŽæ¥­¨¬
, ­ ¯à¨¬¥à, ç áâ¨ç­ë¥ áã¬¬ë £ ମ­¨ç¥áª®£® àï¤ Hn = nk=1 k1 . „«ï í⮣® à §®¡ì¥¬ ®â१®ª ®â 1 ¤® n ­ blg nc ç á⥩
1 + (1=2 + 1=3)+ (1=4+ 1=5 + 1=6 + 1=7)+ : : : . Š ¦¤ ï ç áâì ­¥ ¯à¥¢®á室¨â 1 (§ ¬¥­¨¬ ¢á¥ á« £ ¥¬ë¥ ¢ ­¥© ­ ¯¥à¢®¥ ¨§ ­¨å), ¢á¥£®
ç á⥩ blg nc + 1 (¯®á«¥¤­ïï ¬®¦¥â ¡ëâì ­¥¯®«­®©). ®«ãç ¥¬, çâ®
1 + 1=2 + 1=3 + : : : + 1=n 6 lg n + 1:
(3.8)
‘à ¢­¥­¨¥ á ¨­â¥£à « ¬¨
„«ï P
¬®­®â®­­® ¢®§à áâ î饩 ä㭪樨 f ¬ë ¬®¦¥¬ § ª«îç¨âì
á㬬ã nk=m f (k) ¬¥¦¤ã ¤¢ã¬ï ¨­â¥£à « ¬¨:
Zn
m;1
f (x) dx 6
n
X
k=m
f (k ) 6
nZ+1
m
f (x) dx:
(3.9)
46
ƒ« ¢ 3 ‘㬬¨à®¢ ­¨¥
‘à ¢­¥­¨¥ á㬬ë Pnk=m f (k) á ¨­â¥£à « ¬¨. ‚­ãâਠª ¦¤®£®
¯àאַ㣮«ì­¨ª § ¯¨á ­ ¥£® ¯«®é ¤ì. Ž¡é ï ¯«®é ¤ì ¢á¥å ¯àאַ㣮«ì­¨ª®¢
à ¢­ §­ 祭¨î á㬬ë. ‡­ 祭¨¥ ¨­â¥£à « à ¢­® ¯«®é ¤¨
§ ªà 襭­®©
ä¨R
£ãàë ¯®¤ ªà¨¢®©. ( ) ‘à ¢­¨¢ ï ¯«®é ¤¨, ¯®«ãç ¥¬ mn;1 f (x) dx P
6 Pnk=m f (k).
(R¡) ‘¤¢¨£ ï ¯àאַ㣮«ì­¨ª¨ ­ ¥¤¨­¨æã ¢¯à ¢®, ¢¨¤¨¬, çâ® nk=m f (k) 6
n+1
m f (x) dx.
¨áã­®ª
3.1
Žæ¥­ª¨ á㬬
47
‚ á ¬®¬ ¤¥«¥, ª ª ¢¨¤­® ¨§ à¨á. 3.1, á㬬 (¯«®é ¤ì ¢á¥å ¯àאַ㣮«ì­¨ª®¢) ᮤ¥à¦¨â ®¤­ã § ªà 襭­ãî ®¡« áâì (¢¥àå­¨© à¨áã­®ª) ¨ ᮤ¥à¦¨âáï ¢ ¤à㣮© (­¨¦­¨© à¨áã­®ª). €­ «®£¨ç­®¥ ­¥à ¢¥­á⢮ ¬®¦­® ­ ¯¨á âì ¤«ï ¬®­®â®­­® ã¡ë¢ î饩 ä㭪樨 f :
nZ+1
n
X
m
k =m
f (x) dx 6
f (k) 6
Zn
m;1
f (x) dx:
(3.10)
â¨¬ ¬¥â®¤®¬ ¬®¦­® ¯®«ãç¨âì å®à®è¨¥ ®æ¥­ª¨ ¤«ï ç áâ¨ç­ëå
á㬬 £ ମ­¨ç¥áª®£® àï¤ : ­¨¦­îî ®æ¥­ªã
n
X
nZ+1
1>
k=1 k
1
dx = ln(n + 1)
x
(3.11)
¨ ¢¥àå­îî ®æ¥­ªã (¤«ï àï¤ ¡¥§ ¯¥à¢®£® ç«¥­ )
n
X
k=2
n
1 6 Z dx = ln n;
k
x
1
®âªã¤ n
X
1 6 ln n + 1:
k=1 k
(3.12)
“¯à ¦­¥­¨ï
®ª ¦¨â¥, çâ® á㬬 Pnk=1 k1 ®£à ­¨ç¥­ ᢥàåã ª®­á⠭⮩ (­¥ § ¢¨áï饩 ®â n).
3.2-2  ©¤¨â¥ ᨬ¯â®â¨ç¥áªãî ¢¥àå­îî ®æ¥­ªã ¤«ï á㬬ë
3.2-1
2
bX
lg nc
k=0
dn=2k e:
 §¡¨¢ ï á㬬㠭 ç áâ¨, ¯®ª ¦¨â¥, çâ® n-ï ç áâ¨ç­ ï
á㬬 £ ମ­¨ç¥áª®£® àï¤ ¥áâì (lg n).
P
3.2-4 ‡ ª«îç¨â¥ á㬬ã nk=1 k3 ¬¥¦¤ã ¤¢ã¬ï ¨­â¥£à « ¬¨.
3.2-5 ®ç¥¬ã ¯à¨ ¯®«ã祭¨¨ ¢¥àå­¥© ®æ¥­ª¨ ¤«ï ç áâ¨ç­®©
áã¬¬ë £ ମ­¨ç¥áª®£® àï¤ ¬ë ®â¡à®á¨«¨ ¯¥à¢ë© ç«¥­ ¨ ⮫쪮
¯®â®¬ ¯à¨¬¥­¨«¨ ®æ¥­ªã (3.10)?
3.2-3
48
ƒ« ¢ 3 ‘㬬¨à®¢ ­¨¥
‡ ¤ ç¨
3-1 Žæ¥­ª¨ ¤«ï á㬬
 ©¤¨â¥ ᨬ¯â®â¨ç¥áª¨ â®ç­ë¥ ®æ¥­ª¨ ¤«ï á«¥¤ãîé¨å á㬬
(áç¨â ï r > 0 ¨ s > 0 ª®­áâ ­â ¬¨):
P
. Pnk=1 kr .
¡. Pnk=1 lgs k.
¢. nk=1 kr lgs k.
‡ ¬¥ç ­¨ï
Š­¨£ Š­ãâ [121] | ¯à¥ªà á­ë© á¯à ¢®ç­¨ª ¯® ¬ â¥à¨ «ã í⮩
£« ¢ë. Žá­®¢­ë¥ ᢮©á⢠à冷¢ ¬®¦­® ­ ©â¨ ¢ «î¡®¬ ã祡­¨ª¥ ¯®
¬ ⥬ â¨ç¥áª®¬ã ­ «¨§ã ( ¢â®àë ®âáë« îâ ­£«®ï§ëç­®£® ç¨â â¥«ï ª ª­¨£ ¬ [12] ¨ [192]).
4
¥ªãà७â­ë¥ ᮮ⭮襭¨ï
Žæ¥­¨¢ ï ¢à¥¬ï à ¡®âë ४ãàᨢ­®© ¯à®æ¥¤ãàë, ¬ë ç áâ® ¯à¨å®¤¨¬ ª ᮮ⭮襭¨î, ª®â®à®¥ ®æ¥­¨¢ ¥â íâ® ¢à¥¬ï ç¥à¥§ ¢à¥¬ï
à ¡®âë ⮩ ¦¥ ¯à®æ¥¤ãàë ­ ¢å®¤­ëå ¤ ­­ëå ¬¥­ì襣® à §¬¥à .
’ ª®£® த ᮮ⭮襭¨ï ­ §ë¢ îâáï ४ãà७â­ë¬¨ (recurrences).
 ¯à¨¬¥à, ª ª ¬ë ¢¨¤¥«¨ ¢ £« ¢¥ 1, ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë
Merge-Sort ®¯¨áë¢ ¥âáï ᮮ⭮襭¨¥¬
(
¥á«¨ n = 1,
T (n) = (1);
(4.1)
2T (n=2) + (n); ¥á«¨ n > 1.
¨§ ª®â®à®£® ¢ë⥪ ¥â (ª ª ¬ë 㢨¤¨¬), çâ® T (n) = (n lg n).
‚ í⮩ £« ¢¥ ¯à¥¤« £ îâáï âਠᯮᮡ , ¯®§¢®«ïî騥 à¥è¨âì
४ãà७⭮¥ ᮮ⭮襭¨¥, â. ¥. ­ ©â¨ ᨬ¯â®â¨ç¥áªãî ("" ¨«¨
"O") ®æ¥­ªã ¤«ï ¥£® à¥è¥­¨©. ‚®-¯¥à¢ëå, ¬®¦­® 㣠¤ âì ®æ¥­ªã, § ⥬ ¤®ª § âì ¥ñ ¯® ¨­¤ãªæ¨¨, ¯®¤áâ ¢«ïï 㣠¤ ­­ãî ä®à¬ã«ã ¢
¯à ¢ãî ç áâì ᮮ⭮襭¨ï (¬¥â®¤ ¯®¤áâ ­®¢ª¨, substitution method).
‚®-¢â®àëå, ¬®¦­® "à §¢¥à­ãâì" ४ãà७â­ãî ä®à¬ã«ã, ¯®«ã稢
¯à¨ í⮬ á㬬ã, ª®â®àãî ¬®¦­® § ⥬ ®æ¥­¨¢ âì (¬¥â®¤ ¨â¥à 権,
iteration method).  ª®­¥æ, ¬ë ¯à¨¢®¤¨¬ ®¡é¨© १ã«ìâ â ® ४ãà७â­ëå ᮮ⭮襭¨ïå ¢¨¤ T (n) = aT (n=b) + f (n);
£¤¥ a > 1, b > 1 | ­¥ª®â®àë¥ ª®­áâ ­âë, f (n) | § ¤ ­­ ï äã­ªæ¨ï. ‘®®â¢¥âáâ¢ãî騩 १ã«ìâ â ¬ë ¡ã¤¥â ­ §ë¢ âì ®á­®¢­®© ⥮६®© ® ४ãà७â­ëå ᮮ⭮襭¨ïå (master theorem). ”®à¬ã«¨à®¢ª í⮩ â¥®à¥¬ë ¤®¢®«ì­® ¤«¨­­ , § â® ¢® ¬­®£¨å á«ãç ïå ®­ áà §ã
¯à¨¢®¤¨â ª ®â¢¥âã.
’¥å­¨ç¥áª¨¥ ¤¥â «¨
”®à¬ã«¨àãï ¨ ¤®ª §ë¢ ï ã⢥ত¥­¨ï ¯à® ४ãà७â­ë¥ ᮮ⭮襭¨ï, ¬ë ¡ã¤¥¬ ®¯ã᪠âì ­¥ª®â®àë¥ â¥å­¨ç¥áª¨¥ ¯®¤à®¡­®áâ¨.
 ¯à¨¬¥à, ¢ ¯à¨¢¥¤ñ­­®© ¢ëè¥ ä®à¬ã«¥ ¤«ï ¯à®æ¥¤ãàë MergeSort ¤®«¦­ë áâ®ïâì æ¥«ë¥ ç á⨠(T (n) ®¯à¥¤¥«¥­® «¨èì ¯à¨ æ¥-
50
ƒ« ¢ 4 ¥ªãà७â­ë¥ ᮮ⭮襭¨ï
«ëå n):
T (n) =
(
(1);
¥á«¨ n = 1,
T (dn=2e) + T (bn=2c) + (n); ¥á«¨ n > 1.
(4.2)
Šà®¬¥ ⮣®, ®¡ëç­® ¬ë ¡ã¤¥¬ ®¯ã᪠âì ­ ç «ì­ë¥ ãá«®¢¨ï, ¨¬¥ï ¢
¢¨¤ã, çâ® T (n) = (1) ¤«ï ­¥¡®«ìè¨å n. ’ ª¨¬ ®¡à §®¬, ᮮ⭮襭¨¥ (4.1) § ¯¨è¥âáï ¢ ¢¨¤¥
T (n) = 2T (n=2) + (n):
(4.3)
â® ¯®§¢®«¨â¥«ì­®, â ª ª ª ­ ç «ì­®¥ ãá«®¢¨¥ (§­ 祭¨¥ T (1)) ¢«¨ï¥â ⮫쪮 ­ ¯®áâ®ï­­ë© ¬­®¦¨â¥«ì, ­® ­¥ ­ ¯®à冷ª à®áâ ä㭪樨 T (n).
’ ª®¥ ­¥¡à¥¦­®¥ ®¡à 饭¨¥ á ¤¥â «ï¬¨, ª®­¥ç­®, âॡã¥â ®áâ®à®¦­®áâ¨, çâ®¡ë ­¥ ã¯ãáâ¨âì (¯ãáâì ।ª¨å) á«ãç ¥¢, ¢ ª®â®àëå
¯®¤®¡­ë¥ ¤¥â «¨ ¢«¨ïîâ ­ १ã«ìâ â. ‚ í⮩ £« ¢¥ ¬ë à §¡¥àñ¬
­¥áª®«ìª® ¯à¨¬¥à®¢, ¯®ª §ë¢ îé¨å, ª ª ¢®á¯®«­¨âì ¯à®¯ã饭­ë¥
¤¥â «¨ (á¬. ¤®ª § ⥫ìá⢮ ⥮६ë 4.1 ¨ § ¤ çã 4.5).
4.1 Œ¥â®¤ ¯®¤áâ ­®¢ª¨
ˆ¤¥ï ¯à®áâ : ®â£ ¤ âì ®â¢¥â ¨ ¤®ª § âì ¥£® ¯® ¨­¤ãªæ¨¨. — áâ®
®â¢¥â ᮤ¥à¦¨â ª®íää¨æ¨¥­âë, ª®â®àë¥ ­ ¤® ¢ë¡à âì â ª, ç⮡ë
à áá㦤¥­¨¥ ¯® ¨­¤ãªæ¨¨ ¯à®å®¤¨«®.
ˆ­¤ãªâ¨¢­ë© ¬¥â®¤ ¯à¨¬¥­¨¬ ¨ ª ­¨¦­¨¬, ¨ ª ¢¥àå­¨¬ ®æ¥­ª ¬.
‚ ª ç¥á⢥ ¯à¨¬¥à ­ ©¤ñ¬ ¢¥àå­îî ®æ¥­ªã ¤«ï ä㭪樨, § ¤ ­­®©
ᮮ⭮襭¨¥¬
T (n) = 2T (bn=2c) + n;
(4.4)
ª®â®à®¥ ­ «®£¨ç­® (4.2) ¨ (4.3). Œ®¦­® ¯à¥¤¯®«®¦¨âì, çâ® T (n) =
O(n lg n), â. ¥. çâ® T (n) 6 cn lg n ¤«ï ¯®¤å®¤ï饣® c > 0. ã¤¥¬
¤®ª §ë¢ âì íâ® ¯® ¨­¤ãªæ¨¨. ãáâì í⠮業ª ¢¥à­ ¤«ï bn=2c, â. ¥.
T (bn=2c) 6 cbn=2c lg(bn=2c). ®¤áâ ¢¨¢ ¥ñ ¢ ᮮ⭮襭¨¥, ¯®«ã稬
T (n) 6 2(cbn=2c lg(bn=2c)) + n 6
6 cn lg(n=2) + n = cn lg n ; cn lg 2 + n = cn lg n ; cn + n 6
6 cn lg n:
®á«¥¤­¨© ¯¥à¥å®¤ § ª®­¥­ ¯à¨ c > 1.
„«ï § ¢¥à襭¨ï à áá㦤¥­¨ï ®áâ ñâáï ¯à®¢¥à¨âì ¡ §¨á ¨­¤ãªæ¨¨, â. ¥. ¤®ª § âì ®æ¥­ªã ¤«ï ­ ç «ì­®£® §­ 祭¨ï n. ’ãâ ¬ë áâ «ª¨¢ ¥¬áï á ⥬, çâ® ¯à¨ n = 1 ¯à ¢ ï ç áâì ­¥à ¢¥­á⢠®¡à é ¥âáï ¢ ­ã«ì, ª ª¨¬ ¡ë ­¨ ¢§ïâì c (¯®áª®«ìªã lg 1 = 0). à¨å®¤¨âáï ¢á¯®¬­¨âì, ç⮠ᨬ¯â®â¨ç¥áªãî ®æ¥­ªã ¤®áâ â®ç­® ¤®ª § âì ¤«ï ¢á¥å n, ­ 稭 ï á ­¥ª®â®à®£®. ®¤¡¥àñ¬ c â ª, ç⮡ë
Œ¥â®¤ ¯®¤áâ ­®¢ª¨
51
®æ¥­ª T (n) 6 cn lg n ¡ë« ¢¥à­ ¯à¨ n = 2 ¨ n = 3. ’®£¤ ¤«ï
¡®«ìè¨å n ¬®¦­® à áá㦤 âì ¯® ¨­¤ãªæ¨¨, ¨ ®¯ á­ë© á«ãç © n = 1
­ ¬ ­¥ ¢áâà¥â¨âáï (¯®áª®«ìªã bn=2c > 2 ¯à¨ n > 3).
Š ª ®â£ ¤ âì ®æ¥­ªã?
„«ï í⮣® ­ã¦¥­ ­ ¢ëª ¨ ­¥¬­®£® ¢¥§¥­¨ï. ‚®â ­¥áª®«ìª® ­ ¢®¤ïé¨å á®®¡à ¦¥­¨©.
€­ «®£¨ï.  áᬮâਬ ¤«ï ¯à¨¬¥à ᮮ⭮襭¨¥
T (n) = 2T (bn=2c + 17) + n:
ª®â®à®¥ ®â«¨ç ¥âáï ®â (4.4) ¤®¡ ¢®ç­ë¬ á« £ ¥¬ë¬ 17 ¢ ¯à ¢®©
ç áâ¨. Œ®¦­® ®¦¨¤ âì, ®¤­ ª®, çâ® íâ ¤®¡ ¢ª ­¥ ¬®¦¥â áãé¥á⢥­­® ¨§¬¥­¨âì å à ªâ¥à à¥è¥­¨ï: ¯à¨ ¡®«ìè¨å n à §­¨æ ¬¥¦¤ã bn=2c + 17 ¨ bn=2c ¢àï¤ «¨ â ª 㦠áãé¥á⢥­­ . Œ®¦­®
¯à¥¤¯®«®¦¨âì, çâ® ®æ¥­ª T (n) = O(n lg n) ®áâ ñâáï ¢ ᨫ¥, § ⥬ ¨ ¤®ª § âì íâ® ¯® ¨­¤ãªæ¨¨ (á¬. ã¯à. 4.1-5).
®á«¥¤®¢ ⥫ì­ë¥ ¯à¨¡«¨¦¥­¨ï. Œ®¦­® ­ ç âì á ¯à®áâëå ¨ £àã¡ëå
®æ¥­®ª, § ⥬ ãâ®ç­ïâì ¨å.  ¯à¨¬¥à, ¤«ï ᮮ⭮襭¨ï (4.1)
¥áâì ®ç¥¢¨¤­ ï ­¨¦­ïï ®æ¥­ª T (n) = (n) (¯®áª®«ìªã á¯à ¢ ¥áâì
ç«¥­ n), ¨ ¢¥àå­ïï ®æ¥­ª T (n) = O(n2) (ª®â®àãî «¥£ª® ¤®ª § âì
¯® ¨­¤ãªæ¨¨). „ «¥¥ ¬®¦­® ¯®á⥯¥­­® á¡«¨¦ âì ¨å, áâ६ïáì ¯®«ãç¨âì ᨬ¯â®â¨ç¥áª¨ â®ç­ë¥ ­¨¦­îî ¨ ¢¥àå­îî ®æ¥­ª¨, ®â«¨ç î騥áï ­¥ ¡®«¥¥ 祬 ¢ ª®­áâ ­âã à §.
’®­ª®áâ¨
ˆ­®£¤ à áá㦤¥­¨¥ ¯® ¨­¤ãªæ¨¨ áâ «ª¨¢ ¥âáï á âà㤭®áâﬨ,
å®âï ®â¢¥â 㣠¤ ­ ¯à ¢¨«ì­®. Ž¡ëç­® íâ® ¯à®¨á室¨â ¯®â®¬ã, çâ®
¤®ª §ë¢ ¥¬®¥ ¯® ¨­¤ãªæ¨¨ ã⢥ত¥­¨¥ ­¥¤®áâ â®ç­® ᨫ쭮. ‚
í⮬ á«ãç ¥ ¬®¦¥â ¯®¬®çì ¢ëç¨â ­¨¥ ç«¥­ ¬¥­ì襣® ¯®à浪 .
 áᬮâਬ ᮮ⭮襭¨¥
T (n) = T (bn=2c) + T (dn=2e) + 1:
Œ®¦­® ­ ¤¥ïâìáï, çâ® ¢ í⮬ á«ãç ¥ T (n) = O(n). â® ¤¥©á⢨⥫쭮 â ª. ®¯à®¡ã¥¬, ®¤­ ª®, ¤®ª § âì, çâ® T (n) 6 cn ¯à¨ ¯®¤å®¤ï饬 ¢ë¡®à¥ ª®­áâ ­âë c. ˆ­¤ãªâ¨¢­®¥ ¯à¥¤¯®«®¦¥­¨¥ ¤ ñâ
T (n) 6 cbn=2c + cdn=2e + 1 = cn + 1;
®âáî¤ ­¨ ¤«ï ª ª®£® c ­¥ ¢ë⥪ ¥â ­¥à ¢¥­á⢠T (n) 6 cn. ‚
â ª®© á¨âã 樨 ¬®¦­® ¯®¯ëâ âìáï ¤®ª § âì ¡®«¥¥ á« ¡ãî ®æ¥­ªã,
­ ¯à¨¬¥à O(n2), ­® ­ á ¬®¬ ¤¥«¥ ¢ í⮬ ­¥â ­¥®¡å®¤¨¬®áâ¨: ­ è ¤®£ ¤ª ¢¥à­ , ­ ¤® ⮫쪮 ­¥ ®á« ¡¨âì, ãᨫ¨âì ¯à¥¤¯®«®¦¥­¨¥
¨­¤ãªæ¨¨.
52
ƒ« ¢ 4 ¥ªãà७â­ë¥ ᮮ⭮襭¨ï
®¢ ï £¨¯®â¥§ ¢ë£«ï¤¨â â ª: T (n) 6 cn ; b ¤«ï ­¥ª®â®àëå ª®­áâ ­â b ¨ c. ®¤áâ ­®¢ª ¢ ¯à ¢ãî ç áâì ¤ ñâ
T (n) 6 (cbn=2c ; b) + (cdn=2e ; b) + 1 = cn ; 2b + 1 6 cn ; b
®á«¥¤­¨© ¯¥à¥å®¤ § ª®­¥­ ¯à¨ b > 1. Žáâ ñâáï «¨èì ¢ë¡à âì ª®­áâ ­âã c á ãçñ⮬ ­ ç «ì­ëå ãá«®¢¨©.
â® à áá㦤¥­¨¥ ¢ë§ë¢ ¥â ­¥¤®ã¬¥­¨¥: ¥á«¨ ¤®ª § ⥫ìá⢮ ­¥
¯à®å®¤¨â, ­¥ á«¥¤ã¥â «¨ ®á« ¡¨âì (㢥«¨ç¨âì) ®æ¥­ªã, ­¥ ãᨫ¨¢ âì ¥ñ? ® ­ á ¬®¬ ¤¥«¥ ­¨ç¥£® áâà ­­®£® §¤¥áì ­¥â | ãᨫ¨¢
®æ¥­ªã, ¬ë ¯®«ãç ¥¬ ¢®§¬®¦­®áâì ¢®á¯®«ì§®¢ âìáï ¡®«¥¥ ᨫì­ë¬
¨­¤ãªâ¨¢­ë¬ ¯à¥¤¯®«®¦¥­¨¥¬.
Š ª ¤¥« âì ­¥ ­ ¤®
€á¨¬¯â®â¨ç¥áª ï § ¯¨áì ®¯ á­ ¯à¨ ­¥ã¬¥«®¬ ¯à¨¬¥­¥­¨¨: ¢®â
¯à¨¬¥à ­¥¯à ¢¨«ì­®£® "¤®ª § ⥫ìá⢠" ®æ¥­ª¨ T (n) = O(n) ¤«ï
ᮮ⭮襭¨ï (4.4). à¥¤¯®«®¦¨¬, çâ® T (n) 6 cn, ⮣¤ ¬®¦­® § ¯¨á âì
T (n) 6 2(cbn=2c) + n 6 cn + n = O(n):
â® à áá㦤¥­¨¥, ®¤­ ª®, ­¨ç¥£® ­¥ ¤®ª §ë¢ ¥â, â ª ª ª ¨­¤ãªâ¨¢­ë© ¯¥à¥å®¤ âॡã¥â, çâ®¡ë ¢ ¯à ¢®© ç á⨠¡ë«® cn c ⮩ ¦¥ á ¬®©
ª®­á⠭⮩ c, ­¥ ¡áâà ªâ­®¥ O(n).
‡ ¬¥­ ¯¥à¥¬¥­­ëå
— áâ® ­¥á«®¦­ ï § ¬¥­ ¯¥à¥¬¥­­ëå ¯®§¢®«ï¥â ¯à¥®¡à §®¢ âì
४ãà७⭮¥ ᮮ⭮襭¨¥ ª ¯à¨¢ëç­®¬ã ¢¨¤ã.  ¯à¨¬¥à, ᮮ⭮襭¨¥
p
T (n) = 2T (b nc) + ln n
ª ¦¥âáï ¤®¢®«ì­® á«®¦­ë¬, ®¤­ ª® § ¬¥­®© ¯¥à¥¬¥­­ëå ¥£® «¥£ª®
ã¯à®áâ¨âì. ‘¤¥« ¢ § ¬¥­ã m = lg n, ¯®«ã稬
T (2m) = 2T (2m=2) + m:
Ž¡®§­ 稢 T (2m) ç¥à¥§ S (m), ¯à¨å®¤¨¬ ª ᮮ⭮襭¨î
S (m) = 2S (m=2) + m;
ª®â®à®¥ 㦥 ¢áâà¥ç «®áì (4.4). …£® à¥è¥­¨¥: S (m) = O(m lg m).
‚®§¢à é ïáì ª T (n) ¢¬¥áâ® S (m), ¯®«ã稬
T (n) = T (2m ) = S (m) = O(m lg m) = O(lg n lg lg n):
à¨¢¥¤ñ­­®¥ à áá㦤¥­¨¥ âॡã¥â, ª®­¥ç­®, ãâ®ç­¥­¨©, ¯®áª®«ìªã ¯®ª çâ® ¬ë ¤®ª § «¨ ®æ¥­ªã ­ T (n) «¨èì ¤«ï n,
ïîé¨åáï á⥯¥­ï¬¨ ¤¢®©ª¨. —â®¡ë ¢ë©â¨ ¨§ ¯®«®¦¥­¨ï, ¬®¦­®
®¯à¥¤¥«¨âì S (m) ª ª ¬ ªá¨¬ã¬ T (n) ¯® ¢á¥¬ n, ­¥ ¯à¥¢®á室ï騬 2m.
à¥®¡à §®¢ ­¨¥ ¢ á㬬ã
53
“¯à ¦­¥­¨ï
4.1-1
O(lg n).
®ª ¦¨â¥, çâ® ¨§ T (n) = T (dn=2e) + 1 á«¥¤ã¥â, çâ® T (n) =
®ª ¦¨â¥, çâ® ¨§ T (n) = 2T (bn=2c) + n ¢ë⥪ ¥â T (n) =
(n lg n), ¨ ⥬ á ¬ë¬ T (n) = (n lg n).
4.1-3 Š ª ®¡®©â¨ âà㤭®áâì á ­ ç «ì­ë¬ §­ 祭¨¥¬ n = 1 ¯à¨ ¨áá«¥¤®¢ ­¨¨ ᮮ⭮襭¨ï (4.4), ¨§¬¥­¨¢ ¤®ª §ë¢ ¥¬®¥ ¯® ¨­¤ãªæ¨¨
ã⢥ত¥­¨¥, ­® ­¥ ¬¥­ïï ­ ç «ì­®£® §­ 祭¨ï?
4.1-4 ®ª ¦¨â¥, ç⮠ᮮ⭮襭¨¥ (4.2) ¤«ï á®àâ¨à®¢ª¨ ᫨ﭨ¥¬
¨¬¥¥â à¥è¥­¨¥¬ (n lg n).
4.1-5 ®ª ¦¨â¥, çâ® T (n) = 2T (bn=2c + 17) + n ¢«¥çñâ T (n) =
O(n lg n).
4.1-6p ¥è¨â¥ á ¯®¬®éìî § ¬¥­ë ¯¥à¥¬¥­­ëå ᮮ⭮襭¨¥ T (n) =
2T ( n) + 1, (®¯ãáª ï ¯®¤à®¡­®áâ¨, á¢ï§ ­­ë¥ á ⥬, çâ® §­ 祭¨ï
¯¥à¥¬¥­­ëå | ­¥ 楫ë¥).
4.1-2
4.2 à¥®¡à §®¢ ­¨¥ ¢ á㬬ã
Š ª ¡ëâì, ¥á«¨ ­¥ 㤠¥âáï 㣠¤ âì à¥è¥­¨¥? ’®£¤ ¬®¦­®, ¨â¥à¨àãï í⮠ᮮ⭮襭¨¥ (¯®¤áâ ¢«ïï ¥£® á ¬® ¢ ᥡï), ¯®«ãç¨âì àï¤,
ª®â®àë© ¬®¦­® ®æ¥­¨¢ âì ⥬ ¨«¨ ¨­ë¬ ᯮᮡ®¬.
„«ï ¯à¨¬¥à à áᬮâਬ ᮮ⭮襭¨¥
T (n) = 3T (bn=4c) + n:
®¤áâ ¢«ïï ¥£® ¢ ᥡï, ¯®«ã稬:
T (n) = n + 3T (bn=4c) = n + 3(bn=4c + 3T (bn=16c))
= n + 3(bn=4c + 3(bn=16c + 3T (bn=64c)))
= n + 3bn=4c + 9bn=16c + 27T (bn=64c);
Œë ¢®á¯®«ì§®¢ «¨áì ⥬, çâ®, ᮣ« á­® (2.4), bbn=4c=4c = bn=16c
¨ bbn=16c=4c = bn=64c. ‘ª®«ìª® è £®¢ ­ ¤® ᤥ« âì, çâ®¡ë ¤®©â¨
¤® ­ ç «ì­®£® ãá«®¢¨ï? ®áª®«ìªã ¯®á«¥ i-®© ¨â¥à 樨 á¯à ¢ ®ª ¦¥âáï T (bn=4ic), ¬ë ¤®©¤ñ¬ ¤® T (1), ª®£¤ bn=4ic = 1, â. ¥. ª®£¤ i > log4 n. ‡ ¬¥â¨¢, çâ® bn=4ic 6 n=4i, ¬ë ¬®¦¥¬ ®æ¥­¨âì ­ è àï¤
ã¡ë¢ î饩 £¥®¬¥âà¨ç¥áª®© ¯à®£à¥áᨥ© (¯«îá ¯®á«¥¤­¨© ç«¥­, á®-
54
ƒ« ¢ 4 ¥ªãà७â­ë¥ ᮮ⭮襭¨ï
®â¢¥âáâ¢ãî騩 3log n § ¤ ç ¬ ®£à ­¨ç¥­­®£® à §¬¥à ):
T (n) 6 n + 3n=4 + 9n=16 + 27n=64 + : : : + 3log n (1)
4
4
6n
1 3 i
X
+ (nlog 3 )
4
i=0
= 4n + o(n) = O(n)
4
(Œë § ¬¥­¨«¨ ª®­¥ç­ãî á㬬㠨§ ­¥ ¡®«¥¥ 祬 log4 n + 1 ç«¥­®¢ ­ á㬬㠡¥áª®­¥ç­®£® àï¤ , â ª¦¥ ¯¥à¥¯¨á «¨ 3log n ª ª nlog 3, çâ®
¥áâì o(n), â ª ª ª log4 3 < 1.)
— áâ® ¯à¥®¡à §®¢ ­¨¥ ४ãà७⭮£® ᮮ⭮襭¨ï ¢ á㬬㠯ਢ®¤¨â ª ¤®¢®«ì­® á«®¦­ë¬ ¢ëª« ¤ª ¬. à¨ í⮬ ¢ ¦­® á«¥¤¨âì
§ ¤¢ã¬ï ¢¥é ¬¨: ᪮«ìª® è £®¢ ¯®¤áâ ­®¢ª¨ âॡã¥âáï ¨ ª ª®¢ á㬬 ç«¥­®¢, ¯®«ãç îé¨åáï ­ ¤ ­­®¬ è £¥. ˆ­®£¤ ­¥áª®«ìª®
¯¥à¢ëå è £®¢ ¯®§¢®«ïî⠮⣠¤ âì ®â¢¥â, ª®â®àë© § ⥬ 㤠ñâáï
¤®ª § âì ¯® ¨­¤ãªæ¨¨ (á ¬¥­ì訬 ª®«¨ç¥á⢮¬ ¢ëç¨á«¥­¨©).
Žá®¡¥­­® ¬­®£® å«®¯®â ¤®áâ ¢«ïîâ ®ªà㣫¥­¨ï (¯¥à¥å®¤ ª 楫®©
ç áâ¨). „«ï ­ ç « á⮨⠯।¯®«®¦¨âì, çâ® §­ 祭¨ï ¯ à ¬¥âà â ª®¢ë, çâ® ®ªà㣫¥­¨ï ­¥ âॡãîâáï (¢ ­ 襬 ¯à¨¬¥à¥ ¯à¨ n = 4k
­¨ç¥£® ®ªà㣫ïâì ­¥ ¯à¨¤ñâáï). ‚®®¡é¥ £®¢®àï, â ª®¥ ¯à¥¤¯®«®¦¥­¨¥ ­¥ ¢¯®«­¥ § ª®­­®, â ª ª ª ®æ¥­ªã ­ ¤® ¤®ª § âì ¤«ï ¢á¥å ¤®áâ â®ç­® ¡®«ìè¨å 楫ëå ç¨á¥«, ­¥ ⮫쪮 ¤«ï á⥯¥­¥© ç¥â¢ñન. Œë
㢨¤¨¬ ¢ à §¤¥«¥ 4.3, ª ª ¬®¦­® ®¡®©â¨ íâã âà㤭®áâì (á¬. â ª¦¥
§ ¤ çã 4-5).
4
4
„¥à¥¢ìï ४ãàᨨ
à®æ¥áá ¯®¤áâ ­®¢ª¨ ᮮ⭮襭¨ï ¢ á¥¡ï ¬®¦­® ¨§®¡à §¨âì ¢
¢¨¤¥ ¤¥à¥¢ ४ãàᨨ (recursion tree). Š ª íâ® ¤¥« ¥âáï, ¯®ª § ­® ­ à¨á. 4.1 ­ ¯à¨¬¥à¥ ᮮ⭮襭¨ï
T (n) = 2T (n=2) + n2 :
„«ï 㤮¡á⢠¯à¥¤¯®«®¦¨¬, çâ® n | á⥯¥­ì ¤¢®©ª¨. „¢¨£ ïáì
®â ( ) ª (£), ¬ë ¯®á⥯¥­­® à §¢®à 稢 ¥¬ ¢ëà ¦¥­¨¥ ¤«ï T (n),
¨á¯®«ì§ãï ¢ëà ¦¥­¨ï ¤«ï T (n), T (n=2), T (n=4) ¨ â. ¤. ’¥¯¥àì ¬ë
¬®¦¥¬ ¢ëç¨á«¨âì T (n), ᪫ ¤ë¢ ï §­ 祭¨ï ¢¥à設 ­ ª ¦¤®¬
ã஢­¥.  ¢¥àå­¥¬ ã஢­¥ ¯®«ãç ¥¬ n2, ­ ¢â®à®¬ | (n=2)2 +
(n=2)2 = n2 =2, ­ âà¥â쥬 | (n=4)2 +(n=4)2 +(n=4)2 +(n=4)2 = n2 =4.
®«ãç ¥âáï ã¡ë¢ îé ï £¥®¬¥âà¨ç¥áª ï ¯à®£à¥áá¨ï, á㬬 ª®â®à®©
®â«¨ç ¥âáï ®â ¥ñ ¯¥à¢®£® ç«¥­ ­¥ ¡®«¥¥ 祬 ­ ¯®áâ®ï­­ë© ¬­®¦¨â¥«ì. ˆâ ª, T (n) = (n2).
 à¨á. 4.2 ¯®ª § ­ ¡®«¥¥ á«®¦­ë© ¯à¨¬¥à | ¤¥à¥¢® ¤«ï ᮮ⭮襭¨ï
T (n) = T (n=3) + T (2n=3) + n
à¥®¡à §®¢ ­¨¥ ¢ á㬬ã
55
Total=¢á¥£®
¨áã­®ª 4.1 „¥à¥¢® ४ãàᨨ ¤«ï ᮮ⭮襭¨ï T (n) = 2T (n=2) + n2 . ‚ëá®â ¯®«­®áâìî à §¢¥à­ã⮣® ¤¥à¥¢ (£) à ¢­ lg n (¤¥à¥¢® ¨¬¥¥â lg n + 1 ã஢­¥©).
¨áã­®ª 4.2 „¥à¥¢® ४ãàᨨ ¤«ï ᮮ⭮襭¨ï T (n) = T (n=3) + T (2n=3) + n.
56
ƒ« ¢ 4 ¥ªãà७â­ë¥ ᮮ⭮襭¨ï
(¤«ï ¯à®áâ®âë ¬ë ¢­®¢ì ¨£­®à¨à㥬 ®ªà㣫¥­¨ï). ‡¤¥áì á㬬 §­ 祭¨© ­ ª ¦¤®¬ ã஢­¥ à ¢­ n. „¥à¥¢® ®¡àë¢ ¥âáï, ª®£¤ §­ 祭¨ï à£ã¬¥­â áâ ­®¢ïâáï áà ¢­¨¬ë¬¨ á 1. „«ï à §­ëå ¢¥â¢¥© íâ® ¯à®¨á室¨â ­ à §­®© £«ã¡¨­¥, ¨ á ¬ë© ¤«¨­­ë© ¯ãâì
n ! (2=3)n ! (2=3)2n ! ! 1 âॡã¥â ®ª®«® k = log3=2 n è £®¢
(¯à¨ â ª®¬ k ¬ë ¨¬¥¥¬ (2=3)k n = 1). ®í⮬ã T (n) ¬®¦­® ®æ¥­¨âì
ª ª O(n lg n).
“¯à ¦­¥­¨ï
ˆâ¥à¨àãï (¯®¤áâ ¢«ïï ¢ ᥡï) ᮮ⭮襭¨¥ T (n) =
3T (bn=2c) + n, ­ ©¤¨â¥ å®à®èãî ¢¥àå­îî ᨬ¯â®â¨ç¥áªãî
®æ¥­ªã ¤«ï T (n).
4.2-1
€­ «¨§¨àãï ¤¥à¥¢® ४ãàᨨ, ¯®ª ¦¨â¥, çâ® T (n) =
T (n=3) + T (2n=3) + n ¢«¥çñâ T (n) = (n lg n).
4.2-3  à¨áã©â¥ ¤¥à¥¢® ४ãàᨨ ¤«ï T (n) = 4T (bn=2c) + n ¨ ¯®«ãç¨â¥ ᨬ¯â®â¨ç¥áª¨ â®ç­ë¥ ®æ¥­ª¨ ¤«ï T (n).
4.2-4 ‘ ¯®¬®éìî ¨â¥à 権 à¥è¨â¥ ᮮ⭮襭¨¥ T (n) = T (n ;
a) + T (a) + n, £¤¥ a > 1 | ­¥ª®â®à ï ª®­áâ ­â .
4.2-5 ‘ ¯®¬®éìî ¤¥à¥¢ ४ãàᨨ à¥è¨â¥ ᮮ⭮襭¨¥ T (n) =
T (n) + T ((1 ; )n) + n, £¤¥ | ª®­áâ ­â ¢ ¨­â¥à¢ «¥ 0 < < 1.
4.2-2
4.3 Ž¡é¨© à¥æ¥¯â
â®â ¬¥â®¤ £®¤¨âáï ¤«ï ४ãà७â­ëå ᮮ⭮襭¨© ¢¨¤ T (n) = aT (n=b) + f (n);
(4.5)
£¤¥ a > 1 ¨ b > 1 | ­¥ª®â®àë¥ ª®­áâ ­âë, f | ¯®«®¦¨â¥«ì­ ï
(¯® ªà ©­¥© ¬¥à¥ ¤«ï ¡®«ìè¨å §­ 祭¨© à£ã¬¥­â ) äã­ªæ¨ï. Ž­
¤ ñâ ®¡éãî ä®à¬ã«ã; § ¯®¬­¨¢ ¥ñ, ¬®¦­® à¥è âì ¢ 㬥 à §«¨ç­ë¥
४ãà७â­ë¥ ᮮ⭮襭¨ï.
‘®®â­®è¥­¨¥ (4.5) ¢®§­¨ª ¥â, ¥á«¨ «£®à¨â¬ à §¡¨¢ ¥â § ¤ çã
à §¬¥à n ­ a ¯®¤§ ¤ ç à §¬¥à n=b, í⨠¯®¤§ ¤ ç¨ à¥è îâáï ४ãàᨢ­® (ª ¦¤ ï § ¢à¥¬ï T (n=b)) ¨ १ã«ìâ âë ®¡ê¥¤¨­ïîâáï.
à¨ í⮬ § âà âë ­ à §¡¨¥­¨¥ ¨ ®¡ê¥¤¨­¥­¨¥ ®¯¨áë¢ îâáï ä㭪樥© f (n) (¢ ®¡®§­ 祭¨ïå à §¤¥« 1.3.2 f (n) = C (n) + D(n)).  ¯à¨¬¥à, ¤«ï ¯à®æ¥¤ãàë Merge-Sort ¬ë ¨¬¥¥¬ a = 2, b = 2,
f (n) = (n).
Š ª ¢á¥£¤ , ¢ ä®à¬ã«¥ (4.5) ¢®§­¨ª ¥â ¯à®¡«¥¬ á ®ªà㣫¥­¨¥¬:
n=b ¬®¦¥â ­¥ ¡ëâì 楫ë¬. ”®à¬ «ì­® á«¥¤®¢ «® ¡ë § ¬¥­¨âì
Ž¡é¨© à¥æ¥¯â
57
T (n=b) ­ T (bn=bc) ¨«¨ T (dn=be). Ž¡ ¢ ਠ­â , ª ª ¬ë 㢨¤¨¬
¢ á«¥¤ãî饬 à §¤¥«¥, ¯à¨¢®¤ïâ ª ®¤­®¬ã ¨ ⮬㠦¥ ®â¢¥âã, ¨ ¤«ï
¯à®áâ®âë ¬ë ¡ã¤¥¬ ®¯ã᪠âì ®ªà㣫¥­¨¥ ¢ ­ è¨å ä®à¬ã« å.
Žá­®¢­ ï ⥮६ ® ४ãà७â­ëå ®æ¥­ª å
’¥®à¥¬ 4.1. ãáâì a > 1 ¨ b > 1 | ª®­áâ ­âë, f (n) | äã­ªæ¨ï,
T (n) ®¯à¥¤¥«¥­® ¯à¨ ­¥®âà¨æ ⥫ì­ëå n ä®à¬ã«®©
T (n) = aT (n=b) + f (n);
£¤¥ ¯®¤ n=b ¯®­¨¬ ¥âáï «¨¡® dn=be, «¨¡® bn=bc. ’®£¤ :
1. …᫨ f (n) = O(nlogb a;" ) ¤«ï ­¥ª®â®à®£® " > 0, â® T (n) =
(nlogb a ).
2. …᫨ f (n) = (nlogb a ), â® T (n) = (nlogb a lg n).
3. …᫨ f (n) = (nlogb a+" ) ¤«ï ­¥ª®â®à®£® " > 0 ¨ ¥á«¨ af (n=b) 6
cf (n) ¤«ï ­¥ª®â®à®© ª®­áâ ­âë c < 1 ¨ ¤®áâ â®ç­® ¡®«ìè¨å n,
â® T (n) = (f (n)).
‚ çñ¬ áãâì í⮩ ⥮६ë? ‚ ª ¦¤®¬ ¨§ âàñå á«ãç ¥¢ ¬ë áà ¢­¨¢ ¥¬ f (n) á nlogb a; ¥á«¨ ®¤­ ¨§ íâ¨å ä㭪権 à áâñâ ¡ëáâ॥ ¤à㣮©, â® ®­ ¨ ®¯à¥¤¥«ï¥â ¯®à冷ª à®áâ T (n) (á«ãç ¨ 1 ¨ 3). …᫨
®¡¥ ä㭪樨 ®¤­®£® ¯®à浪 (á«ãç © 2), â® ¯®ï¢«ï¥âáï ¤®¯®«­¨â¥«ì­ë© «®£ à¨ä¬¨ç¥áª¨© ¬­®¦¨â¥«ì ¨ ®â¢¥â®¬ á«ã¦¨â ä®à¬ã« (nlogb a lg n) = (f (n) lg n).
Žâ¬¥â¨¬ ¢ ¦­ë¥ â¥å­¨ç¥áª¨¥ ¤¥â «¨. ‚ ¯¥à¢®¬ á«ãç ¥ ­¥¤®áâ â®ç­®, ç⮡ë f (n) ¡ë« ¯à®áâ® ¬¥­ìè¥, 祬 nlogb a: ­ ¬ ­ã¦¥­ "§ §®à" à §¬¥à n" ¤«ï ­¥ª®â®à®£® " > 0. ’®ç­® â ª ¦¥ ¢ âà¥â쥬
á«ãç ¥ f (n) ¤®«¦­ ¡ëâì ¡®«ìè¥ nlogb a á § ¯ ᮬ, ¨ ª ⮬㠦¥
㤮¢«¥â¢®àïâì ãá«®¢¨î "ॣã«ïà­®áâ¨" af (n=b) 6 cf (n); ¯à®¢¥àª ¯®á«¥¤­¥£® ãá«®¢¨ï, ª ª ¯à ¢¨«®, ­¥ á®áâ ¢«ï¥â âà㤠.
‡ ¬¥â¨¬, çâ® âਠ㪠§ ­­ëå á«ãç ï ­¥ ¨áç¥à¯ë¢ îâ ¢á¥å ¢®§¬®¦­®á⥩: ¬®¦¥â ®ª § âìáï, ­ ¯à¨¬¥à, çâ® äã­ªæ¨ï f (n) ¬¥­ìè¥,
祬 nlogb a, ­® § §®à ­¥¤®áâ â®ç­® ¢¥«¨ª ¤«ï ⮣®, çâ®¡ë ¢®á¯®«ì§®¢ âìáï ¯¥à¢ë¬ ã⢥ত¥­¨¥¬ ⥮६ë. €­ «®£¨ç­ ï "饫ì" ¥áâì ¨
¬¥¦¤ã á«ãç ﬨ 2 ¨ 3.  ª®­¥æ, äã­ªæ¨ï ¬®¦¥â ­¥ ®¡« ¤ âì ᢮©á⢮¬ ॣã«ïà­®áâ¨.
à¨¬¥­¥­¨ï ®á­®¢­®© ⥮६ë
 áᬮâਬ ­¥áª®«ìª® ¯à¨¬¥à®¢, £¤¥ ¯à¨¬¥­¥­¨¥ â¥®à¥¬ë ¯®§¢®«ï¥â áà §ã ¦¥ ¢ë¯¨á âì ®â¢¥â.
„«ï ­ ç « à áᬮâਬ ᮮ⭮襭¨¥
T (n) = 9T (n=3) + n:
‚ í⮬ á«ãç ¥ a = 9, b = 3, f (n) = n, nlogb a = nlog 9 = (n2).
3
58
ƒ« ¢ 4 ¥ªãà७â­ë¥ ᮮ⭮襭¨ï
®áª®«ìªã f (n) = O(nlog 9;" ) ¤«ï " = 1, ¬ë ¯à¨¬¥­ï¥¬ ¯¥à¢®¥
ã⢥ত¥­¨¥ â¥®à¥¬ë ¨ § ª«îç ¥¬, çâ® T (n) = (n2).
’¥¯¥àì à áᬮâਬ ᮮ⭮襭¨¥
T (n) = T (2n=3) + 1:
3
‡¤¥áì a = 1, b = 3=2, f (n) = 1 ¨ nlogb a = nlog = 1 = n0 = 1. ®¤å®¤¨â
á«ãç © 2, ¯®áª®«ìªã f (n) = (nlogb a) = (1), ¨ ¬ë ¯®«ãç ¥¬, çâ®
T (n) = (lg n).
„«ï ᮮ⭮襭¨ï
T (n) = 3T (n=4) + n lg n
¬ë ¨¬¥¥¬ a = 3, b = 4, f (n) = n lg n; ¯à¨ í⮬ nlogb a =
nlog 3 = O(n0;793). ‡ §®à (á " 0;2) ¥áâì, ®áâ ñâáï ¯à®¢¥à¨âì ãá«®¢¨¥ ॣã«ïà­®áâ¨. „«ï ¤®áâ â®ç­® ¡®«ì讣® n ¨¬¥¥¬ af (n=b) =
3(n=4) lg(n=4) 6 (3=4)n lg n = cf (n) ¤«ï c = 3=4. ’¥¬ á ¬ë¬ ¯®
âà¥â쥬ã ã⢥ত¥­¨î ⥮६ë T (n) = (n lg n).
‚®â ¯à¨¬¥à, ª®£¤ ⥮६㠯ਬ¥­¨âì ­¥ 㤠ñâáï: ¯ãáâì T (n) =
2T (n=2) + n lg n. ‡¤¥áì a = 2, b = 2, f (n) = n lg n, nlogb a = n. ‚¨¤­®,
çâ® f (n) = n lg n ᨬ¯â®â¨ç¥áª¨ ¡®«ìè¥, 祬 nlogb a, ­® § §®à ­¥¤®áâ â®ç¥­: ®â­®è¥­¨¥ f (n)=nlogb a = (n lg n)=n = lg n ­¥ ®æ¥­¨¢ ¥âáï
á­¨§ã ¢¥«¨ç¨­®© n" ­¨ ¤«ï ª ª®£® " > 0. â® ᮮ⭮襭¨¥ ¯®¯ ¤ ¥â
¢ ¯à®¬¥¦ã⮪ ¬¥¦¤ã á«ãç ﬨ 2 ¨ 3; ¤«ï ­¥£® ¬®¦­® ¯®«ãç¨âì ®â¢¥â ¯® ä®à¬ã«¥ ¨§ ã¯à. 4.4-2.
3 2
4
“¯à ¦­¥­¨ï
ˆá¯®«ì§ãï ®á­®¢­ãî ⥮६ã, ­ ©¤¨â¥ ᨬ¯â®â¨ç¥áª¨ â®ç­ë¥ ®æ¥­ª¨ ¤«ï ᮮ⭮襭¨ï
. T (n) = 4T (n=2) + n;
¡. T (n) = 4T (n=2) + n2;
¢. T (n) = 4T (n=2) + n3.
4.3-2 ‚६ï à ¡®âë «£®à¨â¬ A ®¯¨áë¢ ¥âáï ᮮ⭮襭¨¥¬
T (n) = 7T (n=2)+n2, ¢à¥¬ï à ¡®âë «£®à¨â¬ A0 | ᮮ⭮襭¨¥¬
T 0(n) = aT 0(n=4)+ n2 . à¨ ª ª®¬ ­ ¨¡®«ì襬 楫®¬ §­ 祭¨¨ a «£®à¨â¬ A0 ᨬ¯â®â¨ç¥áª¨ ¡ëáâ॥, 祬 A?
4.3-3 ˆá¯®«ì§ãï ®á­®¢­ãî ⥮६ã, ¯®ª ¦¨â¥, ç⮠ᮮ⭮襭¨¥
T (n) = T (n=2) + (1) (¤«ï ¤¢®¨ç­®£® ¯®¨áª , á¬. ã¯à. 1.3-5) ¢«¥çñâ
T (n) = (lg n).
4.3-4 ®ª ¦¨â¥, çâ® ãá«®¢¨ï ॣã«ïà­®á⨠(á«ãç © 3) ­¥ ¢ë⥪ ¥â ¨§ ¤à㣨å ãá«®¢¨©: ¯à¨¢¥¤¨â¥ ¯à¨¬¥à ä㭪樨 f , ¤«ï ª®â®à®©
áãé¥áâ¢ã¥â âॡ㥬 ï ª®­áâ ­â ", ­® ãá«®¢¨¥ ॣã«ïà­®á⨠­¥ ¢ë¯®«­¥­®.
4.3-1
4.4 „®ª § ⥫ìá⢮ ’¥®à¥¬ë 4.1
59
? 4.4 „®ª § ⥫ìá⢮ ’¥®à¥¬ë 4.1
Œë ¯à¨¢¥¤ñ¬ ¤®ª § ⥫ìá⢮ ⥮६ë 4.1 ¤«ï ¤®â®è­ëå ç¨â ⥫¥©; ¢ ¤ «ì­¥©è¥¬ ®­® ­¥ ¯®­ ¤®¡¨âáï, â ª çâ® ¯à¨ ¯¥à¢®¬ ç⥭¨¨
¥£® ¢¯®«­¥ ¬®¦­® ¯à®¯ãáâ¨âì.
„®ª § ⥫ìá⢮ á®á⮨⠨§ ¤¢ãå ç á⥩. ‘­ ç « ¬ë à áᬠâਢ ¥¬ ⮫쪮 ⥠n, ª®â®àë¥ ï¢«ïîâáï á⥯¥­ï¬¨ ç¨á« b; ¢á¥ ®á­®¢­ë¥ ¨¤¥¨ ¢¨¤­ë 㦥 ¤«ï í⮣® á«ãç ï. ‡ ⥬ ¯®«ã祭­ë© १ã«ìâ â
à á¯à®áâà ­ï¥âáï ­ ¢á¥ ­ âãà «ì­ë¥ ç¨á« , ¯à¨ í⮬ ¬ë ªªãà â­® á«¥¤¨¬ § ®ªà㣫¥­¨ï¬¨ ¨ â. ¯.
‚ í⮬ à §¤¥«¥ ¬ë ¯®§¢®«¨¬ ᥡ¥ ­¥ ᮢᥬ ª®à४⭮ ®¡à é âìáï á ᨬ¯â®â¨ç¥áª®© § ¯¨áìî: ¡ã¤¥¬ ¨á¯®«ì§®¢ âì ¥ñ ¤«ï
ä㭪権, ®¯à¥¤¥«ñ­­ëå ⮫쪮 ­ á⥯¥­ïå ç¨á« b, å®âï ®¯à¥¤¥«¥­¨¥ âॡã¥â, çâ®¡ë ®æ¥­ª¨ ¤®ª §ë¢ «¨áì ¤«ï ¢á¥å ¤®áâ â®ç­® ¡®«ìè¨å ­ âãà «ì­ëå ç¨á¥«.
ˆ§ ª®­â¥ªá⠡㤥⠯®­ïâ­®, çâ® ¨¬¥¥âáï ¢ ¢¨¤ã, ­® ­ã¦­® ¡ëâì
¢­¨¬ ⥫ì­ë¬, çâ®¡ë ­¥ § ¯ãâ âìáï: ¥á«¨ ® ä㭪樨 T (n) ­¨ç¥£®
­¥ ¨§¢¥áâ­®, â® ®æ¥­ª T (n) = O(n) ¤«ï n, ïîé¨åáï á⥯¥­ï¬¨
¤¢®©ª¨, ­¨ç¥£® ­¥ £ à ­â¨àã¥â ¤«ï ¯à®¨§¢®«ì­ëå n. (‚®§¬®¦­®,
çâ® T (n) = n ¯à¨ n = 1; 2; 4; 8; : : : ¨ T (n) = n2 ¯à¨ ®áâ «ì­ëå n.)
4.4.1 ‘«ãç © ­ âãà «ì­ëå á⥯¥­¥©
ãáâì T (n) ®¯à¥¤¥«¥­® ¤«ï ç¨á¥«, ïîé¨åáï (­ âãà «ì­ë¬¨)
á⥯¥­ï¬¨ ç¨á« b > 1 (­¥ ®¡ï§ ⥫쭮 楫®£®) ¨ 㤮¢«¥â¢®àï¥â
ᮮ⭮襭¨î (4.5), â. ¥.
T (n) = aT (n=b) + f (n):
Œë ¯®«ã稬 ®æ¥­ªã ¤«ï T â ª: ¯¥à¥©¤ñ¬ ®â í⮣® ᮮ⭮襭¨ï
ª á㬬¨à®¢ ­¨î («¥¬¬ 4.2), § ⥬ ®æ¥­¨¬ ¯®«ã祭­ãî á㬬ã
(«¥¬¬ 4.3) ¨ ¯®¤¢¥¤ñ¬ ¨â®£¨ («¥¬¬ 4.4).
‹¥¬¬ 4.2. ãáâì a > 1, b > 1 | ª®­áâ ­âë, ¨ ¯ãáâì f (n) |
­¥®âà¨æ â¥«ì­ ï äã­ªæ¨ï, ®¯à¥¤¥«ñ­­ ï ­ á⥯¥­ïå b. ãáâì
T (n) | äã­ªæ¨ï, ®¯à¥¤¥«ñ­­ ï ­ á⥯¥­ïå b ᮮ⭮襭¨¥¬
T (n) = aT (n=b) + f (n) ¯à¨ n > 1, ¯à¨çñ¬ T (1) > 0. ’®£¤ T (n) = (nlogb a ) +
logX
b n;1
j =0
aj f (n=bj ):
(4.6)
60
ƒ« ¢ 4 ¥ªãà७â­ë¥ ᮮ⭮襭¨ï
¨áã­®ª 4.3 „¥à¥¢® ४ãàᨨ ¤«ï ᮮ⭮襭¨ï T (n) = aT (n=b) + f (n) ï¥âáï ¯®«­ë¬ a-¨ç­ë¬ ¤¥à¥¢®¬ ¢ëá®âë logb n á nlog b a . ‘㬬 ¢¥á®¢ ¯® ã஢­ï¬
¯®ª § ­ á¯à ¢ , ®¡é ï á㬬 ¤ ñâáï ä®à¬ã«®© (4.6).
„®ª § ⥫ìá⢮. ®á«¥¤®¢ ⥫쭮 ¯®¤áâ ¢«ïï ᮮ⭮襭¨¥ á ¬®
¢ ᥡï, ¯®«ãç ¥¬
T (n) = f (n) + aT (n=b)
= f (n) + af (n=b) + a2T (n=b2)
= f (n) + af (n=b) + a2f (n=b2) + : : :
+ alogb n;1 f (n=blogb n;1 ) + alogb n T (1):
®áª®«ìªã alogb n = nlogb a, ¯®á«¥¤­¨© ç«¥­ ¬®¦¥â ¡ëâì § ¯¨á ­ ª ª
(nlogb a ). Žá⠢訥áï ç«¥­ë ®¡à §ãîâ á㬬ã, 䨣ãà¨àãîéãî ¢
ã⢥ত¥­¨¨ «¥¬¬ë.
„¥à¥¢® ४ãàᨨ
„®ª § ⥫ìá⢮ «¥¬¬ë 4.2 ¬®¦­® ¯®ïá­¨âì ¢ â¥à¬¨­ å ¤¥à¥¢ ४ãàᨨ (à¨á. 4.3), ¥á«¨ ç¨á«® a 楫®¥ (å®âï á ¬® ¤®ª § ⥫ìá⢮
í⮣® ­¥ âॡã¥â). ‚ ª®à­¥ á⮨â ç¨á«® f (n), ¢ ª ¦¤®¬ ¨§ a ¥£®
¤¥â¥© á⮨â ç¨á«® f (n=b), ¢ ª ¦¤®¬ ¨§ a2 ¢­ãª®¢ á⮨â f (n=b2)
¨ â. ¤.  ã஢­¥ j ¨¬¥¥âáï aj ¢¥à設; ¢¥á ª ¦¤®© | f (n=bj ). ‹¨áâìï
­ 室ïâáï ­ à ááâ®ï­¨¨ logb n ®â ª®à­ï, ¨ ¨¬¥îâ ¯®«®¦¨â¥«ì­ë©
¢¥á T (1); ¢á¥£® ­ ¤¥à¥¢¥ alogb n = nlogb a «¨áâ쥢.
4.4 „®ª § ⥫ìá⢮ ’¥®à¥¬ë 4.1
61
 ¢¥­á⢮ (4.6) ¯®«ãç ¥âáï, ¥á«¨ á«®¦¨âì ¢¥á ­ ¢á¥å ã஢­ïå:
®¡é¨© ¢¥á ­ j -¬ ã஢­¥ ¥áâì aj f (n=bj ), ®¡é¨© ¢¥á ¢­ãâ७­¥©
ç á⨠¤¥à¥¢ ¥áâì
logX
b n;1
aj f (n=bj ):
j =0
…᫨ ४ãà७⭮¥ ᮮ⭮襭¨¥ ¯à®¨§®è«® ¨§ «£®à¨â¬ ⨯ "à §¤¥«ï© ¨ ¢« áâ¢ã©", íâ á㬬 ®âà ¦ ¥â á⮨¬®áâì à §¡¨¥­¨ï
§ ¤ ç¨ ­ ¯®¤§ ¤ ç¨ ¨ ®¡ê¥¤¨­¥­¨ï à¥è¥­¨©. ‘㬬 à­ë© ¢¥á ¢á¥å
«¨áâ쥢 ¥áâì á⮨¬®áâì à¥è¥­¨ï ¢á¥å nlogb a § ¤ ç à §¬¥à 1, ª®â®à ï á®áâ ¢«ï¥â (nlogb a).
‚ â¥à¬¨­ å ¤¥à¥¢ ४ãàᨨ «¥£ª® ®¡êïá­¨âì, 祬ã ᮮ⢥âáâ¢ãîâ âਠá«ãç ï ¢ ä®à¬ã«¨à®¢ª¥ ®á­®¢­®© ⥮६ë. ‚ ¯¥à¢®¬
á«ãç ¥ ®á­®¢­ ï ç áâì ¢¥á á®á।®â®ç¥­ ¢ «¨áâìïå, ¢ âà¥â쥬 |
¢ ª®à­¥, ¢® ¢â®à®¬ ¢¥á à ¢­®¬¥à­® à á¯à¥¤¥«ñ­ ¯® ã஢­ï¬ ¤¥à¥¢ .
’¥¯¥àì ®æ¥­¨¬ ¢¥«¨ç¨­ã áã¬¬ë ¢ ä®à¬ã«¥ (4.6).
‹¥¬¬ 4.3. ãáâì a > 1, b > 1 | ª®­áâ ­âë, f (n) | ­¥®âà¨æ â¥«ì­ ï äã­ªæ¨ï, ®¯à¥¤¥«ñ­­ ï ­ ­ âãà «ì­ëå á⥯¥­ïå b.  áᬮâਬ äã­ªæ¨î g(n), ®¯à¥¤¥«ñ­­ãî ä®à¬ã«®©
g (n) =
logX
b n;1
j =0
aj f (n=bj )
(4.7)
(¤«ï n, ïîé¨åáï á⥯¥­ï¬¨ b). ’®£¤ 1. …᫨ f (n) = O(nlogb a;" ) ¤«ï ­¥ª®â®à®© ª®­áâ ­âë " > 0, â®
g(n) = O(nlogb a).
2. …᫨ f (n) = (nlogb a ), â® g (n) = (nlogb a lg n).
3. …᫨ af (n=b) 6 cf (n) ¤«ï ­¥ª®â®à®© ª®­áâ ­âë c < 1 ¨ ¤«ï
¢á¥å n > b, â® g(n) = (f (n)).
„®ª § ⥫ìá⢮. 1. ‚ ¯¥à¢®¬ á«ãç ¥ ¤®áâ â®ç­® ¤®ª § âì ã⢥ত¥­¨¥ «¥¬¬ë ¤«ï ä㭪樨 f (n) = n, £¤¥ = logb a ; " „«ï â ª®© ä㭪樨 f à ¢¥­á⢮ (4.7) ¬®¦¥â ¡ëâì ¯¥à¥¯¨á ­® â ª: (⥯¥àì
= logb a)
g (n) = f (n) + af (n=b) + a2f (n=b2) + : : : + ak;1f (n=bk;1)
= n + a(n=b) + a2 (n=b2) + : : : + ak;1 (n=bk;1) ; (4.8)
¯à ¢ ï ç áâì ¯à¥¤áâ ¢«ï¥â ᮡ®© £¥®¬¥âà¨ç¥áªãî ¯à®£à¥áá¨î
¤«¨­ë k = logb n á® §­ ¬¥­ ⥫¥¬ a=b; íâ®â §­ ¬¥­ â¥«ì ¡®«ìè¥ 1,
â ª ª ª < logb a ¨ b < a. „«ï â ª®© ¯à®£à¥á¨¨ á㬬 ¯® ¯®à浪ã
à ¢­ ¯®á«¥¤­¥¬ã ç«¥­ã (®â«¨ç ¥âáï ®â ­¥£® ­¥ ¡®«¥¥ 祬 ­ ª®­áâ ­âã à §). â®â ¯®á«¥¤­¨© ç«¥­ ¥áâì O(ak ) = O(nlogb a).
„«ï ¯¥à¢®£® á«ãç ï ã⢥ত¥­¨¥ «¥¬¬ë ¤®ª § ­®.
62
ƒ« ¢ 4 ¥ªãà७â­ë¥ ᮮ⭮襭¨ï
2. ‚® ¢â®à®¬ á«ãç ¥ ­ «®£¨ç­®¥ à áá㦤¥­¨¥ ¤ ñâ á㬬ã ⮣®
¦¥ ¢¨¤ :
g(n) = f (n) + af (n=b) + a2 f (n=b2) + : : :
= n + a(n=b) + a2 (n=b2) + : : : ;
(4.9)
­® ⥯¥àì = logb a ¨ ¯®â®¬ã §­ ¬¥­ â¥«ì £¥®¬¥âà¨ç¥áª®© ¯à®£à¥áᨨ à ¢¥­ 1 ¨ ¢á¥ ¥ñ ç«¥­ë à ¢­ë. ˆå ç¨á«® ¥áâì logb n, ¨ ¯®â®¬ã
á㬬 à ¢­ nlogb a logb n = (nlogb a lg n):
‘«ãç © 2 à §®¡à ­.
3. ‚ í⮬ á«ãç ¥ ãá«®¢¨¥ ॣã«ïà­®á⨠ä㭪樨 f £ à ­â¨àã¥â, çâ® ¢ ­ 襩 á㬬¥ ª ¦¤ë© á«¥¤ãî騩 ç«¥­ ­¥ ¯à¥¢®á室¨â
¯à¥¤ë¤ã饣®, 㬭®¦¥­­®£® ­ c < 1. ’¥¬ á ¬ë¬ ¥ñ ¬®¦­® ®æ¥­¨âì ᢥàåã ã¡ë¢ î饩 £¥®¬¥âà¨ç¥áª®© ¯à®£à¥áᨥ© á® §­ ¬¥­ ⥫¥¬ c, ¨ á㬬 â ª®© ¯à®£à¥áᨨ ­¥ ¡®«¥¥ 祬 ¢ ª®­áâ ­âã (à ¢­ãî
1=(1 ; c)) à § ¯à¥¢®á室¨â ¯¥à¢ë© ç«¥­ (­® ¨ ­¥ ¬¥­ìè¥ ¥£®, â ª ª ª
¢á¥ á« £ ¥¬ë¥ ­¥®âà¨æ ⥫ì­ë). ’ ª¨¬ ®¡à §®¬, g(n) = (f (n))
¤«ï n, ïîé¨åáï á⥯¥­ï¬¨ b. „®ª § ⥫ìá⢮ «¥¬¬ë § ¢¥à襭®.
’¥¯¥àì ¬ë ¬®¦¥¬ ¤®ª § âì ®á­®¢­ãî ⥮६㠮 ४ãà७â­ëå
®æ¥­ª å ¤«ï á«ãç ï, ª®£¤ n ¥áâì ­ âãà «ì­ ï á⥯¥­ì b.
‹¥¬¬ 4.4. ãáâì a > 1, b > 1 | ª®­áâ ­âë, ¨ ¯ãáâì f (n) |
­¥®âà¨æ â¥«ì­ ï äã­ªæ¨ï, ®¯à¥¤¥«ñ­­ ï ­ á⥯¥­ïå b. ãáâì
T (n) | äã­ªæ¨ï, ®¯à¥¤¥«ñ­­ ï ­ á⥯¥­ïå b ᮮ⭮襭¨¥¬
T (n) = aT (n=b) + f (n) ¯à¨ n > 1 ¨ T (1) > 0. ’®£¤ :
1. …᫨ f (n) = O(nlogb a;" ) ¤«ï ­¥ª®â®à®£® " > 0, â® T (n) =
(nlogb a ).
2. …᫨ f (n) = (nlogb a ), â® T (n) = (nlogb a ) lg n.
3. …᫨ f (n) = (nlogb a+" ) ¤«ï ­¥ª®â®à®£® " > 0 ¨ ¥á«¨ af (n=b) 6
cf (n) ¤«ï ­¥ª®â®à®© ª®­áâ ­âë c < 1 ¨ ¤«ï ¤®áâ â®ç­® ¡®«ìè¨å n, â® T (n) = (f (n)).
??????? Š ª ã¡à âì â®çªã ¢ ª®­æ¥ á«®¢ „®ª § ⥫ìá⢮?
„®ª § ⥫ìá⢮. á®á⮨⠢ ª®¬¡¨­ 樨 «¥¬¬ 4.2 ¨ 4.3. ‚ ¯¥à¢®¬
á«ãç ¥ ¯®«ãç ¥¬
T (n) = (nlogb a ) + O(nlogb a ) = (nlogb a):
‚® ¢â®à®¬ á«ãç ¥ ¨¬¥¥¬
T (n) = (nlogb a ) + (nlogb a lg n) = (nlogb a lg n):
‚ âà¥â쥬 á«ãç ¥
T (n) = (nlogb a) + (f (n)) = (f (n)):
4.4 „®ª § ⥫ìá⢮ ’¥®à¥¬ë 4.1
63
‡ ¬¥â¨¬, çâ® ¢ ¯®á«¥¤­¥¬ á«ãç ¥ ãá«®¢¨¥ "f (n) = (nlogb a+") ¤«ï
­¥ª®â®à®£® " > 0" ¬®¦­® ¡ë«® ¡ë ®¯ãáâ¨âì, â ª ª ª ®­® ¢ë⥪ ¥â
¨§ ãá«®¢¨ï ॣã«ïà­®á⨠(á¬. ã¯à. 4.4-3).
‹¥¬¬ 4.4 ¤®ª § ­ .
4.4.2 –¥«ë¥ ¯à¨¡«¨¦¥­¨ï ᢥàåã ¨ á­¨§ã
 ¬ ®áâ «®áì à §®¡à âìáï ¯®¤à®¡­® á ¯à®¨§¢®«ì­ë¬¨ n, ­¥ ïî騬¨áï á⥯¥­ï¬¨ ç¨á« b. ‚ í⮬ á«ãç ¥ n=b ¯®¤«¥¦¨â ®ªà㣫¥­¨î ¨ ᮮ⭮襭¨¥ ¨¬¥¥â ¢¨¤
T (n) = aT (dn=be) + f (n)
(4.10)
¨«¨
T (n) = aT (bn=bc) + f (n):
(4.11)
 ¤® ã¡¥¤¨âìáï, çâ® ®æ¥­ª ®áâ ñâáï ¢ ᨫ¥ ¨ ¤«ï í⮣® á«ãç ï.
®á¬®âਬ, ª ª¨¥ ¨§¬¥­¥­¨ï ­ ¤® ¢­¥á⨠¢ ­ è¨ à áá㦤¥­¨ï.
‚¬¥áâ® ¯®á«¥¤®¢ ⥫쭮á⨠n; n=b; n=b2; : : : ⥯¥àì ­ ¤® à áᬠâਢ âì ¯®á«¥¤®¢ ⥫쭮áâì ni, ®¯à¥¤¥«ñ­­ãî â ª:
(
ni =
n;
¥á«¨ i = 0,
dni;1 =be; ¥á«¨ i > 0.
(4.12)
(¬ë à áᬠâਢ ¥¬ á«ãç © ®ªà㣫¥­¨ï á ¨§¡ë⪮¬). â ¯®á«¥¤®¢ ⥫쭮áâì | ã¡ë¢ îé ï, ­® ­¥ ®¡ï§ ⥫쭮 áâ६¨âáï ª ¥¤¨­¨æ¥.
Ž¤­ ª® ¬ë ¬®¦¥¬ ã⢥ত âì, çâ® ¯®á«¥ logb n ¨â¥à 権 ¯®«ãç¨âáï ç¨á«®, ®£à ­¨ç¥­­®¥ ­¥ § ¢¨áï饩 ®â n (å®âï § ¢¨áï饩 ®â b)
ª®­á⠭⮩.
‚ á ¬®¬ ¤¥«¥, ¨§ ­¥à ¢¥­á⢠dxe 6 x + 1 á«¥¤ã¥â, çâ®
n0 6 n;
n1 6 nb + 1;
n2 6 bn2 + 1b + 1;
n3 6 bn3 + b12 + 1b + 1;
::::::::::::::::::::::
®áª®«ìªã 1 + 1=b + 1=b2 + : : : 6 1=(b ; 1), ¤«ï i = blogb nc ¬ë
¯®«ãç ¥¬ ni 6 n=bi + b=(b ; 1) 6 b + b=(b ; 1) = O(1).
64
ƒ« ¢ 4 ¥ªãà७â­ë¥ ᮮ⭮襭¨ï
ˆâ¥à¨àãï ᮮ⭮襭¨¥ (4.10), ¬ë ¯®«ãç ¥¬
T (n) = f (n0) + aT (n1)
= f (n0) + af (n1 ) + a2 T (n2)
6 f (n0) + af (n1) + a2f (n2) + : : : +
+ ablogb nc;1 f (nblogb nc;1 ) + ablogb nc T (nblogb nc )
= (nlogb a ) +
blogX
b nc;1
j =0
aj f (nj ):
(4.13)
â® ¢ëà ¦¥­¨¥ ®ç¥­ì ¯®å®¦¥ ­ (4.6), ⮫쪮 §¤¥áì n ­¥ ®¡ï§ ­®
¡ëâì á⥯¥­ìî ç¨á« b.
[‘âண® £®¢®àï, ᪠§ ­­®¥ âॡã¥â ­¥ª®â®àëå ãâ®ç­¥­¨©. „¥«®
¢ ⮬, çâ® ¢¥«¨ç¨­ T (ndlog bne ) ¬®¦¥â ®ª § âìáï à ¢­®© ­ã«î. ®
¬ë §­ ¥¬, çâ® f (n) ᨬ¯â®â¨ç¥áª¨ ¯®«®¦¨â¥«ì­ , â. ¥. ¯®«®¦¨â¥«ì­ ¤«ï ¢á¥å n, ­ 稭 ï á ­¥ª®â®à®£® n0. ®í⮬㠢 à §¢ñàâë¢ ­¨¨ áã¬¬ë ­ã¦­® ®áâ ­®¢¨âìáï, ­¥¬­®£® ­¥ ¤®©¤ï ¤® í⮣® n0. Œë
®¯ã᪠¥¬ ¯®¤à®¡­®áâ¨.]
’¥¯¥àì ­ ¤® à §®¡à âìáï á ᮮ⭮襭¨ï¬¨ ¬¥¦¤ã á« £ ¥¬ë¬¨ ¢
á㬬¥
g (n) =
blogX
b nc;1
j =0
aj f (nj ):
(4.14)
 ­ìè¥ ¬ë áà ¢­¨¢ «¨ íâã á㬬ã á £¥®¬¥âà¨ç¥áª®© ¯à®£à¥áᨥ©, ¢ ª®â®à®© §­ ¬¥­ â¥«ì ¡ë« ¡®«ìè¥ ¥¤¨­¨æë (¯¥à¢ë© á«ãç ©), à ¢¥­ ¥¤¨­¨æ¥ (¢â®à®© á«ãç ©) ¨«¨ ¬¥­ìè¥ ¥¤¨­¨æë (âà¥â¨© á«ãç ©). ’à¥â¨© á«ãç © ­¥ ¢ë§ë¢ ¥â ¤®¯®«­¨â¥«ì­ëå ¯à®¡«¥¬, â ª ª ª ¢ ãá«®¢¨¨ ॣã«ïà­®á⨠⠪¦¥ ¯à¥¤ãᬠâਢ ¥âáï
®ªà㣫¥­¨¥ (¯à¨çñ¬ ¢ âã ¦¥ áâ®à®­ã, çâ® ¨ ¢ ४ãà७⭮¬ ᮮ⭮襭¨¨). ‚® ¢â®à®¬ á«ãç ¥ ¬ë ¤®«¦­ë ®æ¥­¨âì, ­ ᪮«ìª®
¢¥«¨ª¨ ¨§¬¥­¥­¨ï ¢á«¥¤á⢨¥ § ¬¥­ë n=bi ­ ni . Š ª ¬ë ¢¨¤¥«¨, à §­¨æ ­¥ ¯à¥¢®á室¨â b=(b ; 1), ­® ­ ¤® ¥éñ ®â ¡á®«îâ­®© ®è¨¡ª¨ ¯¥à¥©â¨ ª ®â­®á¨â¥«ì­®©.  ¬ ­ ¤® ¯à®¢¥à¨âì, çâ®
f (nj ) = O(nlogb a=aj ) = O((n=bj )logb a ), ⮣¤ ¯à®å®¤¨â ¤®ª § ⥫ìá⢮ «¥¬¬ë 4.3 (á«ãç © 2). ‡ ¬¥â¨¬, çâ® bj =n 6 1 ¯à¨ j 6 blogb nc.
ˆ§ ®æ¥­ª¨ f (n) = O(nlogb a) ¢ë⥪ ¥â, çâ® ¤«ï ¯®¤å®¤ï饣® c ¨ ¤®-
‡ ¤ ç¨ ª £« ¢¥ 4
65
áâ â®ç­® ¡®«ìè¨å nj
logb a
n
b
f (nj ) 6 c bj + b ; 1
log a j
logb a
b
b
b
n
1+ n b;1
= c aj
log a logb a
b
n
b
6 c aj
1+ b;1
log a b
= O n aj :
®á«¥¤­¨© ¯¥à¥å®¤ ¨á¯®«ì§ã¥â â®, çâ® c(1 + b=(b ; 1))logb a | ª®­áâ ­â . ˆâ ª, á«ãç © 2 à §®¡à ­.
 áá㦤¥­¨¥ ¤«ï á«ãç ï 1 ¯®ç⨠⠪®¥ ¦¥. ’ ¬ ­ã¦­® ¤®ª § âì
®æ¥­ªã f (nj ) = O(nlogb a;" ); íâ® ¤¥« ¥âáï ¯à¨¬¥à­® â ª ¦¥, ª ª ¨
¢ á«ãç ¥ 2, å®âï ¯à¥®¡à §®¢ ­¨ï ¡ã¤ãâ ­¥áª®«ìª® á«®¦­¥¥.
ˆâ ª, ¬ë à áᬮâ५¨ á«ãç © ¯à®¨§¢®«ì­®£® n ¤«ï ®ªà㣫¥­¨ï
á ¨§¡ë⪮¬. €­ «®£¨ç­® ¬®¦­® à áᬮâà¥âì á«ãç © ®ªà㣫¥­¨ï á
­¥¤®áâ ⪮¬, ¯à¨ í⮬ ­ã¦­® ¡ã¤¥â ¤®ª §ë¢ âì, çâ® nj ­¥ ¬®¦¥â
¡ëâì ᨫ쭮 ¬¥­ìè¥ n=bj .
“¯à ¦­¥­¨ï
4.4-1? “ª ¦¨â¥ ¯à®áâãî ãî ä®à¬ã«ã ¤«ï ni ¨§ (4.12), ¥á«¨ b |
¯®«®¦¨â¥«ì­®¥ 楫®¥ ç¨á«®.
4.4-2? ®ª ¦¨â¥, çâ® ¥á«¨ f (n) = (nlogb a lgk n), £¤¥ k > 0, â®
ᮮ⭮襭¨¥ (4.5) ¢«¥çñâ T (n) = (nlogb a lgk+1 n). „«ï ¯à®áâ®âë
à áᬮâà¨â¥ «¨èì á«ãç © 楫ëå á⥯¥­¥© b.
4.4-3? ®ª ¦¨â¥, çâ® ¢ á«ãç ¥ 3 ®á­®¢­®© â¥®à¥¬ë ®¤­® ¨§ ãá«®¢¨© «¨è­¥¥: ãá«®¢¨¥ ॣã«ïà­®á⨠(af (n=b) 6 cf (n) ¤«ï ­¥ª®â®à®£® c < 1) £ à ­â¨àã¥â, çâ® áãé¥áâ¢ã¥â " > 0, ¤«ï ª®â®à®£®
f (n) = (nlogb a+" ).
‡ ¤ ç¨
4-1 à¨¬¥àë ४ãà७â­ëå ᮮ⭮襭¨©
„ ©â¥ ª ª ¬®¦­® ¡®«¥¥ â®ç­ë¥ ᨬ¯â®â¨ç¥áª¨¥ ¢¥àå­¨¥ ¨ ­¨¦­¨¥ ®æ¥­ª¨ ¤«ï á«¥¤ãîé¨å ᮮ⭮襭¨© (áç¨â ¥¬, çâ® T (n) | ª®­á⠭⠯ਠn 6 2):
. T (n) = 2T (n=2) + n3.
¡. T (n) = T (9n=10) + n.
66
ƒ« ¢ 4 ¥ªãà७â­ë¥ ᮮ⭮襭¨ï
¢. T (n) = 16T (n=4) + n2.
£. T (n) = 7T (n=3) + n2.
¤. T (n) = 7T (n=2) + pn2.
¥. T (n) = 2T (n=4) + n.
¦. T (n) = T (pn ; 1) + n.
§. T (n) = T ( n) + 1.
4-2 ¥¤®áâ î饥 ç¨á«®
Œ áᨢ A[1 : :n] ᮤ¥à¦¨â ¢á¥ æ¥«ë¥ ç¨á« ®â 0 ¤® n, ªà®¬¥ ®¤­®£®. —â®¡ë ­ ©â¨ ¯à®¯ã饭­®¥ ç¨á«®, ¬®¦­® ®â¬¥ç âì ¢® ¢á¯®¬®£ ⥫쭮¬ ¬ áᨢ¥ B[0 : :n] ¢á¥ ç¨á« , ¢áâà¥ç î騥áï ¢ A, ¨ § ⥬
¯®á¬®âà¥âì, ª ª®¥ ç¨á«® ­¥ ®â¬¥ç¥­® (¢áñ ¢¬¥á⥠âॡã¥â ¢à¥¬¥­¨
O(n)). à¨ í⮬ ¨á¯®«ì§®¢ ­¨¥ í«¥¬¥­â ¬ áᨢ A ¢ ª ç¥á⢥ ¨­¤¥ªá áç¨â ¥âáï í«¥¬¥­â à­®© ®¯¥à 樥©.
 «®¦¨¬ â ª®¥ ¤®¯®«­¨â¥«ì­®¥ ®£à ­¨ç¥­¨¥ ­ ¤®áâ㯠ª ¬ áᨢã A: § ®¤­® ¤¥©á⢨¥ ¬ë ¬®¦¥¬ ¯®á¬®âà¥âì § ¤ ­­ë© ¡¨â § ¤ ­­®£® í«¥¬¥­â ¬ áᨢ A.
®ª ¦¨â¥, çâ® ¨ ¯à¨ â ª¨å ®£à ­¨ç¥­¨ïå ¬ë ¬®¦¥¬ ­ ©â¨ ¯à®¯ã饭­®¥ ç¨á«® § ¢à¥¬ï O(n).
4-3 ‚à¥¬ï ¯¥à¥¤ ç¨ ¯ à ¬¥â஢
‚ í⮩ ª­¨£¥ ¬ë ¯à¥¤¯®« £ ¥¬, çâ® ¯¥à¥¤ ç ¯ à ¬¥â஢ § ­¨¬ ¥â ¯®áâ®ï­­®¥ ¢à¥¬ï, ¤ ¦¥ ¥á«¨ ¯¥à¥¤ ¢ ¥¬ë© ¯ à ¬¥âà | ¬ áᨢ. ‚ ¡®«ì設á⢥ ï§ëª®¢ ¯à®£à ¬¬¨à®¢ ­¨ï íâ® â ª ¨ ¥áâì, ¯®áª®«ìªã ¯¥à¥¤ ñâáï ­¥ á ¬ ¬ áᨢ, 㪠§ â¥«ì ­ ­¥£®. ® ¢®§¬®¦­ë ¨ ¤à㣨¥ ¢ ਠ­âë. ‘à ¢­¨¬ âਠᯮᮡ ¯¥à¥¤ ç¨ ¬ áᨢ®¢ ¢ ª ç¥á⢥ ¯ à ¬¥â஢:
1. Œ áᨢ ¯¥à¥¤ ¥âáï ª ª 㪠§ â¥«ì § ¢à¥¬ï (1).
2. Œ áᨢ ª®¯¨àã¥âáï § ¢à¥¬ï (N ), £¤¥ N | à §¬¥à ¬ áᨢ .
3. ‚ ¯à®æ¥¤ãàã ¯¥à¥¤ ñâáï ⮫쪮 â ç áâì ¬ áᨢ , ª®â®à ï ¡ã¤¥â ¢ ­¥© ¨á¯®«ì§®¢ âìáï. à¨ í⮬ âॡã¥âáï ¢à¥¬ï (q ; p + 1),
¥á«¨ ¯¥à¥¤ ñâáï ãç á⮪ A[p : :q].
.  áᬮâਬ ४ãàᨢ­ë© «£®à¨â¬ ¤¢®¨ç­®£® ¯®¨áª ç¨á« ¢
㯮à冷祭­®¬ ¬ áᨢ¥ (ã¯à. 1.3-5). Š ª®¢® ¡ã¤¥â ¢à¥¬ï ¥£® à ¡®âë
¯à¨ ª ¦¤®¬ ¨§ 㪠§ ­­ëå ᯮᮡ®¢ ¯¥à¥¤ ç¨ ¯ à ¬¥âà ? (€à£ã¬¥­â ¬¨ ४ãàᨢ­®© ¯à®æ¥¤ãàë ïîâáï ¨áª®¬ë© í«¥¬¥­â ¨ ¬ áᨢ,
¢ ª®â®à®¬ ®áãé¥á⢫ï¥âáï ¯®¨áª.)
¡. à®¢¥¤¨â¥ â ª®© ­ «¨§ ¤«ï «£®à¨â¬ Merge-Sort ¨§ à §¤¥« 1.3.1.
4-4 …éñ ­¥áª®«ìª® ४ãà७â­ëå ᮮ⭮襭¨©
“ª ¦¨â¥ ¢®§¬®¦­® ¡®«¥¥ â®ç­ë¥ ᨬ¯â®â¨ç¥áª¨¥ ¢¥àå­¨¥ ¨
­¨¦­¨¥ ®æ¥­ª¨ ¤«ï T (n) ¢ ª ¦¤®¬ ¨§ 㪠§ ­­ëå ­¨¦¥ ¯à¨¬¥à®¢.
à¥¤¯®« £ ¥âáï, çâ® T (n) | ª®­á⠭⠯ਠn 6 8.
. T (n) = 3T (n=2) + n lg n.
‡ ¤ ç¨ ª £« ¢¥ 4
67
¡. T (n) = 3T (n=3 + 5) + n=2.
¢. T (n) = 2T (n=2) + n= lg n.
£. T (n) = T (n ; 1) + 1=n.
¤. T (n) = pT (n ;p1) + lg n.
¥. T (n) = nT ( n) + n.
4-5 ¥à¥å®¤ ®â á⥯¥­¥© ª ¯à®¨§¢®«ì­ë¬ à£ã¬¥­â ¬
ãáâì ¬ë ¯®«ã稫¨ ®æ¥­ªã ¤«ï T (n) ¯à¨ ¢á¥å n, ïîé¨åáï
á⥯¥­ï¬¨ ­¥ª®â®à®£® 楫®£® b. Š ª à á¯à®áâà ­¨âì ¥ñ ­ ¯à®¨§¢®«ì­ë¥ n?
. ãáâì T (n) ¨ h(n) | ¬®­®â®­­® ¢®§à áâ î騥 ä㭪樨, ®¯à¥¤¥«ñ­­ë¥ ¤«ï ¯à®¨§¢®«ì­ëå ¯®«®¦¨â¥«ì­ëå à£ã¬¥­â®¢ (­¥ ®¡ï§ ⥫쭮 楫ëå), ¯à¨çñ¬ T (n) 6 h(n) ¤«ï ¢á¥å n, ïîé¨åáï á⥯¥­ï¬¨ 楫®£® ç¨á« b > 1. ãáâì ¨§¢¥áâ­®, ªà®¬¥ ⮣®, çâ® h
"à áâñâ ¤®áâ â®ç­® ¬¥¤«¥­­®": h(n) = O(h(n=b)). „®ª ¦¨â¥, çâ®
T (n) = O(h(n)).
¡. ãáâì ¤«ï ä㭪樨 T ¢ë¯®«­¥­® ᮮ⭮襭¨¥ T (n) =
aT (n=b) + f (n) ¯à¨ n > n0 ; ¯ãáâì a > 1, b > 1 ¨ f (n) ¬®­®â®­­® ¢®§à áâ ¥â. ãáâì T (n) ¬®­®â®­­® ¢®§à á⠥⠯ਠn 6 n0, ¨
¯à¨ í⮬ T (n0) 6 aT (n0=b) + f (n0): „®ª ¦¨â¥, çâ® T (n) ¬®­®â®­­®
¢®§à áâ ¥â.
¢. “¯à®áâ¨â¥ ¤®ª § ⥫ìá⢮ ⥮६ë 4.1 ¤«ï á«ãç ï ¬®­®â®­­®©
¨ "¤®áâ â®ç­® ¬¥¤«¥­­® à áâã饩" ä㭪樨 f (n). ‚®á¯®«ì§ã©â¥áì «¥¬¬®© 4.4.
4-6 —¨á« ”¨¡®­ çç¨
—¨á« ”¨¡®­ çç¨ ®¯à¥¤¥«ïîâáï ᮮ⭮襭¨¥¬ (2.13). ‡¤¥áì ¬ë
à áᬮâਬ ­¥ª®â®àë¥ ¨å ᢮©á⢠. „«ï í⮣® ®¯à¥¤¥«¨¬ ¯à®¨§¢®¤ïéãî äã­ªæ¨î (generating function), ®¯à¥¤¥«ï¥¬ãî ª ª ä®à¬ «ì­ë©
á⥯¥­­®© àï¤ (formal power series)
F=
1
X
i=0
Fi z i = 0 + z + z 2 + 2z 3 + 3z4 + 5z5 + 8z 6 + 13z7 + : : :
. ®ª ¦¨â¥, çâ® F (z) = z + zF (z) + z2F (z).
¡. ®ª ¦¨â¥, çâ®
z
z
1
1
1
F (z) = 1 ; z ; z2 = (1 ; 'z)(1 ; 'z
= p 1 ; 'z ; 1 ; 'z
b )
b
5
£¤¥
p
1
+
' = 2 5 = 1;61803 : : :
¨
p
1
;
'b = 2 5 = ;0;61803 : : :
68
ƒ« ¢ 4 ¥ªãà७â­ë¥ ᮮ⭮襭¨ï
¢. ®ª ¦¨â¥, çâ®
F (z) =
1
X
i=0
p1 ('i ; 'bi)zi:
5
p
£. „®ª ¦¨â¥, çâ® Fi ¯à¨ i > 0 à ¢­® ¡«¨¦ ©è¥¬ã ª 'i= 5 楫®¬ã
ç¨á«ã. (“ª § ­¨¥: j'bj < 1.)
¤. „®ª ¦¨â¥, çâ® Fi+2 > 'i ¤«ï ¢á¥å i > 0.
4-7 ’¥áâ¨à®¢ ­¨¥ ¬¨ªà®á奬
ˆ¬¥¥âáï n ®¤¨­ ª®¢ëå ¬¨ªà®á奬, ᯮᮡ­ëå ¯à®¢¥àïâì ¤àã£
¤à㣠; ­¥ª®â®àë¥ ¨§ ­¨å ¨á¯à ¢­ë, ­¥ª®â®àë¥ | ­¥â. „«ï ¯à®¢¥àª¨
¯ à ¬¨ªà®á奬 ¢áâ ¢«ï¥âáï ¢ á¯¥æ¨ «ì­ãî ¯« âã, ¯®á«¥ 祣® ª ¦¤ ï ¨§ ­¨å á®®¡é ¥â ® á®áâ®ï­¨¨ á®á¥¤ . ˆá¯à ¢­ ï ¬¨ªà®á奬 ¯à¨ í⮬ ­¨ª®£¤ ­¥ ®è¨¡ ¥âáï, ­¥¨á¯à ¢­ ï ¬®¦¥â ¤ âì «î¡®©
®â¢¥â.
Žâ¢¥â A
Žâ¢¥â B
¥§ã«ìâ â
B ¨á¯à ¢­ A ¨á¯à ¢­ ®¡¥ å®à®è¨¥ ¨«¨ ®¡¥ ¯«®å¨¥
B ¨á¯à ¢­ A ­¥¨á¯à ¢­ å®âï ¡ë ®¤­ ­¥¨á¯à ¢­ B ­¥¨á¯à ¢­ A ¨á¯à ¢­ å®âï ¡ë ®¤­ ­¥¨á¯à ¢­ B ­¥¨á¯à ¢­ A ­¥¨á¯à ¢­ å®âï ¡ë ®¤­ ­¥¨á¯à ¢­ . ®ª ¦¨â¥, çâ® ¥á«¨ ¡®«ìè¥ ¯®«®¢¨­ë ¬¨ªà®á奬 ¯«®å¨¥, â®
¯®¯ à­®¥ â¥áâ¨à®¢ ­¨¥ ­¥ ¯®§¢®«¨â 㧭 âì ­ ¢¥à­ïª , ª ª¨¥ ¨¬¥­­®
¬¨ªà®áå¥¬ë ¯«®å¨ (®­¨ ᬮ£ãâ ­ á ®¡¬ ­ãâì).
¡. ãáâì ­ã¦­® ­ ©â¨ å®âï ¡ë ®¤­ã å®à®èãî ¬¨ªà®á奬㠨§ n
èâãª, ¨§ ª®â®àëå ¡®«ìè¥ ¯®«®¢¨­ë ¨á¯à ¢­ëå. ®ª ¦¨â¥, çâ® ¤®áâ â®ç­® bn=2c ¯®¯ à­ëå â¥á⮢, ç⮡ë ᢥá⨠§ ¤ çã ª ­ «®£¨ç­®© § ¤ ç¥ ¯®«®¢¨­­®£® à §¬¥à .
¢. ãáâì ¨á¯à ¢­® ¡®«ìè¥ ¯®«®¢¨­ë ¬¨ªà®á奬. ®ª ¦¨â¥, çâ®
¬®¦­® ­ ©â¨ ¢á¥ å®à®è¨¥ ¬¨ªà®áå¥¬ë § (n) ¯®¯ à­ëå â¥á⮢.
(‚®á¯®«ì§ã©â¥áì ४ãà७â­ë¬ ᮮ⭮襭¨¥¬.)
[âã § ¤ çã ¬®¦­® ¯¥à¥ä®à¬ã«¨à®¢ âì ¢ ¨­ëå â¥à¬¨­ å: ¨¬¥¥âáï n ®¤¨­ ª®¢ëå ­ ¢¨¤ ¯à¥¤¬¥â®¢, ­® ­ á ¬®¬ ¤¥«¥ ®­¨ ®â­®áïâáï ª ­¥áª®«ìª¨¬ ª ⥣®à¨ï¬. …áâì ¯à¨¡®à, ª®â®àë© ¯® ¤¢ã¬
¯à¥¤¬¥â ¬ ¯à®¢¥àï¥â, ®¤¨­ ª®¢ë «¨ ®­¨. ˆ§¢¥áâ­®, çâ® ¯à¥¤¬¥âë
­¥ª®â®à®© ª ⥣®à¨¨ á®áâ ¢«ïîâ ¡®«ì設á⢮.  ¤® ­ ©â¨ ¯à¥¤áâ ¢¨â¥«ì í⮣® ¡®«ì設á⢠§ O(n) áà ¢­¥­¨©. ®¬¨¬® ४ãà७⭮£® à¥è¥­¨ï, íâ § ¤ ç ¨¬¥¥â ¯à®á⮥ ¨â¥à ⨢­®¥ à¥è¥­¨¥.
‡ ¢¥¤ñ¬ ª®à®¡ªã, ¢ ª®â®à®© ¡ã¤¥¬ ­ ª ¯«¨¢ âì ®¤¨­ ª®¢ë¥ ¯à¥¤¬¥âë, â ª¦¥ ãà­ã, ªã¤ ¬®¦­® ¢ëª¨¤ë¢ âì ¯à¥¤¬¥âë. ¥à¥ª« ¤ë¢ ¥¬ ­¥¯à®á¬®â७­ë¥ í«¥¬¥­âë ¢ ª®à®¡ªã ¨«¨ ãà­ã, ¯®¤¤¥à¦¨¢ ï â ª®¥ ᢮©á⢮: á।¨ ­¥¢ëª¨­ãâëå ¨áª®¬ë¥ á®áâ ¢«ïîâ ¡®«ì設á⢮.]
‡ ¬¥ç ­¨ï ª £« ¢¥ 4
69
‡ ¬¥ç ­¨ï
—¨á« ”¨¡®­ çç¨ à áᬠâਢ «¨áì ”¨¡®­ çç¨ (L. Fibonacci) ¢
1202 £®¤ã. Œã ¢à (A. De Moivre) ¯à¨¬¥­¨« ¯à®¨§¢®¤ï騥 ä㭪樨
¤«ï à¥è¥­¨ï ४ãà७â­ëå ᮮ⭮襭¨© (á¬. § ¤ çã 4-6). Žá­®¢­ ï ⥮६ ® ४ãà७â­ëå ᮮ⭮襭¨ïå § ¨¬á⢮¢ ­ ¨§ à ¡®âë
¥­â«¨, • ª¥­ ¨ ‘ ªá [26], £¤¥ ¯à¨¢®¤¨âáï ¡®«¥¥ ᨫì­ë© १ã«ìâ â (¢ª«îç î騩 १ã«ìâ â ã¯à. 4.4-2). Š­ãâ [121] ¨ ‹î [140] ¯®ª §ë¢ îâ, ª ª à¥è âì «¨­¥©­ë¥ ४ãà७â­ë¥ ᮮ⭮襭¨ï á ¯®¬®éìî ¯à®¨§¢®¤ïé¨å ä㭪権. „®¯®«­¨â¥«ì­ë¥ ᢥ¤¥­¨ï ® à¥è¥­¨¨
४ãà७â­ëå ᮮ⭮襭¨© ¯à¨¢®¤ï⠏ãम¬ ¨ à ã­ [164].
70
ƒ« ¢ 4 ¥ªãà७â­ë¥ ᮮ⭮襭¨ï
1257
Œ­®¦¥á⢠5
‚ í⮩ £« ¢¥ ¬ë ­ ¯®¬¨­ ¥¬ ®¯à¥¤¥«¥­¨ï, â¥à¬¨­®«®£¨î, ®¡®§­ 祭¨ï ¨ ®á­®¢­ë¥ ᢮©á⢠¬­®¦¥áâ¢, ®â­®è¥­¨©, ä㭪権, £à 䮢 ¨
¤¥à¥¢ì¥¢. —¨â ⥫¨, §­ ª®¬ë¥ á ­¨¬¨, ¬®£ã⠯யãáâ¨âì íâã £« ¢ã
(®¡à é ïáì ª ­¥© ¯® ¬¥à¥ ­¥®¡å®¤¨¬®áâ¨).
5.1 Œ­®¦¥á⢠Œ­®¦¥á⢮ (set) á®á⮨⠨§ í«¥¬¥­â®¢ (members, elements). …᫨
®¡ê¥ªâ x ï¥âáï í«¥¬¥­â®¬ ¬­®¦¥á⢠S , ¬ë ¯¨è¥¬ x 2 S (ç¨â ¥âáï "x ¯à¨­ ¤«¥¦¨â S "). …᫨ x ­¥ ¯à¨­ ¤«¥¦¨â S , ¯¨è¥¬ x 2= S .
Œ®¦­® § ¤ âì ¬­®¦¥á⢮ ¯¥à¥ç¨á«¥­¨¥¬ ¥£® í«¥¬¥­â®¢ ç¥à¥§ § ¯ïâë¥ ¢ 䨣ãà­ëå ᪮¡ª å.  ¯à¨¬¥à, ¬­®¦¥á⢮ S = f1; 2; 3g ᮤ¥à¦¨â í«¥¬¥­âë 1; 2; 3 ¨ ⮫쪮 ¨å. —¨á«® 2 ï¥âáï í«¥¬¥­â®¬ í⮣®
¬­®¦¥á⢠, ç¨á«® 4 | ­¥â, â ª çâ® 2 2 S , 4 2= S . Œ­®¦¥á⢮ ­¥
¬®¦¥â ᮤ¥à¦ âì ¤¢ãå ®¤¨­ ª®¢ëå í«¥¬¥­â®¢, ¨ ¯®à冷ª í«¥¬¥­â®¢
­¥ 䨪á¨à®¢ ­. „¢ ¬­®¦¥á⢠A ¨ B à ¢­ë (are equal), ¥á«¨ ®­¨
á®áâ®ïâ ¨§ ®¤­¨å ¨ â¥å ¦¥ í«¥¬¥­â®¢. ‚ í⮬ á«ãç ¥ ¯¨èãâ A = B.
 ¯à¨¬¥à, f1; 2; 3; 1g = f1; 2; 3g = f3; 2; 1g.
„«ï ç áâ® ¨á¯®«ì§ã¥¬ëå ¬­®¦¥á⢠¨¬¥îâáï á¯¥æ¨ «ì­ë¥ ®¡®§­ 祭¨ï:
®¡®§­ ç ¥â ¯ãá⮥ ¬­®¦¥á⢮ (empty set), ­¥ ᮤ¥à¦ 饥 ­¨ ®¤­®£® í«¥¬¥­â .
®¡®§­ ç ¥â ¬­®¦¥á⢮ 楫ëå ç¨á¥« (integers);
=
f: : : ; ;2; ;1; 0; 1; 2; : : : g;
®¡®§­ ç ¥â ¬­®¦¥á⢮ ¢¥é¥á⢥­­ëå (¤¥©á⢨⥫ì­ëå) ç¨á¥« (real
?
Z
Z
R
numbers);
®¡®§­ ç ¥â ¬­®¦¥á⢮ ­ âãà «ì­ëå ç¨á¥« (natural numbers); =
f0; 1; 2; : : : g1
…᫨ ¢á¥ í«¥¬¥­âë ¬­®¦¥á⢠A ïîâáï í«¥¬¥­â ¬¨ ¬­®¦¥N
1
N
ˆ­®£¤ ­ã¬¥à æ¨î ­ âãà «ì­ëå ç¨á¥« ­ 稭 îâ á 1 | à ­ìè¥ â ª ¡ë«® ¯à¨­ïâ®.
72
ƒ« ¢ 5 Œ­®¦¥á⢠á⢠B, (¨§ x 2 A á«¥¤ã¥â x 2 B), £®¢®àïâ, çâ® A ï¥âáï ¯®¤¬­®¦¥á⢮¬ (subset) ¬­®¦¥á⢠B ¨ ¯¨èãâ A B . …᫨ ¯à¨ í⮬
A ­¥ ᮢ¯ ¤ ¥â á B , â® A ­ §ë¢ ¥âáï ᮡá⢥­­ë¬ ¯®¤¬­®¦¥á⢮¬
(proper subset) ¬­®¦¥á⢠B ; ¢ í⮬ á«ãç ¥ ¯¨èãâ A B . (Œ­®£¨¥
¢â®àë ¨á¯®«ì§ãîâ ®¡®§­ 祭¨¥ A B ¤«ï ¯®¤¬­®¦¥áâ¢, ­¥ ¤«ï
ᮡá⢥­­ëå ¯®¤¬­®¦¥á⢠.) „«ï «î¡®£® ¬­®¦¥á⢠A ¢ë¯®«­¥­®
ᮮ⭮襭¨¥ A A. Œ­®¦¥á⢠A ¨ B à ¢­ë ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ A B ¨ B A. „«ï «î¡ëå âàñå ¬­®¦¥á⢠A, B ¨ C
¨§ A B ¨ B C á«¥¤ã¥â A C . „«ï «î¡®£® ¬­®¦¥á⢠A ¨¬¥¥â
¬¥á⮠ᮮ⭮襭¨¥ A.
ˆ­®£¤ ¬­®¦¥á⢮ ®¯à¥¤¥«ï¥âáï ª ª ç áâì ¤à㣮£® ¬­®¦¥á⢠:
¬ë ¬®¦¥¬ ¢ë¤¥«¨âì ¨§ ¬­®¦¥á⢠A ¢á¥ í«¥¬¥­âë, ®¡« ¤ î騥
­¥ª®â®àë¬ á¢®©á⢮¬, ¨ ®¡à §®¢ âì ¨§ ­¨å ­®¢®¥ ¬­®¦¥á⢮ B.  ¯à¨¬¥à, ¬­®¦¥á⢮ çñâ­ëå ç¨á¥« ¬®¦­® ®¯à¥¤¥«¨âì ª ª fx : x 2
¨ x=2 | 楫®¥ ç¨á«®g. â® ®¡ëç­® ç¨â îâ "¬­®¦¥á⢮ x ¨§ , ¤«ï
ª®â®àëå..." ˆ­®£¤ ¢¬¥áâ® ¤¢®¥â®ç¨ï ¨á¯®«ì§ã¥âáï ¢¥à⨪ «ì­ ï
ç¥àâ .
„«ï «î¡ëå ¬­®¦¥á⢠A ¨ B ¬®¦­® ¯®áâநâì á«¥¤ãî騥 ¬­®¦¥á⢠, ¯®«ãç ¥¬ë¥ á ¯®¬®éìî ⥮à¥â¨ª®-¬­®¦¥á⢥­­ëå ®¯¥à 権 (set
?
Z
Z
operations):
¥à¥á¥ç¥­¨¥ (intersection) ¬­®¦¥á⢠A ¨ B ®¯à¥¤¥«ï¥âáï ª ª ¬­®-
¦¥á⢮
A \ B = fx : x 2 A ¨ x 2 B g:
Ž¡ê¥¤¨­¥­¨¥ (union) ¬­®¦¥á⢠A ¨ B ®¯à¥¤¥«ï¥âáï ª ª ¬­®¦¥á⢮
A [ B = fx : x 2 A ¨«¨ x 2 Bg:
 §­®áâì (dierence) ¬­®¦¥á⢠A ¨ B ®¯à¥¤¥«ï¥âáï ª ª ¬­®¦¥á⢮
A n B = fx : x 2 A ¨ x 2= Bg:
’¥®à¥â¨ª®-¬­®¦¥á⢥­­ë¥ ®¯¥à 樨 ®¡« ¤ îâ á«¥¤ãî騬¨
᢮©á⢠¬¨:
‘¢®©á⢠¯ãá⮣® ¬­®¦¥á⢠(empty set laws):
A\ = ;
?
?
A [ = A:
?
ˆ¤¥¬¯®â¥­â­®áâì (idempotency laws):
A \ A = A;
A [ A = A:
Š®¬¬ãâ ⨢­®áâì (commutative laws):
A \ B = B \ A;
A [ B = B [ A:
Œ­®¦¥á⢠73
???  ª à⨭ª¥ á«¥¤ã¥â § ¬¥­¨âì ¬¨­ãá ­ n
¨áã­®ª 5.1 „¨ £à ¬¬ ‚¥­­ , ¨««îáâà¨àãîé ï ¯¥à¢ë© ¨§ § ª®­®¢ ¤¥ Œ®à£ ­ (5.2). Œ­®¦¥á⢠A; B;C ¨§®¡à ¦¥­ë ªà㣠¬¨ ­ ¯«®áª®áâ¨.
€áá®æ¨ ⨢­®áâì (associative laws):
A \ (B \ C ) = (A \ B) \ C;
A [ (B [ C ) = (A [ B) [ C:
„¨áâਡã⨢­®áâì (distributive laws):
A \ (B [ C ) = (A \ B) [ (A \ C );
A [ (B \ C ) = (A [ B ) \ (A [ C )
(5.1)
‡ ª®­ë ¯®£«®é¥­¨ï (absorption laws):
A \ (A [ B ) = A; A [ (A \ B ) = A
‡ ª®­ë ¤¥ Œ®à£ ­ (DeMorgan's laws):
A n (B \ C ) = (A n B) [ (A n C );
(5.2)
A n (B [ C ) = (A n B) \ (A n C )
¨á. 5.1 ¨««îáâà¨àã¥â ¯¥à¢ë© ¨§ § ª®­®¢ ¤¥ Œ®à£ ­ (5.1);
¬­®¦¥á⢠A, B ¨ C ¨§®¡à ¦¥­ë ¢ ¢¨¤¥ ªà㣮¢ ­ ¯«®áª®áâ¨.
— áâ® ¢á¥ à áᬠâਢ ¥¬ë¥ ¬­®¦¥á⢠ïîâáï ¯®¤¬­®¦¥á⢠­¥ª®â®à®£® 䨪á¨à®¢ ­­®£® ¬­®¦¥á⢠, ­ §ë¢ ¥¬®£® ã­¨¢¥àá㬮¬
(universe).  ¯à¨¬¥à, ¥á«¨ ­ á ¨­â¥à¥áãîâ ¬­®¦¥á⢠, í«¥¬¥­â ¬¨
ª®â®àëå ïîâáï æ¥«ë¥ ç¨á« , â® ¢ ª ç¥á⢥ ã­¨¢¥àá㬠¬®¦­®
¢§ïâì ¬­®¦¥á⢮ 楫ëå ç¨á¥«. …᫨ ã­¨¢¥àá㬠U 䨪á¨à®¢ ­,
¬®¦­® ®¯à¥¤¥«¨âì ¤®¯®«­¥­¨¥ (complement) ¬­®¦¥á⢠A ª ª A =
U n A. „«ï «î¡®£® A U ¢¥à­ë â ª¨¥ ã⢥ত¥­¨ï:
A = A; A \ A = ; A [ A = U:
ˆ§ § ª®­®¢ ¤¥ Œ®à£ ­ (5.2) á«¥¤ã¥â, çâ® ¤«ï «î¡ëå ¬­®¦¥áâ¢
A; B U ¨¬¥îâ ¬¥áâ® à ¢¥­á⢠A \ B = A [ B; A [ B = A \ B:
„¢ ¬­®¦¥á⢠A ¨ B ­ §ë¢ îâáï ­¥¯¥à¥á¥ª î騬¨áï (disjoint),
¥á«¨ ®­¨ ­¥ ¨¬¥îâ ®¡é¨å í«¥¬¥­â®¢, â. ¥. ¥á«¨ A \ B = . ƒ®¢®àïâ, ç⮠ᥬ¥©á⢮ S = fSig ­¥¯ãáâëå ¬­®¦¥á⢠®¡à §ã¥â à §¡¨¥­¨¥
(partition) ¬­®¦¥á⢠S , ¥á«¨
Z
?
?
74
ƒ« ¢ 5 Œ­®¦¥á⢠¬­®¦¥á⢠Si ¯®¯ à­® ­¥ ¯¥à¥á¥ª îâáï (are pairwise disjoint), â. ¥.
Si \ Sj = ¯à¨ i 6= j ,
¨å ®¡ê¥¤¨­¥­¨¥ ¥áâì S , â. ¥.
[
S=
Si
?
Si 2S
„à㣨¬¨ á«®¢ ¬¨, ᥬ¥©á⢮ S ®¡à §ã¥â à §¡¨¥­¨¥ ¬­®¦¥á⢠S ,
¥á«¨ «î¡®© í«¥¬¥­â s 2 S ¯à¨­ ¤«¥¦¨â ஢­® ®¤­®¬ã ¨§ ¬­®¦¥áâ¢
Si ᥬ¥©á⢠.
—¨á«® í«¥¬¥­â®¢ ¢ ¬­®¦¥á⢥ S ­ §ë¢ ¥âáï ¥£® ¬®é­®áâìî
(cardinality), ¨«¨ à §¬¥à®¬ (size), ¨ ®¡®§­ ç ¥âáï jS j. „¢ ¬­®¦¥á⢠¨¬¥îâ ®¤­ã ¨ âã ¦¥ ¬®é­®áâì, ¥á«¨ ¬¥¦¤ã ¨å í«¥¬¥­â ¬¨
¬®¦­® ãáâ ­®¢¨âì ¢§ ¨¬­® ®¤­®§­ ç­®¥ ᮮ⢥âá⢨¥. Œ®é­®áâì
¯ãá⮣® ¬­®¦¥áâ¢ à ¢­ ­ã«î: j j = 0. Œ®é­®áâì ª®­¥ç­®£®
(nite) ¬­®¦¥á⢠| ­ âãà «ì­®¥ ç¨á«®; ¤«ï ¡¥áª®­¥ç­ëå (innite)
¬­®¦¥á⢠¯®­ï⨥ ¬®é­®á⨠âॡã¥â ªªãà â­®£® ®¯à¥¤¥«¥­¨ï.
Ž­® ­ ¬ ­¥ ¯®­ ¤®¡¨âáï; 㯮¬ï­¥¬ «¨èì, çâ® ¬­®¦¥á⢠, í«¥¬¥­âë
ª®â®àëå ¬®¦­® ¯®áâ ¢¨âì ¢® ¢§ ¨¬­® ®¤­®§­ ç­®¥ ᮮ⢥âá⢨¥ á
­ âãà «ì­ë¬¨ ç¨á« ¬¨, ­ §ë¢ îâáï áçñâ­ë¬¨ (countably innite);
¡¥áª®­¥ç­ë¥ ¬­®¦¥á⢠, ­¥ ïî騥áï áçñâ­ë¬¨, ­ §ë¢ îâ ­¥áçñâ­ë¬¨ (uncountable). Œ­®¦¥á⢮ 楫ëå ç¨á¥« áçñâ­®, ¢ â®
¢à¥¬ï ª ª ¬­®¦¥á⢮ ¢¥é¥á⢥­­ëå ç¨á¥« ­¥áçñâ­®.
„«ï «î¡ëå ¤¢ãå ª®­¥ç­ëå ¬­®¦¥á⢠A ¨ B ¢ë¯®«­¥­® à ¢¥­á⢮
jA [ Bj = jAj + jBj ; jA \ Bj
(5.3)
¨§ í⮣® à ¢¥­á⢠¢ë⥪ ¥â, çâ®
jA [ Bj 6 jAj + jBj
…᫨ ¬­®¦¥á⢠A ¨ B ­¥ ¯¥à¥á¥ª îâáï, â® jA \ Bj = 0 ¨ íâ® ­¥à ¢¥­á⢮ ®¡à é ¥âáï ¢ à ¢¥­á⢮: jA [ Bj = jAj + jBj. …᫨ A B,
â® jAj 6 jBj.
Š®­¥ç­®¥ ¬­®¦¥á⢮ ¨§ n í«¥¬¥­â®¢ ­ §ë¢ îâ n-í«¥¬¥­â­ë¬
(n-set); ®¤­®í«¥¬¥­â­®¥ ¬­®¦¥á⢮ ¨¬¥­ãîâ ¨­®£¤ ᨭ£«¥â®­®¬
(singleton). ‚ ­£«¨©áª®© «¨â¥à âãॠ㯮âॡ«ï¥âáï â ª¦¥ â¥à¬¨­ k-subset, ®§­ ç î騩 k-í«¥¬¥­â­®¥ ¯®¤¬­®¦¥á⢮ (ª ª®£®-«¨¡®
¬­®¦¥á⢠).
„«ï ¤ ­­®£® ¬­®¦¥á⢠S ¬®¦­® à áᬮâà¥âì ¬­®¦¥á⢮ ¢á¥å ¥£®
¯®¤¬­®¦¥áâ¢, ¢ª«îç ï ¯ãá⮥ ¬­®¦¥á⢮ ¨ á ¬® S ; ¥£® ®¡®§­ ç îâ
2S ¨ ­ §ë¢ îâ ¬­®¦¥á⢮¬-á⥯¥­ìî (power set).  ¯à¨¬¥à, 2fa;bg =
f ; fag; fbg; fa; bgg. „«ï ª®­¥ç­®£® S ¬­®¦¥á⢮ 2S ᮤ¥à¦¨â 2jSj
í«¥¬¥­â®¢.
“¯®à冷祭­ ï ¯ à ¨§ ¤¢ãå í«¥¬¥­â®¢ a ¨ b ®¡®§­ ç ¥âáï (a; b) ¨
ä®à¬ «ì­® ¬®¦¥â ¡ëâì ®¯à¥¤¥«¥­ ª ª (a; b) = fa; fa; bgg, â ª çâ®
(a; b) ®â«¨ç ¥âáï ®â (b; a). [â® ®¯à¥¤¥«¥­¨¥ 㯮à冷祭­®© ¯ àë
?
Z
R
?
Œ­®¦¥á⢠75
¯à¥¤«®¦¥­® Šãà ⮢᪨¬. Œ®¦­® ¡ë«® ¡ë ¨á¯®«ì§®¢ âì ¨ ¤à㣮¥
®¯à¥¤¥«¥­¨¥, ¢ ¦­® ⮫쪮, ç⮡ë (a; b) = (c; d) ¡ë«® à ¢­®á¨«ì­®
(a = c) ¨ (b = d).]
„¥ª à⮢® ¯à®¨§¢¥¤¥­¨¥ (cartesian product) ¤¢ãå ¬­®¦¥á⢠A ¨ B
®¯à¥¤¥«ï¥âáï ª ª ¬­®¦¥á⢮ ¢á¥å 㯮à冷祭­ëå ¯ à, ã ª®â®àëå
¯¥à¢ë© í«¥¬¥­â ¯à¨­ ¤«¥¦¨â A, ¢â®à®© | B. Ž¡®§­ 祭¨¥: AB.
”®à¬ «ì­® ¬®¦­® § ¯¨á âì
A B = f(a; b) : a 2 A ¨ b 2 B g
 ¯à¨¬¥à, fa; bg fa; b; cg = f(a; a); (a; b); (a; c); (b; a); (b; b); (b; c)g.
„«ï ª®­¥ç­ëå ¬­®¦¥á⢠A ¨ B ¬®é­®áâì ¨å ¯à®¨§¢¥¤¥­¨ï à ¢­ ¯à®¨§¢¥¤¥­¨î ¬®é­®á⥩:
jA Bj = jAj jBj:
(5.4)
„¥ª à⮢® ¯à®¨§¢¥¤¥­¨¥ n ¬­®¦¥á⢠A1; A2; : : :; An ®¯à¥¤¥«ï¥âáï
ª ª ¬­®¦¥á⢮ n-®ª (n-tuples)
A1A2 : : :An = f(a1; a2; : : : ; an ) : ai 2 Ai ¯à¨ ¢á¥å i = 1; 2; : : : ; ng
(ä®à¬ «ì­® ¬®¦­® ®¯à¥¤¥«¨âì âனªã (a; b; c) ª ª ((a; b); c),
çñ⢥àªã (a; b; c; d) ª ª ((a; b; c); d) ¨ â ª ¤ «¥¥).
—¨á«® í«¥¬¥­â®¢ ¢ ¤¥ª à⮢®¬ ¯à®¨§¢¥¤¥­¨¥ à ¢­® ¯à®¨§¢¥¤¥­¨î
¬®é­®á⥩ ᮬ­®¦¨â¥«¥©:
jA1 A2 : : : Anj = jA1j jA2j : : : jAnj
Œ®¦­® ®¯à¥¤¥«¨âì â ª¦¥ ¤¥ª à⮢ã á⥯¥­ì
An = A A : : : A
ª ª ¯à®¨§¢¥¤¥­¨¥ n ®¤¨­ ª®¢ëå ᮬ­®¦¨â¥«¥©; ¤«ï ª®­¥ç­®£® A
¬®é­®áâì An à ¢­ jAjn. Žâ¬¥â¨¬, çâ® n-ª¨ ¬®¦­® à áᬠâਢ âì
ª ª ª®­¥ç­ë¥ ¯®á«¥¤®¢ ⥫쭮á⨠¤«¨­ë n (á¬. á. ??).
“¯à ¦­¥­¨ï
 à¨áã©â¥ ¤¨ £à ¬¬ã ‚¥­­ ¤«ï ¯¥à¢®£® ¨§ ᢮©á⢠¤¨áâਡã⨢­®á⨠(5.1).
5.1-2 „®ª ¦¨â¥ ®¡®¡é¥­¨¥ § ª®­®¢ ¤¥ Œ®à£ ­ ­ á«ãç © ¡®«ì襣® ç¨á« ¬­®¦¥áâ¢:
A1 \ A2 \ : : : \ An = A1 [ A2 [ : : : [ An ;
A1 [ A2 [ : : : [ An = A1 \ A2 \ : : : \ An:
5.1-1
76
ƒ« ¢ 5 Œ­®¦¥á⢠5.1-3 „®ª ¦¨â¥ ®¡®¡é¥­¨¥ à ¢¥­á⢠(5.3), ­ §ë¢ ¥¬®¥ ä®à¬ã«®©
¢ª«î祭¨© ¨ ¨áª«î祭¨© (principle of inclusion and exclusion):
jA1 [ A2 [ : : : [ Anj = jA1j + jA2j + : : : + jAn j
; jA1 \ A2j ; jA1 \ A3j ; : : :
+ jA1 \ A2 \ A3 j + : : :
+ (;1)n;1 jA1 \ A2 \ : : : \ An j
5.1-4
áçñâ­®.
„®ª § âì, çâ® ¬­®¦¥á⢮ ­¥çñâ­ëå ­ âãà «ì­ëå ç¨á¥«
„®ª § âì, çâ® ¥á«¨ ¬­®¦¥á⢮ S ª®­¥ç­® ¨ ᮤ¥à¦¨â n í«¥¬¥­â®¢, â® ¬­®¦¥á⢮-á⥯¥­ì 2S ᮤ¥à¦¨â 2n í«¥¬¥­â®¢. („à㣨¬¨
á«®¢ ¬¨, ¬­®¦¥á⢮ S ¨¬¥¥â 2n à §«¨ç­ëå ¯®¤¬­®¦¥áâ¢.)
5.1-6 „ ©â¥ ä®à¬ «ì­® ¨­¤ãªâ¨¢­®¥ ®¯à¥¤¥«¥­¨¥ n-ª¨, ¨á¯®«ì§ãï
¯®­ï⨥ 㯮à冷祭­®© ¯ àë.
5.1-5
5.2 Žâ­®è¥­¨ï
¨­ à­ë¬ ®â­®è¥­¨¥¬ (binary relation) R ¬¥¦¤ã í«¥¬¥­â ¬¨ ¬­®¦¥á⢠A ¨ B ­ §ë¢ ¥âáï ¯®¤¬­®¦¥á⢮ ¤¥ª à⮢ ¯à®¨§¢¥¤¥­¨ï
A B . …᫨ (a; b) 2 R, ¯¨èãâ aRb ¨ £®¢®àïâ, çâ® í«¥¬¥­â a ­ 室¨âáï ¢ ®â­®è¥­¨¨ R á í«¥¬¥­â®¬ b. ¨­ à­ë¬ ®â­®è¥­¨¥¬ ­ ¬­®¦¥á⢥ A ­ §ë¢ îâ ¯®¤¬­®¦¥á⢮ ¤¥ª à⮢ ª¢ ¤à â A A.
 ¯à¨¬¥à, ®â­®è¥­¨¥ "¡ëâì ¬¥­ìè¥" ­ ¬­®¦¥á⢥ ­ âãà «ì­ëå
ç¨á¥« ¥áâì ¬­®¦¥á⢮ f(a; b) : a; b 2 ¨ a < bg. ®¤ n-¬¥áâ­ë¬ ®â­®è¥­¨¥¬ (n-ary relation) ­ ¬­®¦¥á⢠å A1; A2; : : : ; An ¯®­¨¬ îâ
¯®¤¬­®¦¥á⢮ ¤¥ª à⮢ ¯à®¨§¢¥¤¥­¨ï A1 A2 : : : An .
¨­ à­®¥ ®â­®è¥­¨¥ R A A ­ §ë¢ îâ à¥ä«¥ªá¨¢­ë¬
(reexive), ¥á«¨
aRa
¤«ï ¢á¥å a 2 A.  ¯à¨¬¥à, ®â­®è¥­¨ï "=" ¨ "6" ïîâáï à¥ä«¥ªá¨¢­ë¬¨ ®â­®è¥­¨ï¬¨ ­ ¬­®¦¥á⢥ , ­® ®â­®è¥­¨¥ "<" â ª®¢ë¬
­¥ ï¥âáï. Žâ­®è¥­¨¥ R ­ §ë¢ ¥âáï ᨬ¬¥âà¨ç­ë¬ (symmetric),
¥á«¨
aRb ¢«¥çñâ bRa
¤«ï ¢á¥å a; b 2 A. Žâ­®è¥­¨¥ à ¢¥­á⢠ï¥âáï ᨬ¬¥âà¨ç­ë¬, ®â­®è¥­¨ï "<" ¨ "6" | ­¥â. Žâ­®è¥­¨¥ R ­ §ë¢ îâ âà ­§¨â¨¢­ë¬
(transitive), ¥á«¨
aRb ¨ bRc ¢«¥çñâ aRc
N
N
Žâ­®è¥­¨ï
77
¤«ï ¢á¥å a; b; c 2 A.  ¯à¨¬¥à, ®â­®è¥­¨ï "<", "6" ¨ "=" ïîâáï
âà ­§¨â¨¢­ë¬¨, ®â­®è¥­¨¥ R = f(a; b) : a; b 2 ¨ a = b ; 1g |
­¥â, â ª ª ª 3R4 ¨ 4R5, ­® ­¥ 3R5.
Žâ­®è¥­¨¥, ïî饥áï ®¤­®¢à¥¬¥­­® à¥ä«¥ªá¨¢­ë¬, ᨬ¬¥âà¨ç­ë¬ ¨ âà ­§¨â¨¢­ë¬, ­ §ë¢ î⠮⭮襭¨¥¬ íª¢¨¢ «¥­â­®áâ¨
(equivalence relation). …᫨ R | ®â­®è¥­¨¥ íª¢¨¢ «¥­â­®áâ¨
­ ¬­®¦¥á⢥ A, â® ¬®¦­® ®¯à¥¤¥«¨âì ª« áá íª¢¨¢ «¥­â­®áâ¨
(equivalence class) í«¥¬¥­â a 2 A ª ª ¬­®¦¥á⢮ [a] = fb 2 A : aRbg
¢á¥å í«¥¬¥­â®¢, íª¢¨¢ «¥­â­ëå a.  ¯à¨¬¥à, ­ ¬­®¦¥á⢥ ­ âãà «ì­ëå ç¨á¥« ¬®¦­® ®¯à¥¤¥«¨âì ®â­®è¥­¨¥ íª¢¨¢ «¥­â­®áâ¨,
áç¨â ï ç¨á« a ¨ b íª¢¨¢ «¥­â­ë¬¨, ¥á«¨ ¨å á㬬 a + b çñâ­ .
â® ®â­®è¥­¨¥ (­ §®¢ñ¬ ¥£® R) ¤¥©á⢨⥫쭮 ¡ã¤¥â ®â­®è¥­¨¥¬
íª¢¨¢ «¥­â­®áâ¨. ‚ á ¬®¬ ¤¥«¥, á㬬 a + a ¢á¥£¤ çñâ­ , â ª çâ®
®­® à¥ä«¥ªá¨¢­®; a + b = b + a, â ª çâ® R ᨬ¬¥âà¨ç­®; ­ ª®­¥æ,
¥á«¨ a + b ¨ b + c | çñâ­ë¥ ç¨á« , â® a + c = (a + b)+(b + c) ; 2b â ª¦¥
çñâ­®, â ª çâ® R âà ­§¨â¨¢­®. Š« áá íª¢¨¢ «¥­â­®á⨠ç¨á« 4
¥áâì [4] = f0; 2; 4; 6; : : : g, ª« áá íª¢¨¢ «¥­â­®á⨠ç¨á« 3 ¥áâì
[3] = f1; 3; 5; 7; : : : g. Žá­®¢­®¥ ᢮©á⢮ ª« áᮢ íª¢¨¢ «¥­â­®áâ¨
á®á⮨⠢ á«¥¤ãî饬:
N
’¥®à¥¬ 5.1 (Žâ­®è¥­¨ï íª¢¨¢ «¥­â­®á⨠ᮮ⢥âáâ¢ãîâ à §¡¨¥­¨ï¬).
„«ï «î¡®£® ®â­®è¥­¨ï íª¢¨¢ «¥­â­®á⨠­ ¬­®¦¥á⢥ A ª« ááë
íª¢¨¢ «¥­â­®á⨠®¡à §ãîâ à §¡¨¥­¨¥ A.  ¯à®â¨¢, ¤«ï «î¡®£®
à §¡¨¥­¨ï ¬­®¦¥á⢠A ®â­®è¥­¨¥ "¡ëâì ¢ ®¤­®¬ ª« áá¥"
ï¥âáï ®â­®è¥­¨¥¬ íª¢¨¢ «¥­â­®áâ¨.
„®ª § ⥫ìá⢮. —â®¡ë ¤®ª § âì ¯¥à¢®¥ ã⢥ত¥­¨¥, ­ ¤® ¯®ª § âì, çâ® ª« ááë íª¢¨¢ «¥­â­®á⨠­¥¯ãáâë, ¯®¯ à­® ­¥ ¯¥à¥á¥ª îâáï ¨ ¢ ®¡ê¥¤¨­¥­¨¨ ¤ îâ ¢áñ ¬­®¦¥á⢮ A. ® ᢮©áâ¢ã à¥ä«¥ªá¨¢­®á⨠a 2 [a], ¯®í⮬㠪« ááë ­¥¯ãáâë ¨ ¯®ªàë¢ îâ ¢áñ a. „®ª ¦¥¬, çâ® ¥á«¨ ª« ááë [a] ¨ [b] ¯¥à¥á¥ª îâáï, â® ®­¨ ᮢ¯ ¤ îâ.
ãáâì c | ¨å ®¡é¨© í«¥¬¥­â, ⮣¤ aRc, bRc, cRb (ᨬ¬¥âà¨ç­®áâì) ¨ aRb (âà ­§¨â¨¢­®áâì). ’¥¯¥àì ¢¨¤­®, çâ® [b] [a]: ¥á«¨
x | ¯à®¨§¢®«ì­ë© í«¥¬¥­â b, â® bRx ¨ ¯® âà ­§¨â¨¢­®á⨠aRx.
€­ «®£¨ç­®, [a] [b] ¨ ¯®â®¬ã [a] = [b].
‚â®à®¥ ã⢥ত¥­¨¥ ⥮६ë ᮢᥬ ®ç¥¢¨¤­®.
¨­ à­®¥ ®â­®è¥­¨¥ R ­ ¬­®¦¥á⢥ A ­ §ë¢ ¥âáï ­â¨á¨¬¬¥âà¨ç­ë¬, ¥á«¨
aRb ¨ bRa ¢«¥çñâ a = b:
 ¯à¨¬¥à, ®â­®è¥­¨¥ "6" ­ ­ âãà «ì­ëå ç¨á« å ï¥âáï ­â¨á¨¬¬¥âà¨ç­ë¬, ¯®áª®«ìªã ¨§ a 6 b ¨ b 6 a á«¥¤ã¥â a = b. ¥ä«¥ªá¨¢­®¥, ­â¨á¨¬¬¥âà¨ç­®¥ ¨ âà ­§¨â¨¢­®¥ ®â­®è¥­¨¥ ­ §ë¢ ¥âáï
®â­®è¥­¨¥¬ ç áâ¨ç­®£® ¯®à浪 (partial order), ¨ ¬­®¦¥á⢮ ¢¬¥á⥠á
â ª¨¬ ®â­®è¥­¨¥¬ ­ ­ñ¬ ­ §ë¢ ¥âáï ç áâ¨ç­® 㯮à冷祭­ë¬ ¬­®¦¥á⢮¬ (partially ordered set).  ¯à¨¬¥à, ®â­®è¥­¨¥ "¡ëâì ¯®â®¬-
78
ƒ« ¢ 5 Œ­®¦¥á⢠ª®¬" ­ ¬­®¦¥á⢥ «î¤¥© ï¥âáï ç áâ¨ç­ë¬ ¯®à浪®¬, ¥á«¨ ¬ë
áç¨â ¥¬ 祫®¢¥ª ᢮¨¬ ¯®â®¬ª®¬.
— áâ¨ç­® 㯮à冷祭­®¥ ¬­®¦¥á⢮, ¤ ¦¥ ª®­¥ç­®¥, ¬®¦¥â ­¥
¨¬¥âì ­ ¨¡®«ì襣® í«¥¬¥­â | â ª®£® í«¥¬¥­â x, çâ® yRx ¤«ï
«î¡®£® í«¥¬¥­â y. ‘«¥¤ã¥â à §«¨ç âì ¯®­ïâ¨ï ­ ¨¡®«ì襣® ¨
¬ ªá¨¬ «ì­®£® í«¥¬¥­â®¢: í«¥¬¥­â x ­ §ë¢ ¥âáï ¬ ªá¨¬ «ì­ë¬
(maximal), ¥á«¨ ­¥ áãé¥áâ¢ã¥â ¡®«ì襣® í«¥¬¥­â , â. ¥. ¥á«¨ ¨§ xRy
á«¥¤ã¥â x = y.  ¯à¨¬¥à, á।¨ ­¥áª®«ìª¨å ª àâ®­­ëå ª®à®¡®ª ¬®¦¥â ­¥ ¡ëâì ­ ¨¡®«ì襩 (¢ ª®â®àãî ¯®¬¥é ¥âáï «î¡ ï ¤à㣠ï),
­® § ¢¥¤®¬® ¥áâì ®¤­ ¨«¨ ­¥áª®«ìª® ¬ ªá¨¬ «ì­ëå (ª®â®àë¥ ­¥
¢«¥§ îâ ­¨ ¢ ®¤­ã ¤àã£ãî).
— áâ¨ç­ë© ¯®à冷ª ­ §ë¢ ¥âáï «¨­¥©­ë¬ (total order, linear
order), ¥á«¨ ¤«ï «î¡ëå í«¥¬¥­â®¢ a ¨ b ¢ë¯®«­¥­® «¨¡® aRb, «¨¡®
bRa (¨«¨ ®¡ | ⮣¤ ®­¨ à ¢­ë ¯® ᢮©áâ¢ã ­â¨á¨¬¬¥âà¨ç­®áâ¨).  ¯à¨¬¥à, ®â­®è¥­¨¥ "6" ­ ¬­®¦¥á⢥ ­ âãà «ì­ëå ç¨á¥«
ï¥âáï «¨­¥©­ë¬ ¯®à浪®¬, ®â­®è¥­¨¥ "¡ëâì ¯®â®¬ª®¬" ­ ¬­®¦¥á⢥ «î¤¥© | ­¥â (¬®¦­® ­ ©â¨ ¤¢ãå 祫®¢¥ª, ­¥ ïîé¨åáï ¯®â®¬ª ¬¨ ¤à㣠¤à㣠).
“¯à ¦­¥­¨ï
„®ª § âì, çâ® ®â­®è¥­¨¥ "" ­ ¬­®¦¥á⢥ ¢á¥å ¯®¤¬­®¦¥á⢠¬­®¦¥á⢠ï¥âáï ®â­®è¥­¨¥¬ ç áâ¨ç­®£®, ­® ­¥ «¨­¥©­®£® ¯®à浪 .
5.2-2 ®ª § âì, çâ® ¤«ï «î¡®£® ¯®«®¦¨â¥«ì­®£® n ®â­®è¥­¨¥
a b (mod n) ï¥âáï ®â­®è¥­¨¥¬ íª¢¨¢ «¥­â­®á⨠­ ¬­®¦¥á⢥ . (ƒ®¢®àïâ, çâ® a b (mod n), ¥á«¨ áãé¥áâ¢ã¥â 楫®¥ q, ¤«ï
ª®â®à®£® a ; b = qn.) ‘ª®«ìª® ª« áᮢ íª¢¨¢ «¥­â­®á⨠¥áâì ã í⮣®
®â­®è¥­¨ï?
5.2-3 à¨¢¥¤¨â¥ ¯à¨¬¥à ®â­®è¥­¨ï, ª®â®à®¥
. à¥ä«¥ªá¨¢­® ¨ ᨬ¬¥âà¨ç­®, ­® ­¥ âà ­§¨â¨¢­®;
¡. à¥ä«¥ªá¨¢­® ¨ âà ­§¨â¨¢­®, ­® ­¥ ᨬ¬¥âà¨ç­®;
¢. ᨬ¬¥âà¨ç­® ¨ âà ­§¨â¨¢­®, ­® ­¥ à¥ä«¥ªá¨¢­®.
5.2-4 ãáâì S | ª®­¥ç­®¥ ¬­®¦¥á⢮, R | ®â­®è¥­¨¥ íª¢¨¢ «¥­â­®á⨠­ S . „®ª ¦¨â¥, çâ® ¥á«¨ R ­â¨á¨¬¬¥âà¨ç­®, çâ® ¢á¥
ª« ááë íª¢¨¢ «¥­â­®á⨠ᮤ¥à¦ â ¯® ®¤­®¬ã í«¥¬¥­âã.
5.2-5 à®ä¥áá®à ¤ã¬ ¥â, çâ® ¢á类¥ ᨬ¬¥âà¨ç­®¥ ¨ âà ­§¨â¨¢­®¥ ®â­®è¥­¨¥ à¥ä«¥ªá¨¢­®, ¨ ¯à¥¤« £ ¥â â ª®¥ ¤®ª § ⥫ìá⢮: ¨§
aRb á«¥¤ã¥â bRa ¯® ᨬ¬¥âà¨ç­®áâ¨, ®âªã¤ á«¥¤ã¥â aRa ¯® âà ­§¨â¨¢­®áâ¨. à ¢¨«ì­® «¨ íâ® ¤®ª § ⥫ìá⢮?
5.2-1
Z
Z
”㭪樨
79
5.3 ”㭪樨
ãáâì ¤ ­ë ¤¢ ¬­®¦¥á⢠A ¨ B. ”㭪樥© (function), ®â®¡à ¦ î饩 A ¢ B, ­ §ë¢ ¥âáï ¡¨­ à­®¥ ®â­®è¥­¨¥ f A B, ®¡« ¤ î饥 â ª¨¬ ᢮©á⢮¬: ¤«ï ª ¦¤®£® a 2 A áãé¥áâ¢ã¥â ஢­®
®¤­® b 2 B, ¤«ï ª®â®à®£® (a; b) 2 f . Œ­®¦¥á⢮ A ­ §ë¢ ¥âáï ®¡« áâìî ®¯à¥¤¥«¥­¨ï (domain) ä㭪樨; ¤«ï ¬­®¦¥á⢠B ¢ àãá᪮¬
ï§ëª¥ ­¥â ®¡é¥¯à¨­ï⮣® ­ §¢ ­¨ï, ¯®- ­£«¨©áª¨ ®­® ­ §ë¢ ¥âáï
codomain.
Œ®¦­® ᪠§ âì, çâ® äã­ªæ¨ï f ᮯ®áâ ¢«ï¥â á ª ¦¤ë¬ í«¥¬¥­â®¬ ¬­®¦¥á⢠A ­¥ª®â®àë© í«¥¬¥­â ¬­®¦¥á⢠B. Ž¤­®¬ã í«¥¬¥­âã ¬­®¦¥á⢠A ¬®¦¥â ᮮ⢥âá⢮¢ âì ⮫쪮 ®¤¨­ í«¥¬¥­â
¬­®¦¥á⢠B, å®âï ®¤¨­ ¨ â®â ¦¥ í«¥¬¥­â B ¬®¦¥â ᮮ⢥âá⢮¢ âì ­¥áª®«ìª¨¬ à §«¨ç­ë¬ í«¥¬¥­â ¬ A.  ¯à¨¬¥à, ¡¨­ à­®¥ ®â­®è¥­¨¥
f = f(a; b) : a 2 ¨ b = a mod 2g
¬®¦­® à áᬠâਢ âì ª ª äã­ªæ¨î f : ! f0; 1g, ¯®áª®«ìªã ¤«ï
ª ¦¤®£® ­ âãà «ì­®£® ç¨á« a áãé¥áâ¢ã¥â ¥¤¨­á⢥­­®¥ b 2 f0; 1g,
à ¢­®¥ a mod 2. Œ®¦­® § ¯¨á âì f (0) = 0, f (1) = 1, f (2) = 0 ¨ â ª
¤ «¥¥. ‘ ¤à㣮© áâ®à®­ë, ®â­®è¥­¨¥
g = f(a; b) : a; b 2 ¨ a + b çñâ­®g
­¥ ï¥âáï ä㭪樥©, ¯®áª®«ìªã (­ ¯à¨¬¥à) ¯ àë (1; 3) ¨ (1; 5),
¯à¨­ ¤«¥¦ 騥 í⮬㠮⭮襭¨î, ¨¬¥îâ à ¢­ë¥ ¯¥à¢ë¥ ç«¥­ë,
­® à §­ë¥ ¢â®àë¥.
…᫨ ¯ à (a; b) ¯à¨­ ¤«¥¦¨â ®â­®è¥­¨î f , ïî饬ãáï ä㭪樥©, â® £®¢®àïâ, çâ® b ï¥âáï §­ 祭¨¥¬ (value) ä㭪樨 ¤«ï à£ã¬¥­â (argument) a, ¨ ¯¨èãâ b = f (a). —â®¡ë § ¤ âì äã­ªæ¨î, ­ ¤®
㪠§ âì ¥ñ §­ 祭¨¥ ¤«ï ª ¦¤®£® à£ã¬¥­â , ¯à¨­ ¤«¥¦ 饣® ¥ñ
®¡« á⨠®¯à¥¤¥«¥­¨ï.  ¯à¨¬¥à, ¬®¦­® § ¤ âì äã­ªæ¨î f : !
ä®à¬ã«®© f (n) = 2n, ª®â®à ï ®§­ ç ¥â, çâ® f = f(n; 2n) : n 2 g.
„¢¥ ä㭪樨 f; g : A ! B áç¨â îâáï à ¢­ë¬¨ (equal), ¥á«¨ f (a) =
g(a) ¤«ï ¢á¥å a 2 A. (Ž¡à â¨â¥ ¢­¨¬ ­¨¥, çâ® á ä®à¬ «ì­®© â®çª¨
§à¥­¨ï ¬ë áç¨â ¥¬ ä㭪樨 f : A ! B1 ¨ g : A ! B2 à §«¨ç­ë¬¨
¯à¨ B1 =
6 B2, ¤ ¦¥ ¥á«¨ f (a) = g(a) ¯à¨ ¢á¥å a!)
Š®­¥ç­®© ¯®á«¥¤®¢ ⥫쭮áâìî (nite sequence) ¤«¨­ë n ­ §ë¢ îâ äã­ªæ¨î f , ®¡« áâì ®¯à¥¤¥«¥­¨ï ª®â®à®© ¥áâì ¬­®¦¥á⢮
f0; 1; 2; : : :; n ; 1g. Š®­¥ç­ãî ¯®á«¥¤®¢ ⥫쭮áâì ç áâ® § ¯¨áë¢ îâ
ª ª ᯨ᮪ ¥ñ §­ 祭¨©, â. ¥. ª ª hf (0); f (1); : : :; f (n ; 1)i. ¥áª®­¥ç­®© ¯®á«¥¤®¢ ⥫쭮áâìî (innite sequence) ­ §ë¢ ¥âáï äã­ªæ¨ï,
®¡« áâìî ®¯à¥¤¥«¥­¨ï ª®â®à®© ï¥âáï ¬­®¦¥á⢮ ­ âãà «ì­ëå
ç¨á¥«.  ¯à¨¬¥à, ¯®á«¥¤®¢ ⥫쭮áâì ”¨¡®­ çç¨, § ¤ ­­ ï ãà ¢­¥­¨¥¬ (2.13), ¬®¦¥â ¡ëâì § ¯¨á ­ ª ª h0; 1; 1; 2; 3; 5; 8; 13; 21; : : : i.
N
N
N
N
N
N
N
80
ƒ« ¢ 5 Œ­®¦¥á⢠…᫨ ®¡« áâì ®¯à¥¤¥«¥­¨ï ä㭪樨 ï¥âáï ¤¥ª àâ®¢ë¬ ¯à®¨§¢¥¤¥­¨¥¬ ­¥áª®«ìª¨å ¬­®¦¥á⢠, ¬ë ®¡ëç­® ®¯ã᪠¥¬ ¤®¯®«­¨â¥«ì­ë¥ ᪮¡ª¨ ¢®ªà㣠à£ã¬¥­â®¢.  ¯à¨¬¥à, ¥á«¨ f : A1 A2 : : : An ! B, ¬ë ¯¨è¥¬ f (a1; a2; : : :; an) ¢¬¥áâ® ¡®«¥¥ ä®à¬ «ì­®£® f ((a1; a2; : : : ; an)). Š ¦¤®¥ ¨§ ai â ª¦¥ ­ §ë¢ ¥âáï à£ã¬¥­â®¬
(argument) ä㭪樨 f , å®âï ä®à¬ «ì­® ¥ñ à£ã¬¥­â®¢ á«¥¤®¢ «® ¡ë
áç¨â âì n-ªã (a1; a2; : : :; an).
…᫨ b = f (a) ¤«ï ­¥ª®â®à®© ä㭪樨 f : A ! B ¨ ­¥ª®â®àëå
a 2 A, b 2 B, â® í«¥¬¥­â b ­ §ë¢ îâ ®¡à §®¬ (image) í«¥¬¥­â a.
„«ï ¯à®¨§¢®«ì­®£® ¯®¤¬­®¦¥á⢠A0 ¬­®¦¥á⢠A ¥£® ®¡à § f (A0)
®¯à¥¤¥«ïîâ ä®à¬ã«®©
f (A0) = fb 2 B : b = f (a)¤«ï ­¥ª®â®à®£® a 2 A0g:
Œ­®¦¥á⢮ §­ 祭¨© (range) ä㭪樨 f ®¯à¥¤¥«ï¥âáï ª ª ®¡à § ®¡« á⨠¥ñ ®¯à¥¤¥«¥­¨ï, â. ¥. ª ª f (A).  ¯à¨¬¥à, ¬­®¦¥á⢮ §­ 祭¨©
ä㭪樨 f : ! , ®¯à¥¤¥«ñ­­®© ä®à¬ã«®© f (n) = 2n, ¥áâì ¬­®¦¥á⢮ ¢á¥å çñâ­ëå ­ âãà «ì­ëå ç¨á¥«, ª®â®à®¥ ¬®¦­® § ¯¨á âì ª ª
f ( ) = fm : m = 2n ¤«ï ­¥ª®â®à®£® n 2 g.
”ã­ªæ¨ï f : A ! B ­ §ë¢ ¥âáï áîàꥪ樥© (surjection), ¨«¨ ­ «®¦¥­¨¥¬, ¥á«¨ ¥ñ ®¡à § ᮢ¯ ¤ ¥â á ¬­®¦¥á⢮¬ B , â. ¥. ¢á直© í«¥¬¥­â b 2 B ï¥âáï ®¡à §®¬ ­¥ª®â®à®£® í«¥¬¥­â a 2 A.  ¯à¨¬¥à, äã­ªæ¨ï f : ! , § ¤ ­­ ï ä®à¬ã«®© f (n) = bn=2c, ï¥âáï áîàꥪ樥©. ”ã­ªæ¨ï f (n) = 2n ­¥ ¡ã¤¥â áîàꥪ樥©, ¥á«¨
áç¨â âì, çâ® f : ! , ­® ¡ã¤¥â â ª®¢®©, ¥á«¨ áç¨â âì ¥ñ ®â®¡à ¦ î饩 ¬­®¦¥á⢮ ­ âãà «ì­ëå ç¨á¥« ¢ ¬­®¦¥á⢮ çñâ­ëå ­ âãà «ì­ëå ç¨á¥«. ”ã­ªæ¨î f : A ! B, ïîéãîáï áîàꥪ樥©,
­ §ë¢ îâ â ª¦¥ ®â®¡à ¦¥­¨¥¬ A ­ B (onto B).
”ã­ªæ¨ï f : A ! B ­ §ë¢ ¥âáï ¨­ê¥ªæ¨¥© (injection), ¨«¨ ¢«®¦¥­¨¥¬, ¥á«¨ à §«¨ç­ë¬ à£ã¬¥­â ¬ ᮮ⢥âáâ¢ãîâ à §«¨ç­ë¥ §­ 祭¨ï, â. ¥. ¥á«¨ f (a) =
6 f (a0) ¯à¨ a =6 a0.  ¯à¨¬¥à, äã­ªæ¨ï f (n) = 2n
ï¥âáï ¨­ê¥ªæ¨¥© ¬­®¦¥á⢠¢ ¬­®¦¥á⢮ , ¯®áª®«ìªã «î¡®¥
ç¨á«® n ï¥âáï ®¡à §®¬ á ¬®¥ ¡®«ì襥 ®¤­®£® í«¥¬¥­â (n=2, ¥á«¨
n çñâ­®; ­¥çñâ­ë¥ ç¨á« ­¥ ïîâáï ®¡à § ¬¨ ­¨ª ª¨å í«¥¬¥­â®¢).
”ã­ªæ¨ï f (n) = bn=2c ­¥ ï¥âáï ¨­ê¥ªæ¨¥©, â ª ª ª (­ ¯à¨¬¥à)
f (2) = f (3) = 1. ‚ ­£«¨©áª®© «¨â¥à âãॠ¤«ï ¨­ê¥ªæ¨© 㯮âॡ«ï¥âáï â ª¦¥ â¥à¬¨­ "one-to-one function".
”ã­ªæ¨ï f : A ! B ­ §ë¢ ¥âáï ¡¨¥ªæ¨¥© (bijection), ¥á«¨ ®­ ®¤­®¢à¥¬¥­­® ï¥âáï ¨­ê¥ªæ¨¥© ¨ áîàꥪ樥©.  ¯à¨¬¥à, äã­ªæ¨ï
f (n) = (;1)n dn=2e, à áᬠâਢ ¥¬ ï ª ª äã­ªæ¨ï, ®â®¡à ¦ îé ï
N
N
N
N
N
N
N
N
N
N
”㭪樨
N
81
¢ , ï¥âáï ¡¨¥ªæ¨¥©:
Z
0! 0
1 ! ;1
2! 1
3 ! ;2
4! 2
..
.
ˆ­ê¥ªâ¨¢­®áâì ®§­ ç ¥â, çâ® ­¨ª ª®© í«¥¬¥­â ¬­®¦¥á⢠­¥
ï¥âáï ®¡à §®¬ ¤¢ãå à §­ëå í«¥¬¥­â®¢ ¬­®¦¥á⢠. ‘îàꥪ⨢­®áâì ®§­ ç ¥â, çâ® ¢á直© í«¥¬¥­â ¬­®¦¥á⢠ï¥âáï ®¡à §®¬
å®âï ¡ë ®¤­®£® í«¥¬¥­â ¬­®¦¥á⢠. ¨¥ªæ¨¨ ­ §ë¢ îâ â ª¦¥
Z
N
Z
N
¢§ ¨¬­® ®¤­®§­ ç­ë¬¨ ᮮ⢥âá⢨ﬨ (one-to-one correspondence),
¯®áª®«ìªã ®­¨ ãáâ ­ ¢«¨¢ îâ ᮮ⢥âáâ¢¨ï ¬¥¦¤ã í«¥¬¥­â ¬¨
¬­®¦¥á⢠A ¨ B. ¨¥ªâ¨¢­ ï äã­ªæ¨ï, ®â®¡à ¦ îé ï ¬­®¦¥á⢮
A ¢ ᥡï, ­ §ë¢ ¥âáï ¯¥à¥áâ ­®¢ª®© (permutation) ¬­®¦¥á⢠A.
…᫨ äã­ªæ¨ï f ¡¨¥ªâ¨¢­ , ¬®¦­® ®¯à¥¤¥«¨âì ®¡à â­ãî (inverse)
äã­ªæ¨î f ;1 ᮮ⭮襭¨¥¬
f ;1(b) = a ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ f (a) = b:
 ¯à¨¬¥à, ¤«ï à áᬮâ७­®© ¢ëè¥ ä㭪樨 f (n) = (;1)ndn=2e
®¡à â­ ï äã­ªæ¨ï ¢ëç¨á«ï¥âáï ¯® ä®à¬ã«¥
f ;1(m) =
(
2m;
¥á«¨ m > 0,
;2m ; 1; ¥á«¨ m < 0.
“¯à ¦­¥­¨ï
ãáâì A ¨ B | ª®­¥ç­ë¥ ¬­®¦¥á⢠, ¨ f : A ! B | ­¥ª®â®à ï äã­ªæ¨ï. ®ª ¦¨â¥, çâ®
. ¥á«¨ f | ¨­ê¥ªæ¨ï, â® jAj 6 jBj;
¡. ¥á«¨ f | áîàꥪæ¨ï, â® jAj > jBj.
5.3-2 ã¤¥â «¨ ¡¨¥ªæ¨¥© äã­ªæ¨ï f : ! , § ¤ ­­ ï ä®à¬ã«®©
f (x) = x + 1? ’®â ¦¥ ¢®¯à®á ¤«ï ä㭪樨 ! , § ¤ ­­®© ⮩ ¦¥
ä®à¬ã«®©.
5.3-3 „ ©â¥ ®¯à¥¤¥«¥­¨¥ ®¡à â­®£® ª ¡¨­ à­®¬ã ®â­®è¥­¨î.
(…᫨ ®â­®è¥­¨¥ ï¥âáï ¡¨¥ªæ¨¥©, â® ®¯à¥¤¥«¥­¨¥ ¤®«¦­® ¤ ¢ âì ®¡à â­ãî ¡¨¥ªæ¨î ¢ ®¯¨á ­­®¬ ¢ëè¥ á¬ëá«¥.)
5.3-4? ®áâன⥠¡¨¥ªæ¨î f : ! .
5.3-1
N
N
Z
Z
Z
Z
Z
82
ƒ« ¢ 5 Œ­®¦¥á⢠¨áã­®ª
5.2 Žà¨¥­â¨à®¢ ­­ë¥
¨
­¥®à¨¥­â¨à®¢ ­­ë¥
£à äë.
( ) Žà¨¥­â¨à®¢ ­­ë© £à ä (V; E ), £¤¥ V = f1; 2; 3; 4; 5; 6g ¨ E =
f(1; 2); (2; 2); (2; 4); (2; 5); (4; 1); (4; 5); (5; 4); (6; 3)g. ¥¡à® (2; 2) ï¥âáï ॡ஬横«®¬. (¡) ¥®à¨¥­â¨à®¢ ­­ë© £à ä G = (V; E ), £¤¥ V = f1; 2; 3; 4; 5; 6g ¨
E = f(1; 2); (1; 5); (2; 5); (3; 6)g. ‚¥à設 4 ï¥âáï ¨§®«¨à®¢ ­­®© (­¥ ¨¬¥¥â
ᬥ¦­ëå ¢¥à設). (¢) ®¤£à ä £à ä ( ), ¯®«ãç î騩áï ¥£® ®£à ­¨ç¥­¨¥¬ ­ ¬­®¦¥á⢮ ¢¥à設 f1; 2; 3; 6g.
5.4 ƒà äë
‚ í⮬ à §¤¥«¥ ¬ë à áᬮâਬ ®á­®¢­ë¥ ¯®­ïâ¨ï, á¢ï§ ­­ë¥
á ®à¨¥­â¨à®¢ ­­ë¬¨ ¨ ­¥®à¨¥­â¨à®¢ ­­ë¬¨ £à ä ¬¨. ‘«¥¤ã¥â
¨¬¥âì ¢ ¢¨¤ã, çâ® â¥à¬¨­®«®£¨ï §¤¥áì ­¥ ¢¯®«­¥ ãáâ®ï« áì ¨ ¢ à §­ëå ª­¨£ å ¬®¦­® ¢áâà¥â¨âì à §­ë¥ ®¯à¥¤¥«¥­¨ï, ­® ¯® ¡®«ì襩
ç áâ¨ à §«¨ç¨ï ­¥¢¥«¨ª¨. Œë ¢¥à­ñ¬áï ª £à ä ¬ ¢ £« ¢¥ 23, £¤¥
à áᬠâਢ îâáï à §«¨ç­ë¥ «£®à¨â¬ë ­ £à ä å.
Žà¨¥­â¨à®¢ ­­ë© £à ä (directed graph) ®¯à¥¤¥«ï¥âáï ª ª ¯ à (V; E ), £¤¥ V | ª®­¥ç­®¥ ¬­®¦¥á⢮, E | ¡¨­ à­®¥ ®â­®è¥­¨¥ ­ V , â. ¥. ¯®¤¬­®¦¥á⢮ ¬­®¦¥á⢠V V . Žà¨¥­â¨à®¢ ­­ë©
£à ä ¨­®£¤ ¤«ï ªà ⪮á⨠­ §ë¢ îâ ®à£à 䮬 (digraph). Œ­®¦¥á⢮ V ­ §ë¢ îâ ¬­®¦¥á⢮¬ ¢¥à設 £à ä (vertex set); ¥£® í«¥¬¥­â
­ §ë¢ îâ ¢¥à設®© £à ä (vertex; ¬­®¦¥á⢥­­®¥ ç¨á«® vertices).
Œ­®¦¥á⢮ E ­ §ë¢ îâ ¬­®¦¥á⢮¬ àñ¡¥à (edge set) £à ä ; ¥£® í«¥¬¥­âë ­ §ë¢ îâ àñ¡à ¬¨ (edges).  à¨áã­ª¥ 5.2 ( ) ¯®ª § ­ ®à¨¥­â¨à®¢ ­­ë© £à ä á ¬­®¦¥á⢮¬ ¢¥à設 f1; 2; 3; 4; 5; 6g. ‚¥à設ë
¨§®¡à ¦¥­ë ªà㦪 ¬¨, àñ¡à | áâ५ª ¬¨. ‡ ¬¥â¨¬, çâ® £à ä
¬®¦¥â ᮤ¥à¦ âì àñ¡à -横«ë (self-loops), ᮥ¤¨­ïî騥 ¢¥à設ã á
ᮡ®©.
‚ ­¥®à¨¥­â¨à®¢ ­­®¬ (undirected) £à ä¥ G = (V; E ) ¬­®¦¥á⢮ àñ¡¥à (V ) á®á⮨⠨§ ­¥ã¯®à冷祭­ëå (unordered) ¯ à ¢¥à設: ¯ à ¬¨
ïîâáï ¬­®¦¥á⢠fu; vg, £¤¥ u; v 2 V ¨ u =
6 v. Œë ¡ã¤¥¬ ®¡®§­ ç âì ­¥®à¨¥­â¨à®¢ ­­®¥ ॡ஠ª ª (u; v) ¢¬¥áâ® fu; vg; ¯à¨ í⮬ ¤«ï
­¥®à¨¥­â¨à®¢ ­­®£® £à ä (u; v) ¨ (v; u) ®¡®§­ ç îâ ®¤­® ¨ â® ¦¥
ॡà®. ¥®à¨¥­â¨à®¢ ­­ë© £à ä ­¥ ¬®¦¥â ᮤ¥à¦ âì àñ¡¥à-横«®¢,
¨ ª ¦¤®¥ ॡ஠á®á⮨⠨§ ¤¢ãå à §«¨ç­ëå ¢¥à設 ("ᮥ¤¨­ïï" ¨å).
 à¨á. 5.2 (¡) ¨§®¡à ¦ñ­ ­¥®à¨¥­â¨à®¢ ­­ë© £à ä á ¬­®¦¥á⢮¬
¢¥à設 f1; 2; 3; 4; 5; 6g.
ƒà äë
83
Œ­®£¨¥ ¯®­ïâ¨ï ¯ à ««¥«ì­® ®¯à¥¤¥«ïîâáï ¤«ï ®à¨¥­â¨à®¢ ­­ëå ¨ ­¥®à¨¥­â¨à®¢ ­­ëå £à 䮢 (á ᮮ⢥âáâ¢ãî騬¨ ¨§¬¥­¥­¨ï¬¨). à® ॡ஠(u; v) ®à¨¥­â¨à®¢ ­­®£® £à ä £®¢®àïâ, çâ® ®­®
¢ë室¨â ¨§ (incident from, leaves) ¢¥à設ë u ¨ ¢å®¤¨â (incident to,
enters) ¢ ¢¥à設ã v .  ¯à¨¬¥à, ­ à¨á. 5.2 ( ) ¨¬¥¥âáï âਠॡà ,
¢ë室ïé¨å ¨§ ¢¥à設ë 2 ((2; 2); (2; 4); (2; 5)) ¨ ¤¢ ॡà , ¢ ­¥ñ
¢å®¤ïé¨å ((1; 2); (2; 2)). à® ॡ஠(u; v) ­¥®à¨¥­â¨à®¢ ­­®£® £à ä £®¢®àïâ, çâ® ®­® ¨­æ¨¤¥­â­® ¢¥à設 ¬ (incident on vertices) u ¨ v.
 ¯à¨¬¥à, ­ à¨á. 2.5 (¡) ¥áâì ¤¢ ॡà , ¨­æ¨¤¥­â­ë¥ ¢¥à設¥ 2
(àñ¡à (1; 2) ¨ (2; 5)).
…᫨ ¢ £à ä¥ G ¨¬¥¥âáï ॡ஠(u; v), £®¢®àïâ, çâ® ¢¥à設 v
ᬥ¦­ á ¢¥à設®© u (is adjacent to u). „«ï ­¥®à¨¥­â¨à®¢ ­­ëå
£à 䮢 ®â­®è¥­¨¥ ᬥ¦­®á⨠ï¥âáï ᨬ¬¥âà¨ç­ë¬, ­® ¤«ï ®à¨¥­â¨à®¢ ­­ëå £à 䮢 íâ® ­¥ ®¡ï§ ⥫쭮. …᫨ ¢¥à設 v ᬥ¦­ á ¢¥à設®© u ¢ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥, ¯¨èãâ u ! v. „«ï ®¡®¨å
à¨áã­ª®¢ 5.2 ( ) ¨ 5.2 (¡) ¢¥à設 2 ï¥âáï ᬥ¦­®© á ¢¥à設®© 1, ­® «¨èì ¢® ¢â®à®¬ ¨§ ­¨å ¢¥à設 1 ᬥ¦­ á ¢¥à設®© 2
(¢ ¯¥à¢®¬ á«ãç ¥ ॡ஠(2; 1) ®âáãâáâ¢ã¥â ¢ £à ä¥).
‘⥯¥­ìî (degree) ¢¥àè¨­ë ¢ ­¥®à¨¥­â¨à®¢ ­­®¬ £à ä¥ ­ §ë¢ ¥âáï ç¨á«® ¨­æ¨¤¥­â­ëå ¥© àñ¡¥à.  ¯à¨¬¥à, ¤«ï £à ä à¨á. 5.2 (¡)
á⥯¥­ì ¢¥à設ë 2 à ¢­ 2. „«ï ®à¨¥­â¨à®¢ ­­®£® £à ä à §«¨ç îâ ¨á室ïéãî á⥯¥­ì (out-degree), ®¯à¥¤¥«ï¥¬ãî ª ª ç¨á«® ¢ë室ïé¨å ¨§ ­¥ñ àñ¡¥à, ¨ ¢å®¤ïéãî á⥯¥­ì (in-degree), ®¯à¥¤¥«ï¥¬ãî
ª ª ç¨á«® ¢å®¤ïé¨å ¢ ­¥ñ àñ¡¥à. ‘㬬 ¨á室ï饩 ¨ ¢å®¤ï饩 á⥯¥­¥© ­ §ë¢ ¥âáï á⥯¥­ìî (degree) ¢¥à設ë.  ¯à¨¬¥à, ¢¥à設 2
¢ £à ä¥ à¨á. 5.2 ( ) ¨¬¥¥â ¢å®¤ïéãî á⥯¥­ì 2, ¨á室ïéãî á⥯¥­ì 3
¨ á⥯¥­ì 5.
ãâì ¤«¨­ë k (path of length k) ¨§ ¢¥à設ë u ¢ ¢¥à設ã v ®¯à¥¤¥«ï¥âáï ª ª ¯®á«¥¤®¢ ⥫쭮áâì ¢¥à設 hv0; v1; v2; : : :; vki, ¢ ª®â®à®©
v0 = u, vk = v ¨ (vi;1 ; vi) 2 E ¤«ï ¢á¥å i = 1; 2; : : :; k. ’ ª¨¬ ®¡à §®¬, ¯ãâì ¤«¨­ë k á®á⮨⠨§ k àñ¡¥à. â®â ¯ãâì ᮤ¥à¦¨â (contains)
¢¥à設ë v0; v1; : : :; vk ¨ àñ¡à (v0; v1); (v1; v2); : : :; (vk;1; vk ). ‚¥à設ã v0 ­ §ë¢ îâ ­ ç «®¬ ¯ãâ¨, ¢¥à設ã vk | ¥£® ª®­æ®¬; £®¢®àïâ, çâ® ¯ãâì ¢¥¤ñâ ¨§ v0 ¢ vk . …᫨ ¤«ï ¤ ­­ëå ¢¥à設 u ¨ u0
áãé¥áâ¢ã¥â ¯ãâì p ¨§ u ¢ u0, â® £®¢®àïâ, çâ® ¢¥à設 u0 ¤®á⨦¨¬ ¨§ u ¯® ¯ã⨠p (u0 is reachable from u via p). ‚ í⮬ á«ãç ¥ ¬ë ¯¨è¥¬
(¤«ï ®à¨¥­â¨à®¢ ­­ëå £à 䮢) u p u0.
ãâì ­ §ë¢ ¥âáï ¯à®áâë¬ (simple), ¥á«¨ ¢á¥ ¢¥àè¨­ë ¢ ­ñ¬ à §«¨ç­ë.  ¯à¨¬¥à, ­ à¨á. 5.2 ( ) ¥áâì ¯à®á⮩ ¯ãâì h1; 2; 5; 4i
¤«¨­ë 3, â ª¦¥ ¯ãâì h2; 5; 4; 5i ⮩ ¦¥ ¤«¨­ë, ­¥ ïî騩áï
¯à®áâë¬.
®¤¯ãâì (subpath) ¯ã⨠p = hv0; v1; : : :; vk i ¯®«ãç¨âáï, ¥á«¨ ¬ë
¢®§ì¬ñ¬ ­¥ª®â®à®¥ ç¨á«® ¨¤ãé¨å ¯®¤àï¤ ¢¥à設 í⮣® ¯ãâ¨, â. ¥.
¯®á«¥¤®¢ ⥫쭮áâì hvi; vi+1; : : :; vj i ¯à¨ ­¥ª®â®àëå i; j , ¤«ï ª®â®àëå
0 6 i 6 j 6 k.
84
ƒ« ¢ 5 Œ­®¦¥á⢠–¨ª«®¬ (cycle) ¢ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥ ­ §ë¢ ¥âáï ¯ãâì, ¢ ª®â®à®¬ ­ ç «ì­ ï ¢¥à設 ᮢ¯ ¤ ¥â á ª®­¥ç­®© ¨ ª®â®àë© á®¤¥à¦¨â
å®âï ¡ë ®¤­® ॡà®. –¨ª« hv0; v1; : : :; vki ­ §ë¢ ¥âáï ¯à®áâë¬, ¥á«¨
¢ ­ñ¬ ­¥â ®¤¨­ ª®¢ëå ¢¥à設 (ªà®¬¥ ¯¥à¢®© ¨ ¯®á«¥¤­¥©), â. ¥. ¥á«¨
¢á¥ ¢¥à設ë v1; v2; : : :; vk à §«¨ç­ë. ¥¡à®-横« ï¥âáï 横«®¬
¤«¨­ë 1. Œë ®â®¦¤¥á⢫塞 横«ë, ®â«¨ç î騥áï ᤢ¨£®¬ ¢¤®«ì
横« : ®¤¨­ ¨ â®â ¦¥ 横« ¤«¨­ë k ¬®¦¥â ¡ëâì ¯à¥¤áâ ¢«¥­ k à §«¨ç­ë¬¨ ¯ãâﬨ (¢ ª ç¥á⢥ ­ ç « ¨ ª®­æ ¬®¦­® ¢§ïâì «î¡ãî
¨§ k ¢¥à設).  ¯à¨¬¥à, ­ à¨á. 5.2 ( ) ¯ã⨠h1; 2; 4; 1i, h2; 4; 1; 2i
¨ h4; 1; 2; 4i ¯à¥¤áâ ¢«ïîâ ®¤¨­ ¨ â®â ¦¥ 横«. â®â 横« ï¥âáï ¯à®áâë¬, ¢ â® ¢à¥¬ï ª ª 横« h1; 2; 4; 5; 4; 1i â ª®¢ë¬ ­¥ ï¥âáï.  ⮬ ¦¥ à¨áã­ª¥ ¥áâì 横« h2; 2i, ®¡à §®¢ ­­ë© ¥¤¨­á⢥­­ë¬ ॡ஬-横«®¬ (2; 2). Žà¨¥­â¨à®¢ ­­ë© £à ä, ­¥ ᮤ¥à¦ 騩
àñ¡¥à-横«®¢, ­ §ë¢ ¥âáï ¯à®áâë¬ (simple).
‚ ­¥®à¨¥­â¨à®¢ ­­®¬ £à ä¥ ¯ãâì hv0; v1; : : :; vk i ­ §ë¢ ¥âáï (¯à®áâë¬) 横«®¬, ¥á«¨ k > 3, v0 = vk ¨ ¢á¥ ¢¥à設ë v1; v2; : : :; vk à §«¨ç­ë.  ¯à¨¬¥à, ­ à¨á. 5.2 (¡) ¨¬¥¥âáï ¯à®á⮩ 横« h1; 2; 5; 1i.
ƒà ä, ¢ ª®â®à®¬ ­¥â 横«®¢, ­ §ë¢ ¥âáï 横«¨ç¥áª¨¬ (acyclic).
¥®à¨¥­â¨à®¢ ­­ë© £à ä ­ §ë¢ ¥âáï á¢ï§­ë¬ (connected), ¥á«¨
¤«ï «î¡®© ¯ àë ¢¥à設 áãé¥áâ¢ã¥â ¯ãâì ¨§ ®¤­®© ¢ ¤àã£ãî.
„«ï ­¥®à¨¥­â¨à®¢ ­­®£® £à ä ®â­®è¥­¨¥ "¡ëâì ¤®á⨦¨¬ë¬
¨§" ï¥âáï ®â­®è¥­¨¥¬ íª¢¨¢ «¥­â­®á⨠­ ¬­®¦¥á⢥ ¢¥à設. Š« ááë íª¢¨¢ «¥­â­®á⨠­ §ë¢ îâáï á¢ï§­ë¬¨ ª®¬¯®­¥­â ¬¨
(connected components) £à ä .  ¯à¨¬¥à, ­ à¨á. 5.2 (¡) ¨¬¥îâáï
âਠá¢ï§­ë¥ ª®¬¯®­¥­âë: f1; 2; 5g, f3; 6g ¨ f4g. ¥®à¨¥­â¨à®¢ ­­ë©
£à ä á¢ï§¥­ ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ ®­ á®á⮨⠨§ ¥¤¨­á⢥­­®©
á¢ï§­®© ª®¬¯®­¥­âë.
Žà¨¥­â¨à®¢ ­­ë© £à ä ­ §ë¢ ¥âáï ᨫ쭮 á¢ï§­ë¬ (strongly
connected), ¥á«¨ ¨§ «î¡®© ¥£® ¢¥àè¨­ë ¤®á⨦¨¬ (¯® ®à¨¥­â¨à®¢ ­­ë¬ ¯ãâï¬) «î¡ ï ¤à㣠ï. ‹î¡®© ®à¨¥­â¨à®¢ ­­ë© £à ä
¬®¦­® à §¡¨âì ­ ᨫ쭮 á¢ï§­ë¥ ª®¬¯®­¥­âë (strongly connected
components), ª®â®àë¥ ®¯à¥¤¥«ïîâáï ª ª ª« ááë íª¢¨¢ «¥­â­®áâ¨
®â­®è¥­¨ï "u ¤®á⨦¨¬® ¨§ v ¨ v ¤®á⨦¨¬® ¨§ u". Žà¨¥­â¨à®¢ ­­ë© £à ä ᨫ쭮 á¢ï§¥­ ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ á®á⮨â
¨§ ¥¤¨­á⢥­­®© ᨫ쭮 á¢ï§­®© ª®¬¯®­¥­âë. ƒà ä à¨á. 5.2 ( )
¨¬¥¥â âਠ⠪¨å ª®¬¯®­¥­âë: f1; 2; 4; 5g, f3g ¨ f6g. ‡ ¬¥â¨¬, çâ®
¢¥à設ë f3; 6g ­¥ ¢å®¤ïâ ¢ ®¤­ã ᨫ쭮 á¢ï§­ãî ª®¬¯®­¥­âã, â ª
ª ª 3 ¤®á⨦¨¬ ¨§ 6, ­® ­¥ ­ ®¡®à®â.
„¢ £à ä G = (V; E ) ¨ G0 = (V 0; E 0) ­ §ë¢ îâáï ¨§®¬®àä­ë¬¨
(isomorphic), ¥á«¨ áãé¥áâ¢ã¥â ¢§ ¨¬­® ®¤­®§­ ç­®¥ ᮮ⢥âá⢨¥
f : V ! V 0 ¬¥¦¤ã ¬­®¦¥á⢠¬¨ ¨å ¢¥à設, ¯à¨ ª®â®à®¬ àñ¡à ¬
®¤­®£® £à ä ᮮ⢥âáâ¢ãîâ àñ¡à ¤à㣮£®: (u; v) 2 E ⮣¤ ¨
⮫쪮 ⮣¤ , ª®£¤ (f (u); f (v)) 2 E 0. Œ®¦­® ᪠§ âì, çâ® ¨§®¬®àä­ë¥ £à äë | íâ® ®¤¨­ ¨ â®â ¦¥ £à ä, ¢ ª®â®à®¬ ¢¥à設ë
­ §¢ ­ë ¯®-à §­®¬ã.  à¨á. 5.3 ( ) ¯à¨¢¥¤ñ­ ¯à¨¬¥à ¤¢ãå ¨§®¬®àä­ëå £à 䮢 G ¨ G0 á ¬­®¦¥á⢠¬¨ ¢¥à設 V = f1; 2; 3; 4; 5; 6g ¨
ƒà äë
85
¨áã­®ª 5.3 ( )  à ¨§®¬®àä­ëå £à 䮢. (¡) ¥¨§®¬®àä­ë¥ £à äë: ¢¥àå­¨©
¨¬¥¥â ¢¥à設ã á⥯¥­¨ 4, ­¨¦­¨© | ­¥â.
V 0 = fu; v; w; x; y; z g. ”ã­ªæ¨ï f : V ! V 0 , ¤«ï ª®â®à®© f (1) = u,
f (2) = v , f (3) = w, f (4) = x, f (5) = y , f (6) = z , ï¥âáï ¨§®¬®à䨧¬®¬.  ¯à®â¨¢, £à äë ­ à¨á. 5.3 (¡) ­¥ ¨§®¬®àä­ë, å®âï ®¡ ¨¬¥îâ ¯® 5 ¢¥à設 ¨ ¯® 7 àñ¡¥à. —⮡ë ã¡¥¤¨âìáï, çâ® ®­¨ ­¥ ¨§®¬®àä­ë, ¤®áâ â®ç­® ®â¬¥â¨âì, çâ® ¢ ¢¥àå­¥¬ £à ä¥ ¥áâì ¢¥à設 á⥯¥­¨ 4, ¢ ­¨¦­¥¬ | ­¥â.
ƒà ä G0 = (E 0; V 0) ­ §ë¢ îâ ¯®¤£à 䮬 (subgraph) £à ä G =
(E; V ), ¥á«¨ E 0 E ¨ V 0 V . …᫨ ¢ £à ä¥ G = (E; V ) ¢ë¡à âì
¯à®¨§¢®«ì­®¥ ¬­®¦¥á⢮ ¢¥à設 V 0, â® ¬®¦­® à áᬮâà¥âì ¥£® ¯®¤£à ä, á®áâ®ï騩 ¨§ íâ¨å ¢¥à設 ¨ ¢á¥å ᮥ¤¨­ïîé¨å ¨å àñ¡¥à, â. ¥.
£à ä G0 = (E 0; V 0), ¤«ï ª®â®à®£®
E 0 = f(u; v ) 2 E : u; v 2 V 0 g
â®â ¯®¤£à ä ¬®¦­® ­ §¢ âì ®£à ­¨ç¥­¨¥¬ £à ä G ­ ¬­®¦¥á⢮ ¢¥à設 V 0 (subgraph of G induced by V 0). Ž£à ­¨ç¥­¨¥ £à ä à¨á. 5.2 ( ) ­ ¬­®¦¥á⢮ ¢¥à設 f1; 2; 3; 6g ¯®ª § ­® ­ à¨á. 5.2 (¢)
¨ ¨¬¥¥â âਠॡà (1; 2), (2; 2), (6; 3).
„«ï «î¡®£® ­¥®à¨¥­â¨à®¢ ­­®£® £à ä G ¬®¦­® à áᬮâà¥âì ¥£®
®à¨¥­â¨à®¢ ­­ë© ¢ ਠ­â (directed version), § ¬¥­¨¢ ª ¦¤®¥ ­¥®à¨¥­â¨à®¢ ­­®¥ ॡ஠fu; vg ­ ¯ à㠮ਥ­â¨à®¢ ­­ëå àñ¡¥à (u; v)
¨ (v; u), ¨¤ãé¨å ¢ ¯à®â¨¢®¯®«®¦­ëå ­ ¯à ¢«¥­¨ïå. ‘ ¤à㣮© áâ®à®­ë, ¤«ï ª ¦¤®£® ®à¨¥­â¨à®¢ ­­®£® £à ä ¬®¦­® à áᬮâà¥âì ¥£®
­¥®à¨¥­â¨à®¢ ­­ë© ¢ ਠ­â (undirected version), § ¡ë¢ ¯à® ®à¨¥­â æ¨î àñ¡¥à, 㤠«¨¢ àñ¡à -横«ë ¨ ᮥ¤¨­¨¢ àñ¡à (u; v) ¨ (v; u) ¢
®¤­® ­¥®à¨¥­â¨à®¢ ­­®¥ ॡ஠fu; vg. ‚ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥ á®á¥¤®¬ (neighbor) ¢¥à設ë u ­ §ë¢ îâ «î¡ãî ¢¥à設ã, ᮥ¤¨­ñ­­ãî á ­¥© ॡ஬ (¢ âã ¨«¨ ¤àã£ãî áâ®à®­ã); â ª¨¬ ®¡à §®¬, v
ï¥âáï á®á¥¤®¬ u ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ v ᬥ¦­® u ¨«¨
u ᬥ¦­® v . „«ï ­¥®à¨¥­â¨à®¢ ­­®£® £à ä ¢ëà ¦¥­¨ï "v | á®á¥¤
u" ¨ "v ᬥ¦­ á u" ïîâáï ᨭ®­¨¬ ¬¨.
86
ƒ« ¢ 5 Œ­®¦¥á⢠¥ª®â®àë¥ ¢¨¤ë £à 䮢 ¨¬¥îâ á¯¥æ¨ «ì­ë¥ ­ §¢ ­¨ï. ®«­ë¬
(complete) £à 䮬 ­ §ë¢ îâ ­¥®à¨¥­â¨à®¢ ­­ë© £à ä, ᮤ¥à¦ 騩 ¢á¥ ¢®§¬®¦­ë¥ àñ¡à ¤«ï ¤ ­­®£® ¬­®¦¥á⢠¢¥à設 («î¡ ï
¢¥à設 ᬥ¦­ «î¡®© ¤à㣮©). ¥®à¨¥­â¨à®¢ ­­ë© £à ä (V; E )
­ §ë¢ îâ ¤¢ã¤®«ì­ë¬ (bipartite), ¥á«¨ ¬­®¦¥á⢮ ¢¥à設 V ¬®¦­®
à §¡¨âì ­ ¤¢¥ ç áâì V1 ¨ V2 â ª¨¬ ®¡à §®¬, çâ® ª®­æë «î¡®£® à¥¡à ®ª §ë¢ îâáï ¢ à §­ëå ç áâïå. €æ¨ª«¨ç¥áª¨© ­¥®à¨¥­â¨à®¢ ­­ë© £à ä ­ §ë¢ îâ «¥á®¬ (forest), á¢ï§­ë© 横«¨ç¥áª¨© ­¥®à¨¥­â¨à®¢ ­­ë© £à ä ­ §ë¢ îâ ¤¥à¥¢®¬ (¡¥§ ¢ë¤¥«¥­­®£®
ª®à­ï; ¯®¤à®¡­® ¤¥à¥¢ìï à áᬠâਢ îâáï ¢ á«¥¤ãî饬 à §¤¥«¥).
®- ­£«¨©áª¨ ¤¥à¥¢® ¡¥§ ¢ë¤¥«¥­­®£® ª®à­ï ­ §ë¢ ¥âáï free tree.
Žà¨¥­â¨à®¢ ­­ë© 横«¨ç¥áª¨© £à ä (directed acyclic graph) ¯® ­£«¨©áª¨ ç á⮠᮪à é îâ ¤® "dag" (¯® ¯¥à¢ë¬ ¡ãª¢ ¬).
ˆ­®£¤ à áᬠâਢ îâ ®¡®¡é¥­¨ï ¯®­ïâ¨ï £à ä .  ¯à¨¬¥à,
¬®¦­® à áᬠâਢ âì ¬ã«ì⨣à ä (multigraph), ª®â®àë© ¯®å®¦ ­ ­¥®à¨¥­â¨à®¢ ­­ë© £à ä, ­® ¬®¦¥â ᮤ¥à¦ âì ¬­®£® àñ¡¥à, ᮥ¤¨­ïîé¨å ®¤­ã ¨ âã ¦¥ ¯ àã ¢¥à設, â ª¦¥ àñ¡à -横«ë. ƒ¨¯¥à£à ä
(hypergraph) ®â«¨ç ¥âáï ®â ­¥®à¨¥­â¨à®¢ ­­®£® £à ä ⥬, çâ® ®­
ᮤ¥à¦¨â £¨¯¥ààñ¡à (hyperedges), ᮥ¤¨­ïî騥 ­¥ ¤¢¥ ¢¥à設ë,
¯à®¨§¢®«ì­®¥ ¬­®¦¥á⢮ ¢¥à設. Œ­®£¨¥ «£®à¨â¬ë ®¡à ¡®âª¨
®¡ëç­ëå £à 䮢 ¬®£ãâ ¡ëâì ®¡®¡é¥­ë ­ â ª¨¥ £à 䮯®¤®¡­ë¥
áâàãªâãàë.
“¯à ¦­¥­¨ï
 ¢¥ç¥à¨­ª¥ ª ¦¤ë© £®áâì áç¨â ¥â, ᪮«ìª® à㪮¯®¦ ⨩ ®­ ᤥ« «. ®â®¬ ¢á¥ ç¨á« ᪫ ¤ë¢ îâáï. ®ª ¦¨â¥, çâ® ¯®«ãç¨âáï çñâ­®¥ ç¨á«®, ¤®ª § ¢ á«¥¤ãîéãî «¥¬¬ã ® à㪮¯®¦ â¨ïå
(handshaking lemma): ¤«ï ­¥®à¨¥­â¨à®¢ ­­®£® £à ä á㬬 á⥯¥­¥© ¢á¥å ¥£® ¢¥à設 à ¢­ 㤢®¥­­®¬ã ç¨á«ã àñ¡¥à.
5.4-2 ®ª ¦¨â¥, çâ® âॡ®¢ ­¨¥ k > 3 ¢ ®¯à¥¤¥«¥­¨¨ 横« ¢ ­¥®à¨¥­â¨à®¢ ­­®¬ £à ä¥ áãé¥á⢥­­® (¥á«¨ ¥£® ®â¬¥­¨âì, ¢ «î¡®¬
£à ä¥, £¤¥ ¥áâì å®âì ®¤­® ॡà®, ¡ã¤¥â 横«).
5.4-3 „®ª ¦¨â¥, çâ® ¥á«¨ ¢ £à ä¥ (®à¨¥­â¨à®¢ ­­®¬ ¨«¨ ­¥®à¨¥­â¨à®¢ ­­®¬) ¥áâì ¯ãâì ¨§ ¢¥à設ë u ¢ ¢¥à設ã v, â® ¢ ­ñ¬ ¥áâì
¯à®á⮩ ¯ãâì ¨§ u ¢ v. „®ª ¦¨â¥, çâ® ¥á«¨ ¢ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥
¥áâì 横«, â® ¢ ­ñ¬ ¥áâì ¯à®á⮩ 横«.
5.4-4 ®ª ¦¨â¥, çâ® ¢ á¢ï§­®¬ ­¥®à¨¥­â¨à®¢ ­­®¬ £à ä¥ (V; E )
ç¨á«® ¢¥à設 ¯à¥¢®á室¨â ç¨á«® àñ¡¥à ­¥ ¡®«¥¥ 祬 ­ 1: jE j >
jV j ; 1
5.4-5 à®¢¥àìâ¥, çâ® ®â­®è¥­¨¥ "¡ëâì ¤®á⨦¨¬ë¬ ¨§" ï¥âáï (¤«ï ­¥®à¨¥­â¨à®¢ ­­®£® £à ä ) ®â­®è¥­¨¥¬ íª¢¨¢ «¥­â­®5.4-1
„¥à¥¢ìï
87
áâ¨. Š ª¨¥ ¨§ âàñå ᢮©áâ¢, ¢å®¤ïé¨å ¢ ®¯à¥¤¥«¥­¨¥ ®â­®è¥­¨ï
íª¢¨¢ «¥­â­®áâ¨, á¯à ¢¥¤«¨¢ë ¤«ï ®â­®è¥­¨ï ¤®á⨦¨¬®á⨠¢
®à¨¥­â¨à®¢ ­­®¬ £à ä¥?
5.4-6  à¨áã©â¥ ­¥®à¨¥­â¨à®¢ ­­ãî ¢¥àá¨î £à ä à¨á. 5.2 ( ) ¨
®à¨¥­â¨à®¢ ­­ãî ¢¥àá¨î £à ä à¨á. 5.2 (¡).
5.4-7? Š ª ¬®¦­® ¯à¥¤áâ ¢¨âì £¨¯¥à£à ä á ¯®¬®éìî ¤¢ã¤®«ì­®£®
£à ä , ¨§®¡à ¦ ï ®â­®è¥­¨¥ ¨­æ¨¤¥­â­®á⨠¢ £¨¯¥à£à ä¥ ®â­®è¥­¨¥¬ ᬥ¦­®á⨠¢ ¤¢ã¤®«ì­®¬ £à ä¥? (“ª § ­¨¥: ¢¥à設 ¬¨ ¤¢ã¤®«ì­®£® £à ä ¤®«¦­ë ¡ëâì ¢¥àè¨­ë £¨¯¥à£à ä , â ª¦¥ £¨¯¥ààñ¡à £¨¯¥à£à ä .)
5.5 „¥à¥¢ìï
Š ª ¨ á«®¢® "£à ä", á«®¢® "¤¥à¥¢®" â ª¦¥ 㯮âॡ«ï¥âáï ¢ ­¥áª®«ìª¨å தá⢥­­ëå á¬ëá« å. ‚ í⮬ à §¤¥«¥ ¬ë ¤ ñ¬ ®¯à¥¤¥«¥­¨ï ¨ à áᬠâਢ ¥¬ ᢮©á⢠­¥áª®«ìª¨å ¢¨¤®¢ ¤¥à¥¢ì¥¢. ‚ à §¤¥« å 11.4 ¨ 23.1 ¬ë ¢¥à­ñ¬áï ª ¤¥à¥¢ìï¬ ¨ à áᬮâਬ á¯®á®¡ë ¨å
¯à¥¤áâ ¢«¥­¨ï ¢ ¯à®£à ¬¬ å.
5.5.1 „¥à¥¢ìï ¡¥§ ¢ë¤¥«¥­­®£® ª®à­ï
Š ª ¬ë £®¢®à¨«¨ ¢ à §¤¥«¥ 5.4, ¤¥à¥¢® (¡¥§ ¢ë¤¥«¥­­®£® ª®à­ï, free
tree) ®¯à¥¤¥«ï¥âáï ª ª á¢ï§­ë© 横«¨ç¥áª¨© ­¥®à¨¥­â¨à®¢ ­­ë©
£à ä. …᫨ ­¥®à¨¥­â¨à®¢ ­­ë© £à ä ï¥âáï 横«¨ç¥áª¨¬, ­®
(¢®§¬®¦­®) ­¥á¢ï§­ë¬, ¥£® ­ §ë¢ îâ «¥á®¬ (forest); ª ª ¨ ¯®«®¦¥­®,
«¥á á®á⮨⠨§ ¤¥à¥¢ì¥¢ (ïîé¨åáï ¥£® á¢ï§­ë¬¨ ª®¬¯®­¥­â ¬¨).
Œ­®£¨¥ «£®à¨â¬ë ®¡à ¡®âª¨ ¤¥à¥¢ì¥¢ ¯à¨¬¥­¨¬ë ¨ ª «¥á ¬.  à¨á. 5.4 ( ) ¨§®¡à ¦¥­® ¤¥à¥¢®; ­ à¨á. 5.4 (¡) ¨§®¡à ¦ñ­ «¥á. ‹¥á
à¨áã­ª 5.4 (¡) ­¥ ï¥âáï ¤¥à¥¢®¬, â ª ª ª ­¥ á¢ï§¥­. ƒà ä ­ à¨áã­ª¥ 5.4 (¢) ­¥ ï¥âáï ­¨ ¤¥à¥¢®¬, ­¨ ¤ ¦¥ «¥á®¬, â ª ª ª ¢
­ñ¬ ¥áâì 横«.
‚ á«¥¤ãî饩 ⥮६¥ 㪠§ ­® ­¥áª®«ìª® ¢ ¦­ëå ᢮©á⢠¤¥à¥-
¨áã­®ª 5.4 ( ) „¥à¥¢® ¡¥§ ¢ë¤¥«¥­­®£® ª®à­ï. (¡) ‹¥á. (¢) ƒà ä, ᮤ¥à¦ 騩
横«, ­¥ ï¥âáï ­¨ ¤¥à¥¢®¬, ­¨ «¥á®¬.
88
ƒ« ¢ 5 Œ­®¦¥á⢠¨áã­®ª 5.5 „¢ ¯à®áâëå ¯ã⨠¨§ u ¢ v
¢ì¥¢.
’¥®à¥¬ 5.2 (‘¢®©á⢠¤¥à¥¢ì¥¢). ãáâì G = (V; E ) | ­¥®à¨¥­â¨à®¢ ­­ë© £à ä. ’®£¤ á«¥¤ãî騥 ᢮©áâ¢ à ¢­®á¨«ì­ë:
1. G ï¥âáï ¤¥à¥¢®¬ (¡¥§ ¢ë¤¥«¥­­®£® ª®à­ï).
2. „«ï «î¡ëå ¤¢ãå ¢¥à設 G áãé¥áâ¢ã¥â ¥¤¨­á⢥­­ë© ᮥ¤¨­ïî騩 ¨å ¯à®á⮩ ¯ãâì.
3. ƒà ä G á¢ï§¥­, ­® ¯¥à¥áâ ñâ ¡ëâì á¢ï§­ë¬, ¥á«¨ 㤠«¨âì
«î¡®¥ ¥£® ॡà®.
4. ƒà ä G á¢ï§¥­ ¨ jE j = jV j ; 1.
5. ƒà ä G 横«¨ç¥áª¨© ¨ jE j = jV j ; 1.
6. ƒà ä G 横«¨ç¥áª¨©, ­® ¤®¡ ¢«¥­¨¥ «î¡®£® à¥¡à ª ­¥¬ã ¯®à®¦¤ ¥â 横«.
„®ª § ⥫ìá⢮. (1) ) (2): ®áª®«ìªã ¤¥à¥¢® á¢ï§­®, ¤«ï «î¡ëå
¤¢ãå ¢¥à設 áãé¥áâ¢ã¥â ᮥ¤¨­ïî騩 ¨å ¯ãâì; ¢ëª¨­ã¢ ¨§ ­¥£®
«¨è­¥¥, ¬®¦¥¬ áç¨â âì, çâ® íâ®â ¯ãâì ¯à®á⮩. ãáâì ¥áâì ¤¢ à §­ëå ¯à®áâëå ¯ã⨠p1 ¨ p2 ¨§ ­¥ª®â®àë© ¢¥à設ë u ¢ ¤àã£ãî
¢¥à設ã v (à¨á. 5.5). ®á¬®âਬ, £¤¥ í⨠¯ã⨠à á室ïâáï; ¯ãáâì
w | ¯®á«¥¤­ïï ®¡é ï ¢¥à設 ¯¥à¥¤ à §¢¥â¢«¥­¨¥¬, x ¨ y |
à §«¨ç­ë¥ ¢¥à設ë, á«¥¤ãî騥 § w ¢ ¯ãâïå p1 ¨ p2. „¢¨£ ïáì ¯®
¯¥à¢®¬ã ¯ãâ¨, ¤®¦¤ñ¬áï ¬®¬¥­â , ª®£¤ ¯ãâì ¢­®¢ì ¯¥à¥á¥ª ¥âáï
á® ¢â®àë¬ ¢ ­¥ª®â®à®© ¢¥à設¥ z.  áᬮâਬ ãç á⮪ p0 ¯¥à¢®£®
¯ã⨠®â w ¤® z (ç¥à¥§ x) ¨ ãç á⮪ ¢â®à®£® ¯ã⨠p00 ®â w ¤® z
(ç¥à¥§ y ). ã⨠p0 ¨ p00 ­¥ ¨¬¥îâ ®¡é¨å ¢¥à設 (­¥ áç¨â ï ª®­æ®¢),
¯®áª®«ìªã z ¡ë«® ¯¥à¢®© ¢¥à設®© ­ ¯ã⨠p1 ¯®á«¥ w, ¯®¯ ¢è¥©
¢ p2. ®íâ®¬ã ¬ë ¯®«ãç ¥¬ 横« (á®áâ®ï騩 ¨§ p0 ¨ ®¡à 饭¨ï
¯ã⨠p00).
(2) ) (3) ƒà ä, ®ç¥¢¨¤­®, á¢ï§¥­. ãáâì (u; v ) | «î¡®¥ ¥£® ॡà®. …᫨ ¯®á«¥ ¥£® 㤠«¥­¨ï £à ä ®áâ ­¥âáï á¢ï§­ë¬, â® ¢ ­ñ¬
¡ã¤¥â ¯ãâì, ᮥ¤¨­ïî騩 u ¨ v | ¢â®à®© ¯ãâì, çâ® ¯à®â¨¢®à¥ç¨â
¯à¥¤¯®«®¦¥­¨î.
(3) ) (4) ® ãá«®¢¨î, £à ä á¢ï§¥­, ¯®í⮬ã jE j > jV j; 1 (ã¯à. 5.44). „®ª ¦¥¬, çâ® jE j 6 jV j ; 1, à áá㦤 ï ¯® ¨­¤ãªæ¨¨. ‘¢ï§­ë©
£à ä á n = 1; 2 ¢¥à設 ¬¨ ¨¬¥¥â n ; 1 àñ¡¥à. ãáâì £à ä G ¨¬¥¥â
n > 3 àñ¡¥à ¨ ¤«ï £à 䮢 á ¬¥­ì訬 ç¨á«®¬ àñ¡¥à ­ è¥ ­¥à ¢¥­á⢮ 㦥 ¤®ª § ­®. “¤ «¥­¨¥ ॡà à §¡¨¢ ¥â £à ä G ­ k > 2 á¢ï§­ëå ª®¬¯®­¥­â (­ á ¬®¬ ¤¥«¥ ­ ¤¢¥, ­® íâ® ­ ¬ ­¥ ¢ ¦­®). „«ï
„¥à¥¢ìï
89
ª ¦¤®© ¨§ ª®¬¯®­¥­â ¢ë¯®«­¥­® ãá«®¢¨¥ (3). ˆ­¤ãªâ¨¢­®¥ ¯à¥¤¯®«®¦¥­¨¥ £ à ­â¨àã¥â, çâ® ®¡é¥¥ ç¨á«® àñ¡¥à ¢ ­¨å ­¥ ¡®«ìè¥
jV j ; k 6 jV j ; 2. ‡­ ç¨â, ¤® 㤠«¥­¨ï à¥¡à ¡ë«® ­¥ ¡®«¥¥ jV j ; 1
àñ¡¥à.
(4) ) (5) ãáâì £à ä á¢ï§¥­ ¨ jE j = jV j; 1. ®ª ¦¥¬, çâ® £à ä ­¥
¨¬¥¥â 横«®¢. …᫨ 横« ¥áâì, 㤠«¥­¨¥ «î¡®£® à¥¡à ¨§ 横« ­¥
­ àãè ¥â á¢ï§­®á⨠(¬®¦­® ¯à®©â¨ ¯® ®áâ î饩áï ç á⨠横« ).
ã¤¥¬ ¯®¢â®àïâì íâ® ¤® â¥å ¯®à, ¯®ª ­¥ ®áâ ­¥âáï á¢ï§­ë© £à ä
¡¥§ 横«®¢ (¤¥à¥¢®). Š ª ¬ë 㦥 §­ ¥¬, ¤«ï ¤¥à¥¢ ç¨á«® àñ¡¥à
­ ¥¤¨­¨æã ¬¥­ìè¥ ç¨á« ¢¥à設 | ­® ¯® ¯à¥¤¯®«®¦¥­¨î â® ¦¥
ᮮ⭮襭¨¥ ¡ë«® ¨ ¤® 㤠«¥­¨ï àñ¡¥à, â ª ç⮠㤠«¨âì ¬ë ­¨ç¥£®
­¥ ¬®£«¨ ¨ á á ¬®£® ­ ç « ­¥ ¡ë«® 横«®¢.
(5) ) (6) ãáâì £à ä G ­¥ ¨¬¥¥â 横«®¢ ¨ jE j = jV j ; 1. ãáâì
G ¨¬¥¥â k á¢ï§­ëå ª®¬¯®­¥­â; ®­¨ ¯® ®¯à¥¤¥«¥­¨î ïîâáï ¤¥à¥¢ìﬨ. Œë §­ ¥¬, çâ® ¢ ª ¦¤®© ¨§ ­¨å ç¨á«® àñ¡¥à ­ ¥¤¨­¨æã
¬¥­ìè¥ ç¨á« ¢¥à設, ¯®í⮬㠮¡é¥¥ ç¨á«® àñ¡¥à ­ k ¬¥­ìè¥
ç¨á« ¢¥à設. ‡­ ç¨â, k = 1 ¨ £à ä ¯à¥¤áâ ¢«ï¥â ᮡ®© ¤¥à¥¢®.
‚ ­ñ¬ «î¡ë¥ ¤¢¥ ¢¥àè¨­ë ¬®£ãâ ¡ëâì ᮥ¤¨­¥­ë ¯à®áâë¬ ¯ãâñ¬
(¬ë 㦥 §­ ¥¬, çâ® (1) ) (2)), ¨ ¯®â®¬ã ¤®¡ ¢«¥­¨¥ «î¡®£® à¥¡à ¯®à®¦¤ ¥â 横«.
(6) ) (1) ãáâì £à ä ï¥âáï 横«¨ç¥áª¨¬, ­® ¤®¡ ¢«¥­¨¥ «î¡®£® à¥¡à ¯®à®¦¤ ¥â 横«.  ¤® ¯®ª § âì, çâ® ®­ á¢ï§¥­. ‚ á ¬®¬ ¤¥«¥, à áᬮâਬ ¤¢¥ ¯à®¨§¢®«ì­ë¥ ¢¥à設ë u ¨ v. Œë §­ ¥¬,
çâ® ¤®¡ ¢«¥­¨¥ ॡà (u; v) ¯®à®¦¤ ¥â 横«. ‚ í⮬ 横«¥ ¤®«¦­®
¢áâà¥ç âìáï ॡ஠(u; v), ¯®áª®«ìªã ¤® ¥£® ¤®¡ ¢«¥­¨ï 横« ­¥
¡ë«® | ­® ⮫쪮 ®¤¨­ à §, ¨ ®áâ «ì­ ï ç áâì 横« ᮥ¤¨­ï¥â
u ¨ v , çâ® ¨ âॡ®¢ «®áì.
5.5.2 „¥à¥¢ìï á ª®à­¥¬. Žà¨¥­â¨à®¢ ­­ë¥ ¤¥à¥¢ìï
„¥à¥¢® á ª®à­¥¬, ¨«¨ ª®à­¥¢®¥ ¤¥à¥¢® (rooted tree), ¯®«ãç ¥âáï, ¥á«¨
¢ ¤¥à¥¢¥ (á¢ï§­®¬ 横«¨ç¥áª®¬ ­¥®à¨¥­â¨à®¢ ­­®¬ £à ä¥) ¢ë¤¥«¨âì ®¤­ã ¨§ ¢¥à設 ¢ë¤¥«¥­ , ­ §¢ ¢ ¥ñ ª®à­¥¬ (root). ‚¥à設ë
ª®à­¥¢®£® ¤¥à¥¢ ¯®- ­£«¨©áª¨ ­ §ë¢ îâáï â ª¦¥ "nodes".  à¨áã­ª¥ 5.6 ( ) ¯®ª § ­® ª®à­¥¢®¥ ¤¥à¥¢® á 12 ¢¥à設 ¬¨ ¨ ª®à­¥¬ 7.
ãáâì x | ¯à®¨§¢®«ì­ ï ¢¥à設 ª®à­¥¢®£® ¤¥à¥¢ á ª®à­¥¬
¢ r. ‘ãé¥áâ¢ã¥â ¥¤¨­á⢥­­ë© ¯ãâì ¨§ r ¢ x; ¢á¥ ¢¥à設ë, ­ 室ï騥áï ­ í⮬ ¯ãâ¨, ¬ë ­ §ë¢ ¥¬ ¯à¥¤ª ¬¨ (ancestors) ¢¥à設ë x. …᫨ y ï¥âáï ¯à¥¤ª®¬ x, â® x ­ §ë¢ ¥âáï ¯®â®¬ª®¬
(descendant) y . Š ¦¤ãî ¢¥à設㠬ë áç¨â ¥¬ ᢮¨¬ ¯à¥¤ª®¬ ¨ ¯®â®¬ª®¬. à¥¤ª¨ ¨ ¯®â®¬ª¨ ¢¥à設ë x, ­¥ ᮢ¯ ¤ î騥 á x, ­ §ë¢ îâáï ᮡá⢥­­ë¬¨ ¯à¥¤ª ¬¨ (proper ancestors) ¨ ᮡá⢥­­ë¬¨
¯®â®¬ª ¬¨ (proper descendants) ¢¥à設ë x. [â â¥à¬¨­®«®£¨ï ­¥
¢¯®«­¥ ã¤ ç­ : äà §ã "¢¥à設 ï¥âáï ᢮¨¬ ᮡá⢥­­ë¬ ¯®â®¬ª®¬" ¬®¦­® ⮫ª®¢ âì ¯® à §­®¬ã, ¨ ¯à¨ ®¤­®¬ ⮫ª®¢ ­¨¨ ®­ 90
ƒ« ¢ 5 Œ­®¦¥á⢠¢ëá®â = 4, £«ã¡¨­ 0, £«ã¡¨­ 1 ¨ â.¯.
¨áã­®ª 5.6 ( ) Š®à­¥¢®¥ ¤¥à¥¢® ¢ëá®âë 4. „¥à¥¢® ­ à¨á®¢ ­® ®¡ëç­ë¬ ®¡à §®¬: ª®à¥­ì (¢¥à設 7) ­ à¨á®¢ ­ ᢥàåã, á®á¥¤­¨¥ á ­¨¬ ¢¥à設ë (¤¥â¨
ª®à­ï, ¢¥àè¨­ë £«ã¡¨­ë 1) ­ à¨á®¢ ­ë ¯®¤ ­¥©, ¢¥à設ë á«¥¤ãî饣® ã஢­ï
(¤¥â¨ ¤¥â¥© ª®à­ï, ¢¥àè¨­ë £«ã¡¨­ë 2) ¯®¤ ­¨¬¨ ¨ â. ¤. „«ï ¤¥à¥¢ì¥¢ á ¯®à浪®¬ ­ ¤¥âïå ¤«ï ª ¦¤®© ¢¥à設ë 䨪á¨à®¢ ­ ¯®à冷ª ­ ¬­®¦¥á⢥ ¥ñ ¤¥â¥©.
(¡) ’® ¦¥ á ¬®¥ ª®à­¥¢®¥ ¤¥à¥¢®, ­® á ¤à㣨¬ ¯®à浪®¬ (á।¨ ¤¥â¥© ¢¥à設ë 3),
¡ã¤¥â ¤à㣨¬ ¤¥à¥¢®¬ á ¯®à浪®¬ ­ ¤¥âïå.
¢¥à­ , ¯à¨ ¤à㣮¬ ­¥â.]
„«ï ª ¦¤®© ¢¥à設ë x ¬®¦­® à áᬮâà¥âì ¤¥à¥¢®, á®áâ®ï饥 ¨§
¢á¥å ¯®â®¬ª®¢ x, ¢ ª®â®à®¬ x áç¨â ¥âáï ª®à­¥¬. Ž­® ­ §ë¢ ¥âáï ¯®¤¤¥à¥¢®¬ á ª®à­¥¬ ¢ x (subtree rooted at x).  ¯à¨¬¥à, ­ à¨á. 5.6 ( )
¯®¤¤¥à¥¢® á ª®à­¥¬ ¢ 8 ᮤ¥à¦¨â ¢¥à設ë 8, 6, 5 ¨ 9.
…᫨ (y; x) | ¯®á«¥¤­¥¥ ॡ஠­ ¯ã⨠¨§ ª®à­ï ¢ x, â® y ­ §ë¢ ¥âáï த¨â¥«¥¬ (parent) x, x ­ §ë¢ ¥âáï ॡñ­ª®¬ y. [ ­ìè¥
¢¬¥áâ® "த¨â¥«ì" ¨ "ॡñ­®ª" £®¢®à¨«¨ "®â¥æ" (father) ¨ "áë­"
(son), çâ® ¡ë«® ¡®«¥¥ «®£¨ç­®, â ª ª ª ¢®®¡é¥-â® ã 祫®¢¥ª ¤¢®¥
த¨â¥«¥©, ã ¢¥àè¨­ë ¤¥à¥¢ | ­¥ ¡®«¥¥ ®¤­®£®. ‡ â® ¯à¨­ïâ ï ⥯¥àì ¢ ¬¥à¨ª ­áª®© «¨â¥à âãॠâ¥à¬¨­®«®£¨ï "¯®«¨â¨ç¥áª¨ ª®à४⭠".]
Š®à¥­ì ï¥âáï ¥¤¨­á⢥­­®© ¢¥à設®©, ã ª®â®à®© ­¥â த¨â¥«ï. ‚¥à設ë, ¨¬¥î騥 ®¡é¥£® த¨â¥«ï, ­ §ë¢ îâ ¢ ¬¥à¨ª ­áª®© «¨â¥à âãॠsiblings; ª ᮦ «¥­¨î, àãá᪮£® ¯¥à¥¢®¤ ã í⮣®
á«®¢ ­¥â, ¨ ¬ë ¡ã¤¥¬ (ª ª íâ® ¤¥« «®áì à ­ìè¥) ­ §ë¢ âì â ª¨¥
¢¥àè¨­ë ¡à âìﬨ. ‚¥à設 ª®à­¥¢®£® ¤¥à¥¢ , ­¥ ¨¬¥îé ï ¤¥â¥©,
­ §ë¢ ¥âáï «¨á⮬ (leaf, external node). ‚¥à設ë, ¨¬¥î騥 ¤¥â¥©,
­ §ë¢ îâáï ¢­ãâ७­¨¬¨ (internal).
—¨á«® ¤¥â¥© ã ¢¥àè¨­ë ª®à­¥¢®£® ¤¥à¥¢ ­ §ë¢ ¥âáï ¥ñ á⥯¥­ìî
(degree). Žâ¬¥â¨¬, çâ® ¤«ï ¢á¥å ¢¥à設, ªà®¬¥ ª®à­ï, á⥯¥­ì ­ ¥¤¨­¨æã ¬¥­ìè¥ á⥯¥­¨ ⮩ ¦¥ ¢¥àè¨­ë ¢ ⮬ ¦¥ ¤¥à¥¢¥, ¥á«¨ à áᬠâਢ âì ¤¥à¥¢® ª ª ­¥®à¨¥­â¨à®¢ ­­ë© £à ä (¯®áª®«ìªã ⮣¤ ­ ¤® ãç¨âë¢ âì ¨ ॡà®, ¨¤ã饥 ¢¢¥àå). „«¨­ ¯ã⨠®â ª®à­ï ¤®
¯à®¨§¢®«ì­®© ¢¥à設ë x ­ §ë¢ ¥âáï £«ã¡¨­®© (depth) ¢¥à設ë x.
Œ ªá¨¬ «ì­ ï £«ã¡¨­ ¢¥à設 ¤¥à¥¢ ­ §ë¢ ¥âáï ¢ëá®â®© (height)
¤¥à¥¢ .
„¥à¥¢®¬ á ¯®à浪®¬ ­ ¤¥âïå (ordered tree) ­ §ë¢ ¥âáï ª®à­¥¢®¥
„¥à¥¢ìï
91
¨áã­®ª 5.7 „¢®¨ç­ë¥ ¤¥à¥¢ìï. ( ) „¢®¨ç­®¥ ¤¥à¥¢®, ¨§®¡à ¦ñ­­®¥ âà ¤¨æ¨®­­ë¬ ®¡à §®¬. ‹¥¢ë© ॡñ­®ª ¢¥àè¨­ë ­ à¨á®¢ ­ á«¥¢ -á­¨§ã ®â ­¥ñ, ¯à ¢ë©
| á¯à ¢ -á­¨§ã. (¡) „à㣮¥ ¤¢®¨ç­®¥ ¤¥à¥¢® (®â«¨ç¨¥ ¢ ⮬, ç⮠⥯¥àì ã ¢¥à設ë 7 ¥áâì ¯à ¢ë© à¥¡ñ­®ª 5 ¨ ­¥â «¥¢®£®, ­¥ ­ ®¡®à®â). ’ ª®¥ à §«¨ç¨¥
¢®§¬®¦­® ¢ ¤¢®¨ç­®¬ ¤¥à¥¢¥, ­® ­¥ ¢ ¤¥à¥¢¥ á ¯®à浪®¬ ­ ¤¥âïå. (¢) „®¡ ¢«ïï
¤®¯®«­¨â¥«ì­ë¥ «¨áâìï ª ¤¥à¥¢ã (a), ¬ë ¯®«ãç ¥¬ ¤¥à¥¢®, ã ª®â®à®£® ª ¦¤ ï
áâ à ï ¢¥à設 ¨¬¥¥â ¤¢ãå ¤¥â¥©. „®¡ ¢«¥­­ë¥ «¨áâìï ¨§®¡à ¦¥­ë ª¢ ¤à ⨪ ¬¨.
¤¥à¥¢® á ¤®¯®«­¨â¥«ì­®© áâàãªâãன: ¤«ï ª ¦¤®© ¢¥àè¨­ë ¬­®¦¥á⢮ ¥ñ ¤¥â¥© 㯮à冷祭® (¨§¢¥áâ­®, ª ª®© ¥ñ ¯®â®¬®ª ¯¥à¢ë©,
ª ª®© ¢â®à®© ¨ â. ¤.). „¢ ¤¥à¥¢ ­ à¨á. 5.6 ®¤¨­ ª®¢ë ª ª ª®à­¥¢ë¥
¤¥à¥¢ìï, ­® à §«¨ç­ë ª ª ¤¥à¥¢ìï á ¯®à浪®¬ ­ ¤¥âïå.
5.5.3 „¢®¨ç­ë¥ ¤¥à¥¢ìï. ®§¨æ¨®­­ë¥ ¤¥à¥¢ìï
„¢®¨ç­®¥ ¤¥à¥¢® (binary tree) ¯à®é¥ ¢á¥£® ®¯à¥¤¥«¨âì ४ãàᨢ­®
ª ª ª®­¥ç­ë© ­ ¡®à ¢¥à設, ª®â®àë©
«¨¡® ¯ãáâ (­¥ ᮤ¥à¦¨â ¢¥à設),
«¨¡® à §¡¨â ­ âਠ­¥¯¥à¥á¥ª î騥áï ç áâ¨: ¢¥à設ã, ­ §ë¢ ¥¬ãî ª®à­¥¬ (root), ¤¢®¨ç­®¥ ¤¥à¥¢®, ­ §ë¢ ¥¬®¥ «¥¢ë¬ ¯®¤¤¥à¥¢®¬
(left subtree) ª®à­ï, ¨ ¤¢®¨ç­®¥ ¤¥à¥¢®, ­ §ë¢ ¥¬®¥ ¯à ¢ë¬ ¯®¤¤¥à¥¢®¬ (right subtree) ª®à­ï.
„¢®¨ç­®¥ ¤¥à¥¢®, ­¥ ᮤ¥à¦ 饥 ¢¥à設, ­ §ë¢ ¥âáï ¯ãáâë¬
(empty). Ž­® ¨­®£¤ ®¡®§­ ç ¥âáï nil. …᫨ «¥¢®¥ ¯®¤¤¥à¥¢® ­¥¯ãáâ®, â® ¥£® ª®à¥­ì ­ §ë¢ ¥âáï «¥¢ë¬ ॡñ­ª®¬ (left child) ª®à­ï
¢á¥£® ¤¥à¥¢ ; ¯à ¢ë© ॡñ­®ª (right child) ®¯à¥¤¥«ï¥âáï ­ «®£¨ç­®.
…᫨ «¥¢®¥ ¨«¨ ¯à ¢®¥ ¯®¤¤¥à¥¢® ª®à­ï ¯ãáâ®, â® £®¢®àïâ, çâ® ã
ª®à­ï ­¥â «¥¢®£® ¨«¨ ¯à ¢®£® ॡñ­ª (child is absent). à¨¬¥à
¤¢®¨ç­®£® ¤¥à¥¢ ¯®ª § ­ ­ à¨á. 5.7 ( ).
ë«® ¡ë ®è¨¡ª®© ®¯à¥¤¥«¨âì ¤¢®¨ç­®¥ ¤¥à¥¢® ¯à®áâ® ª ª ¤¥à¥¢®
á ¯®à浪®¬ ­ ¤¥âïå, ¢ ª®â®à®¬ á⥯¥­ì ª ¦¤®© ¢¥àè¨­ë ­¥ ¯à¥¢®á室¨â 2. „¥«® ¢ ⮬, çâ® ¢ ¤¢®¨ç­®¬ ¤¥à¥¢¥ ¢ ¦­®, ª ª¨¬ ï¥âáï
¥¤¨­á⢥­­ë© ॡñ­®ª ¢¥à設ë á⥯¥­¨ 1 | «¥¢ë¬ ¨«¨ ¯à ¢ë¬, ¤«ï ¤¥à¥¢ á ¯®à浪®¬ ­ ¤¥âïå â ª®£® à §«¨ç¨ï ­¥ áãé¥áâ¢ã¥â.  à¨á. 5.7 ( ,¡) ¯®ª § ­ë ¤¢ à §«¨ç­ëå ¤¢®¨ç­ëå ¤¥à¥¢ , ª®â®àë¥
92
ƒ« ¢ 5 Œ­®¦¥á⢠¢ëá®â =3, £«ã¡¨­ 0, £«ã¡¨­ 1 ¨ â.¯.
¨áã­®ª 5.8 ®«­®¥ ¤¢®¨ç­®¥ ¤¥à¥¢® ¢ëá®âë 3 ¨¬¥¥â 8 «¨áâ쥢 ¨ 7 ¢­ãâ७­¨å
¢¥à設.
®¤¨­ ª®¢ë ª ª ¤¥à¥¢ìï á ¯®à浪®¬ ­ ¤¥âïå.
ãáâãî騥 ¬¥áâ ¢ ¤¢®¨ç­®¬ ¤¥à¥¢¥ ç áâ® § ¯®«­ïîâ 䨪⨢­ë¬¨ «¨áâìﬨ. ®á«¥ í⮣® ã ª ¦¤®© áâ ன ¢¥àè¨­ë ¡ã¤¥â ¤¢®¥
¤¥â¥© («¨¡® ¯à¥¦­¨å, «¨¡® ¤®¡ ¢«¥­­ëå). â® ¯à¥®¡à §®¢ ­¨¥ ¯®ª § ­® ­ à¨á. 5.7 (¢).
Œ®¦­® ®¯à¥¤¥«¨âì ­ «®£¨ ¤¢®¨ç­ëå ¤¥à¥¢ì¥¢ ¤«ï ¤¥à¥¢ì¥¢
¡®«ì襩 á⥯¥­¨: ¤¢®¨ç­ë¥ ¤¥à¥¢ìï ïîâáï ç áâ­ë¬ á«ãç ¥¬ k¨ç­ëå (k-ary) ¤¥à¥¢ì¥¢ ¯à¨ k = 2. ®«¥¥ ¯®¤à®¡­®, ¯®§¨æ¨®­­®¥ ¤¥à¥¢® (positional tree) ®¯à¥¤¥«ï¥âáï ª ª ª®à­¥¢®¥ ¤¥à¥¢®, ¢ ª®â®à®¬
¤¥â¨ «î¡®© ¢¥àè¨­ë ¯®¬¥ç¥­ë à §«¨ç­ë¬¨ 楫묨 ¯®«®¦¨â¥«ì­ë¬¨ ç¨á« ¬¨, ª®â®àë¥ áç¨â îâáï ¨å ­®¬¥à ¬¨. à¨ í⮬ ã ª ¦¤®© ¢¥àè¨­ë ¥áâì ¢ ª ­á¨¨ ¤«ï ¤¥â¥© ­®¬¥à 1, 2, 3 ¨ â ª ¤ «¥¥, ¨§
ª®â®àëå ­¥ª®â®àë¥ (ª®­¥ç­®¥ ç¨á«®) § ¯®«­¥­ë, ®áâ «ì­ë¥ ᢮¡®¤­ë (ith child is absent). à¨ í⮬ k-¨ç­ë¬ ¤¥à¥¢®¬ ­ §ë¢ ¥âáï
¯®§¨æ¨®­­®¥ ¤¥à¥¢®, ­¥ ¨¬¥î饥 ¢¥à設 á ­®¬¥à ¬¨ ¡®«ìè¥ k.
®«­ë¬ k-¨ç­ë¬ ¤¥à¥¢®¬ (complete k-ary tree) ­ §ë¢ ¥âáï k-¨ç­®¥
¤¥à¥¢®, ¢ ª®â®à®¬ ¢á¥ «¨áâìï ¨¬¥îâ ®¤¨­ ª®¢ãî £«ã¡¨­ã ¨ ¢á¥ ¢­ãâ७­¨¥ ¢¥àè¨­ë ¨¬¥îâ á⥯¥­ì k. (’¥¬ á ¬ë¬ áâàãªâãà â ª®£®
¤¥à¥¢ ¯®«­®áâìî ®¯à¥¤¥«ï¥âáï ¥£® ¢ëá®â®©.)  à¨á. 5.8 ¯®ª § ­®
¯®«­®¥ ¤¢®¨ç­®¥ ¤¥à¥¢® ¢ëá®âë 3. ®¤áç¨â ¥¬, ᪮«ìª® «¨áâ쥢
¨¬¥¥â ¯®«­®¥ k-¨ç­®¥ ¤¥à¥¢® ¢ëá®âë h. Š®à¥­ì ï¥âáï ¥¤¨­á⢥­­®© ¢¥à設®© £«ã¡¨­ë 0, ¥£® k ¤¥â¥© ïîâáï ¢¥à設 ¬¨ £«ã¡¨­ë 1, ¨å ¤¥â쬨 ïîâáï k2 ¢¥à設 £«ã¡¨­ë k ¨ â ª ¤ «¥¥
¢¯«®âì ¤® kh «¨áâ쥢 £«ã¡¨­ë h. Œ®¦­® ¤®¡ ¢¨âì, çâ® ¢ëá®â k¨ç­®£® ¤¥à¥¢ á n «¨áâìﬨ à ¢­ logk n (â ª®¥ ¤¥à¥¢® áãé¥áâ¢ã¥â,
⮫쪮 ¥á«¨ íâ®â «®£ à¨ä¬ 楫ë©). —¨á«® ¢­ãâ७­¨å ¢¥à設 ¯®«­®£® k-¨ç­®£® ¤¥à¥¢ ¢ëá®âë h à ¢­®
h
1 + k + k2 + : : : + kh;1 = kk ;;11
(á¬. (3.3)). ‚ ç áâ­®áâ¨, ¤«ï ¯®«­®£® ¤¢®¨ç­®£® ¤¥à¥¢ ç¨á«® ¢­ãâ७­¨å ¢¥à設 ­ ¥¤¨­¨æã ¬¥­ìè¥ ç¨á« «¨áâ쥢.
‡ ¤ ç¨ ª £« ¢¥ 5
93
“¯à ¦­¥­¨ï
 à¨áã©â¥ ¢á¥ ¤¥à¥¢ìï (¡¥§ ¢ë¤¥«¥­­®£® ª®à­ï), ᮤ¥à¦ 騥 âਠ¢¥à設ë A, B ¨ C .  à¨áã©â¥ ¢á¥ ª®à­¥¢ë¥ ¤¥à¥¢ìï á ¢¥à設 ¬¨ A, B ¨ C ¨ ª®à­¥¬ A.  à¨áã©â¥ ¢á¥ (ª®à­¥¢ë¥) ¤¥à¥¢ìï á
¯®à浪®¬ ­ ¤¥âïå á ¢¥à設 ¬¨ A, B ¨ C ¨ ª®à­¥¬ A.  à¨áã©â¥
¢á¥ ¤¢®¨ç­ë¥ ¤¥à¥¢ìï á ¢¥à設 ¬¨ A, B ¨ C ¨ ª®à­¥¬ A.
5.5-2 ®ª ¦¨â¥, çâ® ¤«ï «î¡®£® n > 7 áãé¥áâ¢ã¥â ¤¥à¥¢® c n
¢¥à設 ¬¨, ¨§ ª®â®à®£® ¬®¦­® ¯®«ãç¨âì n à §«¨ç­ëå ª®à­¥¢ëå
¤¥à¥¢ì¥¢, ®¡ê¢ ª®à­¥¬ ®¤­ã ¨§ n ¢¥à設.
5.5-3 ãáâì G = (V; E ) | ®à¨¥­â¨à®¢ ­­ë© 横«¨ç¥áª¨© £à ä,
¢ ª®â®à®¬ áãé¥áâ¢ã¥â ¢¥à設 v0, ¨§ ª®â®à®© ¢ ª ¦¤ãî ¤àã£ãî
v 2 V ¢¥¤ñâ ¥¤¨­á⢥­­ë© ¯ãâì. ®ª ¦¨â¥, çâ® ­¥®à¨¥­â¨à®¢ ­­ë© ¢ ਠ­â £à ä G ï¥âáï ¤¥à¥¢®¬.
5.5-4 „®ª ¦¨â¥ ¯® ¨­¤ãªæ¨¨, çâ® ¢ «î¡®¬ ¤¢®¨ç­®¬ ¤¥à¥¢¥ ç¨á«®
¢¥à設 á⥯¥­¨ 2 ­ ¥¤¨­¨æã ¬¥­ìè¥ ç¨á« «¨áâ쥢.
5.5-5 ®ª ¦¨â¥, çâ® ¤¢®¨ç­®¥ ¤¥à¥¢® á n ¢¥à設 ¬¨ ¨¬¥¥â ¢ëá®âã ­¥ ¬¥­ìè¥ blg nc.
5.5-6? Ž¯à¥¤¥«¨¬ ¢­ãâ७­îî á㬬㠤«¨­ (internal path length) ¤«ï
¤¢®¨ç­®£® ¤¥à¥¢ , ¢ ª®â®à®¬ ª ¦¤ ï ¢¥à設 ¨¬¥¥â á⥯¥­ì 0 ¨«¨ 2,
ª ª á㬬㠣«ã¡¨­ ¢á¥å ¢­ãâ७­¨å ¢¥à設. Ž¯à¥¤¥«¨¬ ¢­¥è­îî
á㬬㠤«¨­ ¤«ï í⮣® ¦¥ ¤¥à¥¢ ª ª á㬬㠣«ã¡¨­ ¢á¥å ¥£® «¨áâ쥢.
ãáâì n | ç¨á«® ¢­ãâ७­¨å ¢¥à設 â ª®£® ¤¥à¥¢ , i ¨ e | ¢­ãâ७­ïï ¨ ¢­¥è­ïï áã¬¬ë ¤«¨­. „®ª ¦¨â¥, çâ® e = i + 2n.
5.5-7? Ž¯à¥¤¥«¨¬ "¢¥á" «¨áâ ¢ ¤¢®¨ç­®¬ ¤¥à¥¢¥ ª ª 2;d , £¤¥ d |
¥£® £«ã¡¨­ . „®ª ¦¨â¥, çâ® á㬬 ¢¥á®¢ ¢á¥å «¨áâ쥢 ¢ ¤¢®¨ç­®¬
¤¥à¥¢¥ ­¥ ¯à¥¢®á室¨â 1 (­¥à ¢¥­á⢮ Šà äâ , Kraft inequality)
5.5-8? ®ª ¦¨â¥, çâ® ¢ «î¡®¬ ¤¢®¨ç­®¬ ¤¥à¥¢¥ á L «¨áâìﬨ
¬®¦­® ­ ©â¨ ¯®¤¤¥à¥¢®, ç¨á«® «¨áâ쥢 ¢ ª®â®à®¬ ­ 室¨âáï ­ ®â१ª¥ [L=3; 2L=3].
5.5-1
‡ ¤ ç¨
5-1  áªà ᪠£à ä  §®¢ñ¬ k-à áªà ᪮© ­¥®à¨¥­â¨à®¢ ­­®£® £à ä (V; E ) äã­ªæ¨î
c : V ! f0; 1; : : :; k ; 1g, ¤«ï ª®â®à®£® c(u) 6= c(v ) ¤«ï «î¡ëå ¤¢ãå
ᬥ¦­ëå ¢¥à設 u ¨ v. (Š®­æë «î¡®£® à¥¡à ¤®«¦­ë ¨¬¥âì à §­ë¥
梥â .)
. ®ª ¦¨â¥, çâ® «î¡®¥ ¤¥à¥¢® ¨¬¥¥â 2-à áªà áªã.
94
ƒ« ¢ 5 Œ­®¦¥á⢠¡. ®ª ¦¨â¥, çâ® á«¥¤ãî騥 ᢮©á⢠­¥®à¨¥­â¨à®¢ ­­®£® £à ä G à ¢­®á¨«ì­ë:
1. ƒà ä G ¤¢ã¤®«ì­ë©.
2. ƒà ä G ¨¬¥¥â 2-à áªà áªã.
3. ƒà ä G ­¥ ¨¬¥¥â 横«®¢ ­¥çñâ­®© ¤«¨­ë.
¢. ãáâì d | ¬ ªá¨¬ «ì­ ï á⥯¥­ì ¢¥à設 ­¥®à¨¥­â¨à®¢ ­­®£®
£à ä G. ®ª ¦¨â¥, çâ® G ¨¬¥¥â (d + 1)-à áªà áªã.
£p. ®ª ¦¨â¥, çâ® ¥á«¨ £à ä G ¨¬¥¥â O(jV j) àñ¡¥à, â® G ¨¬¥¥â
O( jV j)-à áªà áªã.
5-2 ƒà äë ¨ «î¤¨
¥à¥¢¥¤¨â¥ ­ ï§ëª ­¥®à¨¥­â¨à®¢ ­­ëå £à 䮢 á«¥¤ãî騥
ã⢥ত¥­¨ï ¨ ¤®ª ¦¨â¥ ¨å. (à¥¤¯®« £ ¥âáï, çâ® ®â­®è¥­¨¥
"¡ëâì ¤à㣮¬" ᨬ¬¥âà¨ç­®, ¨ 祫®¢¥ª ­¥ ¢ª«îç ¥âáï ¢ ç¨á«®
᢮¨å ¤à㧥©.)
. ‚ «î¡®© ª®¬¯ ­¨¨ ¨§ n > 2 祫®¢¥ª ­ ©¤ãâáï ¤¢ 祫®¢¥ª á
®¤¨­ ª®¢ë¬ ç¨á«®¬ ¤à㧥© (á।¨ ¯à¨áãâáâ¢ãîé¨å).
¡. ‚ «î¡®© £à㯯¥ ¨§ 6 祫®¢¥ª ¬®¦­® ­ ©â¨ «¨¡® âàñå 祫®¢¥ª,
ïîé¨åáï ¤àã§ìﬨ ¤à㣠¤à㣠, «¨¡® âàñå 祫®¢¥ª, ­¨ª ª¨¥ ¤¢®¥
¨§ ª®â®àëå ­¥ ïîâáï ¤àã§ìﬨ.
¢. ‹î¡ãî ª®¬¯ ­¨î «î¤¥© ¬®¦­® à §¢¥á⨠¯® ¤¢ã¬ ª®¬­ â ¬
â ª, çâ® ¤«ï ª ¦¤®£® 祫®¢¥ª ª ª ¬¨­¨¬ã¬ ¯®«®¢¨­ ¥£® ¤à㧥©
®ª ¦ãâáï ¢ ¤à㣮© ª®¬­ â¥.
£. …᫨ ¢ ª®¬¯ ­¨¨ ¨§ n 祫®¢¥ª ã ª ¦¤®£® ­¥ ¬¥­¥¥ n=2 ¤à㧥©,
â® íâã ª®¬¯ ­¨î ¬®¦­® à áá ¤¨âì § ªàã£«ë¬ á⮫®¬ â ª, ç⮡ë
ª ¦¤ë© ᨤ¥« ¬¥¦¤ã ¤¢ã¬ï ᢮¨¬¨ ¤àã§ìﬨ.
5-3  §¡¨¥­¨¥ ¤¥à¥¢ì¥¢ ­ ç áâ¨
Œ­®£¨¥ «£®à¨â¬ë ­ £à ä å, ¤¥©áâ¢ãî騥 ¯® ¯à¨­æ¨¯ã "à §¤¥«ï© ¨ ¢« áâ¢ã©", ¤¥«ïâ £à ä ­ ¤¢¥ ç áâ¨, ¯à¨ í⮬ ¦¥« ⥫쭮
㤠«ïâì ª ª ¬®¦­® ¬¥­ìè¥ àñ¡¥à ¨ ¯®«ãç¨âì ¤¢¥ ç á⨠¯® ¢®§¬®¦­®á⨠¡«¨§ª®£® à §¬¥à .
. ®ª ¦¨â¥, çâ® ¢ «î¡®¬ ¤¢®¨ç­®¬ ¤¥à¥¢¥ á n ¢¥à設 ¬¨ ¬®¦­®
­ ©â¨ ॡà®, ¯®á«¥ 㤠«¥­¨ï ª®â®à®£® ¯®«ãç âáï ¤¢¥ ç áâ¨ à §¬¥à ­¥ ¡®«ìè¥ 3n=4 ª ¦¤ ï.
¡. ®ª ¦¨â¥, çâ® ª®­áâ ­âã 3=4 ¢ ¯ã­ªâ¥ ( ) ­¥«ì§ï ã«ãçè¨âì,
¯à¨¢¥¤ï ¯à¨¬¥à ¤¢®¨ç­®£® ¤¥à¥¢ , ¤«ï ª®â®à®£® ¯®á«¥ 㤠«¥­¨ï «î¡®£® à¥¡à ¢ ®¤­®© ¨§ ç á⥩ ®áâ ñâáï ­¥ ¬¥­¥¥ 3n=4 ¢¥à設.
¢. ®ª ¦¨â¥, çâ® ¬­®¦¥á⢮ ¢¥à設 «î¡®£® ¤¢®¨ç­®£® ¤¥à¥¢ á n
¢¥à設 ¬¨ ¬®¦­® à §¡¨âì ­ ¤¢¥ ç á⨠A ¨ B â ª¨¬ ®¡à §®¬, çâ®
jAj = bn=2c, jBj = dn=2e, ç¨á«® àñ¡¥à, ᮥ¤¨­ïîé¨å ¢¥àè¨­ë ¨§
à §­ëå ç á⥩, ¥áâì O(lg n).
‡ ¬¥ç ­¨ï ª £« ¢¥ 5
95
‡ ¬¥ç ­¨ï
Žá­®¢ ⥫ì ᨬ¢®«¨ç¥áª®© «®£¨ª¨ ã«ì (G. Boole) ¢¢ñ« ¬­®£¨¥
¨§ ­ë­¥è­¨å ⥮à¥â¨ª®-¬­®¦¥á⢥­­ëå ®¡®§­ 祭¨© ¢ ª­¨£¥, ®¯ã¡«¨ª®¢ ­­®© ¢ 1854 £®¤ã. ‘®¢à¥¬¥­­ ï ⥮à¨ï ¬­®¦¥á⢠(¯à¥¦¤¥
¢á¥£® ⥮à¨ï ¬®é­®á⥩ ¡¥áª®­¥ç­ëå ¬­®¦¥áâ¢) ¡ë« ᮧ¤ ­ Š ­â®à®¬ (G. Cantor) ¢ 1874{1895 £®¤ å. ’¥à¬¨­ "äã­ªæ¨ï" ¨á¯®«ì§®¢ « ‹¥©¡­¨æ (G.W. Leibnitz) ¢ ¯à¨¬¥­¥­¨¨ ª ­¥ª®â®àë¬ ¬ ⥬ â¨ç¥áª¨¬ ä®à¬ã« ¬. Ž¯à¥¤¥«¥­¨¥ ä㭪樨 ¢¯®á«¥¤á⢨¨ ¬­®£®ªà â­® ®¡®¡é «®áì. ’¥®à¨ï £à 䮢 ¢®á室¨â ª 1736 £®¤ã, ª®£¤ ©«¥à (L. Euler) ¯®ª § «, çâ® ­¥¢®§¬®¦­® ¯à®©â¨ ¯® ¢á¥¬ ᥬ¨ ¬®áâ ¬
£®à®¤ Šñ­¨£á¡¥à£ ¯® ®¤­®¬ã à §ã ¨ ¢¥à­ãâìáï ¢ ¨á室­ãî â®çªã.
®«¥§­ë¬ á¯à ¢®ç­¨ª®¬ ¯® ®¯à¥¤¥«¥­¨ï¬ ¨ १ã«ìâ â ¬ ⥮ਨ
£à 䮢 ï¥âáï ª­¨£ • à ਠ[94].
6
Š®¬¡¨­ â®à¨ª ¨ ¢¥à®ïâ­®áâì
‚ í⮩ £« ¢¥ ¨§« £ îâáï ­ ç « ª®¬¡¨­ â®à¨ª¨ ¨ ⥮ਨ ¢¥à®ïâ­®á⥩. …᫨ ¢ë §­ ª®¬ë á ­¨¬¨, ᮢ¥â㥬 ¯à®á¬®âà¥âì ­ ç «® £« ¢ë
¨ ¢­¨¬ ⥫쭮 ¯à®ç¥áâì ¯®á«¥¤­¨¥ à §¤¥«ë. Œ­®£¨¥ £« ¢ë í⮩
ª­¨£¨ ­¥ ¨á¯®«ì§ãîâ ⥮à¨î ¢¥à®ïâ­®á⥩, ­® ª®¥-£¤¥ ®­ ­¥®¡å®¤¨¬ .
 §¤¥« 6.1 ­ ¯®¬¨­ ¥â ®á­®¢­ë¥ ä ªâë ª®¬¡¨­ â®à¨ª¨ (¢ ⮬ ç¨á«¥ ä®à¬ã«ë ¤«ï ¯¥à¥áâ ­®¢®ª ¨ á®ç¥â ­¨©).  §¤¥« 6.2 ᮤ¥à¦¨â
ªá¨®¬ë ¢¥à®ïâ­®á⨠¨ ®á­®¢­ë¥ ä ªâë ® à á¯à¥¤¥«¥­¨ïå ¢¥à®ïâ­®á⥩. ‚ à §¤¥«¥ 6.3 ®¯à¥¤¥«ïîâáï ¯®­ïâ¨ï á«ãç ©­®© ¢¥«¨ç¨­ë,
¥¥ ¬ ⥬ â¨ç¥áª®£® ®¦¨¤ ­¨ï ¨ ¤¨á¯¥àᨨ.  §¤¥« 6.4 ¯®á¢ï饭
£¥®¬¥âà¨ç¥áª®¬ã ¨ ¡¨­®¬¨ «ì­®¬ã à á¯à¥¤¥«¥­¨ï¬. ˆáá«¥¤®¢ ­¨¥
¡¨­®¬¨ «ì­®£® à á¯à¥¤¥«¥­¨ï ¯à®¤®«¦ ¥âáï ¢ à §¤¥«¥ 6.5 (®æ¥­ª "墮á⮢"). ‚ ¯®á«¥¤­¥¬ à §¤¥«¥ 6.6 ¯à¨¬¥­¥­¨¥ ⥮ਨ ¢¥à®ïâ­®á⥩ ¨««îáâà¨àã¥âáï ­ ¯à¨¬¥à¥ âàñå § ¤ ç: ¯ à ¤®ªá ¤­ï ஦¤¥­¨ï, á«ãç ©­®£® à á¯à¥¤¥«¥­¨ï è ஢ ¯® ãà­ ¬ ¨ ®æ¥­ª¨ ¤«¨­ë
¢ë¨£àëè­ëå ãç á⪮¢ ¯à¨ ¡à®á ­¨¨ ¬®­¥âë.
6.1 ®¤áçñâ ª®«¨ç¥áâ¢
ˆ­®£¤ ¬®¦­® ­ ©â¨ ç¨á«® ¯à¥¤¬¥â®¢ ®¯à¥¤¥«ñ­­®£® ¢¨¤ , ­¥ ¯¥à¥ç¨á«ïï ¨å ¢á¥.  ¯à¨¬¥à, «¥£ª® ­ ©â¨ ç¨á«® ¢á¥å n-¡¨â®¢ëå áâப
¨«¨ ¢á¥å ¯¥à¥áâ ­®¢®ª n ®¡ê¥ªâ®¢. ‚ í⮬ à §¤¥«¥ ¬ë à áᬮâਬ
®á­®¢­ë¥ ¬¥â®¤ë â ª®£® ¯®¤áçñâ . à¥¤¯®« £ ¥âáï, çâ® ç¨â ⥫ì
§­ ª®¬ á ¯®­ïâ¨ï¬¨ ⥮ਨ ¬­®¦¥á⢠(á¬. à §¤. 5.1).
à ¢¨« áã¬¬ë ¨ ¯à®¨§¢¥¤¥­¨ï
Œ­®¦¥á⢮, ª®«¨ç¥á⢮ í«¥¬¥­â®¢ ª®â®à®£® ¬ë å®â¨¬ ¯®¤áç¨â âì, ç áâ® ¬®¦¥â ¡ëâì ¯à¥¤áâ ¢«¥­® ¢ ¢¨¤¥ ®¡ê¥¤¨­¥­¨ï ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥á⢠¨«¨ ¤¥ª à⮢ ¯à®¨§¢¥¤¥­¨ï ¬­®¦¥áâ¢.
à ¢¨«® á㬬ë (rule of sum) £« á¨â, çâ® jA [ B j = jAj + jB j ¤«ï ­¥¯¥à¥á¥ª îé¨åáï ª®­¥ç­ëå ¬­®¦¥á⢠A ¨ B (ç áâ­ë© á«ãç © ä®à¬ã«ë (5.3)). …᫨ ᨬ¢®« ­ ­®¬¥à¥ ¬ è¨­ë ¤®«¦¥­ ¡ëâì «¨¡®
®¤áçñâ ª®«¨ç¥áâ¢
97
« ⨭᪮© ¡ãª¢®©, «¨¡® æ¨äன, â® ¢á¥£® ¥áâì 26 + 10 = 36 ¢®§¬®¦­®á⥩, â ª ª ª ¡ãª¢ 26, æ¨äà 10.
à ¢¨«® ¯à®¨§¢¥¤¥­¨ï (rule of product) ã⢥ত ¥â, çâ® jA B j =
jAj jBj ¤«ï ª®­¥ç­ëå ¬­®¦¥á⢠A ¨ B, á¬. (5.4).  ¯à¨¬¥à, ¨¬¥ï
28 á®à⮢ ¬®à®¦¥­®£® ¨ 4 ¢¨¤ á¨à®¯ , ¬®¦­® ¨§£®â®¢¨âì 28 4 =
112 ¢ ਠ­â®¢ ¬®à®¦¥­®£® á á¨à®¯®¬ (­¥ ᬥ訢 ï à §­ë¥ á®àâ ¬®à®¦¥­®£® ¨ á¨à®¯ ).
‘âப¨
‘âப®© (string; ¯®-àãá᪨ £®¢®àïâ â ª¦¥ ® á«®¢ å) ­ §ë¢ îâ ª®­¥ç­ãî ¯®á«¥¤®¢ ⥫쭮áâì í«¥¬¥­â®¢ ­¥ª®â®à®£® ª®­¥ç­®£® ¬­®¦¥á⢠S (­ §ë¢ ¥¬®£® «ä ¢¨â®¬).  ¯à¨¬¥à, áãé¥áâ¢ã¥â 8 ¤¢®¨ç­ëå (á®áâ ¢«¥­­ëå ¨§ ­ã«¥© ¨ ¥¤¨­¨æ) áâப ¤«¨­ë 3:
000; 001; 010; 011; 100; 101; 110; 111:
ˆ­®£¤ áâப㠤«¨­ë k ­ §ë¢ îâ k-áâப®© (k-string). ®¤áâப®© (substring) s0 áâப¨ s ­ §ë¢ ¥âáï ¯à®¨§¢®«ì­ ï ¯®á«¥¤®¢ ⥫쭮áâì ¨¤ãé¨å ¯®¤àï¤ í«¥¬¥­â®¢ áâப¨ s. ƒ®¢®àï ® k-¯®¤áâப¥ (ksubstring), ¨¬¥îâ ¢ ¢¨¤ã ¯®¤áâப㠤«¨­ë k. ’ ª, 010 ï¥âáï 3¯®¤áâப®© áâப¨ 01101001 (®­ ­ 稭 ¥âáï á ¯®§¨æ¨¨ 4), 111 |
­¥â.
‘âப ¤«¨­ë k ¨§ í«¥¬¥­â®¢ ¬­®¦¥á⢠S ï¥âáï í«¥¬¥­â®¬ ¯àאַ£® ¯à®¨§¢¥¤¥­¨ï S k , â ª çâ® ¢á¥£® áãé¥áâ¢ã¥â jS jk áâப
¤«¨­ë k. ‚ ç áâ­®áâ¨, ¨¬¥¥âáï 2k ¤¢®¨ç­ëå áâப ¤«¨­ë k. â®
¬®¦­® ®¡êïá­¨âì ¥éñ ¨ â ª: ¯¥à¢ë© í«¥¬¥­â áâப¨ ¬®¦­® ¢ë¡à âì
jS j ᯮᮡ ¬¨; ¤«ï ª ¦¤®£® ¨§ ­¨å ¥áâì jS j ¢ ਠ­â®¢ ¯à®¤®«¦¥­¨ï,
¨ â ª ¤ «¥¥ | ¢á¥£® k ¢ë¡®à®¢, ¯®«ãç ¥âáï jS jjS j : : :jS j (k ¬­®¦¨â¥«¥©) ¢ ਠ­â®¢.
¥à¥áâ ­®¢ª¨
¥à¥áâ ­®¢ª®© (permutation) ª®­¥ç­®£® ¬­®¦¥á⢠S ­ §ë¢ ¥âáï
㯮à冷祭­ ï ¯®á«¥¤®¢ ⥫쭮áâì ¢á¥å ¥£® í«¥¬¥­â®¢, ¢ ª®â®à®©
ª ¦¤ë© í«¥¬¥­â ¢áâà¥ç ¥âáï ஢­® ®¤¨­ à §. ’ ª, áãé¥áâ¢ã¥â 6 ¯¥à¥áâ ­®¢®ª ¬­®¦¥á⢠S = fa; b; cg :
abc; acb; bac; bca; cab; cba:
‚ᥣ® ¨¬¥¥âáï n! ¯¥à¥áâ ­®¢®ª ¬­®¦¥á⢠¨§ n í«¥¬¥­â®¢, â ª ª ª
¯¥à¢ë© í«¥¬¥­â ¯¥à¥áâ ­®¢ª¨ ¬®¦­® ¢ë¡à âì n ᯮᮡ ¬¨, ¢â®à®©
n ; 1 ᯮᮡ ¬¨, âà¥â¨© n ; 2 ᯮᮡ ¬¨, ¨ â. ¤.
98
ƒ« ¢ 6 Š®¬¡¨­ â®à¨ª ¨ ¢¥à®ïâ­®áâì
 §¬¥é¥­¨ï ¡¥§ ¯®¢â®à¥­¨©
…᫨ ª ¦¤ë© í«¥¬¥­â ¬®¦­® ¨á¯®«ì§®¢ âì ⮫쪮 ®¤¨­ à §, ­®
­¥ âॡã¥âáï ¨á¯®«ì§®¢ âì ¢á¥ í«¥¬¥­âë, £®¢®àïâ ® à §¬¥é¥­¨ïå ¡¥§
¯®¢â®à¥­¨©. ãáâì 䨪á¨à®¢ ­® ¬­®¦¥á⢮ S ¨§ n í«¥¬¥­â®¢ ¨ ­¥ª®â®à®¥ k, ­¥ ¯à¥¢®á室ï饥 n.  §¬¥é¥­¨¥¬ ¡¥§ ¯®¢â®à¥­¨© ¨§ n
¯® k ­ §ë¢ îâ ¯®á«¥¤®¢ ⥫쭮áâì ¤«¨­ë k, á®áâ ¢«¥­­ãî ¨§ à §«¨ç­ëå í«¥¬¥­â®¢ S . (€­£«¨©áª¨© â¥à¬¨­ | k-permutation.) —¨á«®
â ª¨å à §¬¥é¥­¨© à ¢­®
n(n ; 1)(n ; 2) (n ; k + 1) = (n ;n! k)!
(6.1)
â ª ª ª áãé¥áâ¢ã¥â n ᯮᮡ®¢ ¢ë¡®à ¯¥à¢®£® í«¥¬¥­â , n;1 ᯮᮡ®¢ ¢ë¡®à ¢â®à®£® í«¥¬¥­â , ¨ â ª ¤ «¥¥ ¤® k-£® í«¥¬¥­â , ª®â®àë©
¬®¦­® ¢ë¡à âì n ; k + 1 ᯮᮡ ¬¨.
 ¯à¨¬¥à, áãé¥áâ¢ã¥â 12 = 4 3 ¯®á«¥¤®¢ ⥫쭮á⥩ ¨§ ¤¢ãå
à §«¨ç­ëå í«¥¬¥­â®¢ ¬­®¦¥á⢠fa; b; c; dg:
ab; ac; ad; ba; bc; bd; ca; cb; cd; da; db; dc:
— áâ­ë¬ á«ãç ¥¬ í⮩ ä®à¬ã«ë ï¥âáï ä®à¬ã« ¤«ï ç¨á« ¯¥à¥áâ ­®¢®ª (¯®áª®«ìªã ¯¥à¥áâ ­®¢ª¨ ïîâáï ç áâ­ë¬ á«ãç ¥¬ à §¬¥é¥­¨© ¯à¨ n = k).
‘®ç¥â ­¨ï
‘®ç¥â ­¨ï¬¨ (k-combinations) ¨§ n í«¥¬¥­â®¢ ¯® k ­ §ë¢ îâáï kí«¥¬¥­â­ë¥ ¯®¤¬­®¦¥á⢠ª ª®£®-«¨¡® n-í«¥¬¥­â­®£® ¬­®¦¥á⢠.
 ¯à¨¬¥à, ã ¬­®¦¥á⢠fa; b; c; dg ¨§ 4 í«¥¬¥­â®¢ ¨¬¥¥âáï 6 ¤¢ãåí«¥¬¥­â­ëå ¯®¤¬­®¦¥áâ¢
fa; bg; fa; cg; fa; dg; fb; cg; fb; dg; fc; dg:
—¨á«® á®ç¥â ­¨© ¨§ n ¯® k ¢ k! à § ¬¥­ìè¥ ç¨á« à §¬¥é¥­¨©
¡¥§ ¯®¢â®à¥­¨© (¤«ï â¥å ¦¥ n ¨ k), â ª ª ª ¨§ ª ¦¤®£® k-á®ç¥â ­¨ï
¬®¦­® ᤥ« âì k! à §¬¥é¥­¨© ¡¥§ ¯®¢â®à¥­¨©, ¯¥à¥áâ ¢«ïï ¥£® í«¥¬¥­âë. ®í⮬㠨§ ä®à¬ã«ë (6.1) á«¥¤ã¥â, çâ® ç¨á«® á®ç¥â ­¨©
¨§ n ¯® k à ¢­®
n! :
(6.2)
k!(n ; k)!
„«ï k = 0 íâ ä®à¬ã« ¤ ñâ 1, ª ª ¨ ¤®«¦­® ¡ëâì (¥áâì ஢­® ®¤­®
¯ãá⮥ ¯®¤¬­®¦¥á⢮; ­ ¯®¬­¨¬, çâ® 0! = 1).
®¤áçñâ ª®«¨ç¥áâ¢
99
¨­®¬¨ «ì­ë¥ ª®íää¨æ¨¥­âë
„«ï ç¨á« á®ç¥â ­¨© ¨§ n;n¯® k ¨á¯®«ì§ã¥âáï ®¡®§­ 祭¨¥ Cnk ¨«¨
(¢ ­£«¨©áª®© «¨â¥à âãà¥) k :
k
Cn = nk = k!(nn;! k)! :
(6.3)
â ä®à¬ã« ᨬ¬¥âà¨ç­ ®â­®á¨â¥«ì­® § ¬¥­ë k ­ n ; k :
Cnk = Cnn;k :
(6.4)
—¨á« Cnk ¨§¢¥áâ­ë â ª¦¥ ª ª ¡¨­®¬¨ «ì­ë¥ ª®íää¨æ¨¥­âë
(binomial coecients), ¯®ï¢«ïî騥áï ¢ ¡¨­®¬¥ ìîâ®­ (binomial
expansion):
(x + y )n =
n
X
k=0
Cnk xk yn;k
(6.5)
(¥á«¨ à áªàëâì ᪮¡ª¨ ¢ (x+y )n, â® ª®«¨ç¥á⢮ ç«¥­®¢, ᮤ¥à¦ é¨å
k ¬­®¦¨â¥«¥© x ¨ n ; k ¬­®¦¨â¥«¥© y , à ¢­® ª®«¨ç¥áâ¢ã ᯮᮡ®¢
¢ë¡à âì k ¬¥áâ ¨§ n, â. ¥. Cnk ).
à¨ x = y = 1 ¡¨­®¬ ìîâ®­ ¤ ñâ
n
X
n
2 = Cnk :
(6.6)
k=0
(Š®¬¡¨­ â®à­ë© á¬ëá«: 2n ¤¢®¨ç­ëå áâப ¤«¨­ë n á£à㯯¨à®¢ ­ë ¯® ç¨á«ã ¥¤¨­¨æ: ¨¬¥¥âáï ª ª à § Cnk áâப á k ¥¤¨­¨æ ¬¨.)
‘ãé¥áâ¢ã¥â ¬­®£® ⮦¤¥áâ¢ á ¡¨­®¬¨ «ì­ë¬¨ ª®íää¨æ¨¥­â ¬¨
(­¥ª®â®àë¥ ¨§ ­¨å ¯à¥¤« £ îâáï ¢ ª ç¥á⢥ ã¯à ¦­¥­¨© ¢ ª®­æ¥
í⮣® à §¤¥« ).
Žæ¥­ª¨ ¡¨­®¬¨ «ì­ëå ª®íää¨æ¨¥­â®¢
‚ ­¥ª®â®àëå á«ãç ïå ­ ¬ ¯®­ ¤®¡¨âáï ®æ¥­¨âì ¢¥«¨ç¨­ã ¡¨­®¬¨ «ì­ëå ª®íää¨æ¨¥­â®¢. „«ï 1 6 k 6 n ¨¬¥¥¬ ®æ¥­ªã á­¨§ã
Cnk = n(n ;k(1)k ; 1)(n ; 1k + 1)
; 1
n ; k + 1
= nk nk ;
1
1
n k
> k :
(6.7)
100
ƒ« ¢ 6 Š®¬¡¨­ â®à¨ª ¨ ¢¥à®ïâ­®áâì
ˆá¯®«ì§ãï ­¥à ¢¥­á⢮ k! > ( ke )k , ïî饥áï á«¥¤á⢨¥¬ ä®à¬ã«ë ‘â¨à«¨­£ (2.12), ¯®«ãç ¥¬ ®æ¥­ªã ᢥàåã
Cnk = n(n ;k(1)k ; 1)(n ; 1k + 1)
k
(6.8)
6 nk!
k
6 en
(6.9)
k :
„«ï ¢á¥å 0 6 k 6 n ¬®¦­® ¯® ¨­¤ãªæ¨¨ (á¬. ã¯à. 6.1-12) ¤®ª § âì
®æ¥­ªã
n
(6.10)
Cnk 6 kk (n ;n k)n;k ;
£¤¥ à ¤¨ 㤮¡á⢠§ ¯¨á¨ ¯®« £ ¥¬ 00 = 1. „«ï k = n, £¤¥ 0 6 6
1, í⠮業ª ¬®¦¥â ¡ëâì § ¯¨á ­ ª ª
n
Cnn 6 (n)n((1 n; )n)(1;)n
!
=
£¤¥ ¢¥«¨ç¨­ 1
= 2nH ();
1
1;
1;
n
H () = ; lg ; (1 ; ) lg(1 ; )
(6.11)
(6.12)
(6.13)
­ §ë¢ ¥âáï (¤¢®¨ç­®©) 襭­®­®¢áª®© í­âய¨¥©, ¯®- ­£«¨©áª¨
(binary) entropy function. ‚ í⮩ § ¯¨á¨ ¬ë ¯®« £ ¥¬ 0 lg 0 = 0, â ª
çâ® H (0) = H (1) = 0.
“¯à ¦­¥­¨ï
‘ª®«ìª® áãé¥áâ¢ã¥â k-¯®¤áâப áâப¨ ¤«¨­ë n? (®¤áâப¨, ­ 稭 î騥áï á à §«¨ç­ëå ¯®§¨æ¨© áâப¨, áç¨â îâáï
à §­ë¬¨.) ª ª®¢® ®¡é¥¥ ç¨á«® ¯®¤áâப áâப¨ ¤«¨­ë n?
6.1-2 ã«¥¢ äã­ªæ¨ï (boolean function) á n ¢å®¤ ¬¨ ¨ m ¢ë室 ¬¨ | íâ® äã­ªæ¨ï, ®¯à¥¤¥«¥­­ ï ­ ¬­®¦¥á⢥ ftrue; falsegn
á® §­ 祭¨ï¬¨ ¢ ¬­®¦¥á⢥ ftrue; falsegm. ‘ª®«ìª® áãé¥áâ¢ã¥â
à §«¨ç­ëå ¡ã«¥¢ëå ä㭪権 á n ¢å®¤ ¬¨ ¨ ®¤­¨¬ ¢ë室®¬? € ¡ã«¥¢ëå ä㭪権 á n ¢å®¤ ¬¨ ¨ m ¢ë室 ¬¨?
6.1-3 ‘ª®«ìª¨¬¨ ᯮᮡ ¬¨ n (à §«¨ç­ëå) ¯à®ä¥áá®à®¢ ¬®£ãâ
à ᯮ«®¦¨âìáï § ªàã£«ë¬ á⮫®¬? ‘¯®á®¡ë, ®â«¨ç î騥áï ¯®¢®à®â®¬, áç¨â îâáï ®¤¨­ ª®¢ë¬¨.
6.1-1
®¤áçñâ ª®«¨ç¥áâ¢
101
‘ª®«ìª¨¬¨ ᯮᮡ ¬¨ ¬®¦­® ¢ë¡à âì âà¨ à §«¨ç­ëå ç¨á« ¨§ ¬­®¦¥á⢠f1; 2; : : :; 100g â ª, çâ®¡ë ¨å á㬬 ¡ë« ç¥â­®©?
(®à冷ª ¢ë¡®à áãé¥á⢥­.)
6.1-5 „®ª ¦¨â¥ ⮦¤¥á⢮
Cnk = nk Cnk;;11
(6.14)
6.1-4
¤«ï 0 < k 6 n.
6.1-6 „®ª ¦¨â¥ ⮦¤¥á⢮
Cnk = n ;n k Cnk;1
¤«ï 0 6 k < n.
6.1-7 ‚롨à ï k ¯à¥¤¬¥â®¢ ¨§ n, ¬®¦­® ®â¬¥â¨âì ®¤¨­ ¨§ ¯à¥¤¬¥â®¢ ¨ á«¥¤¨âì, ¢ë¡à ­ ®­ ¨«¨ ­¥â. ˆá¯®«ì§ãï íâ® ®¡áâ®ï⥫ìá⢮,
¤®ª ¦¨â¥, çâ®
Cnk = Cnk;1 + Cnk;;11 :
ˆá¯®«ì§ãï १ã«ìâ â ã¯à ¦­¥­¨ï 6.1-7, á®áâ ¢ì⥠⠡«¨æã
¤«ï Cnk ¯à¨ n = 0; 1; 2; : : :; 6 ¨ ¯à¨ k ®â 0 ¤® n ¢ ¢¨¤¥ à ¢­®¡¥¤à¥­­®£® âà¥ã£®«ì­¨ª (C00 ᢥàåã, C10 ¨ C11 ¢ á«¥¤ãî饩 áâப¥, ¨ â ª
¤ «¥¥). â®â âà¥ã£®«ì­¨ª ­ §ë¢ îâ âà¥ã£®«ì­¨ª®¬  ᪠«ï (Pascal's
6.1-8
triangle).
6.1-9
„®ª ¦¨â¥ à ¢¥­á⢮
n
X
i=1
i = Cn2+1:
®ª ¦¨â¥, çâ® ¤«ï 䨪á¨à®¢ ­­®£® n > 0 ¢¥«¨ç¨­ Cnk
¤®á⨣ ¥â ­ ¨¡®«ì襣® (á।¨ ¢á¥å k ®â 0 ¤® n) §­ 祭¨ï ¯à¨
k = bn=2c ¨ ¯à¨ k = dn=2e (â ª çâ® ¤«ï çñâ­®£® n ¬ ªá¨¬ã¬ ®¤¨­,
¤«ï ­¥çñâ­®£® | ¤¢ áâ®ïé¨å à冷¬).
6.1-11? ®ª ¦¨â¥, çâ® ¤«ï «î¡ëå n > 0, j > 0, k > 0, j + k 6 n
¢ë¯®«­¥­® ­¥à ¢¥­á⢮
Cnj+k 6 Cnj Cnk;j
á ¯®¬®éìî ª®¬¡¨­ â®à­ëå à áá㦤¥­¨©, â ª¦¥ á ¨á¯®«ì§®¢ ­¨¥¬
ä®à¬ã«ë (6.3). ‚ ª ª¨å á«ãç ïå íâ® ­¥à ¢¥­á⢮ ®¡à é ¥âáï ¢ à ¢¥­á⢮?
6.1-12? „®ª ¦¨â¥ ¯® ¨­¤ãªæ¨¨ ­¥à ¢¥­á⢮ (6.10) ¤«ï k 6 n=2;
§ ⥬, ¨á¯®«ì§ãï (6.4), ¤®ª ¦¨â¥ ¥£® ¤«ï ¢á¥å k 6 n.
6.1-10
102
ƒ« ¢ 6 Š®¬¡¨­ â®à¨ª ¨ ¢¥à®ïâ­®áâì
6.1-13? ˆá¯®«ì§ãï ä®à¬ã«ã ‘â¨à«¨­£ , ¤®ª ¦¨â¥, çâ®
2n
C2nn = p2n (1 + O(1=n)):
(6.16)
6.1-14? „¨ää¥à¥­æ¨àãï H (), ¯®ª ¦¨â¥, çâ® ¬ ªá¨¬ã¬ ¤®á⨣ -
¥âáï ¯à¨ = 1=2. —¥¬ã à ¢­® H (1=2)?
6.2 ‚¥à®ïâ­®áâì
‚ í⮬ à §¤¥«¥ ¬ë ­ ¯®¬­¨¬ ®á­®¢­ë¥ ¯®­ïâ¨ï ⥮ਨ ¢¥à®ïâ­®á⥩.
ãáâì § ¤ ­® ­¥ª®â®à®¥ ¬­®¦¥á⢮ S , ª®â®à®¥ ¬ë ­ §ë¢ ¥¬ ¢¥à®ïâ­®áâ­ë¬ ¯à®áâà ­á⢮¬ (sample space), ¥£® í«¥¬¥­âë | í«¥¬¥­â à­ë¬¨ ᮡëâ¨ï¬¨ (elementary events). Š ¦¤ë© ¨§ í«¥¬¥­â®¢
¬®¦¥â à áᬠâਢ âìáï ª ª ¢®§¬®¦­ë© ¨á室 ¨á¯ëâ ­¨ï.  ¯à¨¬¥à, ¡à®á ­¨î ¤¢ãå à §«¨ç­ëå ¬®­¥â ᮮ⢥âáâ¢ã¥â ¢¥à®ïâ­®áâ­®¥
¯à®áâà ­á⢮, ᮤ¥à¦ 饥 ç¥âëॠáâப¨ ¤«¨­ë 2, á®áâ ¢«¥­­ë¥
¨§ ᨬ¢®«®¢ ® (®àñ«) ¨ à (à¥èª ):
S = f®®; ®à; à®; ààg
‘®¡ë⨥¬ (event) ­ §ë¢ ¥âáï ¯®¤¬­®¦¥á⢮ ¯à®áâà ­á⢠S .  ¯à¨¬¥à, ¢ ­ 襬 ¯à¨¬¥à¥ ¬®¦­® à áᬮâà¥âì ᮡë⨥ "¢ë¯ « ®¤¨­
®àñ« ¨ ®¤­ à¥èª ", â. ¥. ¬­®¦¥á⢮ f®à; à®g.
‘®¡ë⨥ S (¢áñ ¢¥à®ïâ­®áâ­®¥ ¯à®áâà ­á⢮) ­ §ë¢ ¥âáï ¤®á⮢¥à­ë¬ ᮡë⨥¬ (certain event), ᮡë⨥ ­ §ë¢ ¥âáï ­¥¢®§¬®¦­ë¬ ᮡë⨥¬ (null event). ‘®¡ëâ¨ï A ¨ B ­ §ë¢ îâáï ­¥á®¢¬¥áâ­ë¬¨ (mutually exclusive), ¥á«¨ A \ B = . Š ¦¤®¥ í«¥¬¥­â à­®¥
ᮡë⨥ s 2 S ¬ë ¡ã¤¥¬ áç¨â âì ᮡë⨥¬ fsg S .  §«¨ç­ë¥
í«¥¬¥­â à­ë¥ ᮡëâ¨ï ­¥á®¢¬¥áâ­ë.
‘ª § ­­®¥ ®â­®á¨âáï ¡¥§ ®£®¢®à®ª ª á«ãç î ª®­¥ç­®£® ¨«¨ áçñâ­®£® ¬­®¦¥á⢠S . ‚ ®¡é¥¬ á«ãç ¥ ®¯à¥¤¥«¥­¨¥ á«®¦­¥¥, ¨ ᮡëâ¨ï¬¨ áç¨â îâáï ­¥ ¢á¥ ¯®¤¬­®¦¥á⢠¬­®¦¥á⢠S , ⮫쪮 ­¥ª®â®àë¥. Ž­¨ ¤®«¦­ë ®¡à §®¢ë¢ âì - «£¥¡àã (¯¥à¥á¥ç¥­¨¥ ¨ ®¡ê¥¤¨­¥­¨¥ áçñâ­®£® ç¨á« ᮡë⨩ ¥áâì ᮡë⨥; ¤®¯®«­¥­¨¥ ᮡëâ¨ï ¥áâì
ᮡë⨥). Œë ­¥ ¡ã¤¥¬ £®¢®à¨âì ®¡ í⮬ ¯®¤à®¡­®, å®âï ­¥ª®â®àë¥
¯à¨¬¥àë â ª®£® த (à ¢­®¬¥à­®¥ à á¯à¥¤¥«¥­¨¥ ­ ®â१ª¥) ­ ¬
¢áâà¥âïâáï.
?
?
€ªá¨®¬ë ¢¥à®ïâ­®áâ¨
 á¯à¥¤¥«¥­¨¥¬ ¢¥à®ïâ­®á⥩ (probability distribution) ­ ¢¥à®ïâ­®áâ­®¬ ¯à®áâà ­á⢥ S ­ §ë¢ ¥âáï äã­ªæ¨ï P, áâ ¢ïé ï ¢ ᮮ⢥âá⢨¥ ª ¦¤®¬ã ᮡëâ¨î ­¥ª®â®à®¥ ­¥®âà¨æ ⥫쭮¥ ç¨á«® ¨
‚¥à®ïâ­®áâì
103
㤮¢«¥â¢®àïîé ï á«¥¤ãî騬 âॡ®¢ ­¨ï¬ ( ªá¨®¬ ¬ ¢¥à®ïâ­®áâ¨,
¯®- ­£«¨©áª¨ probability axioms):
1. PA > 0 ¤«ï «î¡®£® ᮡëâ¨ï A.
2. PfS g = 1.
3. PfA [ B g = PfAg + PfB g ¤«ï «î¡ëå ¤¢ãå ­¥á®¢¬¥áâ­ëå ᮡë⨩ A ¨ B, ¨, ¡®«¥¥ ⮣®,
X
Pf[i Ai g = PfAi g:
i
¤«ï «î¡®© (ª®­¥ç­®© ¨«¨ áç¥â­®©) ¯®á«¥¤®¢ ⥫쭮á⨠¯®¯ à­® ­¥á®¢¬¥áâ­ëå ᮡë⨩ A1; A2; : : :
—¨á«® PfAg ­ §ë¢ ¥âáï ¢¥à®ïâ­®áâìî ᮡëâ¨ï A (probability of the
event A). ‡ ¬¥â¨¬, çâ® ªá¨®¬ 2 䨪á¨àã¥â "¥¤¨­¨æã ¨§¬¥à¥­¨ï"
¢¥à®ïâ­®á⥩, ¯à¨­¨¬ ï § 1 ¢¥à®ïâ­®áâì ¤®á⮢¥à­®£® ᮡëâ¨ï.
‚®â ­¥áª®«ìª® ¯à®áâëå á«¥¤á⢨© ¨§ íâ¨å ªá¨®¬. ¥¢®§¬®¦­®¥
ᮡë⨥ ¨¬¥¥â ­ã«¥¢ãî ¢¥à®ïâ­®áâì Pf g = 0. …᫨ A B, â®
PfAg 6 PfB g. ˆá¯®«ì§ãï ®¡®§­ 祭¨¥ A ¤«ï ᮡëâ¨ï S ; A (¤®¯®«­¥­¨¥ ª A), ¨¬¥¥¬ PfAg = 1 ; PfAg. „«ï «î¡ëå ¤¢ãå ᮡë⨩ A ¨
B ¨¬¥¥â ¬¥áâ®
PfA [ B g = PfAg + PfB g ; PfA \ B g
(6.17)
6 PfAg + PfBg:
(6.18)
‚ ­ 襬 ¯à¨¬¥à¥ á ¡à®á ­¨¥¬ ¤¢ãå ¬®­¥â, ¯®«®¦¨¬ ¢¥à®ïâ­®áâì
ª ¦¤®£® í«¥¬¥­â à­®£® ¨á室 à ¢­®© 1=4. ’®£¤ ¢¥à®ïâ­®áâì ¢ë¯ ¤¥­¨ï ¯® ªà ©­¥© ¬¥à¥ ®¤­®£® ®à« ¡ã¤¥â
Pf®®; ®à; à®g = Pf®®g + Pf®àg + Pfà®g
= 3=4:
ˆ­ ç¥: ¢¥à®ïâ­®áâì ⮣®, çâ® ­¥ ¡ã¤¥â ­¨ ®¤­®£® ®à« , à ¢­ Pfààg = 1=4, ¯®í⮬㠢¥à®ïâ­®áâì ¯®ï¢«¥­¨ï ¯® ¬¥­ì襩 ¬¥à¥ ®¤­®£® ®à« ¥áâì 1 ; 1=4 = 3=4.
?
6.2.1 „¨áªà¥â­®¥ à á¯à¥¤¥«¥­¨¥ ¢¥à®ïâ­®á⥩
 á¯à¥¤¥«¥­¨¥ ¢¥à®ïâ­®á⥩ ­ ª®­¥ç­®¬ ¨«¨ áçñâ­®¬ ¢¥à®ïâ­®áâ­®¬ ¯à®áâà ­á⢥ ­ §ë¢ ¥âáï ¤¨áªà¥â­ë¬ (discrete). „«ï â ª¨å
à á¯à¥¤¥«¥­¨© ¬®¦­® ­ ¯¨á âì
X
PfAg = Pfsg;
s2 A
¤«ï «î¡®£® ᮡëâ¨ï A, ¯®áª®«ìªã ®­® ï¥âáï ®¡ê¥¤¨­¥­¨¥¬ ­¥
¡®«¥¥ 祬 áçñâ­®£® ¬­®¦¥á⢠­¥á®¢¬¥áâ­ëå í«¥¬¥­â à­ëå ᮡë⨩. …᫨ ¬­®¦¥á⢮ S ª®­¥ç­® ¨ ¢á¥ í«¥¬¥­âë ¥£® à ¢­®¢¥à®ïâ­ë, â® ¯®«ãç ¥âáï à ¢­®¬¥à­®¥ à á¯à¥¤¥«¥­¨¥ ¢¥à®ïâ­®á⥩
104
ƒ« ¢ 6 Š®¬¡¨­ â®à¨ª ¨ ¢¥à®ïâ­®áâì
(uniform probability distribution) ­ ª®­¥ç­®¬ ¬­®¦¥á⢥ S . à¨
í⮬ ¢¥à®ïâ­®áâì «î¡®£® ᮡëâ¨ï, ¢ª«îç î饣® ¢ ᥡï k í«¥¬¥­â à­ëå ¨á室®¢ ¨§ jS j, à ¢­ k=jS j. ‚ â ª¨å á«ãç ïå £®¢®àïâ "¢ë¡¥à¥¬ á«ãç ©­® í«¥¬¥­â s 2 S ".
‚ ª ç¥á⢥ ¯à¨¬¥à à áᬮâਬ ¡à®á ­¨¥ ᨬ¬¥âà¨ç­®© ¬®­¥âë
(ipping a fair coin), ¤«ï ª®â®à®© ¢¥à®ïâ­®á⨠®à« ¨ à¥èª¨ ®¤¨­ ª®¢ë ¨ à ¢­ë 1=2. à®á ï ¥ñ n à §, ¬ë ¯à¨å®¤¨¬ ª à ¢­®¬¥à­®¬ã
à á¯à¥¤¥«¥­¨î ­ ¯à®áâà ­á⢥ S = f®; àgn , á®áâ®ï饬 ¨§ 2n í«¥¬¥­â®¢. Š ¦¤®¥ í«¥¬¥­â à­®¥ ᮡë⨥ ¨§ S ¬®¦­® à áᬠâਢ âì
ª ª áâப㠤«¨­ë n í«¥¬¥­â®¢ ¬­®¦¥á⢠f®; àg, ¨ ¢á¥ â ª¨¥ áâப¨
¨¬¥îâ ¢¥à®ïâ­®áâì 1=2n. ‘®¡ë⨥
A = f¢ë¯ «® k ®à«®¢ ¨ n ; k à¥è¥ªg
¥áâì ¯®¤¬­®¦¥á⢮ S ¨ á®á⮨⠨§ jAj = Cnk í«¥¬¥­â®¢, â ª ª ª
áãé¥áâ¢ã¥â Cnk áâப, ᮤ¥à¦ é¨å ஢­® k ®à«®¢. ’¥¬ á ¬ë¬, ¢¥à®ïâ­®áâì ᮡëâ¨ï A à ¢­ PfAg = Cnk =2n.
¥¯à¥à뢭®¥ à ¢­®¬¥à­®¥ à á¯à¥¤¥«¥­¨¥ ¢¥à®ïâ­®á⥩
ã¤¥¬ áç¨â âì í«¥¬¥­â à­ë¬¨ ¨á室 ¬¨ â®çª¨ ­¥ª®â®à®£® ®â१ª [a; b]. Ž¯à¥¤¥«¨¬ ¢¥à®ïâ­®áâì ᮡëâ¨ï [c; d] [a; b] ä®à¬ã«®©
Pf[c; d]g = bd ;; ac :
‚ í⮬ á«ãç ¥, ª ª ¬ë £®¢®à¨«¨, ­ ¤® áç¨â âì ᮡëâ¨ï¬¨ ­¥ ¢á¥
¯®¤¬­®¦¥á⢠®â१ª , ⮫쪮 ­¥ª®â®àë¥, ª®â®àë¥ ­ §ë¢ îâ ¨§¬¥à¨¬ë¬¨. Œë ­¥ ¯à¨¢®¤¨¬ ᮮ⢥âáâ¢ãîé¨å ®¯à¥¤¥«¥­¨©, ®âáë« ï ç¨â â¥«ï ª «î¡®¬ã ã祡­¨ªã ¯® ⥮ਨ ¢¥à®ïâ­®á⥩ ¨«¨ ¯®
⥮ਨ ¬¥àë.
‡ ¬¥â¨¬, çâ® ¢¥à®ïâ­®áâì ª ¦¤®© â®çª¨ à ¢­ 0, ¨ ¯®â®¬ã ¢¥à®ïâ­®áâì ¯®«ã¨­â¥à¢ « (c; d] ¨ ¨­â¥à¢ « (c; d) ¬®£ãâ ¡ëâì ®¯à¥¤¥«¥­ë ⮩ ¦¥ ä®à¬ã«®©.
’ ª®¥ à á¯à¥¤¥«¥­¨¥ ¢¥à®ïâ­®á⥩ ­ §ë¢ îâ ­¥¯à¥àë¢­ë¬ à ¢­®-
¬¥à­ë¬ à á¯à¥¤¥«¥­¨¥¬ (continuous uniform probability distribution).
“á«®¢­ ï ¢¥à®ïâ­®áâì ¨ ­¥§ ¢¨á¨¬®áâì
ˆ­®£¤ ¬ë à ᯮ« £ ¥¬ ç áâ¨ç­®© ¨­ä®à¬ 樥© ® १ã«ìâ â¥
íªá¯¥à¨¬¥­â .  ¯à¨¬¥à, ¯ãáâì ­ ¬ ¨§¢¥áâ­®, çâ® ¢ १ã«ìâ â¥
¡à®á ­¨ï ¤¢ãå ᨬ¬¥âà¨ç­ëå ¬®­¥â ¯® ªà ©­¥© ¬¥à¥ ®¤­ ¨§ ­¨å
¢ë¯ « ®à«®¬. Š ª®¢ ¢¥à®ïâ­®áâì ⮣®, çâ® ®¡¥ ¬®­¥âë ¢ë¯ «¨
®à«®¬? ˆ§¢¥áâ­ ï ­ ¬ ¨­ä®à¬ æ¨ï ¯®§¢®«ï¥â ¨áª«îç¨âì á«ãç ©
¢ë¯ ¤¥­¨ï ¤¢ãå à¥è¥ª. ’ਠ®áâ ¢è¨åáï ¨á室 ¡ã¤ãâ à ¢­®¢¥à®ïâ­ë, ¯®í⮬㠢¥à®ïâ­®áâì ª ¦¤®£® (¢ ⮬ ç¨á«¥ ¨ ¨­â¥à¥áãî饣®
­ á) ¥áâì 1=3.
‚¥à®ïâ­®áâì
105
â ¨¤¥ï ä®à¬ «¨§ã¥âáï ¢ ®¯à¥¤¥«¥­¨¨ ãá«®¢­®© ¢¥à®ïâ­®áâ¨
(conditional probability) ᮡëâ¨ï A ¯à¨ ãá«®¢¨¨ ᮡëâ¨ï B ; ®­ ®¡®§­ ç ¥âáï PfAjBg ¨ ®¯à¥¤¥«ï¥âáï ä®à¬ã«®©
PfAjB g = PfPAfB\ gB g ;
(6.19)
(¬ë ¯à¥¤¯®« £ ¥¬, çâ® PfB g 6= 0). ˆ­âã¨â¨¢­ë© á¬ëá« ¯®­ï⥭:
ᮡë⨥ B ¯à®¨á室¨â ¢ ­¥ª®â®à®© ¤®«¥ íªá¯¥à¨¬¥­â®¢; ¬ë ᬮâਬ, ª ªãî ç áâì á।¨ ­¨å á®áâ ¢«ïîâ â¥, ª®£¤ ¯à®¨§®è«® ¥éñ
¨ ᮡë⨥ A.
„¢ ᮡëâ¨ï ­ §ë¢ îâáï ­¥§ ¢¨á¨¬ë¬¨ (independent), ¥á«¨
PfA \ B g = PfAgPfB g;
‚ á«ãç ¥ PfBg 6= 0 íâ® ãá«®¢¨¥ ¬®¦­® ¯¥à¥¯¨á âì ª ª
PfAjB g = PfAg:
‚ ­ 襬 ¯à¨¬¥à¥ á ¤¢ãªà â­ë¬ ¡à®á ­¨¥¬ ¬®­¥âë ¯®ï¢«¥­¨ï
®à« ¯à¨ ¯¥à¢®¬ ¨ ¢â®à®¬ ¡à®á ­¨¨ ¡ã¤ãâ ­¥§ ¢¨á¨¬ë¬¨, â ª ª ª
ª ¦¤®¥ ᮡë⨥ ¨¬¥¥â ¢¥à®ïâ­®áâì 1=2, ¨å ¯¥à¥á¥ç¥­¨¥ (¤¢ ®à« ) | 1=4. ‚ ⮬ ¦¥ ¯à¨¬¥à¥ ᮡëâ¨ï "¯¥à¢ ï ¬®­¥â ¢ë¯ « ®à«®¬" ¨ "¢ë¯ « ®¤¨­ ®àñ« ¨ ®¤­ à¥èª " â ª¦¥ ­¥§ ¢¨á¨¬ë, å®âï
íâ® áà §ã ¨ ­¥ â ª ïá­®. ® ¢ í⮬ «¥£ª® ã¡¥¤¨âìáï ¯® ®¯à¥¤¥«¥­¨î:
¢¥à®ïâ­®áâì ª ¦¤®£® ᮡëâ¨ï à ¢­ 1=2, ¢¥à®ïâ­®áâì ¨å ¯¥à¥á¥ç¥­¨ï à ¢­ 1=4. € ¢®â ᮡëâ¨ï "¯¥à¢ ï ¬®­¥â ¢ë¯ « ®à«®¬" ¨
"¢ë¯ « å®âì ®¤­ à¥èª " ­¥ ¡ã¤ãâ ­¥§ ¢¨á¨¬ë¬¨.
‘®¡ëâ¨ï "¯¥à¢ ï ¬®­¥â ¢ë¯ « ®à«®¬" ¨ "¢â®à ï ¬®­¥â ¢ë¯ « ®à«®¬" ¯¥à¥áâ ­ãâ ¡ëâì ­¥§ ¢¨á¨¬ë¬¨, ¥á«¨ ¨§¬¥­¨âì à á¯à¥¤¥«¥­¨¥ ¢¥à®ïâ­®á⥩ ¨ áç¨â âì, çâ® ¬®­¥âë ᪫¥¥­ë ¨ ®¤­®¢à¥¬¥­­® ¢ë¯ ¤ îâ «¨¡® ®à«®¬, «¨¡® à¥èª®© (â. ¥. çâ® ª®¬¡¨­ 樨
®® ¨ àà ¨¬¥îâ ¢¥à®ïâ­®áâì 1=2).
‘®¡ëâ¨ï A1; A2; : : :; An ­ §ë¢ îâáï ¯®¯ à­® ­¥§ ¢¨á¨¬ë¬¨
(pairwise independent), ¥á«¨
PfAi \ Aj g = PfAi gPfAj g
¤«ï ¢á¥å 1 6 i < j 6 n.
‘®¡ëâ¨ï A1; A2; ; An ­ §ë¢ îâáï ­¥§ ¢¨á¨¬ë¬¨ ¢ ᮢ®ªã¯­®áâ¨
(mutually independent), ¥á«¨ ¤«ï «î¡®£® ­ ¡®à Ai ; Ai ; : : :; Aik
íâ¨å ᮡë⨩ (§¤¥áì 2 6 k 6 n ¨ 1 6 i1 < i2 < < ik 6 n)
¨¬¥¥â ¬¥áâ® à ¢¥­á⢮
PfAi \ Ai \ : : : \ Aik g = PfAi gPfAi g PfAik g:
â® âॡ®¢ ­¨¥ | ¡®«¥¥ ᨫ쭮¥: ­ ¯à¨¬¥à, ¢ ­ 襬 ¯à¨¬¥à¥ ᮡëâ¨ï "¯¥à¢ ï ¬®­¥â ¢ë¯ « ®à«®¬", "¢â®à ï ¬®­¥â ¢ë¯ « ®à«®¬" ¨ "¤¢¥ ¬®­¥âë ¢ë¯ «¨ ®¤¨­ ª®¢®" ¯®¯ à­® ­¥§ ¢¨á¨¬ë, ­®
­¥ ïîâáï ­¥§ ¢¨á¨¬ë¬¨ ¢ ᮢ®ªã¯­®áâ¨.
1
1
2
1
2
2
106
ƒ« ¢ 6 Š®¬¡¨­ â®à¨ª ¨ ¢¥à®ïâ­®áâì
”®à¬ã«  ©¥á ˆ§ ®¯à¥¤¥«¥­¨ï ãá«®¢­®© ¢¥à®ïâ­®á⨠(6.19) á«¥¤ã¥â, çâ® ¤«ï
¤¢ãå ᮡë⨩ A ¨ B, ¢¥à®ïâ­®á⨠ª®â®àëå ¯®«®¦¨â¥«ì­ë, ¢ë¯®«­¥­® à ¢¥­á⢮
PfA \ B g = PfB gPfAjB g
(6.20)
= PfAgPfB jAg:
‚ëà ¦ ï ®âáî¤ PfAjBg, ¯®«ãç ¥¬ ä®à¬ã«ã
PfAjB g = PfAPgfPBfBg jAg ;
(6.21)
¨§¢¥áâ­ãî ª ª ä®à¬ã«  ©¥á (Bayes's theorem). âã ä®à¬ã«ã
¬®¦­® ¯¥à¥¯¨á âì â ª: ¯®áª®«ìªã B = (B \ A) [ (B \ A), B \ A ¨
B \ A | ­¥á®¢¬¥áâ­ë¥ ᮡëâ¨ï, â®
PfB g = PfB \ Ag + PfB \ Ag
= PfAgPfB jAg + PfAgPfB jAg:
®¤áâ ¢«ïï ¤ ­­®¥ ¢ëà ¦¥­¨¥ ¢ ä®à¬ã«ã (6.21), ¯®«ãç ¥¬ ¤à㣮©
¢ ਠ­â ä®à¬ã«ë  ©¥á :
PfAgPfB jAg
PfAjB g =
:
PfAgPfB jAg + PfAgPfB jAg
”®à¬ã«  ©¥á ¯®¬®£ ¥â ¢ëç¨á«ïâì ãá«®¢­ë¥ ¢¥à®ïâ­®áâ¨.
ãáâì ã ­ á ¥áâì ¤¢¥ ¬®­¥âë: ®¤­ ᨬ¬¥âà¨ç­ ï, ¤àã£ ï ¢á¥£¤ ¢ë¯ ¤ ¥â ®à«®¬. Œë á«ãç ©­ë¬ ®¡à §®¬ ¢ë¡¨à ¥¬ ®¤­ã ¨§ ¤¢ãå
¬®­¥â, ¯®á«¥ 祣® ¥ñ ¤¢ ¦¤ë ¯®¤¡à áë¢ ¥¬. à¥¤¯®«®¦¨¬, çâ® ®¡ à § ¢ë¯ «¨ ®à«ë. Š ª®¢ ¢¥à®ïâ­®áâì ⮣®, çâ® ¡ë« ¢ë¡à ­ ­¥á¨¬¬¥âà¨ç­ ï ¬®­¥â ?
¥è¨¬ íâã § ¤ ç㠯ਠ¯®¬®é¨ ä®à¬ã«ë  ©¥á . ãáâì ᮡë⨥ A | ¢ë¡®à ­¥á¨¬¬¥âà¨ç­®© ¬®­¥âë, ᮡë⨥ B | ¢ë¯ ¤¥­¨¥
¢ë¡à ­­®© ¬®­¥âë ®à« ¬¨ ¤¢ ¦¤ë.  ¬ ­ã¦­® ¢ëç¨á«¨âì PfAjBg.
ˆ¬¥¥¬: PfAg = 1=2, PfBjAg = 1, PfAg = 1=2 ¨ PfBjAg = 1=4,
á«¥¤®¢ ⥫쭮,
1
PfB jAg = (1=2) 1(1+=2)
(1=2) (1=4) = 4=5:
“¯à ¦­¥­¨ï
„®ª ¦¨â¥ ­¥à ¢¥­á⢮ ã«ï (Boole's inequality):
PfA1 [ A2 [ : : : g 6 PfA1 g + PfA2 g + : : :
(6.22)
¤«ï «î¡®© ª®­¥ç­®© ¨«¨ áçñâ­®© ¯®á«¥¤®¢ ⥫쭮á⨠ᮡë⨩
A1 ; A 2 ; : : : .
6.2-1
‚¥à®ïâ­®áâì
107
à®ä¥áá®à ¡à®á ¥â ᨬ¬¥âà¨ç­ãî ¬®­¥âã, áâ㤥­â ¡à®á ¥â ¡à®á ¥â ¤¢¥ ᨬ¬¥âà¨ç­ë¥ ¬®­¥âë. Š ª®¢ ¢¥à®ïâ­®áâì ⮣®,
çâ® ã ¯à®ä¥áá®à ¢ë¯ ¤¥â ¡®«ìè¥ ®à«®¢, 祬 ã áâ㤥­â ? (‚ᥠâà¨
¡à®á ­¨ï ­¥§ ¢¨á¨¬ë.)
6.2-3 Š®«®¤ã ª àâ (á ç¨á« ¬¨ ®â 1 ¤® 10) â áãîâ ¨ ¢ë­¨¬ îâ âà¨
ª àâë. Š ª®¢ ¢¥à®ïâ­®áâì ⮣®, çâ® ç¨á« ­ íâ¨å ª àâ å ¡ã¤ãâ
¨¤â¨ ¢ ¢®§à áâ î饬 ¯®à浪¥?
6.2-4? ˆ¬¥¥âáï ­¥á¨¬¬¥âà¨ç­ ï ¬®­¥â , ¤«ï ª®â®à®© ¢¥à®ïâ­®áâì
¢ë¯ ¤¥­¨ï ®à« ¥áâì ­¥¨§¢¥áâ­®¥ ­ ¬ ç¨á«® p (0 < p < 1). ®ª ¦¨â¥, ª ª á ¥ñ ¯®¬®éìî ¬®¦­® ¨¬¨â¨à®¢ âì ᨬ¬¥âà¨ç­ãî ¬®­¥âã, ᤥ« ¢ ­¥áª®«ìª® ¡à®á ­¨©. (“ª § ­¨¥: ¡à®áì⥠¬®­¥âã ¤¢ ¦¤ë; ¥á«¨ १ã«ìâ âë à §­ë¥, ¤ ©â¥ ®â¢¥â; ¥á«¨ ®¤¨­ ª®¢ë¥, ¯®¢â®àï©â¥ ¨á¯ëâ ­¨¥.)
6.2-5? Š ª ¨¬¨â¨à®¢ âì ¡à®á ­¨¥ ¬®­¥âë á ¢¥à®ïâ­®áâìî ¯®ï¢«¥­¨ï ®à« a=b, ¨¬¥ï ᨬ¬¥âà¨ç­ãî ¬®­¥âã, ª®â®àãî ¬®¦­® ¯®¤¡à áë¢ âì ­¥áª®«ìª® à §? (—¨á« a ¨ b 楫ë¥, 0 < a < b, ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ç¨á« ¡à®á ­¨© ¤®«¦­® ¡ëâì ®£à ­¨ç¥­® ᢥàåã
¯®«¨­®¬®¬ ®â lg b.)
6.2-6 „®ª ¦¨â¥, çâ®
PfAjB g + PfAjB g = 1:
6.2-2
6.2-7
„®ª ¦¨â¥, çâ® ¤«ï «î¡®£® ­ ¡®à ᮡë⨩ A1; A2; : : :; An,
PfA1 \ A2 \ : : : \ An g =
= PfA1g PfA2jA1 g PfA3jA1 \ A2 g PfAn jA1 \ A2 \ \ An;1 g:
6.2-8? à¨¤ã¬ ©â¥ ¬­®¦¥á⢮ ¨§ n ¯®¯ à­® ­¥§ ¢¨á¨¬ëå ᮡë⨩,
¤«ï ª®â®à®£® «î¡®¥ ¯®¤¬­®¦¥á⢮ ¨§ k > 2 ᮡë⨩ ­¥ ¡ã¤¥â ­¥§ ¢¨á¨¬ë¬ ¢ ᮢ®ªã¯­®áâ¨.
6.2-9? ‘®¡ëâ¨ï A ¨ B ïîâáï ãá«®¢­® ­¥§ ¢¨á¨¬ë¬¨ (conditionally
independent) ¯à¨ ãá«®¢¨¨ ᮡëâ¨ï C , ¥á«¨
PfA \ B jC g = PfAjC g PfB jC g:
à¨¤ã¬ ©â¥ ¯à®á⮩ (­® ­¥ âਢ¨ «ì­ë©) ¯à¨¬¥à ¤¢ãå ᮡë⨩,
ª®â®àë¥ ­¥ ïîâáï ­¥§ ¢¨á¨¬ë¬¨, ­® ãá«®¢­® ­¥§ ¢¨á¨¬ë ¯à¨
ãá«®¢¨¨ ­¥ª®â®à®£® âà¥â쥣® ᮡëâ¨ï.
6.2-10? ‚ë ãç áâ¢ã¥â¥ ¢ ¨£à¥, ¢ ª®â®à®© ¯à¨§ áªàëâ § ®¤­®© ¨§
âàñå è¨à¬ (¨ ¢ë¨£à ¥â¥ ¯à¨§, ¥á«¨ ®â£ ¤ ¥â¥, £¤¥). ®á«¥ ⮣® ª ª
¢ë ¢ë¡à «¨ ®¤­ã ¨§ è¨à¬, ¢¥¤ã騩 ¨£àë ®âªàë« ®¤­ã ¨§ ¤¢ãå
108
ƒ« ¢ 6 Š®¬¡¨­ â®à¨ª ¨ ¢¥à®ïâ­®áâì
®áâ ¢è¨åáï è¨à¬, ¨ ®ª § «®áì, çâ® â ¬ ¯à¨§ ­¥â. ‚ íâ®â ¬®¬¥­â
¬®¦­® ¯®¬¥­ïâì ᢮© ¢ë¡®à, 㪠§ ¢ ­ âà¥âìî è¨à¬ã. Š ª ¨§¬¥­ïâáï è ­áë ­ ¢ë¨£àëè, ¥á«¨ ¢ë ᤥ« ¥â¥ íâ®?
6.2-11?  ç «ì­¨ª âîàì¬ë ¢ë¡à « ®¤­®£® ¨§ âàñå § ª«îçñ­­ëå
X , Y ¨ Z , çâ®¡ë ®â¯ãáâ¨âì ¥£® ­ ¢®«î. Žáâ «ì­ë¥ ¤¢®¥ ¡ã¤ãâ
ª §­¥­ë. ‘âà ¦ §­ ¥â, ªâ® ¨§ âà®¨å ¢ë©¤¥â ­ ᢮¡®¤ã, ­® ­¥ ¨¬¥¥â
¯à ¢ á®®¡é âì ­¨ª ª®¬ã ¨§ 㧭¨ª®¢ ¨­ä®à¬ æ¨î ® ¥£® áã¤ì¡¥. ‡ ª«î祭­ë© X ¯à®á¨â áâà ¦ ­ §¢ âì ¥¬ã ¨¬ï ®¤­®£® ¨§ § ª«î祭­ëå Y ¨«¨ Z , ª®â®àë© ¡ã¤¥â ª §­ñ­, ®¡êïá­ïï, çâ® ¥¬ã ¨ â ª ¨§¢¥áâ­®, çâ® ®¤¨­ ¨§ ­¨å â®ç­® ¡ã¤¥â ª §­ñ­, , §­ ç¨â, ®­ ­¥ ¯®«ãç¨â ­¨ª ª®© ¨­ä®à¬ 樨 ® ᢮¥© áã¤ì¡¥. ‘âà ¦ á®®¡é ¥â X ,
çâ® Y ¡ã¤¥â ª §­¥­. ‡ ª«îçñ­­ë© X à ¤ã¥âáï, áç¨â ï, çâ® ¥£®
è ­áë ®áâ âìáï ¢ ¦¨¢ëå ¢®§à®á«¨ ¤® 1=2 (®á¢®¡®¦¤ñ­ ¡ã¤¥â ¨«¨
®­, ¨«¨ Z ). à ¢ «¨ ®­?
6.3 „¨áªà¥â­ë¥ á«ãç ©­ë¥ ¢¥«¨ç¨­ë
„¨áªà¥â­ ï á«ãç ©­ ï ¢¥«¨ç¨­ (discrete random variable) X | íâ®
äã­ªæ¨ï, ®â®¡à ¦ îé ï ª®­¥ç­®¥ ¨«¨ áçñâ­®¥ ¢¥à®ïâ­®áâ­®¥ ¯à®áâà ­á⢮ S ¢ ¬­®¦¥á⢮ ¤¥©á⢨⥫ì­ëå ç¨á¥«. Š ¦¤®¬ã ¢®§¬®¦­®¬ã ¨á室㠨á¯ëâ ­¨ï ®­ áâ ¢¨â ¢ ᮮ⢥âá⢨¥ ¤¥©á⢨⥫쭮¥
ç¨á«®. (’¥¬ á ¬ë¬ ­ ¬­®¦¥á⢥ §­ 祭¨© ä㭪樨 X ¢®§­¨ª ¥â
à á¯à¥¤¥«¥­¨¥ ¢¥à®ïâ­®á⥩.)
‚ ⥮ਨ ¢¥à®ïâ­®á⥩ à áᬠâਢ îâ ¨ á«ãç ©­ë¥ ¢¥«¨ç¨­ë
­ ­¥áçñâ­ëå ¢¥à®ïâ­®áâ­ëå ¯à®áâà ­á⢠å, ­® íâ® á«®¦­¥¥, ¨ ¬ë
®¡®©¤ñ¬áï ¡¥§ ­¨å.
„«ï á«ãç ©­®© ¢¥«¨ç¨­ë X ¨ ¤¥©á⢨⥫쭮£® ç¨á« x ®¯à¥¤¥«ï¥¬ ᮡë⨥ X = x ª ª fs 2 S : X (s) = xg; ¢¥à®ïâ­®áâì í⮣®
ᮡëâ¨ï à ¢­ PfX = xg =
”ã­ªæ¨ï
X
fs2S :X (s)=xg
f (x) = PfX = xg
Pfsg:
­ §ë¢ ¥âáï ä㭪樥© à á¯à¥¤¥«¥­¨ï ¢¥à®ïâ­®á⥩ (probability density
function) á«ãç ©­®© ¢¥«¨ç¨­ë
X . ˆ§ ªá¨®¬ ¢¥à®ïâ­®á⨠᫥¤ã¥â,
çâ® PfX = xg > 0 ¨ Px PfX = xg = 1.
„«ï ¯à¨¬¥à à áᬮâਬ ¡à®á ­¨¥ ¯ àë ®¡ëç­ëå è¥áâ¨£à ­­ëå ª®á⥩. ˆ¬¥¥âáï 36 í«¥¬¥­â à­ëå ᮡë⨩, á®áâ ¢«ïîé¨å ¢¥à®ïâ­®áâ­®¥ ¯à®áâà ­á⢮. ã¤¥¬ ¯à¥¤¯®« £ âì, çâ® ¢á¥ ®­¨ à ¢­®¢¥à®ïâ­ë: Pfsg = 1=36. Ž¯à¥¤¥«¨¬ á«ãç ©­ãî ¢¥«¨ç¨­ã X , ª ª
¬ ªá¨¬ «ì­®¥ ç¨á«®, ¢ë¯ ¢è¥¥ ­ ®¤­®© ¨§ ¤¢ãå ª®á⥩. ’®£¤ „¨áªà¥â­ë¥ á«ãç ©­ë¥ ¢¥«¨ç¨­ë
109
PfX = 3g = 5=36, â ª ª ª X ¯à¨­¨¬ ¥â §­ 祭¨¥ 3 ¯à¨ 5 í«¥¬¥­â à­ëå ¨á室 å ( ¨¬¥­­®, (1; 3), (2; 3), (3; 3), (3; 2) ¨ (3; 1)).
Š ª ¯à ¢¨«®, ­ ®¤­®¬ ¨ ⮬ ¦¥ ¢¥à®ïâ­®áâ­®¬ ¯à®áâà ­á⢥
à áᬠâਢ îâ ­¥áª®«ìª® á«ãç ©­ëå ¢¥«¨ç¨­. …᫨ X ¨ Y | á«ãç ©­ë¥ ¢¥«¨ç¨­ë, â® äã­ªæ¨ï
f (x; y) = PfX = x; Y = y g
­ §ë¢ ¥âáï ä㭪樥© ᮢ¬¥áâ­®£® à á¯à¥¤¥«¥­¨ï ¢¥à®ïâ­®á⥩ (joint
probability density function) ¢¥«¨ç¨­ X ¨ Y . „«ï 䨪á¨à®¢ ­­®£®
§­ 祭¨ï y
X
PfY = y g = PfX = x; Y = y g:
x
€­ «®£¨ç­®, ¤«ï 䨪á¨à®¢ ­­®£® §­ 祭¨ï x,
PfX = xg =
X
y
PfX = x; Y = y g:
ˆá¯®«ì§ãï ®¯à¥¤¥«¥­¨¥ ãá«®¢­®© ¢¥à®ïâ­®á⨠(6.19), ¬®¦­® § ¯¨á âì
PfX = xjY = y g = PfXP=fYx;=Yy g= y g :
„¢¥ á«ãç ©­ë¥ ¢¥«¨ç¨­ë ­ §ë¢ îâáï ­¥§ ¢¨á¨¬ë¬¨ (independent),
¥á«¨ ᮡëâ¨ï X = x ¨ Y = y ïîâáï ­¥§ ¢¨á¨¬ë¬¨ ¤«ï «î¡ëå
§­ 祭¨© x ¨ y, ¤à㣨¬¨ á«®¢ ¬¨, ¥á«¨ ¥á«¨ PfX = x; Y = yg =
PfX = xgPfY = y g ¤«ï ¢á¥å x ¨ y .
‘ª« ¤ë¢ ï ¨ 㬭®¦ ï á«ãç ©­ë¥ ¢¥«¨ç¨­ë, ®¯à¥¤¥«ñ­­ë¥ ­ ®¤­®¬ ¨ ⮬ ¦¥ ¢¥à®ïâ­®áâ­®¬ ¯à®áâà ­á⢥, ¬ë ¯®«ãç ¥¬ ­®¢ë¥ á«ãç ©­ë¥ ¢¥«¨ç¨­ë, ®¯à¥¤¥«ñ­­ë¥ ­ ⮬ ¦¥ ¯à®áâà ­á⢥.
Œ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ á«ãç ©­®© ¢¥«¨ç¨­ë
à®á⥩è ï ¨ ­ ¨¡®«¥¥ ç áâ® ¨á¯®«ì§ã¥¬ ï å à ªâ¥à¨á⨪ á«ãç ©­®© ¢¥«¨ç¨­ë | íâ® ¥ñ á।­¥¥ (mean), ­ §ë¢ ¥¬®¥ â ª¦¥ ¬ ⥬ â¨ç¥áª¨¬ ®¦¨¤ ­¨¥¬ (expected value, expectation). „«ï ¤¨áªà¥â­®©
á«ãç ©­®© ¢¥«¨ç¨­ë X ®­® ®¯à¥¤¥«ï¥âáï ä®à¬ã«®©
M[X ] =
X
x
xPfX = xg;
(6.23)
¨ áãé¥áâ¢ã¥â, ª®£¤ íâ®â àï¤ ¨¬¥¥â ª®­¥ç­®¥ ç¨á«® ç«¥­®¢ ¨«¨ ¡á®«îâ­® á室¨âáï. ˆ­®£¤ ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ®¡®§­ ç ¥âáï
X ¨«¨ ¯à®áâ® , ¥á«¨ ¨§ ª®­â¥ªáâ ïá­®, ® ª ª®© á«ãç ©­®© ¢¥«¨ç¨­¥ ¨¤¥â à¥çì.
ãáâì ¢ ¨£à¥ ¤¢ ¦¤ë ¡à®á îâ ᨬ¬¥âà¨ç­ãî ¬®­¥âã; ¢ë ¯®«ãç ¥â¥ 3 àã¡«ï § ª ¦¤®£® ¢ë¯ ¢è¥£® ®à« ¨ ®â¤ ñ⥠2 àã¡«ï § 110
ƒ« ¢ 6 Š®¬¡¨­ â®à¨ª ¨ ¢¥à®ïâ­®áâì
ª ¦¤ãî ¢ë¯ ¢èãî à¥èªã. ‚먣àëè X ¡ã¤¥â á«ãç ©­®© ¢¥«¨ç¨­®©, ¨ ¥ñ ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¡ã¤¥â à ¢­®
M[X ] = 6 Pf2 ®à« g + 1 Pf1 ®àñ« ¨ 1 à¥èª g ; 4 Pf2 à¥èª¨g
= 6(1=4) + 1(1=2) ; 4(1=4)
= 1:
Œ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ á㬬ë á«ãç ©­ëå ¢¥«¨ç¨­ à ¢­®
á㬬¥ ¨å ®¦¨¤ ­¨©:
M[X + Y ] = M[X ] + M[Y ];
(6.24)
¥á«¨ M[X ] ¨ M[Y ] ®¯à¥¤¥«¥­ë. â® ¯à ¢¨«® ¬®¦­® à á¯à®áâà ­¨âì
­ «î¡ë¥ ª®­¥ç­ë¥ ¨ ¡á®«îâ­® á室ï騥áï ¡¥áª®­¥ç­ë¥ á㬬ë.
ãáâì X | á«ãç ©­ ï ¢¥«¨ç¨­ , g(x) | ¯à®¨§¢®«ì­ ï äã­ªæ¨ï.
’®£¤ ¬®¦­® à áᬮâà¥âì á«ãç ©­ãî ¢¥«¨ç¨­ã g(X ) (­ ⮬ ¦¥
¢¥à®ïâ­®áâ­®¬ ¯à®áâà ­á⢥). …ñ ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ (¥á«¨
®­® ®¯à¥¤¥«¥­®) ¬®¦­® ­ ©â¨ ¯® ä®à¬ã«¥
M[g (X )] =
X
x
g (x)PfX = xg:
„«ï ä㭪樨 g(x) = ax, £¤¥ a | ­¥ª®â®à ï ª®­áâ ­â , ¨¬¥¥¬
M[aX ] = aM[X ]:
(6.25)
„¢ ¯®á«¥¤­¨å ᢮©á⢠¬®¦­® ᪮¬¡¨­¨à®¢ âì ¢ ®¤­®© ä®à¬ã«¥
(᢮©á⢮ «¨­¥©­®áâ¨): ¤«ï «î¡ëå ¤¢ãå á«ãç ©­ëå ¢¥«¨ç¨­ X ¨ Y
¨ «î¡®© ª®­áâ ­âë a
M[aX + Y ] = aM[X ] + M[Y ]:
(6.26)
…᫨ ¤¢¥ á«ãç ©­ë¥ ¢¥«¨ç¨­ë X ¨ Y ­¥§ ¢¨á¨¬ë ¨ ¨å ¬ ⥬ â¨ç¥áª¨¥ ®¦¨¤ ­¨ï ®¯à¥¤¥«¥­ë, â®
M[XY ] =
=
XX
x
y
x
y
XX
X
=(
x
xy PfX = x; Y = y g
xy PfX = xgPfY = yg
X
xPfX = xg)(
= M[X ]M[Y ]:
y
y PfY = y g)
®«¥¥ ®¡é®, ¥á«¨ ¨¬¥¥âáï n ­¥§ ¢¨á¨¬ëå ¢ ᮢ®ªã¯­®á⨠á«ãç ©­ëå
¢¥«¨ç¨­ X1; X2; : : :; Xn, ¨¬¥îé¨å ¬ ⥬ â¨ç¥áª¨¥ ®¦¨¤ ­¨ï, â®
M[X1X2 Xn ] = M[X1]M[X2] M[Xn ]:
(6.27)
„¨áªà¥â­ë¥ á«ãç ©­ë¥ ¢¥«¨ç¨­ë
111
…᫨ á«ãç ©­ ï ¢¥«¨ç¨­ X ¬®¦¥â ¯à¨­¨¬ âì ⮫쪮 ­ âãà «ì­ë¥ §­ 祭¨ï (0; 1; 2; : : : ), â® ¨¬¥¥âáï ªà ᨢ ï ä®à¬ã« ¤«ï ¥ñ ¬ ⥬ â¨ç¥áª®£® ®¦¨¤ ­¨ï:
M[X ] =
=
=
1
X
i=0
1
X
i=0
1
X
i=1
iPfX = ig
i(PfX > ig ; PfX > i + 1g)
PfX > ig:
(6.28)
‚ á ¬®¬ ¤¥«¥, ª ¦¤ë© ç«¥­ PfX > ig ¯à¨áãâáâ¢ã¥â ¢ á㬬¥ i à §
á® §­ ª®¬ ¯«îá ¨ i ; 1 à § á® §­ ª®¬ ¬¨­ãá (¨áª«î祭¨¥ á®áâ ¢«ï¥â
ç«¥­ PfX > 0g, ¢®¢á¥ ®âáãâáâ¢ãî騩 ¢ á㬬¥).
„¨á¯¥àá¨ï ¨ áâ ­¤ àâ­®¥ ®âª«®­¥­¨¥
„¨á¯¥àá¨ï (variance) á«ãç ©­®© ¢¥«¨ç¨­ë X á ¬ ⥬ â¨ç¥áª¨¬
®¦¨¤ ­¨¥¬ M[X ] ®¯à¥¤¥«ï¥âáï ª ª
D[X ] = M[(X ; M[X ])2]
= M[X 2 ; 2X M[X ] + M2[X ]]
= M[X 2] ; 2M[X M[X ]] + M2[X ]
= M[X 2] ; 2M2[X ] + M2[X ]
= M[X 2] ; M2[X ]:
(6.29)
¥à¥å®¤ë M[M2[X ]] = M2[X ] ¨ M[X M[X ]] = M2[X ] § ª®­­ë, â ª ª ª
M[X ] | íâ® ç¨á«® ( ­¥ á«ãç ©­ ï ¢¥«¨ç¨­ ) ¨ ¬®¦­® á®á« âìáï
­ (6.25), ¯®« £ ï a = M[X ]. ”®à¬ã«ã (6.29) ¬®¦­® ¯¥à¥¯¨á âì â ª:
M[X 2] = D[X ] + M2 [X ]
(6.30)
à¨ 㢥«¨ç¥­¨¨ á«ãç ©­®© ¢¥«¨ç¨­ë ¢ a à § ¥ñ ¤¨á¯¥àá¨ï à áâñâ
¢ a2 à §:
D[aX ] = a2D[X ]:
…᫨ X ¨ Y ­¥§ ¢¨á¨¬ë, â®
D[X + Y ] = D[X ] + D[Y ]:
®«¥¥ ®¡é®, ¤¨á¯¥àá¨ï á㬬ë n ¯®¯ à­® ­¥§ ¢¨á¨¬ëå á«ãç ©­ëå
¢¥«¨ç¨­ X1; : : :; Xn à ¢­ á㬬¥ ¨å ¤¨á¯¥àᨩ:
D
" n
X
i=1
#
Xi =
n
X
i=1
D[Xi]:
(6.31)
112
ƒ« ¢ 6 Š®¬¡¨­ â®à¨ª ¨ ¢¥à®ïâ­®áâì
‘â ­¤ àâ­ë¬ ®âª«®­¥­¨¥¬ (standard deviation) á«ãç ©­®© ¢¥«¨ç¨­ë X ­ §ë¢ ¥âáï ª¢ ¤à â­ë© ª®à¥­ì ¨§ ¥ñ ¤¨á¯¥àᨨ. — áâ®
áâ ­¤ àâ­®¥ ®âª«®­¥­¨¥ á«ãç ©­®© ¢¥«¨ç¨­ë ®¡®§­ ç ¥âáï X ¨«¨
¯à®áâ® , ¥á«¨ ¨§ ª®­â¥ªáâ ïá­®, ® ª ª®© á«ãç ©­®© ¢¥«¨ç¨­¥ ¨¤¥â
à¥çì. ‚ í⮩ § ¯¨á¨ ¤¨á¯¥àá¨ï ®¡®§­ ç ¥âáï 2.
“¯à ¦­¥­¨ï
®¤¡à áë¢ îâáï ¤¢¥ ®¡ëç­ë¥ è¥áâ¨£à ­­ë¥ ª®áâ¨. —¥¬ã
à ¢­® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ áã¬¬ë ¢ë¯ ¢è¨å ç¨á¥«? —¥¬ã
à ¢­® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¬ ªá¨¬ã¬ ¨§ ¤¢ãå ¢ë¯ ¢è¨å ç¨á¥«?
6.3-2 ‚ ¬ áᨢ¥ A[1 : :n] ¨¬¥¥âáï n à ᯮ«®¦¥­­ëå ¢ á«ãç ©­®¬
¯®à浪¥ à §«¨ç­ëå ç¨á¥«; ¢á¥ ¢®§¬®¦­ë¥ à ᯮ«®¦¥­¨ï ç¨á¥« à ¢­®¢¥à®ïâ­ë. —¥¬ã à ¢­® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ­®¬¥à ¬¥áâ ,
­ ª®â®à®¬ ­ 室¨âáï ¬ ªá¨¬ «ì­ë© í«¥¬¥­â? ®¬¥à ¬¥áâ , ­ ª®â®à®¬ ­ 室¨âáï ¬¨­¨¬ «ì­ë© í«¥¬¥­â?
6.3-3 ‚ ª®à®¡®çª¥ «¥¦ â âਠ¨£à «ì­ë¥ ª®áâ¨. ˆ£à®ª áâ ¢¨â ¤®«« à ­ ®¤­® ¨§ ç¨á¥« ®â 1 ¤® 6. Š®à®¡®çª ¢áâàï娢 ¥âáï ¨ ®âªàë¢ ¥âáï. …᫨ ­ §¢ ­­®¥ ¨£à®ª®¬ ç¨á«® ­¥ ¢ë¯ «® ¢®¢á¥, â® ®­
¯à®¨£àë¢ ¥â ᢮© ¤®«« à. ‚ ¯à®â¨¢­®¬ á«ãç ¥ ®­ á®åà ­ï¥â ¥£® ¨
¯®«ãç ¥â ¤®¯®«­¨â¥«ì­® á⮫쪮 ¤®«« ஢, ᪮«ìª® ¢ë¯ «® ª®á⥩
á ­ §¢ ­­ë¬ ¨¬ ç¨á«®¬. ‘ª®«ìª® ¢ á।­¥¬ ¢ë¨£àë¢ ¥â ¨£à®ª ¢
®¤­®© ¯ à⨨?
6.3-4? ãáâì X ¨ Y | ­¥§ ¢¨á¨¬ë¥ á«ãç ©­ë¥ ¢¥«¨ç¨­ë. ®ª ¦¨â¥, çâ® f (X ) ¨ g(Y ) â ª¦¥ ­¥§ ¢¨á¨¬ë ¤«ï «î¡ëå ä㭪権 f
¨ g.
6.3-5? ãáâì X | ­¥®âà¨æ â¥«ì­ ï á«ãç ©­ ï ¢¥«¨ç¨­ á ¬ ⥬ â¨ç¥áª¨¬ ®¦¨¤ ­¨¥¬ M[X ]. „®ª ¦¨â¥ ­¥à ¢¥­á⢮ Œ મ¢ 6.3-1
(Markov's inequality)
PfX > tg 6 M[X ]=t
(6.32)
¤«ï ¢á¥å t > 0. [â® ­¥à ¢¥­á⢮ ­ §ë¢ îâ â ª¦¥ ­¥à ¢¥­á⢮¬ —¥¡ëèñ¢ .]
6.3-6? ãáâì S | ¢¥à®ïâ­®áâ­®¥ ¯à®áâà ­á⢮, ­ ª®â®à®¬ ®¯à¥¤¥«¥­ë á«ãç ©­ë¥ ¢¥«¨ç¨­ë X ¨ X 0, ¯à¨çñ¬ X (s) > X 0(s) ¤«ï ¢á¥å
s 2 S . „®ª ¦¨â¥, çâ® ¤«ï «î¡®£® ¤¥©á⢨⥫쭮£® ç¨á« t,
PfX > tg > PfX 0 > tg:
—â® ¡®«ìè¥: ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ª¢ ¤à â á«ãç ©­®©
¢¥«¨ç¨­ë ¨«¨ ª¢ ¤à â ¥ñ ¬ ⥬ â¨ç¥áª®£® ®¦¨¤ ­¨ï?
6.3-7
ƒ¥®¬¥âà¨ç¥áª®¥ ¨ ¡¨­®¬¨ «ì­®¥ à á¯à¥¤¥«¥­¨ï
113
®ª ¦¨â¥, çâ® ¤«ï á«ãç ©­®© ¢¥«¨ç¨­ë, ¯à¨­¨¬ î饩
⮫쪮 §­ 祭¨ï 0 ¨ 1, ¢ë¯®«­¥­® à ¢¥­á⢮ D[X ] = M[X ]M[1 ; X ].
6.3-9 ‚뢥¤¨â¥ ¨§ ®¯à¥¤¥«¥­¨ï ¤¨á¯¥àᨨ (6.29), çâ® D[aX ] =
a2 D[X ].
6.3-8
6.4 ƒ¥®¬¥âà¨ç¥áª®¥ ¨ ¡¨­®¬¨ «ì­®¥ à á¯à¥¤¥«¥­¨ï
à®á ­¨¥ ᨬ¬¥âà¨ç­®© ¬®­¥âë | ç áâ­ë© á«ãç © ¨á¯ëâ ­¨© ¯®
á奬¥ ¥à­ã««¨ (Bernouilli trials) ¢ ª®â®à®© à áᬠâਢ ¥âáï n ­¥§ ¢¨á¨¬ëå ¢ ᮢ®ªã¯­®á⨠¨á¯ëâ ­¨©, ª ¦¤®¥ ¨§ ª®â®àëå ¨¬¥¥â
¤¢ ¢®§¬®¦­ëå ¨á室 : ãᯥå (success), ¯à®¨á室ï騩 á ¢¥à®ïâ­®áâìî p, ¨ ­¥ã¤ çã (failure), ¨¬¥îéãî ¢¥à®ïâ­®áâì 1 ; p. „¢ ¢ ¦­ëå
à á¯à¥¤¥«¥­¨ï ¢¥à®ïâ­®á⥩ | £¥®¬¥âà¨ç¥áª®¥ ¨ ¡¨­®¬¨ «ì­®¥ |
á¢ï§ ­ë á® á奬®© ¥à­ã««¨.
ƒ¥®¬¥âà¨ç¥áª®¥ à á¯à¥¤¥«¥­¨¥
 áᬮâਬ á¥à¨î ¨á¯ëâ ­¨© ¥à­ã««¨, ¢ ª ¦¤®¬ ¨§ ª®â®àëå
ãá¯¥å ¨¬¥¥â ¢¥à®ïâ­®áâì p ( ­¥ã¤ ç ¨¬¥¥â ¢¥à®ïâ­®áâì q = 1 ;
p). Š ª®¥ ¨á¯ëâ ­¨¥ ¡ã¤¥â ¯¥à¢ë¬ ãᯥè­ë¬? ãáâì á«ãç ©­ ï
¢¥«¨ç¨­ X | ¥£® ­®¬¥à; íâ ¢¥«¨ç¨­ ¯à¨­¨¬ ¥â §­ 祭¨ï 1; 2; : : : ,
¯à¨çñ¬
PfX = kg = q k;1 p
(6.33)
(¯¥à¢ë© ãá¯¥å ¡ã¤¥â ¨¬¥âì ­®¬¥à k, ¥á«¨ k ; 1 ¨á¯ëâ ­¨© ¤® ­¥£®
¡ë«¨ ­¥ã¤ ç­ë¬¨, k-¥ ®ª § «®áì 㤠ç­ë¬).  á¯à¥¤¥«¥­¨¥ ¢¥à®ïâ­®á⥩, § ¤ ­­®¥ ä®à¬ã«®© (6.33), ­ §ë¢ ¥âáï £¥®¬¥âà¨ç¥áª¨¬ à á¯à¥¤¥«¥­¨¥¬ (geometric distribution). Ž­® ¯®ª § ­® ­ à¨á. 6.1.
à¥¤¯®« £ ï, çâ® p < 1, ­ ©¤ñ¬ ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ £¥®¬¥âà¨ç¥áª®£® à á¯à¥¤¥«¥­¨ï, ¨á¯®«ì§ãï ä®à¬ã«ã (3.6):
M[X ] =
1
X
k=1
1
X
kqk;1 p = pq kq k = pq (1 ;q q)2 = 1=p:
k=0
(6.34)
„à㣨¬¨ á«®¢ ¬¨, ­ã¦­® ¢ á।­¥¬ 1=p à § ¯à®¢¥á⨠¨á¯ëâ ­¨¥,
çâ®¡ë ¤®¡¨âìáï ãᯥå , çâ® ¥áâ¥á⢥­­® ®¦¨¤ âì, ¯®áª®«ìªã ¢¥à®ïâ­®áâì ãᯥå à ¢­ p. „¨á¯¥àá¨î ¬®¦­® ¢ëç¨á«¨âì ­ «®£¨ç­ë¬
®¡à §®¬; ¯®«ãç¨âáï, çâ®
D[X ] = q=p2 :
(6.35)
à¨¬¥à: ¡ã¤¥¬ ¡à®á âì ¯ àã ª®á⥩, ¯®ª ¢ á㬬¥ ­¥ ¢ë¯ ¤¥â ¨«¨
á¥¬ì ¨«¨ ®¤¨­­ ¤æ âì. „«ï ®¤­®£® íªá¯¥à¨¬¥­â ¥áâì 36 ¢®§¬®¦­ëå
114
ƒ« ¢ 6 Š®¬¡¨­ â®à¨ª ¨ ¢¥à®ïâ­®áâì
¨áã­®ª 6.1 ƒ¥®¬¥âà¨ç¥áª®¥ à á¯à¥¤¥«¥­¨¥ á ¢¥à®ïâ­®áâìî ãᯥå p = 1=3 ¨
¢¥à®ïâ­®áâìî ­¥ã¤ ç¨ q = 1 ; p. Œ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ à ¢­® 1=p = 3.
¨á室®¢, ¢ 6 ¨§ ­¨å ¯®«ãç ¥âáï á¥¬ì ¨ ¢ 2 ¯®«ãç ¥âáï ®¤¨­­ ¤æ âì.
®í⮬㠢¥à®ïâ­®áâì ãᯥå p à ¢­ 8=36 = 2=9, ¨ ­ ¬ ¢ á।­¥¬
¯à¨¤ñâáï 1=p = 9=2 = 4;5 à § ¡à®á¨âì ª®áâ¨, çâ®¡ë ¢ë¯ «® ᥬì
¨«¨ ®¤¨­­ ¤æ âì.
¨­®¬¨ «ì­®¥ à á¯à¥¤¥«¥­¨¥
 áᬮâਬ n ¨á¯ëâ ­¨© ¯® á奬¥ ¥à­ã««¨ á ¢¥à®ïâ­®áâìî
ãᯥå p ¨ ¢¥à®ïâ­®áâìî ­¥ã¤ ç¨ q = 1 ; p. ãáâì á«ãç ©­ ï ¢¥«¨ç¨­ X | ª®«¨ç¥á⢮ ãᯥ客 ¢ n ¨á¯ëâ ­¨ïå. …ñ §­ 祭¨¥ ¬®¦¥â
¡ëâì à ¢­® 0; 1; : : :; n, ¨
PfX = kg = Cnk pk (1 ; p)n;k ;
(6.36)
¤«ï «î¡®£® k = 0; 1; : : :; n â ª ª ª ¨¬¥¥âáï Cnk ᯮᮡ®¢ ¢ë¡à âì ¨§
n ¨á¯ëâ ­¨© k 㤠ç­ëå, ¨ ¢¥à®ïâ­®áâì ª ¦¤®£® â ª®£® á«ãç ï ¡ã¤¥â pk qn;k .  á¯à¥¤¥«¥­¨¥ (6.36) ­ §ë¢ îâ ¡¨­®¬¨ «ì­ë¬ (binomial
distribution). „«ï ¡¨­®¬¨ «ì­ëå à á¯à¥¤¥«¥­¨© ¬ë ¨á¯®«ì§ã¥¬ ®¡®§­ 祭¨¥
b(k; n; p) = Cnk pk (1 ; p)n;k :
(6.37)
à¨¬¥à ¡¨­®¬¨ «ì­®£® à á¯à¥¤¥«¥­¨ï ¯®ª § ­ ­ à¨áã­ª¥ 6.2.
 §¢ ­¨¥ "¡¨­®¬¨ «ì­®¥" á¢ï§ ­® á ⥬, çâ® ¯à ¢ ï ç áâì ä®à-
ƒ¥®¬¥âà¨ç¥áª®¥ ¨ ¡¨­®¬¨ «ì­®¥ à á¯à¥¤¥«¥­¨ï
115
¨áã­®ª 6.2 ¨­®¬¨ «ì­®¥ à á¯à¥¤¥«¥­¨¥ b(k; 15; 1=3), ¯®à®¦¤ ¥¬®¥ n = 15 ¨á¯ëâ ­¨ï¬¨ ¯® á奬¥ ¥à­ã««¨, ª ¦¤®¥ ¨§ ª®â®àëå ¨¬¥¥â ¢¥à®ïâ­®áâì ãᯥå p = 1=3. Œ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ à ¢­® np = 5.
¬ã«ë (6.37) | íâ® k-© ç«¥­ ¡¨­®¬ ìîâ®­ (p + q)n. ‚ᯮ¬¨­ ï,
çâ® p + q = 1, ¯®«ãç ¥¬
n
X
k=0
b(k; n; p) = 1;
(6.38)
ª ª ¨ ¤®«¦­® ¡ëâì ( ªá¨®¬ 2).
Œ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¤«ï á«ãç ©­®© ¢¥«¨ç¨­ë, ¨¬¥î饩
¡¨­®¬¨ «ì­®¥ à á¯à¥¤¥«¥­¨¥, ¬®¦­® ¢ëç¨á«¨âì á ¯®¬®éìî (6.14)
¨ (6.38). ãáâì X | á«ãç ©­ ï ¢¥«¨ç¨­ , ¨¬¥îé ï ¡¨­®¬¨ «ì­®¥
à á¯à¥¤¥«¥­¨¥ b(k; n; p). ®«®¦¨¬ q = 1 ; p. ® ®¯à¥¤¥«¥­¨î ¬ ⥬ â¨ç¥áª®£® ®¦¨¤ ­¨ï, ¨¬¥¥¬
M[X ] =
=
n
X
k=0
n
X
k=1
= np
= np
= np
kb(k; n; p)
kCnk pk q n;k
n
X
k=1
n;1
X
k=0
nX
;1
k=0
= np:
Cnk;;11pk;1q n;k
Cnk;1pk q(n;1);k
b(k; n ; 1; p)
(6.39)
116
ƒ« ¢ 6 Š®¬¡¨­ â®à¨ª ¨ ¢¥à®ïâ­®áâì
’®â ¦¥ á ¬ë© à¥§ã«ìâ â ¯®ç⨠¡¥§ ¢ëç¨á«¥­¨© ¬®¦­® ¯®«ãç¨âì
â ª: ¯ãáâì Xi | ª®«¨ç¥á⢮ ãᯥ客 ¢ i-¬ ¨á¯ëâ ­¨¨ (ª®â®à®¥
à ¢­® 0 á ¢¥à®ïâ­®áâìî q ¨ à ¢­® 1 á ¢¥à®ïâ­®áâìî p). ’®£¤ M[Xi] = p 1 + q 0 = p. Žáâ ñâáï § ¬¥â¨âì, çâ® X = X1 + : : : + Xn ,
¨ ¯®â®¬ã ¯® ᢮©áâ¢ã «¨­¥©­®á⨠(6.26)
M[X ] = M
"
n
X
i=1
#
Xi =
n
X
i=1
M[Xi] =
n
X
i=1
p = np:
®¤®¡­ë¬ ®¡à §®¬ ¬®¦­® ¢ëç¨á«¨âì ¨ ¤¨á¯¥àá¨î. ˆ§ (6.29) á«¥¤ã¥â, çâ® D[Xi] = M[Xi2] ; M2[Xi]. ®áª®«ìªã Xi ¯à¨­¨¬ ¥â «¨èì
§­ 祭¨ï 0 ¨ 1, â® M[Xi2] = M[Xi] = p, ¨, §­ ç¨â,
D[Xi] = p ; p2 = pq:
(6.40)
’¥¯¥àì ¢®á¯®«ì§ã¥¬áï ­¥§ ¢¨á¨¬®áâìî ¨á¯ëâ ­¨© ¨ ä®à¬ã«®©
(6.31):
D[X ] = D
"
n
X
i=1
#
Xi =
n
X
i=1
D[Xi] =
n
X
i=1
pq = npq:
(6.41)
 à¨áã­ª¥ 6.2 ¢¨¤­®, çâ® b(k; n; p) ª ª äã­ªæ¨ï ®â k á­ ç « 㢥«¨ç¨¢ ¥âáï, ¯®ª k ­¥ ¤®á⨣­¥â §­ 祭¨ï np, § ⥬ 㬥­ìè ¥âáï.
â® ¬®¦­® ¯à®¢¥à¨âì, ¢ëç¨á«¨¢ ®â­®è¥­¨¥ ¤¢ãå ¯®á«¥¤®¢ ⥫ì­ëå
ç«¥­®¢:
b(k; n; p) = Cnk pk qn;k
b(k ; 1; n; p) Cnk;1pk;1 qn;k+1
1)!(n ; k + 1)!p
= n!(k ;
k!(n ; k)!n!q
k + 1)p
= (n ; kq
(6.42)
1)p ; k :
= 1 + (n + kq
â® ®â­®è¥­¨¥ ¡®«ìè¥ 1, ª®£¤ (n + 1)p ; k ¯®«®¦¨â¥«ì­®, â ª
çâ® b(k; n; p) > b(k ; 1; n; p) ¯à¨ k < (n + 1)p (äã­ªæ¨ï à áâñâ), ¨
b(k; n; p) < b(k ; 1; n; p) ¯à¨ k > (n + 1)p (äã­ªæ¨ï ã¡ë¢ ¥â). …᫨
ç¨á«® (n + 1)p | 楫®¥, â® äã­ªæ¨ï ¨¬¥¥â ¤¢®©­®© ¬ ªá¨¬ã¬: ¢
â®çª å (n +1)p ¨ (n +1)p ; 1 = np ; q. ‚ ¯à®â¨¢­®¬ á«ãç ¥ ¬ ªá¨¬ã¬
®¤¨­, ¨ ¤®á⨣ ¥âáï ®­ ¢ 楫®© â®çª¥ k, «¥¦ 饩 ¢ ¤¨ ¯ §®­¥ np ;
q < k < (n + 1)p.
‘«¥¤ãîé ï «¥¬¬ ¤ ñâ ¢¥àå­îî ®æ¥­ªã ¤«ï ¡¨­®¬¨ «ì­®£® à á¯à¥¤¥«¥­¨ï.
ƒ¥®¬¥âà¨ç¥áª®¥ ¨ ¡¨­®¬¨ «ì­®¥ à á¯à¥¤¥«¥­¨ï
117
‹¥¬¬ 6.1. ãáâì n > 0, 0 < p < 1, q = 1 ; p, 0 6 k 6 n. ’®£¤ k nq n;k
np
b(k; n; p) 6 k
:
n;k
„®ª § ⥫ìá⢮. ‘®£« á­® ­¥à ¢¥­áâ¢ã (6.10), ¨¬¥¥¬
b(k; n; p) = Cnk pk qn;k
n;k
k pk qn;k
6 nk n ;n k
n;k
k np
nq
:
= k
n;k
“¯à ¦­¥­¨ï
à®¢¥àì⥠ªá¨®¬ã 2 ¤«ï £¥®¬¥âà¨ç¥áª®£® à á¯à¥¤¥«¥­¨ï.
6.4-2 ‘ª®«ìª® à § ¢ á।­¥¬ ­ã¦­® ¡à®á âì 6 ᨬ¬¥âà¨ç­ëå ¬®­¥â ¤® ¢ë¯ ¤¥­¨ï 3 ®à«®¢ ¨ 3 à¥è¥ª (¢ ®¤­®¬ ¨á¯ëâ ­¨¨)?
6.4-3 ®ª ¦¨â¥, çâ® b(k; n; p) = b(n ; k; n; q ), £¤¥ q = 1 ; p.
6.4-4 ®ª ¦¨â¥, çâ® ¬ ªá¨¬ã¬
¡¨­®¬¨ «ì­®£® à á¯à¥¤¥«¥­¨ï
p
b(k; n; p) ¯à¨¬¥à­® à ¢¥­ 1= 2npq, £¤¥ q = 1 ; p.
6.4-5? ®ª ¦¨â¥, çâ® ¢¥à®ïâ­®áâì ­¥ ¯®«ãç¨âì ­¨ ®¤­®£® ãá¯¥å ¢ n ­¥§ ¢¨á¨¬ëå ¨á¯ëâ ­¨ïå á ¢¥à®ïâ­®áâìî ãᯥå 1=n ¯à¨¬¥à­®
à ¢­ 1=e. ‡ ⥬ ¯®ª ¦¨â¥, çâ® ¢¥à®ïâ­®áâì ¯®«ãç¨âì ஢­® ®¤¨­
ãᯥè­ë© ¨á室 â ª¦¥ ¯à¨¡«¨§¨â¥«ì­® à ¢­ 1=e.
6.4-6? à®ä¥áá®à ¡à®á ¥â ᨬ¬¥âà¨ç­ãî ¬®­¥âã n à §, áâ㤥­â
¤¥« ¥â â® ¦¥ á ¬®¥. ®ª ¦¨â¥, çâ® ¢¥à®ïâ­®áâì ⮣®, çâ® ç¨á«® ®à«®¢ ã ­¨å ¡ã¤¥â ®¤¨­ ª®¢®, à ¢­ C2nn=4n. (“ª § ­¨¥. …᫨ áç¨â âì
®à« ãᯥ宬 ¯à®ä¥áá®à ¨ ­¥ã¤ 祩 áâ㤥­â , â® ¨áª®¬®¥ ᮡë⨥
¥áâì ¯®ï¢«¥­¨¥ n ãᯥ客 á।¨ 2n ¨á¯ëâ ­¨©.) ‚뢥¤¨â¥ ®âáî¤ â®¦¤¥á⢮
n
X
(Cnk )2 = C2nn :
6.4-1
k=0
6.4-7? ®ª ¦¨â¥, çâ® ¤«ï 0 6 k 6 n,
b(k; n; 1=2) 6 2nH (k=n);n;
£¤¥ H (x) | äã­ªæ¨ï í­âய¨¨ (6.13).
118
ƒ« ¢ 6 Š®¬¡¨­ â®à¨ª ¨ ¢¥à®ïâ­®áâì
6.4-8?  áᬮâਬ n ­¥§ ¢¨á¨¬ëå ¨á¯ëâ ­¨©. ãáâì pi | ¢¥à®-
ïâ­®áâì ãá¯¥å ¢ i-¬ ¨á¯ëâ ­¨¨, á«ãç ©­ ï ¢¥«¨ç¨­ X ¥áâì ª®«¨ç¥á⢮ ãᯥ客 ¢® ¢á¥å íâ¨å ¨á¯ëâ ­¨ïå. ãáâì p > pi ¤«ï ¢á¥å
i = 1; 2; : : :; n. „®ª ¦¨â¥, çâ®
PfX < kg 6
k;1
X
i=0
b(i; n; p)
¯à¨ «î¡®¬ k = 1; 2; : : :; n.
6.4-9?  áᬮâਬ á«ãç ©­ãî ¢¥«¨ç¨­ã X , à ¢­ãî ç¨á«ã ãᯥ客 ¢ n ¨á¯ëâ ­¨ïå á ¢¥à®ïâ­®áâﬨ ãᯥå p1; : : :; pn. ãáâì X 0 |
­ «®£¨ç­ ï á«ãç ©­ ï ¢¥«¨ç¨­ , ¤«ï ª®â®à®© ¢¥à®ïâ­®á⨠ãᯥå à ¢­ë p01; : : :; p0n. ãáâì p0i > pi ¯à¨ ¢á¥å i. „®ª ¦¨â¥, çâ®
PfX 0 > kg > PfX > kg:
¯à¨ «î¡®¬ k = 0; : : :; n
(“ª § ­¨¥: ¬®¦­® áç¨â âì, ç⮠१ã«ìâ âë ¢â®à®© á¥à¨¨ ¨á¯ëâ ­¨© ¯®«ãç îâáï â ª: á­ ç « ¤¥« ¥âáï ¯¥à¢ ï á¥à¨ï, ¯®â®¬ ¥ñ
१ã«ìâ âë ª®à४â¨àãîâáï á«ãç ©­ë¬ ®¡à §®¬ ¢ áâ®à®­ã 㢥«¨ç¥­¨ï. ˆá¯®«ì§ã©â¥ १ã«ìâ â ã¯à ¦­¥­¨ï 3.3-6.)
6.5 •¢®áâë ¡¨­®¬¨ «ì­®£® à á¯à¥¤¥«¥­¨ï
‚ ®à¨£¨­ «¥ á® ‚® ¬­®£¨å § ¤ ç å ¢ ¦­ ¢¥à®ïâ­®áâì ­¥ ¢ â®ç­®á⨠k ãᯥ客
§¢¥§¤®©! ¯à¨ ¡¨­®¬¨ «ì­®¬ à á¯à¥¤¥«¥­¨¨, ­¥ ¬¥­¥¥ k ãᯥ客 (¨«¨ ­¥ ¡®«¥¥ k ãᯥ客). ‚ í⮬ à §¤¥«¥ ¬ë ¨áá«¥¤ã¥¬ íâ®â ¢®¯à®á, ®æ¥­¨¢
墮áâë (tails) ¡¨­®¬¨ «ì­®£® à á¯à¥¤¥«¥­¨ï. ’ ª¨¥ ®æ¥­ª¨ ¯®ª §ë¢ îâ, çâ® ¡®«ì訥 ®âª«®­¥­¨ï ç¨á« ãᯥ客 ®â ¬ ⥬ â¨ç¥áª®£®
®¦¨¤ ­¨ï (np) ¬ «®¢¥à®ïâ­ë.
‘­ ç « ¯®«ã稬 ®æ¥­ªã ¤«ï ¯à ¢®£® 墮áâ à á¯à¥¤¥«¥­¨ï
b(k; n; p). Žæ¥­ª¨ ¤«ï «¥¢®£® 墮áâ ᨬ¬¥âà¨ç­ë (ãá¯¥å¨ ¬¥­ïîâáï
¬¥áâ ¬¨ á ­¥ã¤ ç ¬¨).
’¥®à¥¬ 6.2. ãáâì X | ç¨á«® ãᯥ客 ¢ á¥à¨¨ ¨§ n ­¥§ ¢¨á¨¬ëå
¨á¯ëâ ­¨© á ¢¥à®ïâ­®áâìî ãᯥå p. ’®£¤ PfX > kg =
n
X
i=k
b(i; n; p) 6 Cnk pk :
„®ª § ⥫ìá⢮. ‚®á¯®«ì§ã¥¬áï ­¥à ¢¥­á⢮¬ (6.15):
Cnk+i 6 Cnk Cni ;k :
•¢®áâë ¡¨­®¬¨ «ì­®£® à á¯à¥¤¥«¥­¨ï
‡ ¬¥â¨¬, çâ®
PfX > kg =
=
=
6
n
X
i=k
nX
;k
i=0
nX
;k
i=0
nX
;k
i=0
119
b(i; n; p)
b(k + i; n; p)
Cnk+i pk+i(1 ; p)n;(k+i)
Cnk Cni ;k pk+i (1 ; p)n;(k+i)
nX
;k
k
k
= Cn p
Cni ;k pi(1 ; p)(n;k);i
i=0
nX
;k
= Cnk pk b(i; n ; k; p)
i=0
k
k
= Cn p ;
;k b(i; n ; k; p) = 1 ¯® ä®à¬ã«¥ (6.38).
â ª ª ª Pni=0
¥à¥¯¨áë¢ ï íâ® ã⢥ত¥­¨¥ ¤«ï «¥¢®£® 墮áâ , ¯®«ãç ¥¬ â ª®¥
‘«¥¤á⢨¥ 6.3. ãáâì X | ç¨á«® ãᯥ客 ¢ á¥à¨¨ ¨§ n ­¥§ ¢¨á¨¬ëå
¨á¯ëâ ­¨© á ¢¥à®ïâ­®áâìî ãᯥå p. ’®£¤ PfX 6 kg =
k
X
i=0
b(i; n; p) 6 Cnn;k (1 ; p)n;k = Cnk (1 ; p)n;k :
 è á«¥¤ãîé ï ®æ¥­ª ¡ã¤¥â ¤«ï «¥¢®£® 墮áâ ¡¨­®¬¨ «ì­®£®
à á¯à¥¤¥«¥­¨ï: á 㤠«¥­¨¥¬ £à ­¨æë ®â â®çª¨ ¬ ªá¨¬ã¬ ¢¥à®ïâ­®áâì, ¯à¨å®¤ïé ïáï ­ 墮áâ, íªá¯®­¥­æ¨ «ì­® 㬥­ìè ¥âáï.
’¥®à¥¬ 6.4. ãáâì X | ç¨á«® ãᯥ客 ¢ á¥à¨¨ ¨§ n ­¥§ ¢¨á¨¬ëå
¨á¯ëâ ­¨© á ¢¥à®ïâ­®áâìî ãᯥå p ¨ ¢¥à®ïâ­®áâìî ­¥ã¤ ç¨ q =
1 ; p. ’®£¤ k ;1
X
PfX < kg = b(i; n; p) < npkq; k b(k; n; p)
i=0
¯à¨ 0 < k < np.
;1 b(i; n; p) á á㬬®© £¥®¬¥„®ª § ⥫ìá⢮. Œë áà ¢­¨¢ ¥¬ Pki=0
âà¨ç¥áª®© ¯à®£à¥áᨨ (á¬. à §¤. 3.2). „«ï i = 1; 2; : : :; k ä®à¬ã« (6.42) ¤ ñâ
b(i ; 1; n; p) =
iq
i
q
k
q :
<
6
b(i; n; p)
(n ; i + 1)p
n;i p
n;k p
120
ƒ« ¢ 6 Š®¬¡¨­ â®à¨ª ¨ ¢¥à®ïâ­®áâì
®«®¦¨¢
x = n ;k k pq < 1;
¢¨¤¨¬, çâ® ¢ ¯®á«¥¤®¢ ⥫쭮á⨠b(i; n; p) ¯à¨ 0 6 i 6 k ª ¦¤ë©
ç«¥­ ¬¥­ìè¥ á«¥¤ãî饣®, 㬭®¦¥­­®£® ­ x. ®í⮬㠨­â¥à¥áãîé ï ­ á á㬬 (®â i = 0 ¤® i = k ; 1) ¬¥­ìè¥ §­ 祭¨ï b(k; n; p),
㬭®¦¥­­®£® ­ x + x2 + x3 + : : : = x=(1 ; x):
k ;1
X
i=0
b(i; n; p) < 1 ;x x b(k; n; p) = npkq; k b(k; n; p):
à¨ k 6 np=2 ª®íää¨æ¨¥­â kq=(np ; k) ­¥ ¯à¥¢®á室¨â 1, â ª çâ®
b(k; n; p) ï¥âáï ®æ¥­ª®© ᢥàåã ¤«ï áã¬¬ë ¢á¥å ¯à¥¤ë¤ãé¨å ç«¥­®¢. „«ï ¯à¨¬¥à à áᬮâਬ n ¡à®á ­¨© ᨬ¬¥âà¨ç­®© ¬®­¥âë.
®«®¦¨¬ p = 1=2 ¨ k = n=4. ’¥®à¥¬ 6.4 £ à ­â¨àã¥â, çâ® ¢¥à®ïâ­®áâì ¯®ï¢«¥­¨ï ¬¥­¥¥ 祬 n=4 ®à«®¢ ¬¥­ìè¥ ¢¥à®ïâ­®á⨠¢ë¯ ¤¥­¨ï ¢ â®ç­®á⨠n=4 ®à«®¢. (®«¥¥ ⮣®, ¤«ï «î¡®£® ¯®«®¦¨â¥«ì­®£®
r 6 n=4 ¢¥à®ïâ­®áâì ¯®ï¢«¥­¨ï ¬¥­¥¥ r ®à«®¢ ¬¥­ìè¥ ¢¥à®ïâ­®áâ¨
¯®ï¢«¥­¨ï ¢ â®ç­®á⨠r ®à«®¢.) ’¥®à¥¬ 6.4 ¬®¦¥â ¡ëâì ¨á¯®«ì§®¢ ­ ¢¬¥áâ¥ á ®æ¥­ª ¬¨ ¡¨­®¬¨ «ì­®£® à á¯à¥¤¥«¥­¨ï ᢥàåã, ­ ¯à¨¬¥à á «¥¬¬®© 6.1.
‘¨¬¬¥âà¨ç­ ï ®æ¥­ª ¤«ï ¯à ¢®£® 墮á⠢룫廊â â ª:
‘«¥¤á⢨¥ 6.5. ãáâì X | ç¨á«® ãᯥ客 ¢ á¥à¨¨ ¨§ n ­¥§ ¢¨á¨¬ëå
¨á¯ëâ ­¨© á ¢¥à®ïâ­®áâìî ãᯥå p ¨ ¢¥à®ïâ­®áâìî ­¥ã¤ ç¨ q =
1 ; p. ’®£¤ n
X
k)p b(k; n; p)
PfX > kg =
b(i; n; p) < (kn ;; np
i=k+1
¯à¨ np < k < n.
‚ á«¥¤ãî饩 ⥮६¥ à áᬠâਢ ¥âáï ¡®«¥¥ ®¡é¨© á«ãç ©: ª ¦¤®¥ ¨§ ¨á¯ëâ ­¨© ¨¬¥¥â á¢®î ¢¥à®ïâ­®áâì ãᯥå .
’¥®à¥¬ 6.6.  áᬮâਬ á¥à¨î ¨§ n ­¥§ ¢¨á¨¬ëå ¨á¯ëâ ­¨©; ¢¥à®ïâ­®áâì ãá¯¥å ¢ i-¬ ¨§ ­¨å ®¡®§­ 稬 pi (¢¥à®ïâ­®áâì ­¥ã¤ ç¨ qi à ¢­ 1 ; pi). ãáâì á«ãç ©­ ï ¢¥«¨ç¨­ X ¥áâì ç¨á«®
ãᯥ客 ¢ á¥à¨¨, ¨ ¯ãáâì = M[X ]. ’®£¤ ¤«ï r > ¢ë¯®«­¥­®
­¥à ¢¥­á⢮
r
PfX ; > rg 6 e
r :
„®ª § ⥫ìá⢮. „«ï «î¡®£® > 0 äã­ªæ¨ï ex áâண® ¢®§à á⠥⠯® x, ¯®í⮬ã
PfX ; > rg = Pfe(X ;) > er g;
•¢®áâë ¡¨­®¬¨ «ì­®£® à á¯à¥¤¥«¥­¨ï
121
„«ï ®æ¥­ª¨ ¯à ¢®© ç á⨠¬ë ¨á¯®«ì§ã¥¬ ­¥à ¢¥­á⢮ Œ મ¢ (6.32) ( ­ ¨¡®«¥¥ ¢ë£®¤­®¥ §­ 祭¨¥ ¯®¤¡¥àñ¬ ¯®§¤­¥¥):
PfX ; > rg 6 M[e(X ;)]e;r :
(6.43)
Žáâ ñâáï ®æ¥­¨âì M[e(X ;)] ¨ ¢ë¡à âì §­ 祭¨¥ ¤«ï .  áᬮâਬ á«ãç ©­ãî ¢¥«¨ç¨­ã Xi, à ¢­ãî 1 ¢ á«ãç ¥ ãᯥå i-£® ¨á¯ëâ ­¨ï ¨ 0 ¢ á«ãç ¥ ¥£® ­¥ã¤ ç¨. ’®£¤ X=
¨
X;=
n
X
i=1
Xi
n
X
i=1
(Xi ; pi ):
®áª®«ìªã ¨á¯ëâ ­¨ï ­¥§ ¢¨á¨¬ë, â® ¢¥«¨ç¨­ë Xi ­¥§ ¢¨á¨¬ë.
®í⮬㠢¥«¨ç¨­ë e(Xi;pi )] ­¥§ ¢¨á¨¬ë (ã¯à. 6.3-4), ¨ ¯® ä®à¬ã«¥ (6.27) ¬®¦­® ¯¥à¥áâ ¢¨âì ¯à®¨§¢¥¤¥­¨¥ ¨ ¬ ⥬ â¨ç¥áª®¥
®¦¨¤ ­¨¥:
M[e(X ;)] = M
"
n
Y
i=1
e(Xi;pi )
#
=
n
Y
i=1
M[e(Xi;pi ) ]:
Š ¦¤ë© ¬­®¦¨â¥«ì ¬®¦­® ®æ¥­¨âì â ª:
M[e(Xi;pi ) ] = e(1;pi ) pi + e(0;pi ) qi
= pi eqi + qi e;pi
6 pie + 1
(6.44)
6 exp(pie );
£¤¥ exp(x) ®¡®§­ ç ¥â íªá¯®­¥­æ¨ «ì­ãî äã­ªæ¨î: exp(x) = ex.
(Œë ¢®á¯®«ì§®¢ «¨áì ⥬, çâ® > 0, qi 6 1, eqi 6 e ¨ e;pi 6 1,
â ª¦¥ ­¥à ¢¥­á⢮¬ (2.7).) ‘«¥¤®¢ ⥫쭮,
n
Y
(
X
;
)
M[e
] 6 exp(pie ) = exp(e );
i=1
Pn
â ª ª ª = i=1 pi. ’ ª¨¬ ®¡à §®¬, ¨§ ­¥à ¢¥­á⢠(6.43) á«¥¤ã¥â
®æ¥­ª PfX ; > rg 6 exp(e ; r):
(6.45)
‚롨à ï = ln(r=) (á¬. ã¯à. 6.5-6), ¯®«ãç ¥¬
PfX ; > rg 6 exp(eln(r=) ; r ln(r=))
er = e r :
= exp(r ; r ln(r=)) = (r=
)r
r
122
ƒ« ¢ 6 Š®¬¡¨­ â®à¨ª ¨ ¢¥à®ïâ­®áâì
[”®à¬ «ì­® í⠮業ª ¯à¨¬¥­¨¬ ¯à¨ «î¡®¬ r > , ­® ¥ñ ¨¬¥¥â
á¬ëá« ¯à¨¬¥­ïâì ⮫쪮 ¥á«¨ r ¡®«ìè¥ ¡®«¥¥ 祬 ¢ e à §, ¨­ ç¥
¯à ¢ ï ç áâì ¡ã¤¥â ¡®«ìè¥ ¥¤¨­¨æë.]
’¥®à¥¬ã 6.6 ¬®¦­® ¯à¨¬¥­ïâì ¨ ¤«ï á«ãç ï à ¢­ëå ¢¥à®ïâ­®á⥩.
à¨ í⮬ = M[X ] = np, ¨ ¯®«ãç ¥âáï â ª®¥
‘«¥¤á⢨¥ 6.7. ãáâì X | ç¨á«® ãᯥ客 ¢ á¥à¨¨ ¨§ n ­¥§ ¢¨á¨¬ëå
¨á¯ëâ ­¨© ¯® á奬¥ ¥à­ã««¨ á ¢¥à®ïâ­®áâìî ãᯥå p. ’®£¤ n
r
X
PfX ; np > rg =
b(k; n; p) 6 npe
:
r
k=dnp+re
“¯à ¦­¥­¨ï
6.5-1? —â® ¬¥­¥¥ ¢¥à®ïâ­®: ­¥ ¯®«ãç¨âì ­¨ ®¤­®£® ®à« ¯à¨ n ¡à®-
á ­¨ïå ᨬ¬¥âà¨ç­®© ¬®­¥âë, ¨«¨ ¯®«ãç¨âì ¬¥­¥¥ n ®à«®¢ ¯à¨
4n ¡à®á ­¨ïå ᨬ¬¥âà¨ç­®© ¬®­¥âë?
6.5-2? ®ª ¦¨â¥, çâ®
k ;1
X
Cni ai < (a + 1)n na ; kk(a + 1) b(k; n; a=(a + 1))
i=0
¯à¨ a > 0 ¨ 0 < k < n.
6.5-3? „®ª ¦¨â¥, çâ® ¯à¨ 0 < k < np, £¤¥ 0 < p < 1 ¨ q = 1 ; p,
¢ë¯®«­¥­® ­¥à ¢¥­á⢮
k;1
np k nq n;k
X
kq
i
n
;
i
p q < np ; k k
:
n
;
k
i=0
6.5-4? ®ª ¦¨â¥, çâ® ¢ ãá«®¢¨ïå ⥮६ë 6.6 ¢ë¯®«­¥­® ­¥à ¢¥­-
á⢮
r
(
n
;
)
e
Pf ; X > rg 6
;
r
¢ ãá«®¢¨ïå á«¥¤á⢨ï 6.7 ¢ë¯®«­¥­® ­¥à ¢¥­á⢮
r
Pfnp ; X > rg 6 nqe
r :
6.5-5?  áᬮâਬ á¥à¨î ¨§ n ­¥§ ¢¨á¨¬ëå ¨á¯ëâ ­¨©; ¢¥à®ïâ-
­®áâì ãá¯¥å ¢ i-¬ ¨§ ­¨å ®¡®§­ 稬 pi (¢¥à®ïâ­®áâì ­¥ã¤ ç¨ qi
à ¢­ 1 ; pi). ãáâì á«ãç ©­ ï ¢¥«¨ç¨­ X ¥áâì ç¨á«® ãᯥ客 ¢
á¥à¨¨, ¨ ¯ãáâì = M[X ]. „®ª ¦¨â¥, çâ® ¯à¨ r > 0 ¢ë¯®«­¥­®
­¥à ¢¥­á⢮
PfX ; > rg 6 e;r =2n :
2
‚¥à®ïâ­®áâ­ë© ­ «¨§
123
6.5-6? ®ª ¦¨â¥, çâ® ¯à¨ ¢ë¡à ­­®¬ §­ 祭¨¨ = ln(r=) ¯à ¢ ï
ç áâì ­¥à ¢¥­á⢠(6.45) ¤®á⨣ ¥â ¬¨­¨¬ã¬ .
6.6 ‚¥à®ïâ­®áâ­ë© ­ «¨§
‚ í⮬ à §¤¥«¥ ¬ë ¯à¨¢¥¤ñ¬ âਠ¯à¨¬¥à ¯à¨¬¥­¥­¨ï à §®¡à ­­ëå ¬¥â®¤®¢ ®æ¥­ª¨ ¢¥à®ïâ­®á⥩. à¨¬¥àë í⨠⠪®¢ë: ᮢ¯ ¤¥­¨¥ ¤­¥© ஦¤¥­¨© ã ¤¢ãå 祫®¢¥ª á।¨ ¤ ­­ëå k 祫®¢¥ª, à á¯à¥¤¥«¥­¨¥ è ஢ ¯® ãà­ ¬ ¨ ãç á⪨ ¯®¢â®àïîé¨åáï ¨á室®¢ ¯à¨
¡à®á ­¨¨ ¬®­¥âë.
6.6.1  à ¤®ªá ¤­ï ஦¤¥­¨ï
 à ¤®ªá ¤­ï ஦¤¥­¨ï (birthday paradox) á¢ï§ ­ á â ª¨¬ ¢®¯à®á®¬: ᪮«ìª® 祫®¢¥ª ¤®«¦­® ¡ëâì ¢ ª®¬­ â¥, ç⮡ë á ¡®«ì让 ¢¥à®ïâ­®áâìî á।¨ ­¨å ®ª § «¨áì ¤¢®¥ த¨¢è¨åáï ¢ ®¤¨­ ¤¥­ì?  à ¤®ªá á®á⮨⠢ ⮬, çâ® ®â¢¥â §­ ç¨â¥«ì­® ¬¥­ìè¥ ç¨á« ¤­¥© ¢
£®¤ã, çâ® ª ¦¥âáï áâà ­­ë¬.
Œë áç¨â ¥¬, çâ® ¢ £®¤ã 365 ¤­¥© ¨ çâ® ¤­¨ ஦¤¥­¨ï k 祫®¢¥ª
¢ë¡¨à îâáï á«ãç ©­® ¨ ­¥§ ¢¨á¨¬® ¤à㣠®â ¤à㣠. Žæ¥­¨¬ ¢¥à®ïâ­®áâì ⮣®, çâ® ¢á¥ ¤­¨ ஦¤¥­¨ï ®ª ¦ãâáï à §«¨ç­ë¬¨. ãáâì
¤¥­ì ஦¤¥­¨ï ¯¥à¢®£® 㦥 ¢ë¡à ­; ïá­®, çâ® ¤¥­ì ஦¤¥­¨ï ¢â®à®£® ᮢ¯ ¤ñâ á ­¨¬ á ¢¥à®ïâ­®áâìî 1=365. à¨ ¢ë¡à ­­ëå (¨ à §«¨ç­ëå) ¤­ïå ஦¤¥­¨ï ¯¥à¢®£® ¨ ¢â®à®£® ¢¥à®ïâ­®áâì, çâ® ã âà¥â쥣® ¤¥­ì ஦¤¥­¨ï ᮢ¯ ¤ñâ á ®¤­¨¬ ¨§ 㦥 ¨¬¥îé¨åáï, ¡ã¤¥â
2=365 ¨ â ª ¤ «¥¥. ‚ ¨â®£¥ ¢¥à®ïâ­®áâì ⮣®, çâ® ã k 祫®¢¥ª ¡ã¤ãâ
à §«¨ç­ë¥ ¤­¨ ஦¤¥­¨ï, ¥áâì
1
2
k
;
1
1;
1;
::: 1;
:
365
365
365
®«¥¥ ä®à¬ «ì­®, ¯ãáâì n | ç¨á«® ¤­¥© ¢ £®¤ã, ¨ ¯ãáâì Ai |
ᮡë⨥ "¤¥­ì ஦¤¥­¨ï (i + 1)-£® 祫®¢¥ª ­¥ ᮢ¯ ¤ ¥â á ¤­ï¬¨
஦¤¥­¨ï ¯à¥¤ë¤ãé¨å i 祫®¢¥ª". ’®£¤ ¯¥à¥á¥ç¥­¨¥ Bi = A1 \
A2 \ : : : \ Ai;1 ¡ã¤¥â ᮡë⨥¬ "ã ¯¥à¢ëå i 祫®¢¥ª ¤­¨ ஦¤¥­¨ï
à §«¨ç­ë".
®áª®«ìªã Bk = Ak;1 \ Bk;1 , â® ¨§ ä®à¬ã«ë (6.20) ¯®«ãç ¥¬
ᮮ⭮襭¨¥
PfBk g = PfBk;1 gPfAk;1 jBk;1 g:
(6.46)
 ç «ì­®¥ ãá«®¢¨¥: PfB1g = 1.
“á«®¢­ ï ¢¥à®ïâ­®áâì PfAk;1 jBk;1g à ¢­ (n ; k + 1)=n, â ª ª ª
á।¨ n ¤­¥© ¨¬¥¥âáï n ; (k ; 1) ᢮¡®¤­ëå (¯® ãá«®¢¨î ¢á¥ ¯à¥¤ë-
124
ƒ« ¢ 6 Š®¬¡¨­ â®à¨ª ¨ ¢¥à®ïâ­®áâì
¤ã騥 ¤­¨ ஦¤¥­¨ï à §«¨ç­ë). ®í⮬ã
PfBk g = PfB1 gPfA1jB1 gPfA2jB2 g PfAk;1 jBk;1 g
n
;
2
n
;
k
+
1
n
;
1
:::
= 1 n
n
n
1
2
k
;
1
= 1 1; n 1; n t::: 1; n
’¥¯¥àì ¨§ ­¥à ¢¥­á⢠1 + x 6 ex (2.7) á«¥¤ã¥â, çâ®
PfBk g 6 e;1=n e;2=n e;(k;1)=n
= e;(1+2+3+:::+(k;1))=n
= e;k(k;1)=2n
6 1=2;
¥á«¨ ;k(k ; 1)=2n 6 ln(1=2). ‚¥à®ïâ­®áâì ⮣®, çâ® ¢á¥ k ¤­¥© ஦¤¥­¨© à §«¨ç­ë, ­¥ ¯à¥¢®á室¨â 1=2 ¯à¨ k(k ; 1)p> 2n ln 2. ¥è ï
íâ® ª¢ ¤à â­®¥ ­¥à ¢¥­á⢮, ¯®«ãç ¥¬ k > (1 + 1 + (8 ln 2)n)=2.
„«ï n = 365, ¨¬¥¥¬ k > 23. ˆâ ª, ¥á«¨ ¢ ª®¬­ ⥠­ 室¨âáï ­¥
¬¥­¥¥ 23 祫®¢¥ª, â® á ¢¥à®ïâ­®áâìî ­¥ ¬¥­¥¥ 1=2 ª ª¨¥-â® ¤¢®¥ ¨§
­¨å த¨«¨áì ¢ ®¤¨­ ¨ â®â ¦¥ ¤¥­ì.  Œ àá¥, £¤¥ £®¤ á®á⮨⠨§
669 ¬ àᨠ­áª¨å áã⮪, ¢ ª®¬­ ⥠¤®«¦­® ¡ëâì ­¥ ¬¥­¥¥ 31 ¬ àᨠ­¨­ .
„à㣮© ¬¥â®¤ ­ «¨§ …áâì ¤à㣮©, ¡®«¥¥ ¯à®á⮩ ᯮᮡ ¯®«ãç¨âì ®æ¥­ªã ¤«ï தá⢥­­®© § ¤ ç¨. „«ï ª ¦¤®© ¯ àë «î¤¥© (i; j ), ­ 室ïé¨åáï ¢ ª®¬­ â¥,
à áᬮâਬ á«ãç ©­ãî ¢¥«¨ç¨­ã Xij
Xij =
(
1; ¥á«¨ i ¨ j த¨«¨áì ¢ ®¤¨­ ¤¥­ì,
0; ¢ ¯à®â¨¢­®¬ á«ãç ¥.
‚¥à®ïâ­®áâì ⮣®, çâ® ¤­¨ ஦¤¥­¨ï ¤¢ãå ¤ ­­ëå «î¤¥© ᮢ¯ ¤ îâ, à ¢­ 1=n, ¯®í⮬㠯® ®¯à¥¤¥«¥­¨î ¬ ⥬ â¨ç¥áª®£® ®¦¨¤ ­¨ï (6.23)
M[Xij ] = 1 (1=n) + 0 (1 ; 1=n) = 1=n
¯à¨ i =
6 k.
‘㬬 ¢á¥å Xij ¯® ¢á¥¬ ¯ à ¬ 1 6 i < j 6 k ¨¬¥¥â ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥, à ¢­®¥ á㬬¥ ®¦¨¤ ­¨© ¤«ï ª ¦¤®© ¯ àë; ¢á¥£®
¯ à Ck2 = k(k ; 1)p=2, â ª çâ® íâ á㬬 à ¢­ k(k ; 1)=2n. ®í⮬ã
­ã¦­® ¯à¨¬¥à­® 2n 祫®¢¥ª, çâ®¡ë ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ç¨á« ¯ à «î¤¥© á ᮢ¯ ¤ î騬¨ ¤­ï¬¨ ஦¤¥­¨ï áà ¢­ï«®áì á 1.
‚¥à®ïâ­®áâ­ë© ­ «¨§
125
 ¯à¨¬¥à, ¯à¨ n = 365 ¨ k = 28 ®¦¨¤ ¥¬®¥ ç¨á«® ¯ à «î¤¥©, த¨¢è¨åáï ¢ ®¤¨­ ¤¥­ì, à ¢­® (28 27)=(2 365) 1;0356.  Œ àá¥
¤«ï í⮣® âॡã¥âáï 38 ¬ àᨠ­.
‡ ¬¥â¨¬, çâ® ¬ë ®æ¥­¨¢ «¨
¤¢¥ à §­ë¥ ¢¥é¨: (1) ¯à¨ ª ª®¬ k
P
¢¥à®ïâ­®áâì ᮡëâ¨ï X = Xij > 0 ¡®«ìè¥ 1=2, ¨ (2) ¯à¨ ª ª®¬ k
¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ X ¡®«ìè¥ 1. ”®à¬ «ì­® íâ® à §­ë¥ ¢®¯à®áë (¬®¦­® § ¬¥â¨âì «¨èì, çâ® ¥á«¨ ¢¥à®ïâ­®áâì PfX > 0g >
1=2, â® M[X ] > 1=2, â ª ª ª ¢¥«¨ç¨­ X ¯à¨­¨¬ ¥â æ¥«ë¥ §­ 祭¨ïp). Ž¤­ ª® ¨ ¢ ⮬, ¨ ¢ ¤à㣮¬ á«ãç ¥ ®â¢¥â ¨¬¥¥â ᨬ¯â®â¨ªã
( n).
6.6.2 ˜ àë ¨ ãà­ë
ãáâì ¨¬¥¥âáï b ãà­, ¯à®­ã¬¥à®¢ ­­ëå ®â 1 ¤® b. Œë ®¯ã᪠¥¬ ¢
­¨å è àë: ª ¦¤ë© è à á à ¢­®© ¢¥à®ïâ­®áâìî ¯®¬¥é ¥âáï ¢ ®¤­ã
¨§ ãà­ ­¥§ ¢¨á¨¬® ®â ¯à¥¤ë¤ãé¨å. ’ ª¨¬ ®¡à §®¬, á â®çª¨ §à¥­¨ï
«î¡®© ¨§ ãà­ ¯à®¨á室¨â ¯®á«¥¤®¢ ⥫쭮áâì ¨á¯ëâ ­¨© ¯® á奬¥
¥à­ã««¨ á ¢¥à®ïâ­®áâìî ãᯥå 1=b (ãᯥå | ¯®¯ ¤ ­¨¥ è à ¢
íâã ãà­ã). Œë à áᬮâਬ ­¥áª®«ìª® § ¤ ç, á¢ï§ ­­ëå á â ª¨¬
¯à®æ¥áᮬ.
‘ª®«ìª® è ஢ ¯®¯ ¤ñâ ¢ ¤ ­­ãî ãà­ã? Š®«¨ç¥á⢮ è ஢, ¯®¯ ¢è¨å ¢ ¤ ­­ãî ãà­ã, ®¯¨áë¢ ¥âáï ¡¨­®¬¨ «ì­ë¬ à á¯à¥¤¥«¥­¨¥¬ b(k; n; 1=b). …᫨ ¢á¥£® ¡à®á ¥âáï n è ஢, â® ¬ ⥬ â¨ç¥áª®¥
®¦¨¤ ­¨¥ ç¨á« ¯®¯ ¢è¨å ¢ ãà­ã è ஢ à ¢­® n=b.
‘ª®«ìª® ¢ á।­¥¬ è ஢ ­ã¦­® ¡à®á¨âì, ¯®ª ¢ ¤ ­­ãî ãà­ã
­¥ ¯®¯ ¤ñâ è à? Š®«¨ç¥á⢮ ¡à®áª®¢ ¤® ¯¥à¢®£® ¯®¯ ¤ ­¨ï ¢ § ¤ ­­ãî ãà­ã ¨¬¥¥â £¥®¬¥âà¨ç¥áª®¥ à á¯à¥¤¥«¥­¨¥ á ¢¥à®ïâ­®áâìî
1=b, ¯®í⮬㠮¦¨¤ ¥¬®¥ ç¨á«® ¡à®áª®¢ ¥áâì 1=(1=b) = b.
‘ª®«ìª® è ஢ ­ã¦­® ¡à®á¨âì, çâ®¡ë ª ¦¤ ï ãୠᮤ¥à¦ « ¯® ¬¥­ì襩 ¬¥à¥ ®¤¨­ è à? ã¤¥¬ á«¥¤¨âì § ç¨á«®¬ § ¯®«­¥­­ëå
ãà­. ‚­ ç «¥ ®­® à ¢­® ­ã«î, § ⥬ 㢥«¨ç¨¢ ¥âáï, ¯®ª ­¥ ¤®á⨣­¥â b. Ž¡®§­ 稬 ç¥à¥§ ni á«ãç ©­ãî ¢¥«¨ç¨­ã, à ¢­ãî ç¨á«ã
¯®¯ë⮪, ¯®âॡ®¢ ¢è¨åáï, ç⮡ë íâ® ç¨á«® ¢®§à®á«® ®â i ; 1 ¤® i.
(’ ª¨¬ ®¡à §®¬, ¥á«¨ ¢â®à ï ¨ âà¥âìï ¯®¯ë⪨ ¯à¨è«¨áì ­ âã ¦¥
ãà­ã, çâ® ¯¥à¢ ï, ç¥â¢ñàâ ï | ­ ¤àã£ãî, â® n1 = 1, n2 = 3.) Ž¡é¥¥ ç¨á«® ¯®¯ë⮪ ¤® § ¯®«­¥­¨ï ¢á¥å ãà­ à ¢­® n1 + n2 + : : : + nb.
Œë ¢ëç¨á«¨¬ ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ í⮩ áã¬¬ë ª ª á㬬ã
¬ ⥬ â¨ç¥áª¨å ®¦¨¤ ­¨©. Š®£¤ ¬ë ¦¤ñ¬ § ¯®«­¥­¨ï i-© ãà­ë,
§ ¯®«­¥­® i ; 1 ãà­ ¨§ b ¨ ¢¥à®ïâ­®áâì ¯®¯ áâì ¢ ­¥§ ¯®«­¥­­ãî à ¢­ (b ; i + 1)=b. ® ᢮©áâ¢ã £¥®¬¥âà¨ç¥áª®£® à á¯à¥¤¥«¥­¨ï ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢¥«¨ç¨­ë ni ®¡à â­® í⮩ ¢¥à®ïâ­®á⨠¨ à ¢­® b=(b ; i + 1). ‘㬬 íâ¨å ¢¥«¨ç¨­ ¯® ¢á¥¬ i à ¢­ b(1=b + 1=(b ; 1) + : : : + 1=2 + 1) = b(ln b + O(1)). (‘¬. ä®à¬ã«ã (3.5)
¤«ï áã¬¬ë £ ମ­¨ç¥áª®£® àï¤ .)
ˆâ ª, âॡã¥âáï ᤥ« âì ¢ á।­¥¬ ¯à¨¬¥à­® b ln b ¡à®áª®¢, ¯à¥-
126
ƒ« ¢ 6 Š®¬¡¨­ â®à¨ª ¨ ¢¥à®ïâ­®áâì
¦¤¥ 祬 ¢ ª ¦¤®© ãà­¥ ¯®ï¢¨âáï ¯® è àã.
6.6.3 “ç á⪨ ¯®¢â®àïîé¨åáï ¨á室®¢
ãáâì ¬ë ¡à®á ¥¬ ᨬ¬¥âà¨ç­ãî ¬®­¥âã n à §. Š ª®¥ ¬ ªá¨¬ «ì­®¥ ç¨á«® ¨¤ãé¨å ¯®¤àï¤ ®à«®¢ ¬ë ®¦¨¤ ¥¬ 㢨¤¥âì? Žª §ë¢ ¥âáï, ®â¢¥â ­ íâ®â ¢®¯à®á | (lg n).
‘­ ç « ¤®ª ¦¥¬, çâ® ®¦¨¤ ¥¬ ï ¤«¨­ ­ ¨¡®«ì襣® ãç á⪠¥áâì O(lg n). ãáâì ᮡë⨥ Aik á®á⮨⠢ ⮬, çâ® ¨¬¥¥âáï ãç á⮪
¨§ k ¨«¨ ¡®«¥¥ ®à«®¢, ­ 稭 î騩áï á i-£® ¡à®á ­¨ï. Žç¥¢¨¤­®,
PfAik g = 1=2k :
(6.47)
à¨ k = 2dlg ne ¢¥à®ïâ­®áâì ¯®ï¢«¥­¨ï k ®à«®¢ ¢ ¤ ­­ëå ¯®§¨æ¨ïå ­¥ ¯à¥¢®á室¨â 1=n2, ¢®§¬®¦­ëå ¬¥áâ (§­ 祭¨© i) ¬¥­ìè¥
祬 n, â ª çâ® ¢¥à®ïâ­®áâì ¯®ï¢«¥­¨ï k ®à«®¢ ¯®¤àï¤ (£¤¥-­¨¡ã¤ì)
­¥ ¡®«ìè¥ 1=n. ’¥¯¥àì ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¬ ªá¨¬ «ì­®£®
ç¨á« ¨¤ãé¨å ¯®¤àï¤ ®à«®¢ ®æ¥­¨¢ ¥âáï â ª: íâ® ç¨á«® ­¨ª®£¤ ­¥
¯à¥¢®á室¨â n ¨ ¯®ç⨠¢á¥£¤ (á ¢¥à®ïâ­®áâìî 1 ; 1=n) ­¥ ¯à¥¢®á室¨â 2dlg ne, ¯®í⮬㠮¦¨¤ ­¨¥ ­¥ ¡®«ìè¥ d2 lg ne+n(1=n) = O(lg n).
‚¥à®ïâ­®áâì ®¡à §®¢ ­¨ï ãç á⪠®à«®¢ ¤«¨­ë ­¥ ¬¥­¥¥ rdlg ne
¡ëáâ஠㬥­ìè ¥âáï á à®á⮬ r (¤«ï 䨪á¨à®¢ ­­®© ¯®§¨æ¨¨ ®­ ­¥ ¡®«ìè¥ 2;r lg n = n;r , ¤«ï ¢á¥å ¯®§¨æ¨© ¢ á㬬¥ ®­ ­¥ ¯à¥¢®á室¨â n n;r = n;(r;1).)  ¯à¨¬¥à, ¤«ï n = 1000 ¢¥à®ïâ­®áâì
¯®ï¢«¥­¨ï ãç á⪠¨§ ¯® ¬¥­ì襩 ¬¥à¥ 2dlg ne = 20 ®à«®¢ ­¥ ¯à¥¢®á室¨â 1=n = 1=1000, ¢¥à®ïâ­®áâì ¯®ï¢«¥­¨ï ãç á⪠3dlg ne = 30
®à«®¢ ­¥ ¡®«ìè¥ 1=n2 = 10;6.
’¥¯¥àì ¤®ª ¦¥¬ ®æ¥­ªã á­¨§ã: ®¦¨¤ ¥¬ ï ¤«¨­ ­ ¨¡®«ì襣®
ãç á⪠¥áâì (lg n). „«ï í⮣® à áᬮâਬ ãç á⪨ ¤«¨­ë
b(lg n)=2c. ‘®£« á­® (6.47) ¢¥à®ïâ­®áâì ¯®ï¢«¥­¨ï
â ª®£® ãç á⪠¢ ¤ ­­®© ¯®§¨æ¨¨ ­¥ ¬¥­ìè¥ p1=2b(lg n)=2c > 1=pn, ¢¥à®ïâ­®áâì ¥£®
­¥¯®ï¢«¥­¨ï ­¥ ¡®«ìè¥ 1 ; 1= n.  §®¡ìñ¬ ¢áî ¯®á«¥¤®¢ ⥫쭮áâì
¡à®á ­¨© ­ ­¥¯¥à¥á¥ª î騥áï £à㯯ë, á®áâ®ï騥 ¨§ b(lg n)=2c
¡à®á ­¨© ª ¦¤ ï. (¥áª®«ìª® ç«¥­®¢ ®ª ¦ãâáï ¢­¥ £à㯯, ¥á«¨ ¯à¨
¤¥«¥­¨¨ ¡ã¤¥â ®áâ ⮪.) —¨á«® £à㯯 ­¥ ¬¥­ìè¥ 2n= lg n ; 1.
‘®¡ëâ¨ï ¢ à §­ëå £à㯯 å ­¥§ ¢¨á¨¬ë, ¯®í⮬㠢¥à®ïâ­®áâì
⮣®, çâ® ­¨ ®¤­ ¨§ íâ¨å £à㯯 ­¥ á®á⮨⠨§ ®¤­¨å ®à«®¢, ­¥
¡®«ìè¥
p
p
(1 ; 1= n)2n= lg n;1 6 e;(2n= lg n;1)= n
= O(e; lg n ) = O(1=n)
Œë ¨á¯®«ì§®¢ «¨
â®â ä ªâ, çâ® 1 + x 6 ex (2.7), â ª¦¥ â®, çâ®
p
(2n= lg n ; 1)= n > lg n ; O(1).
ˆâ ª, á ¢¥à®ïâ­®áâìî ­¥ ¬¥­¥¥ 1 ; O(1=n) ¤«¨­ ­ ¨¡®«ì襣®
ãç á⪠¯®¤àï¤ ¨¤ãé¨å ®à«®¢ ­¥ ¬¥­ìè¥ blg n=2c = (lg n), ¯®-
‡ ¤ ç¨ ª £« ¢¥ 6
127
í⮬㠬 ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ­¨ª ª ­¥ ¬¥­ìè¥ (1;1=n)
(lg n) =
(lg n).
“¯à ¦­¥­¨ï
˜ àë ¡à®á îâ ¢ b ãà­; ¢á¥ ¡à®á ­¨ï ­¥§ ¢¨á¨¬ë ¤à㣠®â
¤à㣠, ¨ ª ¦¤ë© è à à ¢­®¢¥à®ïâ­® ¯®¯ ¤ ¥â ¢ «î¡ãî ¨§ ãà­.
—¥¬ã à ¢­® ®¦¨¤ ¥¬®¥ ª®«¨ç¥á⢮ ¡à®á ­¨© ¤® ¬®¬¥­â , ª®£¤ ¢
®¤­®© ¨§ ãà­ ®ª ¦¥âáï ¤¢ è à ?
6.6-2? ‘ãé¥á⢥­­® «¨ ¤«ï ¯à¨¢¥¤ñ­­®£® ­ ¬¨ ­ «¨§ ¯ à ¤®ªá ¤­ï ஦¤¥­¨ï â®, çâ® ¤­¨ ஦¤¥­¨ï ­¥§ ¢¨á¨¬ë ¢ ᮢ®ªã¯­®áâ¨,
¨«¨ ¡ë«® ¡ë ¤®áâ â®ç­® ¨å ¯®¯ à­®© ­¥§ ¢¨á¨¬®áâ¨? Ž¡êïá­¨â¥
᢮© ®â¢¥â.
6.6-3? ‘ª®«ìª¨å £®á⥩ ­ ¤® ¯à¨£« á¨âì ­ ¢¥ç¥à¨­ªã, ç⮡ë ᪮॥ ¢á¥£® ®ª § «®áì, çâ® ¯® ¬¥­ì襩 ¬¥à¥ â஥ ¨§ ­¨å த¨«¨áì ¢
®¤¨­ ¤¥­ì?
6.6-4? Š ªãî ¤®«î á®áâ ¢«ïîâ ¨­ê¥ªæ¨¨ á।¨ ¢á¥å ®â®¡à ¦¥­¨©
k-í«¥¬¥­â­®£® ¬­®¦¥á⢠¢ n-í«¥¬¥­â­®¥? Š ª á¢ï§ ­ íâ®â ¢®¯à®á
á ¯ à ¤®ªá®¬ ¤­ï ஦¤¥­¨ï?
6.6-5? ãáâì n è ஢ ¡à®á îâ ¢ n ãà­, ¢á¥ ¡à®á ­¨ï ­¥§ ¢¨á¨¬ë,
¯®¯ ¤ ­¨ï ª ¦¤®£® è à ¢® ¢á¥ ãà­ë à ¢­®¢¥à®ïâ­ë. —¥¬ã à ¢­®
®¦¨¤ ¥¬®¥ ª®«¨ç¥á⢮ ¯ãáâëå ãà­? € ®¦¨¤ ¥¬®¥ ª®«¨ç¥á⢮ ãà­,
¢ ª®â®àë¥ ¯®¯ «® ¢ â®ç­®á⨠¯® ®¤­®¬ã è àã?
6.6-6? “«ãçè¨â¥ ­¨¦­îî ®æ¥­ªã ¤«ï ¤«¨­ ãç á⪮¢ ¨§ ®¤­¨å ®à«®¢, ¯®ª § ¢, çâ® ¯à¨ n ¡à®á ­¨ïå ᨬ¬¥âà¨ç­®© ¬®­¥âë ãç á⮪
¤«¨­ë lg n ; 2 lg lg n ­ ©¤ñâáï á ¢¥à®ïâ­®áâìî ­¥ ¬¥­ìè¥ 1 ; 1=n.
6.6-1
‡ ¤ ç¨
6-1 ˜ àë ¨ ãà­ë
‚ í⮩ § ¤ ç¥ ¬ë áç¨â ¥¬ ç¨á«® ᯮᮡ®¢ à §«®¦¨âì n è ஢ ¢
b à §«¨ç­ëå ãà­.
. à¥¤¯®«®¦¨¬, çâ® ¢á¥ è àë à §­ë¥, ¨å ¯®à冷ª ¢­ãâਠãà­ë
­¥ ãç¨âë¢ ¥âáï. „®ª ¦¨â¥, çâ® áãé¥áâ¢ã¥â bn ᯮᮡ®¢ ¯®¬¥áâ¨âì
è àë ¢ ãà­ë.
¡. à¥¤¯®«®¦¨¬, çâ® ¢á¥ è àë à §­ë¥ ¨ ¨å ¯®à冷ª ¢ ãà­¥ áãé¥á⢥­. „®ª ¦¨â¥, çâ® è àë ¬®¦­® à §«®¦¨âì ¯® ãà­ ¬ (b + n ;
1)!=(b ; 1)! ᯮᮡ ¬¨. (“ª § ­¨¥: ¯®¤áç¨â ©â¥ ç¨á«® ᯮᮡ®¢ à ááâ ¢¨âì n à §«¨ç­ëå è ஢ ¨ b ; 1 ®¤¨­ ª®¢ëå çñàâ®ç¥ª ¢ àï¤.)
¢. à¥¤¯®«®¦¨¬, çâ® ¢á¥ è àë ®¤¨­ ª®¢ë, ¨ ¨å ¯®à冷ª ¢ ãà­¥ ­¥
128
ƒ« ¢ 6 Š®¬¡¨­ â®à¨ª ¨ ¢¥à®ïâ­®áâì
¨¬¥¥â §­ 祭¨ï. ®ª ¦¨â¥, çâ® ç¨á«® ᯮᮡ®¢ à ᪫ ¤ª¨ è ஢ ¯®
ãà­ ¬ à ¢­ï¥âáï Cbn+n;1. (“ª § ­¨¥: ¨á¯®«ì§ã©â¥ âã ¦¥ ¨¤¥î, çâ®
¢ ¯ã­ªâ¥ (¡).)
£. ®ª ¦¨â¥, çâ® ¥á«¨ è àë ®¤¨­ ª®¢ë¥ ¨ ¢ «î¡ãî ãà­ã ¯®¬¥é ¥âáï ­¥ ¡®«ìè¥ ®¤­®£® è à , â® ç¨á«® ᯮᮡ®¢ à ¢­® Cbn.
¤. ®ª ¦¨â¥, çâ® ¥á«¨ è àë ®¤¨­ ª®¢ë¥ ¨ ¢ «î¡®© ãà­¥ ¤®«¦¥­
®ª § âìáï ¯® ¬¥­ì襩 ¬¥à¥ ®¤¨­ è à, â® ç¨á«® ᯮᮡ®¢ à ᪫ ¤ª¨
è ஢ à ¢­® Cnb;;11.
6-2 à®£à ¬¬ ¢ëç¨á«¥­¨ï ¬ ªá¨¬ã¬  áᬮâਬ â ªãî ¯à®£à ¬¬ã ¯®¨áª ¬ ªá¨¬ã¬ ¢ ­¥ã¯®à冷祭­®¬ ¬ áᨢ¥ A[1 : :n].
1 max ;1
2 for i 1 to n
3
do . ‘à ¢­¨âì A[i] á max.
4
if A[i] > max
5
then max A[i]
Œë å®â¨¬ ®¯à¥¤¥«¨âì, ᪮«ìª® à § ¢ á।­¥¬ ¢ë¯®«­ï¥âáï ¯à¨á¢ ¨¢ ­¨¥ ¢ áâப¥ 5. à¥¤¯®« £ ¥âáï, çâ® ç¨á« ¢ ¬ áᨢ¥ A à §«¨ç­ë ¨ à ᯮ«®¦¥­ë ¢ á«ãç ©­®¬ ¯®à浪¥ (¢á¥ ¯¥à¥áâ ­®¢ª¨ à ¢­®¢¥à®ïâ­ë).
. …᫨ ç¨á«® x á«ãç ©­® ¢ë¡à ­® ¨§ i à §«¨ç­ëå ç¨á¥«, â® á ª ª®© ¢¥à®ïâ­®áâìî ®­® ®ª ¦¥âáï ¬ ªá¨¬ «ì­ë¬ ç¨á«®¬ á।¨ ­¨å?
¡. Š ª ᮮ⭮á¨âáï A[i] á ¯à¥¤ë¤ã騬¨ í«¥¬¥­â ¬¨ ¬ áᨢ ¤«ï
â¥å i, ¯à¨ ª®â®àëå ¢ë¯®«­ï¥âáï áâப 5?
¢. —¥¬ã à ¢­ ¢¥à®ïâ­®áâì ¢ë¯®«­¥­¨ï áâப¨ 5 ¯à®£à ¬¬ë ¤«ï
¤ ­­®£® §­ 祭¨ï i?
£. ãáâì si | á«ãç ©­ ï ¢¥«¨ç¨­ , à ¢­ ï 1 ¨«¨ 0 ¢ § ¢¨á¨¬®áâ¨
®â ⮣®, ¢ë¯®«­ï« áì áâப 5 ­ i-¬ è £¥ 横« ¨«¨ ­¥â. —¥¬ã
à ¢­® M[si]?
¤. ãáâì s = s1 +s2+ +sn | ®¡é¥¥ ç¨á«® ¯à¨á¢ ¨¢ ­¨© ¢ áâப¥
5 ¯à¨ ¨á¯®«­¥­¨¨ ¢á¥© ¯à®£à ¬¬ë. ®ª ¦¨â¥, çâ® M[s] = (lg n).
6-3 à®¡«¥¬ ¢ë¡®à ‡ ¢¥¤ãîé ï ª 䥤ன ¯à¨­¨¬ ¥â ­ à ¡®âã ­®¢®£® á®âà㤭¨ª .
Ž­ ­ §­ 稫 ᮡ¥á¥¤®¢ ­¨ï n ¯à¥â¥­¤¥­â ¬ ¨ å®ç¥â ¢ë¡à âì ­ ¨¡®«¥¥ ª¢ «¨ä¨æ¨à®¢ ­­®£® ¨§ ­¨å. Ž¤­ ª® ã­¨¢¥àá¨â¥â᪨¥ ¯à ¢¨« âॡãîâ, çâ®¡ë ¯®á«¥ ¡¥á¥¤ë ¯à¥â¥­¤¥­âã áà §ã á®®¡é «®áì,
¯à¨­ïâ ®­ ¨«¨ ­¥â.
„«ï í⮣® ®­ ¯à¨¬¥­ï¥â â ª®¥ ¯à ¢¨«®. ‘­ ç « ®­ £®¢®à¨â á
¯¥à¢ë¬¨ k ¯à¥â¥­¤¥­â ¬¨, ®âª §ë¢ ï ¨¬ ­¥§ ¢¨á¨¬® ®â ¨å ª¢ «¨ä¨ª 樨. …᫨ á।¨ ®áâ ¢è¨åáï ¥áâì ¡®«¥¥ ª¢ «¨ä¨æ¨à®¢ ­­ë©,
祬 ¯¥à¢ë¥ k, â® ¯¥à¢ë© ¨§ â ª®¢ëå ¯à¨­¨¬ ¥âáï. …᫨ ­¥â, ¯à¨­¨¬ ¥âáï ¯®á«¥¤­¨© ¨§ ¯à¥â¥­¤¥­â®¢. ®ª ¦¨â¥, çâ® ¢¥à®ïâ­®áâì ¢ë-
‡ ¬¥ç ­¨ï ª £« ¢¥ 6
129
¡à âì â ª¨¬ ᯮᮡ®¬ «ãç襣® ¨§ ¯à¥â¥­¤¥­â®¢ ¡ã¤¥â ¬ ªá¨¬ «ì­ (¨ à ¢­ ¯à¨¬¥à­® 1=e), ¥á«¨ k ¯à¨¬¥à­® à ¢­® n=e.
6-4 ‚¥à®ïâ­®áâ­ë© áçñâ稪
‘ ¯®¬®éìî t-¡¨â­®£® áçñâ稪 ¬ë ¬®¦¥¬ áç¨â âì ¤® 2t ; 1.
‘«¥¤ãî騩 ¯à¨ñ¬ ¢¥à®ïâ­®áâ­®£® ¯®¤áçñâ (probabilistic counting,
R. Morris) ¤ ñâ ¢®§¬®¦­®áâì ¢¥á⨠áçñâ ¤® ªã¤ ¡®«ìè¨å §­ 祭¨©,
¯à ¢¤ 業®î ­¥ª®â®à®© ¯®â¥à¨ â®ç­®áâ¨.
‚롥६ ¢®§à áâ îéãî ¯®á«¥¤®¢ ⥫쭮áâì 楫ëå ­¥®âà¨æ ⥫ì­ëå ç¨á¥« ni (£¤¥ i ¬¥­ï¥âáï ®â 0 ¤® 2t;1). …ñ á¬ëá« â ª®¢: ¥á«¨
§­ 祭¨¥ t-¡¨â­®£® ॣ¨áâà à ¢­® i, â® íâ® ®§­ ç ¥â, çâ® ¯®¤áç¨âë¢ ¥¬®¥ ª®«¨ç¥á⢮ (ç¨á«® ¢ë¯®«­¥­­ëå ®¯¥à 権 Increment)
¯à¨¬¥à­® à ¢­® ni. Œë áç¨â ¥¬, çâ® n0 = 0.
Ž¯¥à æ¨ï Increment 㢥«¨ç¨¢ ¥â §­ 祭¨¥ áç¥â稪 , ᮤ¥à¦ 饣® i, á ­¥ª®â®à®© ¢¥à®ïâ­®áâìî. ˆ¬¥­­®, ç¨á«® i 㢥«¨ç¨¢ ¥âáï
­ 1 á ¢¥à®ïâ­®áâìî 1=(ni+1 ; ni ), ¨ ®áâ ¥âáï ­¥¨§¬¥­­ë¬ ¢ ®áâ «ì­ëå á«ãç ïå. (…᫨ i = 2t ; 1, â® ¯à®¨á室¨â ¯¥à¥¯®«­¥­¨¥.) ˆ¤¥ï
¯à®áâ : ¢ á।­¥¬ ¤«ï 㢥«¨ç¥­¨ï i ­ ¥¤¨­¨æã ¯®âॡã¥âáï ª ª à §
ni+1 ; ni ®¯¥à 権.
…᫨ ni = i ¤«ï ¢á¥å i > 0, â® ¯®«ãç ¥¬ ®¡ëç­ë© áçñâ稪.
®«¥¥ ¨­â¥à¥á­ë¥ á¨âã 樨 ¢®§­¨ª îâ, ¥á«¨ ¢ë¡à âì, ­ ¯à¨¬¥à,
ni = 2i;1 ¤«ï i > 0 ¨«¨ ni = Fi (i-¥ ç¨á«® ”¨¡®­ çç¨, á¬. à §¤. 2.2).
Œë ¡ã¤¥¬ ¯à¥¤¯®« £ âì, çâ® n2t;1 ¤®áâ â®ç­® ¢¥«¨ª®, ¨ ¯à¥­¥¡à¥£ âì ¢®§¬®¦­®áâìî ¯¥à¥¯®«­¥­¨ï.
. ®ª ¦¨â¥, çâ® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ᮤ¥à¦¨¬®£® áçñâ稪 ¯®á«¥ ¢ë¯®«­¥­¨ï n ®¯¥à 権 Increment, ¢ â®ç­®áâ¨ à ¢­® n.
¡. „¨á¯¥àá¨ï á«ãç ©­®© ¢¥«¨ç¨­ë, à ¢­®© ᮤ¥à¦¨¬®¬ã áçñâ稪 ¯®á«¥ n ®¯¥à 権 Increment, § ¢¨á¨â ®â ¢ë¡®à ¯®á«¥¤®¢ ⥫쭮á⨠n0; n1; : : : .  ©¤¨â¥ íâã ¤¨á¯¥àá¨î ¤«ï á«ãç ï ni = 100i.
‡ ¬¥ç ­¨ï
Ž¡é¨¥ ¬¥â®¤ë à¥è¥­¨ï ¢¥à®ïâ­®áâ­ëå § ¤ ç ®¡á㦤 «¨áì ¢ §­ ¬¥­¨â®© ¯¥à¥¯¨áª¥  ᪠«ï (B. Pascal) ¨ ”¥à¬ (P. de Fermat), ­ ç ¢è¥©áï ¢ 1654 £®¤ã, ¨ ¢ ª­¨£¥ ƒî©£¥­á (C.Huygens, 1657). ®«¥¥ áâண®¥ ¨§«®¦¥­¨¥ ⥮ਨ ¢¥à®ïâ­®á⥩ ¡ë«® ¤ ­® ¢ à ¡®â å
¥à­ã««¨ (J. Bernoulli, 1713) ¨ Œã ¢à (A. De Moivre, 1730). „ «ì­¥©è¥¥ à §¢¨â¨¥ ⥮ਨ ¢¥à®ïâ­®á⥩ á¢ï§ ­® á ¨¬¥­ ¬¨ ‹ ¯« á (P. S. de Laplace), ã áá®­ (S.-D. Poisson) ¨ ƒ ãáá (C. F. Gauss).
‘㬬ë á«ãç ©­ëå ¢¥«¨ç¨­ ¨áá«¥¤®¢ «¨áì . ‹. —¥¡ëèñ¢ë¬ ¨
€. €. Œ મ¢ë¬ (áâ à訬). ‚ 1933 £®¤ã €. . Š®«¬®£®à®¢ áä®à¬ã«¨à®¢ « ªá¨®¬ë ⥮ਨ ¢¥à®ïâ­®á⥩. Žæ¥­ª¨ 墮á⮢ à á¯à¥¤¥«¥­¨© ¯à¨¢®¤ï⠗¥à­®¢ [40] ¨ •®ä¤¨­£ [99]. ‚ ¦­ë¥ १ã«ìâ âë ® á«ãç ©­ëå ª®¬¡¨­ â®à­ëå áâàãªâãà å ¯à¨­ ¤«¥¦ ⠝à-
130
ƒ« ¢ 6 Š®¬¡¨­ â®à¨ª ¨ ¢¥à®ïâ­®áâì
¤ñèã (P. Erdos).
‹¨â¥à âãà ¯® ⥬¥ £« ¢ë: Š­ãâ [121], ‹î [140] (å®à®è¨¥ ¯®á®¡¨ï ¯® í«¥¬¥­â à­®© ª®¬¡¨­ â®à¨ª¥ ¨ ¯®¤áç¥âã); ¨««¨­£á«¨ [28],
— ­£ [41], „३ª [57], ”¥««¥à [66], ®§ ­®¢ [171] (áâ ­¤ àâ­ë¥ ã祡­¨ª¨ ¯® ⥮ਨ ¢¥à®ïâ­®á⥩); ®««®¡ á [30], •®äਠ[100], ‘¯¥­á¥à [179] (â¥å­¨ª ¢¥à®ïâ­®áâ­®£® ­ «¨§ ).
II
‘®àâ¨à®¢ª ¨ ¯®à浪®¢ë¥ áâ â¨á⨪¨
‚¢¥¤¥­¨¥
‚ í⮩ ç á⨠¬ë à áᬮâਬ ­¥áª®«ìª® «£®à¨â¬®¢, à¥è îé¨å
§ ¤ çã á®àâ¨à®¢ª¨ (sorting problem). ˆá室­ë¬ ¤ ­­ë¬ ¤«ï í⮩ § ¤ ç¨ ï¢«ï¥âáï ¯®á«¥¤®¢ ⥫쭮áâì ç¨á¥« ha1; a2; : : :; ani. ¥§ã«ìâ ⮬ ¤®«¦­ ¡ëâì ¯®á«¥¤®¢ ⥫쭮áâì ha01; a02; : : :; a0ni, á®áâ®ïé ï ¨§
â¥å ¦¥ ç¨á¥«, ¨¤ãé¨å ¢ ­¥ã¡ë¢ î饬 ¯®à浪¥: a01 6 a02 6 6 a0n.
Ž¡ëç­® ¨á室­ ï ¯®á«¥¤®¢ ⥫쭮áâì § ¤ ­ ª ª ¬ áᨢ, å®âï ¢®§¬®¦­ë ¨ ¤à㣨¥ ¢ ਠ­âë (­ ¯à¨¬¥à, á¢ï§ ­­ë© ᯨ᮪).
‘âàãªâãà á®àâ¨à㥬ëå ®¡ê¥ªâ®¢
 ¯à ªâ¨ª¥ ।ª® âॡã¥âáï 㯮à冷稢 âì ç¨á« ª ª â ª®¢ë¥.
Ž¡ëç­® ­ ¤® á®àâ¨à®¢ âì § ¯¨á¨ (records), ᮤ¥à¦ 騥 ­¥áª®«ìª®
¯®«¥©, ¨ à ᯮ« £ âì ¨å ¢ ¯®à浪¥, ®¯à¥¤¥«ï¥¬ë¬ ®¤­¨¬ ¨§ ¯®«¥©.
[ ¯à¨¬¥à, ¢ à娢¥ ®â¤¥« ª ¤à®¢ ¤«ï ª ¦¤®£® á®âà㤭¨ª ä¨à¬ë
¬®¦¥â åà ­¨âìáï § ¯¨áì, ᮤ¥à¦ é ï à §«¨ç­ë¥ ¯®«ï (ä ¬¨«¨ï,
¨¬ï, ®âç¥á⢮, £®¤ ஦¤¥­¨ï, ¤à¥á ¨ â. ¯.), ¨ ¢ ª ª®©-â® ¬®¬¥­â
¬®¦¥â ¯®­ ¤®¡¨âìáï 㯮à冷ç¨âì ¢á¥ § ¯¨á¨ ¯® £®¤ ¬ ஦¤¥­¨ï.]
®«¥, ¯® ª®â®à®¬ã ¯à®¢®¤¨âáï á®àâ¨à®¢ª (£®¤ ஦¤¥­¨ï ¢ ­ 襬
¯à¨¬¥à¥), ­ §ë¢ ¥âáï ª«î箬 (key), ®áâ «ì­ë¥ ¯®«ï | ¤®¯®«­¨â¥«ì­ë¬¨ ¤ ­­ë¬¨ (satellite data). Œ®¦­® ¯à¥¤áâ ¢«ïâì ᥡ¥ ¤¥«®
â ª: «£®à¨â¬ á®àâ¨àã¥â ª«îç¨, ­® ¢¬¥áâ¥ á ª ¦¤ë¬ ª«î箬 ¯¥à¥¬¥é îâáï (¡¥§ ¨§¬¥­¥­¨ï) ¤®¯®«­¨â¥«ì­ë¥ ¤ ­­ë¥, á ­¨¬ á¢ï§ ­­ë¥. (…᫨ íâ¨å ¤ ­­ëå ¬­®£®, à §ã¬­® ¯¥à¥¬¥é âì ­¥ á ¬¨
¤ ­­ë¥, «¨èì 㪠§ â¥«ì ­ ­¨å.)
‚ᥠí⨠¯®¤à®¡­®á⨠¬ë ­¥ à áᬠâਢ ¥¬, ®£à ­¨ç¨¢ ïáì § ¤ 祩 á®àâ¨à®¢ª¨ ª«î祩. à¨¢®¤¨¬ë¥ ­ ¬¨ «£®à¨â¬ë ïîâáï,
â ª¨¬ ®¡à §®¬, «¨èì "᪥«¥â®¬" ॠ«ì­®© ¯à®£à ¬¬ë, ª ª®â®à®¬ã
­ã¦­® ¤®¡ ¢¨âì ®¡à ¡®âªã ¤®¯®«­¨â¥«ì­ëå ¤ ­­ëå (çâ® ®¡ëç­® ­¥
á«®¦­®, å®âï ¨ å«®¯®â­®).
134
— áâì II ‘®àâ¨à®¢ª ¨ ¯®à浪®¢ë¥ áâ â¨á⨪¨
€«£®à¨â¬ë á®àâ¨à®¢ª¨
Œë 㦥 ¢áâà¥ç «¨áì ¢ £« ¢¥ 1 á ¤¢ã¬ï «£®à¨â¬ , á®àâ¨àãî騬¨ n ç¨á¥« § ¢à¥¬ï (n2) ¢ åã¤è¥¬ á«ãç ¥. ˆå ¯à®áâ®â , ®¤­ ª®, ¤¥« ¥â ¨å íä䥪⨢­ë¬¨ ¤«ï á®àâ¨à®¢ª¨ ­¥¡®«ì讣® ¬ áᨢ ¡¥§ ¤®¯®«­¨â¥«ì­®© ¯ ¬ï⨠(in place). (ˆ¬¥¥âáï ¢ ¢¨¤ã, çâ® ¬ë ­¥
¨¬¥¥¬ ¯à ¢ § ¢®¤¨âì ¥éñ ®¤­®£® ¬ áᨢ , ­® ¯¥à¥¬¥­­ë¥ ¤«ï ç¨á¥« ¨á¯®«ì§®¢ âì ¬®¦­®). €«£®à¨â¬ á®àâ¨à®¢ª¨ ᫨ﭨ¥¬ ¨¬¥¥â
«ãçèãî ᨬ¯â®â¨ç¥áªãî ®æ¥­ªã ¢à¥¬¥­¨ à ¡®âë, ­® ®­ âॡã¥â
¤®¯®«­¨â¥«ì­®£® ¬ áᨢ .
‚ í⮩ ç á⨠ª­¨£¨ ¬ë à áᬮâਬ ¥éñ ¤¢ «£®à¨â¬ á®àâ¨à®¢ª¨ ¢¥é¥á⢥­­ëå ç¨á¥«. ¥à¢ë© ¨§ ­¨å ­ §ë¢ ¥âáï "á®àâ¨à®¢ª®© á ¯®¬®éìî ªãç¨" (heapsort). ‡¤¥áì "ªãç " | ­¥ª®â®à ï áâàãªâãà ¤ ­­ëå, ¨¬¥îé ï ¬­®£® ¯à¨«®¦¥­¨© (®¤­® ¨§ ­¨å, ®ç¥à¥¤¨ á
¯à¨®à¨â¥â ¬¨, ¬ë â ª¦¥ à áᬮâਬ ¢ £« ¢¥ 7). â®â «£®à¨â¬ ­¥
âॡã¥â ¤®¯®«­¨â¥«ì­®£® ¬ áᨢ ¨ à ¡®â ¥â § ¢à¥¬ï (n lg n) ¢
åã¤è¥¬ á«ãç ¥.
‚ £« ¢¥ 8 áâநâáï ¤à㣮© «£®à¨â¬, ­ §ë¢ ¥¬ë© "¡ëáâன á®àâ¨à®¢ª®©" (quicksort). ‚ åã¤è¥¬ á«ãç ¥ ®­ âॡã¥â ¢à¥¬¥­¨ (n2),
­® ¢ á।­¥¬ | «¨èì (n lg n), ¨ ­ ¯à ªâ¨ª¥ ®­ ®¡ëç­® ¡ëáâ॥
á®àâ¨à®¢ª¨ á ¯®¬®éìî ªãç¨ (¥£® ¢­ãâ७­¨© 横« ¯à®áâ, ¯®í⮬ã
ª®­áâ ­â ¢ ᨬ¯â®â¨ç¥áª®© ®æ¥­ª¥ ¬¥­ìè¥).
‚ᥠí⨠«£®à¨â¬ë (á®àâ¨à®¢ª¨ ¢áâ ¢ª ¬¨, ᫨ﭨ¥¬, á ¯®¬®éìî
ªãç¨ ¨ ¡ëáâà ï á®àâ¨à®¢ª ) ¨á¯®«ì§ãîâ ⮫쪮 ¯®¯ à­ë¥ áà ¢­¥­¨ï ®¡ê¥ªâ®¢, ­® ­¥ ¨å ¢­ãâ७­îî áâàãªâãàã. ‚ £« ¢¥ 9 ¬ë
¯®ª §ë¢ ¥¬, çâ® «î¡ ï á®àâ¨à®¢ª â ª®£® ¢¨¤ ¢ åã¤è¥¬ á«ãç ¥
âॡã¥â ¢à¥¬¥­¨ (n lg n), ¢¢¥¤ï ¯®¤å®¤ïéãî ä®à¬ «ì­ãî ¬®¤¥«ì
(à §à¥è î騥 ¤¥à¥¢ìï). ’¥¬ á ¬ë¬ áâ ­®¢¨âáï ïá­ë¬, çâ® á®àâ¨à®¢ª¨ ᫨ﭨ¥¬ ¨ á ¯®¬®éìî ªãç¨ á¨¬¯â®â¨ç¥áª¨ ®¯â¨¬ «ì­ë.
Ž¤­ ª® íâ ­¨¦­ïï ®æ¥­ª ­¥ à á¯à®áâà ­ï¥âáï ­ «£®à¨â¬ë,
¨á¯®«ì§ãî騥 ¢­ãâ७­îî áâàãªâãàã ¤ ­­ëå. ‚ £« ¢¥ 9 à áᬠâਢ ¥âáï ­¥áª®«ìª® ¯à¨¬¥à®¢ â ª®£® த . ‘®àâ¨à®¢ª ¯®¤áçñ⮬
(counting sort) ¯®§¢®«ï¥â ®âá®àâ¨à®¢ âì n 楫ëå ç¨á¥« ¢ ¤¨ ¯ §®­¥ ®â 1 ¤® k § ¢à¥¬ï O(n + k), ¨á¯®«ì§ãï á®àâ¨àã¥¬ë¥ ç¨á« ª ª
¨­¤¥ªáë ¢ ¬ áᨢ¥ à §¬¥à k. …᫨ k = O(n), ¢à¥¬ï á®àâ¨à®¢ª¨
áâ ­®¢¨âáï ¯à®¯®à樮­ «ì­ë¬ à §¬¥àã ¬ áᨢ . ®¤á⢥­­ë© «£®à¨â¬, ­ §ë¢ ¥¬ë© "æ¨ä஢®© á®àâ¨à®¢ª®©", ¯à¨¬¥­ï¥â á室­ë©
¯à¨ñ¬ ¯®à §à來®, ¨ ¯®§¢®«ï¥â ®âá®àâ¨à®¢ âì n 楫ëå ç¨á¥«, ª ¦¤®¥ ¨§ ª®â®àëå ¨¬¥¥â d à §à冷¢ ¢ k-¨ç­®© á¨á⥬¥ áç¨á«¥­¨ï, § ¢à¥¬ï O(d(n + k)). …᫨ áç¨â âì, çâ® d ¯®áâ®ï­­®, k ¥áâì O(n), â®
®¡é¥¥ ¢à¥¬ï ¥áâì O(n). ’à¥â¨© «£®à¨â¬ â ª®£® த , á®àâ¨à®¢ª ¢ëçñà¯ë¢ ­¨¥¬, ¯à¥¤¯®« £ ¥â, çâ® á®àâ¨àã¥¬ë¥ ç¨á« à ¢­®¬¥à­®
à á¯à¥¤¥«¥­ë ­ ®â१ª¥ ¨ ­¥§ ¢¨á¨¬ë, ¨ ¢ á।­¥¬ âॡã¥â O(n)
¤¥©á⢨© ¤«ï n ç¨á¥«.
— áâì II ‘®àâ¨à®¢ª ¨ ¯®à浪®¢ë¥ áâ â¨á⨪¨
135
®à浪®¢ë¥ áâ â¨á⨪¨
…᫨ ­ ¬ ­ ¤® ­ ©â¨ i-© ¯® ¢¥«¨ç¨­¥ í«¥¬¥­â ¬ áᨢ , ¬®¦­®
á­ ç « ®âá®àâ¨à®¢ âì ¬ áᨢ, çâ® âॡã¥â ¢à¥¬¥­¨ (n lg n), ¥á«¨
­¥ ¯®«ì§®¢ âìáï ¢­ãâ७­¥© áâàãªâãன í«¥¬¥­â®¢ (£« ¢ 9). ®
¯à¨ í⮬ ¢ë¯®«­ï¥âáï «¨è­ïï à ¡®â (á®àâ¨à®¢ª ®áâ «ì­ëå í«¥¬¥­â®¢), ¨ ¬®¦­® ¯®áâநâì ¡®«¥¥ íä䥪⨢­ë¥ «£®à¨â¬ë ¤«ï
§ ¤ ç¨ ®âë᪠­¨ï i-£® ¯® ¢¥«¨ç¨­¥ í«¥¬¥­â (ª®â®àãî ­ §ë¢ îâ
â ª¦¥ § ¤ 祩 ® ¯®à浪®¢ëå áâ â¨á⨪ å). ‚ £« ¢¥ 10 ¯à¨¢®¤ïâáï
¤¢ â ª¨å «£®à¨â¬ : ®¤¨­ âॡã¥â ¢à¥¬¥­¨ O(n2) ¢ åã¤è¥¬ á«ãç ¥
¨ O(n) ¢ á।­¥¬; ¤à㣮©, ¡®«¥¥ á«®¦­ë©, ®¡å®¤¨âáï ¢à¥¬¥­¥¬ O(n)
¢ åã¤è¥¬ á«ãç ¥.
ˆá¯®«ì§ã¥¬ë¥ ᢥ¤¥­¨ï ¨§ ¬ ⥬ ⨪¨
®«ìè ï ç áâì ¬ â¥à¨ « £« ¢ 7{10 ¤®áâ㯭 ç¨â ⥫î á ¬¨­¨¬ «ì­®© ¬ ⥬ â¨ç¥áª®© ¯®¤£®â®¢ª®©. Ž¤­ ª® ¢¥à®ïâ­®áâ­ë© ­ «¨§ «£®à¨â¬®¢ (¡ëáâன á®àâ¨à®¢ª¨, á®àâ¨à®¢ª¨ ¢ëçñà¯ë¢ ­¨¥¬
¨ ®âë᪠­¨ï i-£® ¯® ¢¥«¨ç¨­¥ í«¥¬¥­â ) âॡã¥â §­ ª®¬á⢠á ⥮ਥ© ¢¥à®ïâ­®á⥩ (£« ¢ 6). „®¡ ¢¨¬, çâ® «£®à¨â¬ ®âë᪠­¨ï
i-£® í«¥¬¥­â § «¨­¥©­®¥ ¢à¥¬ï (¢ åã¤è¥¬ á«ãç ¥) ¡®«¥¥ á«®¦¥­,
祬 ¤à㣨¥ «£®à¨â¬ë í⮩ £« ¢ë.
7
‘®àâ¨à®¢ª á ¯®¬®éìî ªãç¨
‚ í⮩ £« ¢¥ à áᬮâ७ «£®à¨â¬ á®àâ¨à®¢ª¨ á ¯®¬®éìî ªãç¨
(heapsort). Š ª ¨ «£®à¨â¬ á®àâ¨à®¢ª¨ ᫨ﭨ¥¬, ®­ âॡã¥â ¢à¥¬¥­¨ O(n lg n) ¤«ï á®àâ¨à®¢ª¨ n ®¡ê¥ªâ®¢, ­® ®¡å®¤¨âáï ¤®¯®«­¨â¥«ì­®© ¯ ¬ïâìî à §¬¥à O(1) (¢¬¥áâ® O(n) ¤«ï á®àâ¨à®¢ª¨ ᫨ﭨ¥¬). ’ ª¨¬ ®¡à §®¬, íâ®â «£®à¨â¬ á®ç¥â ¥â ¯à¥¨¬ãé¥á⢠¤¢ãå
à ­¥¥ à áᬮâ७­ëå «£®à¨â¬®¢ | á®àâ¨à®¢ª¨ ᫨ﭨ¥¬ ¨ á®àâ¨à®¢ª¨ ¢áâ ¢ª ¬¨.
‘âàãªâãà ¤ ­­ëå, ª®â®àãî ¨á¯®«ì§ã¥â «£®à¨â¬ (®­ ­ §ë¢ ¥âáï "¤¢®¨ç­®© ªã祩") ®ª §ë¢ ¥âáï ¯®«¥§­®© ¨ ¢ ¤à㣨å á¨âã æ¨ïå. ‚ ç áâ­®áâ¨, ­ ¥ñ ¡ §¥ ¬®¦­® íä䥪⨢­® ®à£ ­¨§®¢ âì
®ç¥à¥¤ì á ¯à¨®à¨â¥â ¬¨ (á¬. à §¤. 7.5). ‚ á«¥¤ãîé¨å £« ¢ å ­ ¬
¢áâà¥âïâáï «£®à¨â¬ë, ¨á¯®«ì§ãî騥 á室­ë¥ áâàãªâãàë ¤ ­­ëå
(¡¨­®¬¨ «ì­ë¥ ªãç¨, 䨡®­ ç稥¢ë ªãç¨).
’¥à¬¨­ "ªãç " ¨­®£¤ ¨á¯®«ì§ãîâ ¢ ¤à㣮¬ á¬ëá«¥ (®¡« áâì ¯ ¬ïâ¨, £¤¥ ¤ ­­ë¥ à §¬¥é îâáï á ¯à¨¬¥­¥­¨¥¬ ¢â®¬ â¨ç¥áª®© "
ᡮન ¬ãá®à " | ­ ¯à¨¬¥à, ¢ ï§ëª¥ Lisp), ­® ¬ë í⮣® ¤¥« âì ­¥
¡ã¤¥¬.
7.1 Šãç¨
„¢®¨ç­®© ªã祩 (binary heap) ­ §ë¢ îâ ¬ áᨢ á ®¯à¥¤¥«ñ­­ë¬¨
᢮©á⢠¬¨ 㯮à冷祭­®áâ¨, —⮡ë áä®à¬ã«¨à®¢ âì í⨠᢮©á⢠,
¡ã¤¥¬ à áᬠâਢ âì ¬ áᨢ ª ª ¤¢®¨ç­®¥ ¤¥à¥¢® (à¨á. 7.1). Š ¦¤ ï ¢¥à設 ¤¥à¥¢ ᮮ⢥âáâ¢ã¥â í«¥¬¥­âã ¬ áᨢ . …᫨ ¢¥à設 ¨¬¥¥â ¨­¤¥ªá i, â® ¥ñ த¨â¥«ì ¨¬¥¥â ¨­¤¥ªá bi=2c (¢¥à設 á ¨­¤¥ªá®¬ 1 ï¥âáï ª®à­¥¬), ¥ñ ¤¥â¨ | ¨­¤¥ªáë 2i ¨ 2i + 1. ã¤¥¬ áç¨â âì, çâ® ªãç ¬®¦¥â ­¥ § ­¨¬ âì ¢á¥£® ¬ áᨢ ¨ åà ­¨âì
¬ áᨢ A, ¥£® ¤«¨­ã length[A] ¨ á¯¥æ¨ «ì­ë© ¯ à ¬¥âà heap-size[A]
(à §¬¥à ªãç¨), ¯à¨çñ¬ heap-size[A] 6 length[A]. Šãç á®á⮨⠨§ í«¥¬¥­â®¢ A[1]; : : :; A[heap-size[A]]. „¢¨¦¥­¨¥ ¯® ¤¥à¥¢ã ®áãé¥á⢫ï¥âáï ¯à®æ¥¤ãà ¬¨
Šãç¨
137
¨áã­®ª 7.1 Šãçã ¬®¦­® à áᬠâਢ âì ª ª ¤¥à¥¢® ( ) ¨«¨ ª ª ¬ áᨢ (¡).
‚­ãâਠ¢¥àè¨­ë ¯®ª § ­® ¥ñ §­ 祭¨¥. Žª®«® ¢¥àè¨­ë ¯®ª § ­ ¥ñ ¨­¤¥ªá ¢
¬ áᨢ¥.
Parent(i)
return bi=2c
Left(i)
return 2i
Right(i)
return 2i + 1
«¥¬¥­â A[1] ï¥âáï ª®à­¥¬ ¤¥à¥¢ .
‚ ¡®«ì設á⢥ ª®¬¯ìîâ¥à®¢ ¤«ï ¢ë¯®«­¥­¨ï ¯à®æ¥¤ãà Left ¨
Parent ¬®¦­® ¨á¯®«ì§®¢ âì ª®¬ ­¤ë «¥¢®£® ¨ ¯à ¢®£® ᤢ¨£ (Left, Parent); Right âॡã¥â «¥¢®£® ᤢ¨£ , ¯®á«¥ ª®â®à®£® ¢
¬« ¤è¨© à §àï¤ ¯®¬¥é ¥âáï ¥¤¨­¨æ .
«¥¬¥­âë, åà ­ï騥áï ¢ ªãç¥, ¤®«¦­ë ®¡« ¤ âì ®á­®¢­ë¬ ᢮©á⢮¬ ªãç¨ (heap property): ¤«ï ª ¦¤®© ¢¥à設ë i, ªà®¬¥ ª®à­ï (â. ¥.
¯à¨ 2 6 i 6 heap-size[A]),
A[Parent(i)] > A[i]:
(7.1)
Žâáî¤ á«¥¤ã¥â, çâ® §­ 祭¨¥ ¯®â®¬ª ­¥ ¯à¥¢®á室¨â §­ 祭¨ï
¯à¥¤ª . ’ ª¨¬ ®¡à §®¬, ­ ¨¡®«ì訩 í«¥¬¥­â ¤¥à¥¢ (¨«¨ «î¡®£®
¯®¤¤¥à¥¢ ) ­ 室¨âáï ¢ ª®à­¥¢®© ¢¥à設¥ ¤¥à¥¢ (í⮣® ¯®¤¤¥à¥¢ ).
‚ëá®â®© (height) ¢¥àè¨­ë ¤¥à¥¢ ­ §ë¢ ¥âáï ¢ëá®â ¯®¤¤¥à¥¢ á
ª®à­¥¬ ¢ í⮩ ¢¥à設¥ (ç¨á«® àñ¡¥à ¢ á ¬®¬ ¤«¨­­®¬ ¯ãâ¨ á ­ ç «®¬ ¢ í⮩ ¢¥à設¥ ¢­¨§ ¯® ¤¥à¥¢ã ª «¨áâã). ‚ëá®â ¤¥à¥¢ , â ª¨¬
®¡à §®¬, ᮢ¯ ¤ ¥â á ¢ëá®â®© ¥£® ª®à­ï. ‚ ¤¥à¥¢¥, á®áâ ¢«ïî饬
ªãçã, ¢á¥ ã஢­¨ (ªà®¬¥, ¡ëâì ¬®¦¥â, ¯®á«¥¤­¥£®), § ¯®«­¥­ë ¯®«­®áâìî. ®í⮬㠢ëá®â í⮣® ¤¥à¥¢ à ¢­ (lg n), £¤¥ n | ç¨á«® í«¥¬¥­â®¢ ¢ ªãç¥ (á¬. ã¯à. 7.1-2). Š ª ¬ë 㢨¤¨¬ ­¨¦¥, ¢à¥¬ï
à ¡®âë ®á­®¢­ëå ®¯¥à 権 ­ ¤ ªã祩 ¯à®¯®à樮­ «ì­® ¢ëá®â¥ ¤¥à¥¢ ¨, á«¥¤®¢ ⥫쭮, á®áâ ¢«ï¥â O(lg n). Žáâ ¢è ïáï ç áâì £« ¢ë
¯®á¢ï饭 ­ «¨§ã íâ¨å ®¯¥à 権 ¨ ¯à¨¬¥­¥­¨î ªãç¨ ¢ § ¤ ç å
138
ƒ« ¢ 7 ‘®àâ¨à®¢ª á ¯®¬®éìî ªãç¨
á®àâ¨à®¢ª¨ ¨ ¬®¤¥«¨à®¢ ­¨ï ®ç¥à¥¤¨ á ¯à¨®à¨â¥â ¬¨. ¥à¥ç¨á«¨¬
®á­®¢­ë¥ ®¯¥à 樨 ­ ¤ ªã祩:
à®æ¥¤ãà Heapify ¯®§¢®«ï¥â ¯®¤¤¥à¦¨¢ âì ®á­®¢­®¥ ᢮©á⢮ (7.1). ‚६ï à ¡®âë á®áâ ¢«ï¥â O(lg n).
à®æ¥¤ãà Build-Heap áâந⠪ãçã ¨§ ¨á室­®£® (­¥®âá®àâ¨à®¢ ­­®£®) ¬ áᨢ . ‚६ï à ¡®âë O(n).
à®æ¥¤ãà Heapsort á®àâ¨àã¥â ¬ áᨢ, ­¥ ¨á¯®«ì§ãï ¤®¯®«­¨â¥«ì­®© ¯ ¬ïâ¨. ‚६ï à ¡®âë O(n lg n).
à®æ¥¤ãàë Extract-Max (¢§ï⨥ ­ ¨¡®«ì襣®) ¨ Insert (¤®¡ ¢«¥­¨¥ í«¥¬¥­â ) ¨á¯®«ì§ãîâáï ¯à¨ ¬®¤¥«¨à®¢ ­¨¨ ®ç¥à¥¤¨ á ¯à¨®à¨â¥â ¬¨ ­ ¡ §¥ ªãç¨. ‚६ï à ¡®âë ®¡¥¨å ¯à®æ¥¤ãà á®áâ ¢«ï¥â
O(lg n).
“¯à ¦­¥­¨ï
ãáâì ªãç ¨¬¥¥â ¢ëá®âã h. ‘ª®«ìª® í«¥¬¥­â®¢ ¬®¦¥â ¢ ­¥©
¡ëâì? (“ª ¦¨â¥ ¬ ªá¨¬ «ì­®¥ ¨ ¬¨­¨¬ «ì­®¥ §­ 祭¨ï.)
7.1-2 „®ª ¦¨â¥, çâ® ªãç ¨§ n í«¥¬¥­â®¢ ¨¬¥¥â ¢ëá®âã blg nc.
7.1-3 „®ª ¦¨â¥, çâ® ¯à¨ ¢ë¯®«­¥­¨¨ ®á­®¢­®£® ᢮©á⢠ªãç¨
ª®à­¥¢ ï ¢¥à設 «î¡®£® ¯®¤¤¥à¥¢ ï¥âáï ­ ¨¡®«ì襩 ¢ í⮬
¯®¤¤¥à¥¢¥.
7.1-4 ƒ¤¥ ¬®¦¥â ­ 室¨âìáï ­ ¨¬¥­ì訩 í«¥¬¥­â ªãç¨, ¥á«¨ ¢á¥
¥ñ í«¥¬¥­âë à §«¨ç­ë?
7.1-5 ãáâì ¬ áᨢ ®âá®àâ¨à®¢ ­ ¢ ®¡à â­®¬ ¯®à浪¥ (¯¥à¢ë©
í«¥¬¥­â | ­ ¨¡®«ì訩). Ÿ¢«ï¥âáï «¨ â ª®© ¬ áᨢ ªã祩?
7.1-6 Ÿ¢«ï¥âáï «¨ ªã祩 ¬ áᨢ h23; 17; 14; 6; 13; 10; 1; 5; 7; 12i?
7.1-1
7.2 ‘®åà ­¥­¨¥ ®á­®¢­®£® ᢮©á⢠ªãç¨
à®æ¥¤ãà Heapify | ¢ ¦­®¥ á।á⢮ à ¡®âë á ªã祩. …ñ ¯ à ¬¥âà ¬¨ ïîâáï ¬ áᨢ A ¨ ¨­¤¥ªá i. à¥¤¯®« £ ¥âáï, çâ® ¯®¤¤¥à¥¢ìï á ª®à­ï¬¨ Left(i) ¨ Right(i) 㦥 ®¡« ¤ î⠮᭮¢­ë¬ ᢮©á⢮¬. à®æ¥¤ãà ¯¥à¥áâ ¢«ï¥â í«¥¬¥­âë ¯®¤¤¥à¥¢ á ¢¥à設®© i,
¯®á«¥ 祣® ®­® ®¡« ¤ ¥â ®á­®¢­ë¬ ᢮©á⢮¬. ˆ¤¥ï ¯à®áâ : ¥á«¨
í⮠᢮©á⢮ ­¥ ¢ë¯®«­¥­® ¤«ï ¢¥à設ë i, â® ¥ñ á«¥¤ã¥â ¯®¬¥­ïâì
á ¡®«ì訬 ¨§ ¥ñ ¤¥â¥© ¨ â. ¤., ¯®ª í«¥¬¥­â A[i] ­¥ "¯®¤£à㧨âáï"
¤® ­ã¦­®£® ¬¥áâ .
‘®åà ­¥­¨¥ ®á­®¢­®£® ᢮©á⢠ªãç¨
139
¨áã­®ª 7.2  ¡®â ¯à®æ¥¤ãàë Heapify(A; 2) ¯à¨ heap-size[A] = 10. ( )  ç «ì­®¥ á®áâ®ï­¨¥ ªãç¨. ‚ ¢¥à設¥ i = 2 ®á­®¢­®¥ ᢮©á⢮ ­ àã襭®. —⮡ë
¢®ááâ ­®¢¨âì ¥£®, ­¥®¡å®¤¨¬® ¯®¬¥­ïâì A[2] ¨ A[4]. ®á«¥ í⮣® (¡) ®á­®¢­®¥
᢮©á⢮ ­ àãè ¥âáï ¢ ¢¥à設¥ á ¨­¤¥ªá®¬ 4. ¥ªãàᨢ­ë© ¢ë§®¢ ¯à®æ¥¤ãàë
Heapify(A; 4) ¢®ááâ ­ ¢«¨¢ ¥â ®á­®¢­®¥ ᢮©á⢮ ¢ ¢¥à設¥ á ¨­¤¥ªá®¬ 4 ¯ãâñ¬
¯¥à¥áâ ­®¢ª¨ A[4] $ A[9] (¢). ®á«¥ í⮣® ®á­®¢­®¥ ᢮©á⢮ ¢ë¯®«­¥­® ¤«ï ¢á¥å
¢¥à設, â ª çâ® ¯à®æ¥¤ãà Heapify(A; 9) 㦥 ­¨ç¥£® ­¥ ¤¥« ¥â.
Heapify(A; i)
1 l Left(i)
2 r Right(i)
3 if l 6 heap-size[A] ¨ A[l] > A[i]
4
then largest l
5
else largest i
6 if r 6 heap-size[A] ¨ A[r] > A[largest]
7
then largest r
8 if largest 6= i
9
then ®¡¬¥­ïâì A[i] $ A[largest]
10
Heapify(A; largest)
 ¡®â ¯à®æ¥¤ãàë Heapify ¯®ª § ­ ­ à¨á. 7.2. ‚ áâப å 3{7
¢ ¯¥à¥¬¥­­ãî largest ¯®¬¥é ¥âáï ¨­¤¥ªá ­ ¨¡®«ì襣® ¨§ í«¥¬¥­â®¢ A[i], A[Left(i)] ¨ A[Right(i)]. …᫨ largest = i, â® í«¥¬¥­â A[i]
㦥 "¯®£à㧨«áï" ¤® ­ã¦­®£® ¬¥áâ , ¨ à ¡®â ¯à®æ¥¤ãàë § ª®­ç¥­ .
ˆ­ ç¥ ¯à®æ¥¤ãà ¬¥­ï¥â ¬¥áâ ¬¨ A[i] ¨ A[largest] (çâ® ®¡¥á¯¥ç¨¢ ¥â
¢ë¯®«­¥­¨¥ ᢮©á⢠(7.1) ¢ ¢¥à設¥ i, ­® ¢®§¬®¦­®, ­ àãè ¥â íâ®
140
ƒ« ¢ 7 ‘®àâ¨à®¢ª á ¯®¬®éìî ªãç¨
᢮©á⢮ ¢ ¢¥à設¥ largest ) ¨ ४ãàᨢ­® ¢ë§ë¢ ¥â á¥¡ï ¤«ï ¢¥à設ë largest, çâ®¡ë ¨á¯à ¢¨âì ¢®§¬®¦­ë¥ ­ àã襭¨ï.
Žæ¥­¨¬ ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë Heapify.  ª ¦¤®¬ è £¥ âॡã¥âáï ¯à®¨§¢¥á⨠(1) ¤¥©á⢨©, ­¥ áç¨â ï ४ãàᨢ­®£® ¢ë§®¢ .
ãáâì T (n) | ¢à¥¬ï à ¡®âë ¤«ï ¯®¤¤¥à¥¢ , ᮤ¥à¦ 饣® n í«¥¬¥­â®¢. …᫨ ¯®¤¤¥à¥¢® á ª®à­¥¬ i á®á⮨⠨§ n í«¥¬¥­â®¢, â® ¯®¤¤¥à¥¢ìï á ª®à­ï¬¨ Left(i) ¨ Right(i) ᮤ¥à¦ â ­¥ ¡®«¥¥ 祬 ¯® 2n=3
í«¥¬¥­â®¢ ª ¦¤®¥ (­ ¨åã¤è¨© á«ãç © | ª®£¤ ¯®á«¥¤­¨© ã஢¥­ì
¢ ¯®¤¤¥à¥¢¥ § ¯®«­¥­ ­ ¯®«®¢¨­ã). ’ ª¨¬ ®¡à §®¬,
T (n) 6 T (2n=3) + (1)
ˆ§ ⥮६ë 4.1 (á«ãç © 2) ¯®«ãç ¥¬, çâ® T (n) = O(lg n). âã ¦¥
®æ¥­ªã ¬®¦­® ¯®«ãç¨âì â ª: ­ ª ¦¤®¬ è £¥ ¬ë á¯ã᪠¥¬áï ¯®
¤¥à¥¢ã ­ ®¤¨­ ã஢¥­ì, ¢ëá®â ¤¥à¥¢ ¥áâì O(lg n).
“¯à ¦­¥­¨ï
7.2-1
®ª ¦¨â¥, á«¥¤ãï ®¡à §æã à¨á. 7.2, ª ª à ¡®â ¥â ¯à®æ¥¤ãà Heapify(A; 3) ¤«ï ¬ áᨢ h27; 17; 3; 16; 13; 10; 1; 5; 7; 12; 4; 8; 9; 0i.
ãáâì í«¥¬¥­â A[i] ¡®«ìè¥, 祬 ¥£® ¤¥â¨. Š ª®¢ ¡ã¤¥â १ã«ìâ ⠢맮¢ ¯à®æ¥¤ãàë Heapify(A; i)?
7.2-3 ãáâì i > heap-size[A]=2. Š ª®¢ ¡ã¤¥â १ã«ìâ ⠢맮¢ ¯à®æ¥¤ãàë Heapify(A; i)?
7.2-4 ˆ§¬¥­¨â¥ ¯à®æ¥¤ãàã Heapify, § ¬¥­¨¢ ४ãàá¨î 横«®¬.
(¥ª®â®àë¥ ª®¬¯¨«ïâ®àë ¯à¨ í⮬ ¯®à®¦¤ îâ ¡®«¥¥ íä䥪⨢­ë©
ª®¤.)
7.2-5 „®ª ¦¨â¥, çâ® ­ ¨¡®«ì襥 ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë
Heapify ¤«ï ªãç¨ ¨§ n í«¥¬¥­â®¢ à ¢­® (lg n). (“ª § ­¨¥: ¯à¨¢¥¤¨â¥ ¯à¨¬¥à, ª®£¤ ¯à®æ¥¤ãà ¢ë§ë¢ ¥âáï ¤«ï ª ¦¤®© ¢¥à設ë
­ ¯ã⨠®â ª®à­ï ª «¨áâã).
7.2-2
7.3 ®áâ஥­¨¥ ªãç¨
ãáâì ¤ ­ ¬ áᨢ A[1 : :n], ª®â®àë© ¬ë å®â¨¬ ¯à¥¢à â¨âì ¢ ªãçã,
¯¥à¥áâ ¢¨¢ ¥£® í«¥¬¥­âë. „«ï í⮣® ¬®¦­® ¨á¯®«ì§®¢ âì ¯à®æ¥¤ãàã
Heapify, ¯à¨¬¥­ïï ¥ñ ¯® ®ç¥à¥¤¨ ª® ¢á¥¬ ¢¥à設 ¬, ­ 稭 ï á ­¨¦­¨å. ®áª®«ìªã ¢¥à設ë á ­®¬¥à ¬¨ bn=2c + 1; : : :; n ïîâáï «¨áâìﬨ, ¯®¤¤¥à¥¢ìï á í⨬¨ ¢¥à設 ¬¨ 㤮¢«¥â¢®àïî⠮᭮¢­®¬ã
᢮©áâ¢ã. „«ï ª ¦¤®© ¨§ ®áâ ¢è¨åáï ¢¥à設, ¢ ¯®à浪¥ ã¡ë¢ ­¨ï
¨­¤¥ªá®¢, ¬ë ¯à¨¬¥­ï¥¬ ¯à®æ¥¤ãàã Heapify. ®à冷ª ®¡à ¡®âª¨
¢¥à設 £ à ­â¨àã¥â, çâ® ª ¦¤ë© à § ãá«®¢¨ï ¢ë§®¢ ¯à®æ¥¤ãàë
®áâ஥­¨¥ ªãç¨
141
(¢ë¯®«­¥­¨¥ ®á­®¢­®£® ᢮©á⢠¤«ï ¯®¤¤¥à¥¢ì¥¢) ¡ã¤ã⠢믮«­¥­ë.
Build-Heap (A)
1 heap-size[A] length[A]
2 for i blength[A]=2c downto 1
3
do Heapify(A; i)
à¨¬¥à à ¡®âë ¯à®æ¥¤ãàë Build-Heap ¯®ª § ­ ­ à¨á. 7.3.
Ÿá­®, çâ® ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë Build-Heap ­¥ ¯à¥¢ëè ¥â
O(n lg n). „¥©á⢨⥫쭮, ¯à®æ¥¤ãà Heapify ¢ë§ë¢ ¥âáï O(n) à §,
ª ¦¤®¥ ¥ñ ¢ë¯®«­¥­¨¥ âॡã¥â ¢à¥¬¥­¨ O(lg n). Ž¤­ ª® íâã
®æ¥­ªã ¬®¦­® ã«ãçè¨âì, 祬 ¬ë ᥩç á ¨ § ©¬ñ¬áï.
„¥«® ¢ ⮬, çâ® ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë Heapify § ¢¨á¨â ®â
¢ëá®âë ¢¥à設ë, ¤«ï ª®â®à®© ®­ ¢ë§ë¢ ¥âáï (¨ ¯à®¯®à樮­ «ì­®
í⮩ ¢ëá®â¥). ®áª®«ìªã ç¨á«® ¢¥à設 ¢ëá®âë h ¢ ªãç¥ ¨§ n í«¥¬¥­â®¢ ­¥ ¯à¥¢ëè ¥â dn=2h+1e (á¬. ã¯à. 7.3-3), ¢ëá®â ¢á¥ ªãç¨
­¥ ¯à¥¢ëè ¥â blg nc (ã¯à. 7.1-2), ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë Build-
Heap ­¥ ¯à¥¢ëè ¥â
bX
lg nc l
h=0
n
m
2h+1
0
O(h) = O @n
bX
lg nc
h=0
1
hA
2h
(7.2)
®« £ ï x = 1=2 ¢ ä®à¬ã«¥ (3.6), ¯®«ãç ¥¬ ¢¥àå­îî ®æ¥­ªã ¤«ï
áã¬¬ë ¢ ¯à ¢®© ç áâ¨:
1
X
h = 1=2 = 2:
h (1 ; 1=2)2
h=0 2
’ ª¨¬ ®¡à §®¬, ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë Build-Heap á®áâ ¢«ï¥â
O n
1
X
h=0
!
h = O(n):
2h
“¯à ¦­¥­¨ï
7.3-1
®ª ¦¨â¥, á«¥¤ãï ®¡à §æã à¨á. 7.3, ª ª à ¡®â ¥â ¯à®æ¥¤ãà Build-Heap ¤«ï ¬ áᨢ A = h5; 3; 17; 10; 84; 19; 6; 22; 9i.
®ç¥¬ã ¢ ¯à®æ¥¤ãॠBuild-Heap áãé¥á⢥­­®, çâ® ¯ à ¬¥âà i ¯à®¡¥£ ¥â §­ 祭¨ï ®â blength[A]=2c ¤® 1 ( ­¥ ­ ®¡®à®â)?
7.3-3 „®ª ¦¨â¥, çâ® ªãç ¨§ n í«¥¬¥­â®¢ ᮤ¥à¦¨â ­¥ ¡®«¥¥
dn=2h+1e ¢¥à設 ¢ëá®âë h.
7.3-2
142
ƒ« ¢ 7 ‘®àâ¨à®¢ª á ¯®¬®éìî ªãç¨
¨áã­®ª 7.3  ¡®â ¯à®æ¥¤ãàë Build-Heap. ®ª § ­® á®áâ®ï­¨¥ ¤ ­­ëå ¯¥à¥¤
ª ¦¤ë¬ ¢ë§®¢®¬ ¯à®æ¥¤ãàë Heapify ¢ áâப¥ 3.
€«£®à¨â¬ á®àâ¨à®¢ª¨ á ¯®¬®éìî ªãç¨
143
7.4 €«£®à¨â¬ á®àâ¨à®¢ª¨ á ¯®¬®éìî ªãç¨
€«£®à¨â¬ á®àâ¨à®¢ª¨ á ¯®¬®éìî ªãç¨ á®á⮨⠨§ ¤¢ãå ç á⥩.
‘­ ç « ¢ë§ë¢ ¥âáï ¯à®æ¥¤ãà Build-Heap, ¯®á«¥ ¢ë¯®«­¥­¨ï ª®â®à®© ¬ áᨢ ï¥âáï ªã祩. ˆ¤¥ï ¢â®à®© ç á⨠¯à®áâ : ¬ ªá¨¬ «ì­ë© í«¥¬¥­â ¬ áᨢ ⥯¥àì ­ 室¨âáï ¢ ª®à­¥ ¤¥à¥¢ (A[1]).
…£® á«¥¤ã¥â ¯®¬¥­ïâì c A[n], 㬥­ìè¨âì à §¬¥à ªãç¨ ­ 1 ¨ ¢®ááâ ­®¢¨âì ®á­®¢­®¥ ᢮©á⢮ ¢ ª®à­¥¢®© ¢¥à設¥ (¯®áª®«ìªã ¯®¤¤¥à¥¢ìï á ª®à­ï¬¨ Left(1) ¨ Right(1) ­¥ ãâà ⨫¨ ®á­®¢­®£® ᢮©á⢠ªãç¨, íâ® ¬®¦­® ᤥ« âì á ¯®¬®éìî ¯à®æ¥¤ãàë Heapify). ®á«¥
í⮣® ¢ ª®à­¥ ¡ã¤¥â ­ 室¨âìáï ¬ ªá¨¬ «ì­ë© ¨§ ®áâ ¢è¨åáï í«¥¬¥­â®¢. ’ ª ¤¥« ¥âáï ¤® â¥å ¯®à, ¯®ª ¢ ªãç¥ ­¥ ®áâ ­¥âáï ¢á¥£®
®¤¨­ í«¥¬¥­â.
Heapsort(A)
1 Build-Heap(A)
2 for i length[A] downto 2
3
do ¯®¬¥­ïâì A[1] $ A[i]
4
heap-size[A] heap-size[A] ; 1
5
Heapify(A; 1)
 ¡®â ¢â®à®© ç á⨠«£®à¨â¬ ¯®ª § ­ ­ à¨á. 7.4. ˆ§®¡à ¦¥­ë
á®áâ®ï­¨ï ªãç¨ ¯¥à¥¤ ª ¦¤ë¬ ¢ë¯®«­¥­¨¥¬ 横« for (áâப 2).
‚६ï à ¡®âë ¯à®æ¥¤ãàë Heapsort á®áâ ¢«ï¥â O(n lg n). „¥©á⢨⥫쭮, ¯¥à¢ ï ç áâì (¯®áâ஥­¨¥ ªãç¨) âॡã¥â ¢à¥¬¥­¨ O(n),
ª ¦¤®¥ ¨§ n ; 1 ¢ë¯®«­¥­¨© 横« for § ­¨¬ ¥â ¢à¥¬ï O(lg n).
“¯à ¦­¥­¨ï
7.4-1
®ª ¦¨â¥, á«¥¤ãï ®¡à §æã à¨á. 7.4, ª ª à ¡®â ¥â ¯à®æ¥¤ãà Heapsort ¤«ï ¬ áᨢ A = h5; 13; 2; 25; 7; 17; 20; 8; 4i.
ãáâì ¨á室­ë© ¬ áᨢ A 㦥 ®âá®àâ¨à®¢ ­ ¢ ¯®à浪¥ ¢®§à áâ ­¨ï. Š ª®¢® ¡ã¤¥â ¢à¥¬ï á®àâ¨à®¢ª¨ á ¯®¬®éìî ªãç¨? € ¥á«¨
¬ áᨢ ¡ë« ®âá®àâ¨à®¢ ­ ¢ ¯®à浪¥ ã¡ë¢ ­¨ï?
7.4-3 „®ª ¦¨â¥, çâ® ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë Heapsort á®áâ ¢«ï¥â (n lg n).
7.4-2
7.5 Žç¥à¥¤¨ á ¯à¨®à¨â¥â ¬¨
 ¯à ªâ¨ª¥ «£®à¨â¬ á®àâ¨à®¢ª¨ á ¯®¬®éìî ªãç¨ ­¥ ï¥âáï
á ¬ë¬ ¡ëáâàë¬ | ª ª ¯à ¢¨«®, ¡ëáâà ï á®àâ¨à®¢ª (£«. 8) à ¡®â ¥â ¡ëáâ॥. Ž¤­ ª® á ¬ ªãç ª ª áâàãªâãà ¤ ­­ëå ç áâ® ®ª -
144
ƒ« ¢ 7 ‘®àâ¨à®¢ª á ¯®¬®éìî ªãç¨
¨áã­®ª 7.4  ¡®â ¯à®æ¥¤ãàë Heapsort. ®ª § ­® á®áâ®ï­¨¥ ¬ áᨢ ¯¥à¥¤
ª ¦¤ë¬ ¢ë§®¢®¬ ¯à®æ¥¤ãàë Heapify. ‡ ç¥à­ñ­­ë¥ í«¥¬¥­âë 㦥 ­¥ ¢å®¤ïâ ¢
ªãçã.
§ë¢ ¥âáï ¯®«¥§­®©. ‚ í⮬ à §¤¥«¥ ¬ë à áᬮâਬ ¬®¤¥«¨à®¢ ­¨¥
®ç¥à¥¤¨ á ¯à¨®à¨â¥â ¬¨ ­ ¡ §¥ ªãç¨ | ®¤¨­ ¨§ á ¬ëå ¨§¢¥áâ­ëå
¯à¨¬¥à®¢ ¨á¯®«ì§®¢ ­¨ï ªãç¨.
Žç¥à¥¤ì á ¯à¨®à¨â¥â ¬¨ (priority queue) | íâ® ¬­®¦¥á⢮ S , í«¥¬¥­âë ª®â®à®£® ¬ë ¡ã¤¥¬ áç¨â âì ç¨á« ¬¨.  ¯à ªâ¨ª¥ í«¥¬¥­â ¬¨ ¬­®¦¥á⢠S ïîâáï ¯ àë hkey; i, £¤¥ key | ç¨á«®, ®¯à¥¤¥«ïî饥 ¯à¨®à¨â¥â í«¥¬¥­â ¨ ­ §ë¢ ¥¬®¥ ª«î箬 (key). |
á¢ï§ ­­ ï á ­¨¬ ¨­ä®à¬ æ¨ï; íâ ¨­ä®à¬ æ¨ï åà ­¨âáï à冷¬ á
í«¥¬¥­â®¬ ¨ ¯¥à¥¬¥é ¥âáï ¢¬¥áâ¥ á ­¨¬, ­¥ ¢«¨ïï ­ ¥£® ®¡à ¡®âªã.
‚®§¬®¦­ë á«¥¤ãî騥 ®¯¥à 樨 ­ ¤ ®ç¥à¥¤ìî á ¯à¨®à¨â¥â ¬¨:
Insert(S; x): ¤®¡ ¢«¥­¨¥ í«¥¬¥­â x ª ¬­®¦¥áâ¢ã S ;
Maximum(S ): ­ ¨¡®«ì訩 í«¥¬¥­â ¬­®¦¥á⢠;
Žç¥à¥¤¨ á ¯à¨®à¨â¥â ¬¨
145
Extract-Max(S ): ¨§êï⨥ ¨§ ¬­®¦¥á⢠­ ¨¡®«ì襣® í«¥¬¥­â .
Žç¥à¥¤ì á ¯à¨®à¨â¥â ¬¨ ¬®¦¥â, ­ ¯à¨¬¥à, ¨á¯®«ì§®¢ âìáï ¢ ®¯¥à 樮­­®© á¨á⥬¥ á à §¤¥«¥­¨¥¬ ¢à¥¬¥­¨. à¨ í⮬ åà ­¨âáï ᯨ᮪ § ¤ ­¨© á ¯à¨®à¨â¥â ¬¨; ª ª ⮫쪮 ¢ë¯®«­¥­¨¥ ®ç¥à¥¤­®£®
§ ¤ ­¨ï § ª ­ç¨¢ ¥âáï, ¨§ ®ç¥à¥¤¨ ¢ë¡¨à ¥âáï § ¤ ­¨¥ á ­ ¨¡®«ì訬 ¯à¨®à¨â¥â®¬ (®¯¥à æ¨ï Extract-Max). ®¢ë¥ § ¤ ­¨ï ¤®¡ ¢«ïîâáï ¢ ®ç¥à¥¤ì á ¯®¬®éìî ®¯¥à 樨 Insert.
„à㣮¥ ¯à¨¬¥­¥­¨¥ ⮩ ¦¥ áâàãªâãàë | ã¯à ¢«ï¥¬®¥ ᮡëâ¨ï¬¨
¬®¤¥«¨à®¢ ­¨¥ (event-driven simulation). ‚ ®ç¥à¥¤¨ ­ 室ïâáï ᮡëâ¨ï, ¯à¨®à¨â¥â ®¯à¥¤¥«ï¥âáï ¢à¥¬¥­¥¬, ª®£¤ ᮡë⨥ ¤®«¦­®
¯à®¨§®©â¨.  §ã¬¥¥âáï, ᮡëâ¨ï ¤®«¦­ë ¬®¤¥«¨à®¢ âìáï ¢ ⮬ ¯®à浪¥, ¢ ª®â®à®¬ ®­¨ ¯à®¨á室ïâ. ‚ë¡®à ®ç¥à¥¤­®£® ᮡëâ¨ï ¯à®¨§¢®¤¨âáï á ¯®¬®éìî ®¯¥à 樨 Extract-Min (¯®à冷ª §¤¥áì ®¡à â­ë©), ¤®¡ ¢«¥­¨¥ ᮡë⨩ | á ¯®¬®éìî ®¯¥à 樨 Insert.
Ž¯¨è¥¬ ⥯¥àì ॠ«¨§ æ¨î ®ç¥à¥¤¨ á ¯à¨®à¨â¥â ¬¨. ã¤¥¬ åà ­¨âì í«¥¬¥­âë ¬­®¦¥á⢠¢ ¢¨¤¥ ªãç¨. à¨ í⮬ ¬ ªá¨¬ «ì­ë©
í«¥¬¥­â ­ 室¨âáï ¢ ª®à­¥, â ª çâ® ®¯¥à æ¨ï Maximum âॡã¥â
¢à¥¬¥­¨ (1). —â®¡ë ¨§êïâì ¬ ªá¨¬ «ì­ë© í«¥¬¥­â ¨§ ®ç¥à¥¤¨,
­ã¦­® ¤¥©á⢮¢ âì â ª ¦¥, ª ª ¨ ¯à¨ á®àâ¨à®¢ª¥:
Heap-Extract-Max(A)
1 if heap-size[A] < 1
2 then ®è¨¡ª : "®ç¥à¥¤ì ¯ãáâ "
3 max A[1]
4 A[1] A[heap-size[A]]
5 heap-size[A] heap-size[A] ; 1
6 Heapify(A; 1)
7 return max
‚६ï à ¡®âë á®áâ ¢«ï¥â O(lg n) (¯à®æ¥¤ãà Heapify ¢ë§ë¢ ¥âáï
®¤¨­ à §).
—â®¡ë ¤®¡ ¢¨âì í«¥¬¥­â ª ®ç¥à¥¤¨, ¥£® á«¥¤ã¥â ¤®¡ ¢¨âì ¢ ª®­¥æ
ªãç¨ (ª ª «¨áâ), § ⥬ ¤ âì ¥¬ã "¢á¯«ëâì" ¤® ­ã¦­®£® ¬¥áâ :
Heap-Insert (A; key)
1 heap-size[A] heap-size[A] + 1
2 i heap-size[A]
3 while i > 1 ¨ A[Parent(i)] < key
4
do A[i] A[Parent(i)]
5
i Parent(i)
6 A[i] key
à¨¬¥à à ¡®âë ¯à®æ¥¤ãàë Heap-Insert ¯®ª § ­ ­ à¨á. 7.5.
‚६ï à ¡®âë á®áâ ¢«ï¥â O(lg n), ¯®áª®«ìªã "¯®¤êñ¬" ­®¢®£® «¨áâ § ­¨¬ ¥â ­¥ ¡®«¥¥ lg n è £®¢ (¨­¤¥ªá i ¯®á«¥ ª ¦¤®© ¨â¥à 樨
横« while 㬥­ìè ¥âáï ¯® ªà ©­¥© ¬¥à¥ ¢¤¢®¥).
ˆâ ª, ¢á¥ ®¯¥à 樨 ­ ¤ ®ç¥à¥¤ìî á ¯à¨®à¨â¥â ¬¨ ¨§ n í«¥¬¥­â®¢
146
ƒ« ¢ 7 ‘®àâ¨à®¢ª á ¯®¬®éìî ªãç¨
¨áã­®ª 7.5  ¡®â ¯à®æ¥¤ãàë Heap-Insert. „®¡ ¢«ï¥âáï í«¥¬¥­â á ª«î祢ë¬
§­ 祭¨¥¬ 15 (⥬­ë© ªà㦮ª ®§­ ç ¥â ¬¥áâ® ¤«ï í⮣® í«¥¬¥­â ).
âॡãî⠢६¥­¨ O(lg n).
“¯à ¦­¥­¨ï
®ª ¦¨â¥, á«¥¤ãï ®¡à §æã à¨á. 7.5, ª ª à ¡®â ¥â ¯à®æ¥¤ãà Heap-Insert(A; 3) ¤«ï ªãç¨ A = h15; 13; 9; 5; 12; 8; 7; 4; 0; 6; 2; 1i.
7.5-2 ®ª ¦¨â¥ ­ à¨áã­ª å, ª ª à ¡®â ¥â ¯à®æ¥¤ãà HeapExtract-Max ¤«ï ªãç¨ ¨§ ¯à¥¤ë¤ã饣® ã¯à ¦­¥­¨ï.
7.5-3 Ž¡êïá­¨â¥, ª ª ॠ«¨§®¢ âì ®¡ëç­ãî ®ç¥à¥¤ì (rst-in, rstout) ¨ á⥪ ­ ¡ §¥ ®ç¥à¥¤¨ á ¯à¨®à¨â¥â ¬¨. (Ž¯à¥¤¥«¥­¨ï á¬. ¢
à §¤. 11.1).
7.5-4 ¥ «¨§ã©â¥ ¯à®æ¥¤ãàã Heap-Increase-Key (A; i; k) (㢥«¨ç¥­¨¥ í«¥¬¥­â ), ª®â®à ï 㢥«¨ç¨¢ ¥â í«¥¬¥­â A[i] ¤® k, ¥á«¨ ®­
¡ë« ¬¥­ìè¥ k (A[i] max(A[i]; k)) ¨ ¢®ááâ ­ ¢«¨¢ ¥â ®á­®¢­®¥
᢮©á⢮ ªãç¨. ‚६ï à ¡®âë | O(lg n).
7.5-5 ¥ «¨§ã©â¥ ®¯¥à æ¨î Heap-Delete (A; i) | 㤠«¥­¨¥ í«¥¬¥­â á ¨­¤¥ªá®¬ i ¨§ ªãç¨. ‚६ï à ¡®âë O(lg n).
7.5-1
‡ ¤ ç¨ ª £« ¢¥ 7
147
à¨¤ã¬ ©â¥ «£®à¨â¬, ª®â®àë© ¯®§¢®«ï¥â § ¢à¥¬ï
O(n lg k) ᫨âì k ®âá®àâ¨à®¢ ­­ëå ᯨ᪮¢ ¢ ®¤¨­ ®âá®àâ¨à®¢ ­­ë© ᯨ᮪ (§¤¥áì n | ®¡é¥¥ ç¨á«® í«¥¬¥­â®¢ ¢ ᯨ᪠å).
(“ª § ­¨¥: ¨á¯®«ì§ã©â¥ ªãçã.)
7.5-6
‡ ¤ ç¨
7-1 ®áâ஥­¨¥ ªãç¨ á ¯®¬®éìî ¢áâ ¢®ª
Œ®¦­® ¯®áâநâì ªãçã, ¯®á«¥¤®¢ ⥫쭮 ¤®¡ ¢«ïï í«¥¬¥­âë á
¯®¬®éìî ¯à®æ¥¤ãàë Heap-Insert.  áᬮâਬ á«¥¤ãî騩 «£®à¨â¬:
Build-Heap0 (A)
1 heap-size[A] 1
2 for i 2 to length[A]
3
do Heap-Insert(A; A[i])
. ‡ ¯ãá⨬ ¯à®æ¥¤ãàë Build-Heap ¨ Build-Heap0 ¤«ï ®¤­®£®
¨ ⮣® ¦¥ ¬ áᨢ . ‚ᥣ¤ «¨ ®­¨ ᮧ¤ ¤ãâ ®¤¨­ ª®¢ë¥ ªãç¨? („®ª ¦¨â¥ ¨«¨ ¯à¨¢¥¤¨â¥ ª®­âà¯à¨¬¥à.)
¡. „®ª ¦¨â¥, çâ® ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë Build-Heap0 ¢ åã¤è¥¬ á«ãç ¥ á®áâ ¢«ï¥â (n lg n) (£¤¥ n | ª®«¨ç¥á⢮ í«¥¬¥­â®¢).
7-2  ¡®â á d-¨ç­ë¬¨ ªãç ¬¨
 áᬮâਬ d-¨ç­ãî ªãçã (d-ary heap), ¢ ª®â®à®© ¢¥àè¨­ë ¨¬¥îâ
d ¤¥â¥© ¢¬¥áâ® ¤¢ãå.
. Š ª ¢ë£«ï¤ïâ ¤«ï â ª®© ªãç¨ ¯à®æ¥¤ãàë, ­ «®£¨ç­ë¥
Parent, Left ¨ Right?
¡. Š ª ¢ëá®â d-¨ç­®© ªãç¨ ¨§ n í«¥¬¥­â®¢ ¢ëà ¦ ¥âáï ç¥à¥§ n
¨ d?
¢. ¥ «¨§ã©â¥ ¯à®æ¥¤ãàã Extract-Max. Š ª®¢® ¢à¥¬ï ¥ñ à ¡®âë
(¢ëà §¨â¥ ¥£® ç¥à¥§ n ¨ d)?
£. ¥ «¨§ã©â¥ ¯à®æ¥¤ãàã Insert. Š ª®¢® ¢à¥¬ï ¥ñ à ¡®âë?
¤. ¥ «¨§ã©â¥ ¯à®æ¥¤ãàã Heap-Increase-Key (ã¯à. 7.5-4). Š ª®¢® ¢à¥¬ï ¥ñ à ¡®âë?
‡ ¬¥ç ­¨ï
€«£®à¨â¬ á®àâ¨à®¢ª¨ á ¯®¬®éìî ªãç¨ ¯à¥¤«®¦¨« “¨«ìï¬á [202];
â ¬ ¦¥ ®¯¨á ­ ॠ«¨§ æ¨ï ®ç¥à¥¤¨ á ¯à¨®à¨â¥â ¬¨ ­ ¡ §¥ ªãç¨.
à®æ¥¤ãà Build-Heap ¯à¥¤«®¦¥­ ”«®©¤®¬ [69].
8
ëáâà ï á®àâ¨à®¢ª ‚ í⮩ £« ¢¥ à áᬮâ७ â ª ­ §ë¢ ¥¬ë© «£®à¨â¬ "¡ëáâன á®àâ¨à®¢ª¨". •®âï ¢à¥¬ï ¥£® à ¡®âë ¤«ï ¬ áᨢ ¨§ n ç¨á¥« ¢ åã¤è¥¬ á«ãç ¥ á®áâ ¢«ï¥â (n2), ­ ¯à ªâ¨ª¥ íâ®â «£®à¨â¬ ï¥âáï
®¤­¨¬ ¨§ á ¬ëå ¡ëáâàëå: ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢à¥¬¥­¨ à ¡®âë á®áâ ¢«ï¥â (n lg n), ¯à¨çñ¬ ¬­®¦¨â¥«ì ¯à¨ n lg n ¤®¢®«ì­®
¬ «. Šà®¬¥ ⮣®, ¡ëáâà ï á®àâ¨à®¢ª ­¥ âॡã¥â ¤®¯®«­¨â¥«ì­®©
¯ ¬ï⨠¨ á®åà ­ï¥â íä䥪⨢­®áâì ¤«ï á¨á⥬ á ¢¨àâã «ì­®© ¯ ¬ïâìî.
‚ à §¤¥«¥ 8.1 ®¯¨áë¢ ¥âáï «£®à¨â¬ ¢ 楫®¬ ¨ ¯à®æ¥¤ãà à §¤¥«¥­¨ï ¬ áᨢ ­ ç áâ¨. Žæ¥­ª íä䥪⨢­®á⨠«£®à¨â¬ ¤®¢®«ì­®
á«®¦­ ; ¢ à §¤¥«¥ 8.2 ¯à¨¢®¤ïâáï ¨­âã¨â¨¢­ë¥ ¤®¢®¤ë, áâண¨©
­ «¨§ ®â«®¦¥­ ¤® à §¤¥« 8.4. ‚ à §¤¥«¥ 8.3 ®¯¨á ­ë ¢ ਠ­âë ¡ëáâன á®àâ¨à®¢ª¨, ¨á¯®«ì§ãî騥 £¥­¥à â®à á«ãç ©­ëå ç¨á¥«. à¨
í⮬ ¢à¥¬ï à ¡®âë ¢ åã¤è¥¬ á«ãç ¥ (¯à¨ ­¥ã¤ ç­®¬ á«ãç ©­®¬ ¢ë¡®à¥) á®áâ ¢«ï¥â O(n2), ­® á।­¥¥ ¢à¥¬ï à ¡®âë á®áâ ¢«ï¥â «¨èì
O(n lg n). (ƒ®¢®àï ® á।­¥¬ ¢à¥¬¥­¨, ¬ë ¨¬¥¥¬ ¢ ¢¨¤ã ­¥ ãá।­¥­¨¥ ¯® ¢á¥¬ ¢å®¤ ¬, ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢à¥¬¥­¨ à ¡®âë,
ª®â®à®¥ ¤«ï «î¡®£® ¢å®¤ ­¥ ¯à¥¢®á室¨â O(n log n).) Ž¤¨­ ¨§ ¢ ਠ­â®¢ ¢¥à®ïâ­®áâ­®£® «£®à¨â¬ ¡ëáâன á®àâ¨à®¢ª¨ ¯®¤à®¡­®
­ «¨§¨àã¥âáï ¢ à §¤¥«¥ 8.4, £¤¥ ¤®ª § ­ë ®æ¥­ª¨ ¤«ï á।­¥£® ¨
­ ¨¡®«ì襣® ¢à¥¬¥­¨ à ¡®âë.
8.1 Ž¯¨á ­¨¥ ¡ëáâன á®àâ¨à®¢ª¨
ëáâà ï á®àâ¨à®¢ª (quicksort), ª ª ¨ á®àâ¨à®¢ª ᫨ﭨ¥¬, ®á­®¢ ­ ­ ¯à¨­æ¨¯¥ "à §¤¥«ï© ¨ ¢« áâ¢ã©" (á¬. à §¤. 1.3.1). ‘®àâ¨à®¢ª ãç á⪠A[p : :r] ¯à®¨á室¨â â ª:
«¥¬¥­âë ¬ áᨢ A ¯¥à¥áâ ¢«ïîâáï â ª, çâ®¡ë «î¡®© ¨§ í«¥¬¥­â®¢ A[p]; : : :; A[q] ¡ë« ­¥ ¡®«ìè¥ «î¡®£® ¨§ í«¥¬¥­â®¢ A[q +
1]; : : :; A[r], £¤¥ q | ­¥ª®â®à®¥ ç¨á«® ¢ ¨­â¥à¢ «¥ p 6 q < r. âã
®¯¥à æ¨î ¬ë ¡ã¤¥¬ ­ §ë¢ âì à §¤¥«¥­¨¥¬ (partition).
à®æ¥¤ãà á®àâ¨à®¢ª¨ ४ãàᨢ­® ¢ë§ë¢ ¥âáï ¤«ï ¬ áᨢ®¢
A[p : :q ] ¨ A[q + 1 : :r].
Ž¯¨á ­¨¥ ¡ëáâன á®àâ¨à®¢ª¨
149
®á«¥ í⮣® ¬ áᨢ A[p : :r] ®âá®àâ¨à®¢ ­.
ˆâ ª, ¯à®æ¥¤ãà á®àâ¨à®¢ª¨ Quicksort ¢ë£«ï¤¨â á«¥¤ãî騬
®¡à §®¬:
Quicksort(A; p; r)
1 if p < r
2 then q Partition(A; p; r)
3
Quicksort(A; p; q )
4
Quicksort(A; q + 1; r)
„«ï á®àâ¨à®¢ª¨ ¢á¥£® ¬ áᨢ ­¥®¡å®¤¨¬® ¢ë¯®«­¨âì ¯à®æ¥¤ãàã
Quicksort(A; 1; length[A]).
 §¡¨¥­¨¥ ¬ áᨢ Žá­®¢­®© è £ «£®à¨â¬ | ¯à®æ¥¤ãà Partition, ª®â®à ï ¯¥à¥áâ ¢«ï¥â í«¥¬¥­âë ¬ áᨢ A[p : :r] ­ã¦­ë¬ ®¡à §®¬:
Partition(A; p; r)
1 x A[p]
2 i p;1
3 j r+1
4 while true
5
do repeat j j ; 1
6
until A[j ] 6 x
7
repeat i i + 1
8
until A[i] > x
9
if i < j
10
then ¯®¬¥­ïâì A[i] $ A[j ]
11
else return j
 ¡®â ¯à®æ¥¤ãàë Partition ¯®ª § ­ ­ à¨á. 8.1. «¥¬¥­â x =
A[p] ¢ë¡¨à ¥âáï ¢ ª ç¥á⢥ "£à ­¨ç­®£®"; ¬ áᨢ A[p : :q] ¡ã¤¥â ᮤ¥à¦ âì í«¥¬¥­âë, ­¥ ¡®«ì訥 x, ¬ áᨢ A[q +1 : :r] | í«¥¬¥­âë,
­¥ ¬¥­ì訥 x. ˆ¤¥ï á®á⮨⠢ ⮬, çâ®¡ë ­ ª ¯«¨¢ âì í«¥¬¥­âë, ­¥
¡®«ì訥 x, ¢ ­ ç «ì­®¬ ®â१ª¥ ¬ áᨢ (A[p : :i]), í«¥¬¥­âë, ­¥
¬¥­ì訥 x | ¢ ª®­æ¥ (A[j : : r]). ‚ ­ ç «¥ ®¡ "­ ª®¯¨â¥«ï" ¯ãáâë:
i = p ; 1, j = r + 1.
‚­ãâਠ横« while (¢ áâப å 5{8) ª ­ ç «ì­®¬ã ¨ ª®­¥ç­®¬ã
ãç á⪠¬ ¯à¨á®¥¤¨­ïîâáï í«¥¬¥­âë (ª ª ¬¨­¨¬ã¬ ¯® ®¤­®¬ã). ®á«¥ ¢ë¯®«­¥­¨ï íâ¨å áâப A[i] > x > A[j ]. …᫨ ¬ë ¯®¬¥­ï¥¬ A[i]
¨ A[j ] ¬¥áâ ¬¨, â® ¨å ¬®¦­® ¡ã¤¥â ¯à¨á®¥¤¨­¨âì ª ­ ç «ì­®¬ã ¨
ª®­¥ç­®¬ã ãç á⪠¬.
‚ ¬®¬¥­â ¢ë室 ¨§ 横« ¢ë¯®«­¥­® ­¥à ¢¥­á⢮ i > j . à¨
í⮬ ¬ áᨢ à §¡¨â ­ ç á⨠A[p]; : : :; A[j ] ¨ A[j + 1]; : : :; A[r]; «î¡®© í«¥¬¥­â ¯¥à¢®© ç á⨠­¥ ¯à¥¢®á室¨â «î¡®£® í«¥¬¥­â ¢â®à®©
150
ƒ« ¢ 8 ëáâà ï á®àâ¨à®¢ª ¨áã­®ª 8.1  ¡®â ¯à®æ¥¤ãàë Partition. ¥§ ªà 襭­ë¥ í«¥¬¥­âë ®â­®áïâáï ª 㦥 áä®à¬¨à®¢ ­­ë¬ ªã᪠¬, § ªà 襭­ë¥ ¥éñ ­¥ à á¯à¥¤¥«¥­ë.
( )  ç «ì­®¥ á®áâ®ï­¨¥ ¬ áᨢ , ­ ç «ì­ë© ¨ ª®­¥ç­ë© ªã᪨ ¯ãáâë. «¥¬¥­â x = A[p] = 5 ¨á¯®«ì§ã¥âáï ¢ ª ç¥á⢥ £à ­¨ç­®£®. (¡) ¥§ã«ìâ â ¯¥à¢®£®
¯à®å®¤ 横« while (áâப¨ 4{8). (¢) «¥¬¥­âë A[i] ¨ A[j ] ¬¥­ïîâáï ¬¥áâ ¬¨
(áâப 10). (£) ¥§ã«ìâ â ¢â®à®£® ¯à®å®¤ 横« while. (¤) ¥§ã«ìâ â âà¥â쥣®
(¯®á«¥¤­¥£®) ¯à®å®¤ 横« while. ®áª®«ìªã i > j , ¯à®æ¥¤ãà ®áâ ­ ¢«¨¢ ¥âáï
¨ ¢®§¢à é ¥â §­ 祭¨¥ q = j . «¥¬¥­âë á«¥¢ ®â A[j ] (¢ª«îç ï á ¬ íâ®â í«¥¬¥­â) ­¥ ¡®«ìè¥, 祬 x = 5, í«¥¬¥­âë á¯à ¢ ®â A[j ] ­¥ ¬¥­ìè¥, 祬 x = 5.
ç áâ¨. à®æ¥¤ãà ¢®§¢à é ¥â §­ 祭¨¥ j .
•®âï ¨¤¥ï ¯à®æ¥¤ãàë ®ç¥­ì ¯à®áâ , á ¬ «£®à¨â¬ ᮤ¥à¦¨â àï¤
â®­ª¨å ¬®¬¥­â®¢.  ¯à¨¬¥à, ­¥ ®ç¥¢¨¤­®, çâ® ¨­¤¥ªáë i ¨ j ­¥ ¢ë室ïâ § £à ­¨æë ¯à®¬¥¦ã⪠[p : :r] ¢ ¯à®æ¥áá¥ à ¡®âë. „à㣮© ¯à¨¬¥à: ¢ ¦­®, çâ® ¢ ª ç¥á⢥ £à ­¨ç­®£® §­ 祭¨ï ¢ë¡¨à ¥âáï A[p], ­¥, ᪠¦¥¬, A[r]. ‚ ¯®á«¥¤­¥¬ á«ãç ¥ ¬®¦¥â ®ª § âìáï, çâ® A[r] |
á ¬ë© ¡®«ì让 í«¥¬¥­â ¬ áᨢ , ¨ ¢ ª®­æ¥ ¢ë¯®«­¥­¨ï ¯à®æ¥¤ãàë
¡ã¤¥â i = j = r, â ª çâ® ¢®§¢à é âì q = j ¡ã¤¥â ­¥«ì§ï | ­ àãè¨âáï âॡ®¢ ­¨¥ q < r, ¨ ¯à®æ¥¤ãà Quicksort § 横«¨âáï.
à ¢¨«ì­®áâì ¯à®æ¥¤ãàë Partition á®áâ ¢«ï¥â ¯à¥¤¬¥â § ¤ ç¨ 8-
1.
‚६ï à ¡®âë ¯à®æ¥¤ãàë Partition á®áâ ¢«ï¥â (n), £¤¥ n =
r ; p + 1 (á¬. ã¯à. 8.1-3).
“¯à ¦­¥­¨ï
8.1-1
®ª ¦¨â¥, á«¥¤ãï ®¡à §æã à¨á. 8.1, ª ª à ¡®â ¥â ¯à®æ¥¤ãà Partition ¤«ï ¬ áᨢ A = h13; 19; 9; 5; 12; 8; 7; 4; 11; 2; 6; 21i.
ãáâì ¢á¥ í«¥¬¥­âë ¬ áᨢ A[p : :r] à ¢­ë. Š ª®¥ §­ 祭¨¥
¢¥à­ñâ ¯à®æ¥¤ãà Partition?
8.1-3 à¨¢¥¤¨â¥ ¯à®á⮥ á®®¡à ¦¥­¨¥, ®¡êïá­ïî饥, ¯®ç¥¬ã
¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë Partition á®áâ ¢«ï¥â (n).
8.1-2
 ¡®â ¡ëáâன á®àâ¨à®¢ª¨
151
Š ª ®âá®àâ¨à®¢ âì ¬ áᨢ ¢ ¯®à浪¥ ã¡ë¢ ­¨ï ( ­¥ ¢®§à áâ ­¨ï), ¨á¯®«ì§ãï ⥠¦¥ ¬¥â®¤ë?
8.1-4
8.2  ¡®â ¡ëáâன á®àâ¨à®¢ª¨
‚६ï à ¡®âë «£®à¨â¬ ¡ëáâன á®àâ¨à®¢ª¨ § ¢¨á¨â ®â ⮣®,
ª ª à §¡¨¢ ¥âáï ¬ áᨢ ­ ª ¦¤®¬ è £¥. …᫨ à §¡¨¥­¨¥ ¯à®¨á室¨â ­ ¯à¨¬¥à­® à ¢­ë¥ ç áâ¨, ¢à¥¬ï à ¡®âë á®áâ ¢«ï¥â O(n lg n),
ª ª ¨ ¤«ï á®àâ¨à®¢ª¨ ᫨ﭨ¥¬. …᫨ ¦¥ à §¬¥àë ç á⥩ ᨫ쭮
®â«¨ç îâáï, á®àâ¨à®¢ª ¬®¦¥â § ­¨¬ âì ¢à¥¬ï O(n2), ª ª ¯à¨ á®àâ¨à®¢ª¥ ¢áâ ¢ª ¬¨.
 ¨åã¤è¥¥ à §¡¨¥­¨¥
" ¨¡®«¥¥ ­¥à ¢­ë¥ ç áâ¨" ¯®«ãç âáï, ¥á«¨ ®¤­ ç áâì ᮤ¥à¦¨â n ; 1 í«¥¬¥­â, ¢â®à ï | ¢á¥£® 1. (Š ª ¬ë 㢨¤¨¬ ¢ à §¤¥«¥ 8.4.1, íâ® ­ ¨åã¤è¨© á«ãç © á â®çª¨ §à¥­¨ï ¢à¥¬¥­¨ à ¡®âë.)
à¥¤¯®«®¦¨¬, çâ® ­ ª ¦¤®¬ è £¥ ¯à®¨á室¨â ¨¬¥­­® â ª. ®áª®«ìªã ¯à®æ¥¤ãà à §¡¨¥­¨ï § ­¨¬ ¥â ¢à¥¬ï (n), ¤«ï ¢à¥¬¥­¨
à ¡®âë T (n) ¯®«ãç ¥¬ ᮮ⭮襭¨¥
T (n) = T (n ; 1) + (n)
®áª®«ìªã T (1) = (1), ¨¬¥¥¬
T (n) = T (n ; 1) + (n) =
n
X
k=1
(k) = n
X
k=1
!
k = (n2 )
(¯®á«¥¤­ïï á㬬 | à¨ä¬¥â¨ç¥áª ï ¯à®£à¥áá¨ï, á¬. ä®à¬ã«ã (3.2)). „¥à¥¢® ४ãàᨨ ¤«ï í⮣® á«ãç ï ¯®ª § ­® ­ à¨á. 8.2.
(® ¯®¢®¤ã ¤¥à¥¢ì¥¢ ४ãàᨨ á¬. à §¤. 4.2.)
Œë ¢¨¤¨¬, çâ® ¯à¨ ¬ ªá¨¬ «ì­® ­¥á¡ « ­á¨à®¢ ­­®¬ à §¡¨¥­¨¨
¢à¥¬ï à ¡®âë á®áâ ¢«ï¥â (n2), ª ª ¨ ¤«ï á®àâ¨à®¢ª¨ ¢áâ ¢ª ¬¨. ‚
ç áâ­®áâ¨, íâ® ¯à®¨á室¨â, ¥á«¨ ¬ áᨢ ¨§­ ç «ì­® ®âá®àâ¨à®¢ ­
(§ ¬¥â¨¬, çâ® ¢ í⮬ á«ãç ¥ á®àâ¨à®¢ª ¢áâ ¢ª ¬¨ ¯à®¨§¢®¤¨âáï
§ ¢à¥¬ï (n)).
 ¨«ãç襥 à §¡¨¥­¨¥
…᫨ ­ ª ¦¤®¬ è £¥ ¬ áᨢ à §¡¨¢ ¥âáï ஢­® ¯®¯®« ¬, ¡ëáâà ï
á®àâ¨à®¢ª âॡã¥â §­ ç¨â¥«ì­® ¬¥­ìè¥ ¢à¥¬¥­¨. „¥©á⢨⥫쭮,
¢ í⮬ á«ãç ¥ ४ãà७⭮¥ ᮮ⭮襭¨¥ ¨¬¥¥â ¢¨¤
T (n) = 2T (n=2) + (n)
¨, ᮣ« á­® ⥮६¥ 4.1 (á«ãç © 2), T (n) = (n lg n). „¥à¥¢® ४ãàᨨ ¤«ï í⮣® á«ãç ï ¯®ª § ­® ­ à¨áã­ª¥ 8.3.
152
ƒ« ¢ 8 ëáâà ï á®àâ¨à®¢ª ¨áã­®ª 8.2 „¥à¥¢® ४ãàᨨ ¯à®æ¥¤ãàë Quicksort ¤«ï ­ ¨åã¤è¥£® á«ãç ï
(¯à®æ¥¤ãà Partition ª ¦¤ë© à § ¯à®¨§¢®¤¨â à §¡¨¥­¨¥, ¢ ª®â®à®¬ ®¤­ ¨§
ç á⥩ ᮤ¥à¦¨â ®¤¨­ í«¥¬¥­â). ‚६ï à ¡®âë à ¢­® (n2 ).
¨áã­®ª 8.3 „¥à¥¢® ४ãàᨨ ¯à®æ¥¤ãàë Quicksort ¤«ï ­ ¨«ãç襣® á«ãç ï
(¬ áᨢ ª ¦¤ë© à § à §¡¨¢ ¥âáï ¯®¯®« ¬). ‚६ï à ¡®âë à ¢­® (n lg n).
à®¬¥¦ãâ®ç­ë© á«ãç ©
Š ª ¡ã¤¥â ¯®ª § ­® ¢ à §¤¥«¥ 8.4, á।­¥¥ ¢à¥¬ï à ¡®âë (á â®ç­®áâìî ¤® ¬­®¦¨â¥«ï) ᮢ¯ ¤ ¥â á ¢à¥¬¥­¥¬ à ¡®âë ¢ ­ ¨«ãç襬
á«ãç ¥. —â®¡ë ®¡êïá­¨âì íâ®, ¯®á¬®âਬ, ª ª ¬¥­ï¥âáï ४ãà७⭮¥ ᮮ⭮襭¨¥ ¢ § ¢¨á¨¬®á⨠®â á⥯¥­¨ á¡ « ­á¨à®¢ ­­®áâ¨ à §¡¨¥­¨ï.
ãáâì, ­ ¯à¨¬¥à, ­ ª ¦¤®¬ è £¥ ¬ áᨢ à §¡¨¢ ¥âáï ­ ¤¢¥ ç áâ¨ á ®â­®è¥­¨¥¬ à §¬¥à®¢ 9 : 1. ’®£¤ T (n) = T (9n=10) + T (n=10) + n
(¤«ï 㤮¡á⢠¬ë § ¬¥­¨«¨ (n) ­ n). „¥à¥¢® ४ãàᨨ ¯®ª § ­® ­ à¨áã­ª¥ 8.4.  ª ¦¤®¬ ã஢­¥ ¬ë ¯à®¨§¢®¤¨¬ ­¥ ¡®«¥¥ n
¤¥©á⢨©, â ª çâ® ¢à¥¬ï à ¡®âë ®¯à¥¤¥«ï¥âáï £«ã¡¨­®© ४ãàᨨ.
 ¡®â ¡ëáâன á®àâ¨à®¢ª¨
153
¨áã­®ª 8.4 „¥à¥¢® ४ãàᨨ ¤«ï á«ãç ï, ª®£¤ à §¡¨¥­¨¥ ª ¦¤ë© à § ¯à®¨§¢®¤¨âáï ¢ ®â­®è¥­¨¨ 9 : 1. ‚६ï à ¡®âë à ¢­® (n lg n).
‚ ¤ ­­®¬ á«ãç ¥ íâ £«ã¡¨­ à ¢­ log10=9 n = (lg n), â ª çâ®
¢à¥¬ï à ¡®âë ¯®-¯à¥¦­¥¬ã á®áâ ¢«ï¥â (n lg n), å®âï ª®­áâ ­â ¨
¡®«ìè¥. Ÿá­®, çâ® ¤«ï «î¡®£® 䨪á¨à®¢ ­­®£® ®â­®è¥­¨ï à §¬¥à®¢ ç á⥩ (᪮«ì ¡ë ¢¥«¨ª® ®­® ­¨ ¡ë«®) £«ã¡¨­ ¤¥à¥¢ ४ãàᨨ
¯®-¯à¥¦­¥¬ã ¡ã¤¥â «®£ à¨ä¬¨ç¥áª®©, ¢à¥¬ï à ¡®âë ¡ã¤¥â à ¢­®
(n lg n).
‘।­¥¥ ¢à¥¬ï: ¨­âã¨â¨¢­ë¥ á®®¡à ¦¥­¨ï
—â®¡ë ¢®¯à®á ® á।­¥¬ ¢à¥¬¥­¨ à ¡®âë ¨¬¥« á¬ëá«, ­ã¦­®
ãâ®ç­¨âì, á ª ª®© ç áâ®â®© ¯®ï¢«ïîâáï à §«¨ç­ë¥ ¢å®¤­ë¥ §­ 祭¨ï. Š ª ¯à ¢¨«®, ¯à¥¤¯®« £ ¥âáï, çâ® ¢á¥ ¯¥à¥áâ ­®¢ª¨ ¢å®¤­ëå
§­ 祭¨© à ¢­®¢¥à®ïâ­ë. (Œë ¢¥à­ñ¬áï ª í⮬㠢 á«¥¤ãî饬 à §¤¥«¥.)
„«ï ­ 㣠¤ ¢§ï⮣® ¬ áᨢ à §¡¨¥­¨ï ¢àï¤ «¨ ¡ã¤ãâ ¢áñ ¢à¥¬ï
¯à®¨á室¨âì ¢ ®¤­®¬ ¨ ⮬ ¦¥ ®â­®è¥­¨¨ | ᪮॥ ¢á¥£®, ç áâì
à §¡¨¥­¨© ¡ã¤¥â å®à®è® á¡ « ­á¨à®¢ ­ , ç áâì ­¥â. Š ª ¯®ª §ë¢ ¥â ã¯à. 8.2-5, ¯à¨¬¥à­® 80 ¯à®æ¥­â®¢ à §¡¨¥­¨© ¯à®¨§¢®¤ïâáï ¢
®â­®è¥­¨¨ ­¥ ¡®«¥¥ 9 : 1.
ã¤¥¬ ¯à¥¤¯®« £ âì ¤«ï ¯à®áâ®âë, çâ® ­ ª ¦¤®¬ ¢â®à®¬ ã஢­¥
¢á¥ à §¡¨¥­¨ï ­ ¨åã¤è¨¥, ­ ®á⠢襩áï ¯®«®¢¨­¥ ã஢­¥© ­ ¨«ãç訥 (¯à¨¬¥à ¯®ª § ­ ­ à¨á. 8.5( )). ®áª®«ìªã ¯®á«¥ ª ¦¤®£® "
å®à®è¥£®" à §¡¨¥­¨ï à §¬¥à ç á⥩ 㬥­ìè ¥âáï ¢¤¢®¥, ç¨á«® "å®à®è¨å" ã஢­¥© à ¢­® (lg n), ¯®áª®«ìªã ª ¦¤ë© ¢â®à®© ã஢¥­ì
"å®à®è¨©", ®¡é¥¥ ç¨á«® ã஢­¥© à ¢­® (lg n), ¢à¥¬ï à ¡®âë |
(n lg n). ’ ª¨¬ ®¡à §®¬, ¯«®å¨¥ ã஢­¨ ­¥ ¨á¯®à⨫¨ ᨬ¯â®â¨ªã
¢à¥¬¥­¨ à ¡®âë ( «¨èì 㢥«¨ç¨«¨ ª®­áâ ­âã, áªàëâãî ¢ ᨬ¯â®-
154
ƒ« ¢ 8 ëáâà ï á®àâ¨à®¢ª ¨áã­®ª 8.5 ( ) „¢ ã஢­ï: ¯«®å®© (n à §¡¨¢ ¥âáï ­ n ; 1 ¨ 1) ¨ å®à®è¨©
(n ; 1 à §¡¨¢ ¥âáï ­ ¤¢¥ à ¢­ë¥ ç áâ¨). (¡) …᫨ í⨠¤¢ ã஢­ï § ¬¥­¨âì
®¤­¨¬, ¯®«ãç¨âáï à §¡¨¥­¨¥ ­ ¯®çâ¨ à ¢­ë¥ ¯® ¢¥«¨ç¨­¥ ç áâ¨.
â¨ç¥áª®¬ ®¡®§­ 祭¨¨).
“¯à ¦­¥­¨ï
„®ª ¦¨â¥, çâ® ¥á«¨ ¬ áᨢ á®á⮨⠨§ ®¤¨­ ª®¢ëå í«¥¬¥­â®¢, â® ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë Quicksort à ¢­® (n lg n).
8.2-2 ãáâì ¬ áᨢ ®âá®àâ¨à®¢ ­ ¢ ¯®à浪¥ ã¡ë¢ ­¨ï. „®ª ¦¨â¥,
çâ® ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë Quicksort á®áâ ¢«ï¥â (n2).
8.2-3 Š ª ¯à ¢¨«®, ¢ ¡ ­ª å ®¡à ¡ âë¢ îâ 祪¨ ¢ ¯®à浪¥ ¨å
¯®áâ㯫¥­¨ï; ª«¨¥­âë ¦¥ ¯à¥¤¯®ç¨â îâ, çâ®¡ë ¢ ®âçñ⥠¯« ⥦¨
¡ë«¨ 㪠§ ­ë ¢ ¯®à浪¥ ­®¬¥à®¢ 祪®¢. ‚« ¤¥«¥æ 祪®¢®© ª­¨¦ª¨
®¡ëç­® ¢ë¯¨áë¢ ¥â 祪¨ ¯®¤àï¤, ¯®«ãç ⥫¨ 祪®¢ ¯à¥¤êïîâ
¨å ¢ ¡ ­ª ¢áª®à¥ ¯®á«¥ ¢ë¯¨áë¢ ­¨ï. ’ ª¨¬ ®¡à §®¬, ¯®à冷ª ­®¬¥à®¢ ­ àãè ¥âáï ­¥§­ ç¨â¥«ì­®. ‘«¥¤®¢ ⥫쭮, ¡ ­ªã âॡã¥âáï
®âá®àâ¨à®¢ âì ¯®ç⨠®âá®àâ¨à®¢ ­­ë© ¬ áᨢ. Ž¡êïá­¨â¥, ¯®ç¥¬ã
á®àâ¨à®¢ª ¢áâ ¢ª ¬¨ ¢ â ª¨å á«ãç ïå à ¡®â ¥â ¡ëáâ॥, 祬 ¡ëáâà ï á®àâ¨à®¢ª .
8.2-4 ãáâì à §¡¨¥­¨ï ­ ª ¦¤®¬ è £¥ ¯à®¨§¢®¤ïâáï ¢ ®â­®è¥­¨¨
: 1 ; , £¤¥ 0 < 6 1=2. „®ª ¦¨â¥, çâ® ¬¨­¨¬ «ì­ ï £«ã¡¨­ «¨áâ ­ ¤¥à¥¢¥ ४ãàᨨ ¯à¨¬¥à­® à ¢­ ; lg n= lg , ¬ ªá¨¬ «ì­ ï
¯à¨¬¥à­® à ¢­ ; lg n= lg(1 ; ). (¥ § ¡®âìâ¥áì ®¡ ®ªà㣫¥­¨¨.)
8.2-5? „®ª ¦¨â¥, çâ® ¤«ï «î¡®£® ç¨á« ¢ ¨­â¥à¢ «¥ 0 < 6 1=2
¢¥à®ïâ­®áâì ⮣®, çâ® à §¡¨¥­¨¥ á«ãç ©­®£® ¬ áᨢ ¡ã¤¥â á¡ « ­8.2-1
‚¥à®ïâ­®áâ­ë¥ «£®à¨â¬ë ¡ëáâன á®àâ¨à®¢ª¨
155
á¨à®¢ ­® ­¥ å㦥, 祬 : 1 ; , ¯à¨¬¥à­® à ¢­ 1 ; 2. à¨ ª ª®¬
§­ 祭¨¨ ¢¥à®ïâ­®áâì í⮣® ᮡëâ¨ï à ¢­ 1=2?
8.3 ‚¥à®ïâ­®áâ­ë¥ «£®à¨â¬ë ¡ëáâன á®àâ¨à®¢ª¨
 ­¥¥ ¬ë ¯à¥¤¯®«®¦¨«¨, çâ® ¢á¥ ¯¥à¥áâ ­®¢ª¨ ¢å®¤­ëå §­ 祭¨©
à ¢­®¢¥à®ïâ­ë. …᫨ íâ® â ª, à §¬¥à ¬ áᨢ ¤®áâ â®ç­® ¢¥«¨ª,
¡ëáâà ï á®àâ¨à®¢ª | ®¤¨­ ¨§ ­ ¨¡®«¥¥ íä䥪⨢­ëå «£®à¨â¬®¢.
 ¯à ªâ¨ª¥, ®¤­ ª®, íâ® ¯à¥¤¯®«®¦¥­¨¥ (à ¢­®© ¢¥à®ïâ­®á⨠¢á¥å
¯¥à¥áâ ­®¢®ª ­ ¢å®¤¥) ­¥ ¢á¥£¤ ®¯à ¢¤ ­® (á¬. ã¯à. 8.2-3). ‚ í⮬
à §¤¥«¥ ¬ë ¢¢¥¤ñ¬ ¯®­ï⨥ ¢¥à®ïâ­®áâ­®£® «£®à¨â¬ ¨ à áᬮâਬ ¤¢ ¢¥à®ïâ­®áâ­ëå «£®à¨â¬ ¡ëáâன á®àâ¨à®¢ª¨, ª®â®àë¥
¯®§¢®«ïî⠮⪠§ âìáï ®â ¯à¥¤¯®«®¦¥­¨ï ® à ¢­®© ¢¥à®ïâ­®á⨠¢á¥å
¯¥à¥áâ ­®¢®ª.
ˆ¤¥ï á®á⮨⠢ ¯à¨¢­¥á¥­¨¨ á«ãç ©­®áâ¨, ®¡¥á¯¥ç¨¢ î饬 ­ã¦­®¥ à á¯à¥¤¥«¥­¨¥.  ¯à¨¬¥à, ¯¥à¥¤ ­ ç «®¬ á®àâ¨à®¢ª¨ ¬®¦­®
á«ãç ©­® ¯¥à¥áâ ¢¨âì í«¥¬¥­âë, ¯®á«¥ 祣® 㦥 ¢á¥ ¯¥à¥áâ ­®¢ª¨
áâ ­ãâ à ¢­®¢¥à®ïâ­ë¬¨ (íâ® ¬®¦­® ᤥ« âì § ¢à¥¬ï O(n) | á¬.
ã¯à. 8.3-4). ’ ª ï ¬®¤¨ä¨ª æ¨ï ­¥ 㢥«¨ç¨¢ ¥â áãé¥á⢥­­® ¢à¥¬ï
à ¡®âë, ­® ⥯¥àì ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢à¥¬¥­¨ à ¡®âë ­¥
§ ¢¨á¨â ®â ¯®à浪 í«¥¬¥­â®¢ ¢® ¢å®¤­®¬ ¬ áᨢ¥ (®­¨ ¢áñ à ¢­®
á«ãç ©­® ¯¥à¥áâ ¢«ïîâáï).
€«£®à¨â¬ ­ §ë¢ ¥âáï ¢¥à®ïâ­®áâ­ë¬ (randomized), ¥á«¨ ®­ ¨á¯®«ì§ã¥â £¥­¥à â®à á«ãç ©­ëå ç¨á¥« (random-number generator). Œë
¡ã¤¥¬ áç¨â âì, çâ® £¥­¥à â®à á«ãç ©­ëå ç¨á¥« Random à ¡®â ¥â
â ª: Random(a; b) ¢®§¢à é ¥â á à ¢­®© ¢¥à®ïâ­®áâìî «î¡®¥ 楫®¥
ç¨á«® ¢ ¨­â¥à¢ «¥ ®â a ¤® b.  ¯à¨¬¥à, Random(0; 1) ¢®§¢à é ¥â
0 ¨«¨ 1 á ¢¥à®ïâ­®áâìî 1=2. à¨ í⮬ à §­ë¥ ¢ë§®¢ë ¯à®æ¥¤ãàë
­¥§ ¢¨á¨¬ë ¢ á¬ëá«¥ ⥮ਨ ¢¥à®ïâ­®á⥩. Œ®¦­® áç¨â âì, çâ®
¬ë ª ¦¤ë© à § ¡à®á ¥¬ ª®áâì á (b ; a + 1) £à ­ï¬¨ ¨ á®®¡é ¥¬
­®¬¥à ¢ë¯ ¢è¥© £à ­¨. ( ¯à ªâ¨ª¥ ®¡ëç­® ¨á¯®«ì§ãîâ £¥­¥à â®à ¯á¥¢¤®á«ãç ©­ëå ç¨á¥« (pseudorandom-number generator) | ¤¥â¥à¬¨­¨à®¢ ­­ë© «£®à¨â¬, ª®â®àë© ¢ë¤ ñâ ç¨á« , "¯®å®¦¨¥" ­ á«ãç ©­ë¥.)
„«ï â ª®£® ¢¥à®ïâ­®áâ­®£® ¢ ਠ­â «£®à¨â¬ ¢ ਠ­â ¡ëáâன á®àâ¨à®¢ª¨ ­¥â "­¥ã¤®¡­ëå ¢å®¤®¢": ã¯à ¦­¥­¨¥ 13.4-4 ¯®ª §ë¢ ¥â, çâ® ¯¥à¥áâ ­®¢®ª, ¯à¨ ª®â®àëå ¢à¥¬ï à ¡®âë ¢¥«¨ª®, ᮢᥬ ¬ «® | ¯®í⮬㠢¥à®ïâ­®áâì ⮣®, çâ® «£®à¨â¬ ¡ã¤¥â à ¡®â âì ¤®«£® (¤«ï «î¡®£® ª®­ªà¥â­®£® ¢å®¤ ) ­¥¢¥«¨ª .
€­ «®£¨ç­ë© ¯®¤å®¤ ¯à¨¬¥­¨¬ ¨ ¢ ¤à㣨å á¨âã æ¨ïå, ª®£¤ ¢
室¥ ¢ë¯®«­¥­¨ï «£®à¨â¬ ¬ë ¤®«¦­ë ¢ë¡à âì ®¤¨­ ¨§ ¬­®£¨å
¢ ਠ­â®¢ ¥£® ¯à®¤®«¦¥­¨ï, ¯à¨çñ¬ ¬ë ­¥ §­ ¥¬, ª ª¨¥ ¨§ ­¨å å®à®è¨¥, ª ª¨¥ ¯«®å¨¥, ­® §­ ¥¬, çâ® å®à®è¨å ¢ ਠ­â®¢ ¤®áâ â®ç­®
¬­®£®. ã¦­® ⮫쪮, çâ®¡ë ¯«®å¨¥ ¢ë¡®àë ­¥ à §àãè «¨ ¤®á⨣-
156
ƒ« ¢ 8 ëáâà ï á®àâ¨à®¢ª ­ã⮣® ¯à¨ ¯à¥¤ë¤ãé¨å å®à®è¨å (ª ª ¬ë ¢¨¤¥«¨ ¢ à §¤¥«¥ 8.2, ¤«ï
«£®à¨â¬ ¡ëáâன á®àâ¨à®¢ª¨ íâ® â ª).
‚¬¥á⮠⮣®, çâ®¡ë ¯à¥¤¢ à¨â¥«ì­® ¯¥à¥áâ ¢«ïâì í«¥¬¥­âë
¬ áᨢ , ¬ë ¬®¦¥¬ ¢­¥áâ¨ í«¥¬¥­â á«ãç ©­®á⨠¢ ¯à®æ¥¤ãàã
Partition. ˆ¬¥­­®, ¯¥à¥¤ à §¡¨¥­¨¥¬ ¬ áᨢ A[p : :r] ¡ã¤¥¬ ¬¥­ïâì í«¥¬¥­â A[p] á® á«ãç ©­® ¢ë¡à ­­ë¬ í«¥¬¥­â®¬ ¬ áᨢ .
’®£¤ ª ¦¤ë© í«¥¬¥­â á à ¢­®© ¢¥à®ïâ­®áâìî ¬®¦¥â ®ª § âìáï
£à ­¨ç­ë¬, ¨ ¢ á।­¥¬ à §¡¨¥­¨ï ¡ã¤ãâ ¯®«ãç âìáï ¤®áâ â®ç­®
á¡ « ­á¨à®¢ ­­ë¬¨.
â®â ¯®¤å®¤ § ¬¥­ï¥â à §®¢ãî á«ãç ©­ãî ¯¥à¥áâ ­®¢ªã ¢å®¤®¢
¢ ­ ç «¥ ¨á¯®«ì§®¢ ­¨¥¬ á«ãç ©­ëå ¢ë¡®à®¢ ­ ¢áñ¬ ¯à®â殮­¨¨ à ¡®âë «£®à¨â¬ . ‚ áãé­®á⨠íâ® â® ¦¥ á ¬®¥, ¨ ®¡ «£®à¨â¬ ¨¬¥îâ ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢à¥¬¥­¨ à ¡®âë O(n lg n),
­® ­¥¡®«ì訥 â¥å­¨ç¥áª¨¥ à §«¨ç¨ï ¤¥« îâ ­ «¨§ ­®¢®£® ¢ ਠ­â ¯à®é¥, ¨ ¨¬¥­­® ®­ ¡ã¤¥â à áᬠâਢ âìáï ¢ à §¤¥«¥ 8.4.
ˆ§¬¥­¥­¨ï, ª®â®àë¥ ­ã¦­® ¢­¥á⨠¢ ¯à®æ¥¤ãàë, ᮢᥬ ­¥¢¥«¨ª¨:
Randomized-Partition(A; p; r)
1 i Random(p; r)
2 ¯®¬¥­ïâì A[p] $ A[i]
3 return Partition(A; p; r)
‚ ®á­®¢­®© ¯à®æ¥¤ãॠ⥯¥àì ¡ã¤¥â ¨á¯®«ì§®¢ âìáï RandomizedPartition ¢¬¥áâ® Partition:
Randomized-Quicksort(A; p; r)
1 if p < r
2 then q Randomized-Partition(A; p; r)
3
Randomized-Quicksort(A; p; q )
4
Randomized-Quicksort(A; q + 1; r)
€­ «¨§®¬ í⮣® «£®à¨â¬ ¬ë § ©¬ñ¬áï ¢ á«¥¤ãî饬 à §¤¥«¥.
“¯à ¦­¥­¨ï
®ç¥¬ã ¤«ï ¢¥à®ïâ­®áâ­®£® «£®à¨â¬ ¢ ¦­® ­¥ ¬ ªá¨¬ «ì­®¥ ¢à¥¬ï à ¡®âë (¤«ï ¤ ­­®£® ¢å®¤ ), ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥
í⮣® ¢à¥¬¥­¨?
8.3-2 ‘ª®«ìª® à § ¯à¨ ¢ë¯®«­¥­¨¨ ¯à®æ¥¤ãàë RandomizedQuicksort ¬®¦¥â ¯à®¨á室¨âì ®¡à 饭¨¥ ª £¥­¥à â®àã á«ãç ©­ëå ç¨á¥« Random ¢ åã¤è¥¬ á«ãç ¥? ˆ§¬¥­¨âáï «¨ ®â¢¥â ¤«ï
­ ¨«ãç襣® á«ãç ï?
8.3-3? ¥ «¨§ã©â¥ ¯à®æ¥¤ãàã Random(a; b), ¨á¯®«ì§ãï ¡à®á ­¨ï
¬®­¥âë, â. ¥. ¤ â稪, á à ¢­®© ¢¥à®ïâ­®áâìî ¢ë¤ î騩 0 ¨«¨ 1.
Š ª®¢® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢à¥¬¥­¨ à ¡®âë ¢ 襩 ¯à®æ¥8.3-1
€­ «¨§ ¡ëáâன á®àâ¨à®¢ª¨
157
¤ãàë?
8.3-4? à¨¤ã¬ ©â¥ ¢¥à®ïâ­®áâ­ãî ¯à®æ¥¤ãàã, ª®â®à ï § ¢à¥¬ï
(n) á«ãç ©­ë¬ ®¡à §®¬ ¯¥à¥áâ ¢«ï¥â í«¥¬¥­âë ¢å®¤­®£® ¬ áᨢ A[1 : :n].
8.4 €­ «¨§ ¡ëáâன á®àâ¨à®¢ª¨
‚ í⮬ à §¤¥«¥ ¬ë ¯à¥¢à ⨬ "¨­âã¨â¨¢­ë¥" á®®¡à ¦¥­¨ï à §¤¥« 8.2 ¢ áâண®¥ à áá㦤¥­¨¥. ‘­ ç « ¬ë à áᬮâਬ ­ ¨åã¤è¨© á«ãç © (à áá㦤¥­¨ï ¡ã¤ãâ ®¤¨­ ª®¢ë ¨ ¤«ï «£®à¨â¬ Quicksort, ¨ ¤«ï «£®à¨â¬ Randomized-Quicksort), § ⥬
­ ©¤ñ¬ á।­¥¥ ¢à¥¬ï à ¡®âë «£®à¨â¬ Randomized-Quicksort.
8.4.1 €­ «¨§ ­ ¨åã¤è¥£® á«ãç ï
‚ à §¤¥«¥ 8.2 ¬ë ¢¨¤¥«¨, çâ® ¥á«¨ à §¡¨¥­¨¥ ­ ª ¦¤®¬ è £¥ ­ ¨¡®«¥¥ ­¥á¡ « ­á¨à®¢ ­®, â® ¢à¥¬ï à ¡®âë á®áâ ¢«ï¥â (n2). ˆ­âã¨â¨¢­® ïá­®, çâ® íâ® ­ ¨åã¤è¨© (¢ á¬ëá«¥ ¢à¥¬¥­¨ à ¡®âë) á«ãç ©.
‘¥©ç á ¬ë áâண® ¤®ª ¦¥¬ íâ®.
„«ï ¤®ª § ⥫ìá⢠⮣®, çâ® ¢à¥¬ï à ¡®âë á®áâ ¢«ï¥â O(n2),
¬ë ¨á¯®«ì§ã¥¬ ¬¥â®¤ ¯®¤áâ ­®¢ª¨ (á¬. à §¤. 4.1). ãáâì T (n) |
­ ¨¡®«ì襥 ¢à¥¬ï à ¡®âë «£®à¨â¬ ¤«ï ¬ áᨢ ¤«¨­ë n. ’®£¤ ,
®ç¥¢¨¤­®,
T (n) = 16max
(T (q ) + T (n ; q )) + (n)
(8.1)
q6n;1
(¬ë à áᬠâਢ ¥¬ ¢á¥ ¢®§¬®¦­ë¥ à §¡¨¥­¨ï ­ ¯¥à¢®¬ è £¥).
à¥¤¯®«®¦¨¬, çâ® T (q) 6 cq2 ¤«ï ­¥ª®â®à®© ª®­áâ ­âë c ¨ ¤«ï
¢á¥å q, ¬¥­ìè¨å ­¥ª®â®à®£® n. ’®£¤ T (n) 6 16max
(cq 2 +c(n;q )2)+(n) = c16max
(q 2 +(n;q )2 )+(n):
q6n;1
q6n;1
Š¢ ¤à â­ë© âàñåç«¥­ q2 + (n ; q)2 ¤®á⨣ ¥â ¬ ªá¨¬ã¬ ­ ®â१ª¥ 1 6 q 6 n ; 1 ¢ ¥£® ª®­æ å (¢â®à ï ¯à®¨§¢®¤­ ï ¯® q ¯®«®¦¨â¥«ì­ , ¯®í⮬ã äã­ªæ¨ï ¢ë¯ãª« ¢­¨§, á¬. ã¯à. 8.4-2). â®â
¬ ªá¨¬ã¬ à ¢¥­ 12 + (n ; 1)2 = n2 ; 2(n ; 1). Žâáî¤ ¯®«ãç ¥¬
T (n) 6 cn2 ; 2c(n ; 1) + (n) 6 cn2;
¥á«¨ ª®­áâ ­â c ¢ë¡à ­ â ª, çâ®¡ë ¯®á«¥¤­¥¥ á« £ ¥¬®¥ ¡ë«®
¬¥­ìè¥ ¯à¥¤¯®á«¥¤­¥£®. ˆâ ª, ¢à¥¬ï à ¡®âë ¢ åã¤è¥¬ á«ãç ¥ á®áâ ¢«ï¥â (n2 ).
158
ƒ« ¢ 8 ëáâà ï á®àâ¨à®¢ª 8.4.2 €­ «¨§ á।­¥£® ¢à¥¬¥­¨ à ¡®âë
Š ª ¬ë 㦥 ¢¨¤¥«¨ ¢ à §¤¥«¥ 8.2, ¥á«¨ à §¡¨¥­¨ï ¯à®¨§¢®¤ïâáï
â ª, çâ® ®â­®è¥­¨¥ à §¬¥à®¢ ç á⥩ ®£à ­¨ç¥­®, â® £«ã¡¨­ ¤¥à¥¢ ४ãàᨨ à ¢­ (lg n), ¢à¥¬ï à ¡®âë | (n lg n).
—â®¡ë ¯®«ãç¨âì ®æ¥­ªã á।­¥£® ¢à¥¬¥­¨ à ¡®âë «£®à¨â¬ Randomized-Quicksort, ¬ë á­ ç « ¯à® ­ «¨§¨à㥬 à ¡®âã
¯à®æ¥¤ãàë Partition, § ⥬ ¯®«ã稬 ४ãà७⭮¥ ᮮ⭮襭¨¥
­ á।­¥¥ ¢à¥¬ï à ¡®âë ¨ à¥è¨¬ ¥£® (¯®¯ãâ­® ¯®«ã稢 ®¤­ã
¯®«¥§­ãî ®æ¥­ªã).
€­ «¨§ à §¡¨¥­¨©
 ¯®¬­¨¬, çâ® ¯¥à¥¤ ⥬ ª ª ¢ áâப¥ 3 ¯à®æ¥¤ãàë RandomizedPartition ¢ë§ë¢ ¥âáï ¯à®æ¥¤ãà Partition, í«¥¬¥­â A[p] ¯¥à¥áâ ¢«ï¥âáï á® á«ãç ©­® ¢ë¡à ­­ë¬ í«¥¬¥­â®¬ ¬ áᨢ A[p : :r]. „«ï
¯à®áâ®âë ¬ë ¡ã¤¥¬ ¯à¥¤¯®« £ âì, çâ® ¢á¥ ç¨á« ¢ ¬ áᨢ¥ à §«¨ç­ë. •®âï ®æ¥­ª á।­¥£® ¢à¥¬¥­¨ á®åà ­ï¥âáï ¨ ¢ ⮬ á«ãç ¥,
ª®£¤ ¢ ¬ áᨢ¥ ¥áâì ®¤¨­ ª®¢ë¥ í«¥¬¥­âë, ¯®«ãç¨âì ¥ñ á«®¦­¥¥,
¨ ¬ë í⮣® ¤¥« âì ­¥ ¡ã¤¥¬.
à¥¦¤¥ ¢á¥£®, § ¬¥â¨¬, çâ® §­ 祭¨¥ q, ª®â®à®¥ ¢®§¢à â¨â ¯à®æ¥¤ãà Partition, § ¢¨á¨â ⮫쪮 ®â ⮣®, ᪮«ìª® ¢ ¬ áᨢ¥ í«¥¬¥­â®¢, ­¥ ¡®«ìè¨å x = A[p] (ç¨á«® â ª¨å í«¥¬¥­â®¢ ¬ë ¡ã¤¥¬
­ §ë¢ âì à ­£®¬ (rank) í«¥¬¥­â x ¨ ®¡®§­ ç âì rank(x)). …᫨
n = r ; p + 1 | ç¨á«® í«¥¬¥­â®¢ ¢ ¬ áᨢ¥, â®, ¯®áª®«ìªã ¢á¥ í«¥¬¥­âë ¨¬¥îâ à ¢­ë¥ è ­áë ¯®¯ áâì ­ ¬¥áâ® A[p], ¢á¥ §­ 祭¨ï
rank(x), ®â 1 ¤® n, à ¢­®¢¥à®ïâ­ë (¨¬¥îâ ¢¥à®ïâ­®áâì 1=n).
…᫨ rank(x) > 1, â®, ª ª «¥£ª® ¢¨¤¥âì, ¯à¨ à §¡¨¥­¨¨ «¥¢ ï ç áâì
¡ã¤¥â ᮤ¥à¦ âì rank(x) ; 1 í«¥¬¥­â®¢ | ¢ ­¥© ®ª ¦ãâáï ¢á¥ í«¥¬¥­âë, ¬¥­ì訥 x. …᫨ ¦¥ rank(x) = 1, â® «¥¢ ï ç áâì ¡ã¤¥â ᮤ¥à¦ âì ®¤¨­ í«¥¬¥­â (¯®á«¥ ¯¥à¢®£® ¦¥ ¢ë¯®«­¥­¨ï 横« ¡ã¤¥â
i = j = p). Žâáî¤ á«¥¤ã¥â, çâ® á ¢¥à®ïâ­®áâìî 1=n «¥¢ ï ç áâì
¡ã¤¥â ᮤ¥à¦ âì 2; 3; : : :; n ; 1 í«¥¬¥­â®¢, á ¢¥à®ïâ­®áâìî 2=n |
®¤¨­ í«¥¬¥­â.
¥ªãà७⭮¥ ᮮ⭮襭¨¥ ¤«ï á।­¥£® ¢à¥¬¥­¨ à ¡®âë
Ž¡®§­ 稬 á।­¥¥ ¢à¥¬ï à ¡®âë «£®à¨â¬ RandomizedQuicksort ¤«ï ¬ áᨢ ¨§ n í«¥¬¥­â®¢ ç¥à¥§ T (n). Ÿá­®, çâ®
T (1) = (1). ‚६ï à ¡®âë á®á⮨⠨§ ¢à¥¬¥­¨ à ¡®âë ¯à®æ¥¤ãàë
Partition, ª®â®à®¥ á®áâ ¢«ï¥â (n), ¨ ¢à¥¬¥­¨ à ¡®âë ¤«ï ¤¢ãå
¬ áᨢ®¢ à §¬¥à q ¨ n ; q, ¯à¨çñ¬ q á ¢¥à®ïâ­®áâìî 2=n ¯à¨­¨¬ ¥â
€­ «¨§ ¡ëáâன á®àâ¨à®¢ª¨
159
§­ 祭¨¥ 1 ¨ á ¢¥à®ïâ­®áâìî 1=n | §­ 祭¨ï 2; : : :; n ; 1. ®í⮬ã
0
T (n) = n1 @T (1) + T (n ; 1) +
nX
;1
q=1
1
(T (q ) + T (n ; q ))A + (n) (8.2)
(á« £ ¥¬®¥, ᮮ⢥âáâ¢ãî饥 q = 1, ¢å®¤¨â ¤¢ ¦¤ë). ®áª®«ìªã
T (1) = (1) ¨ T (n) = O(n2), ¨¬¥¥¬
1 (T (1) + T (n ; 1)) = 1 ((1) + O(n2 )) = O(n):
n
n
®í⮬ã á« £ ¥¬ë¥ T (1) ¨ T (n ; 1) ¢ ¯¥à¢®© ᪮¡ª¥ (8.2) ¬®¦­®
¢ª«îç¨âì ¢ (n). ‘ ãçñ⮬ í⮣® ¯®«ãç ¥¬
nX
;1
T (n) = n1
q=1
(T (q ) + T (n ; q )) + (n):
(8.3)
®áª®«ìªã ª ¦¤®¥ á« £ ¥¬®¥ T (k), £¤¥ k = 1; : : :; n ; 1, ¢áâà¥ç ¥âáï
¢ á㬬¥ ¤¢ ¦¤ë, ¥ñ ¬®¦­® ¯¥à¥¯¨á âì â ª:
nX
;1
2
T (k) + (n):
T (n) =
n k=1
(8.4)
¥è¥­¨¥ ४ãà७⭮£® ᮮ⭮襭¨ï
‘®®â­®è¥­¨¥ (8.4) ¬®¦­® à¥è¨âì, ¨á¯®«ì§ãï ¬¥â®¤ ¯®¤áâ ­®¢ª¨.
à¥¤¯®«®¦¨¬, çâ® T (n) 6 an lg n + b, £¤¥ ª®­áâ ­âë a > 0 ¨ b > 0
¯®ª ­¥¨§¢¥áâ­ë, ¨ ¯®¯ëâ ¥¬áï ¤®ª § âì íâ® ¯® ¨­¤ãªæ¨¨. à¨ n =
1 íâ® ¢¥à­®, ¥á«¨ ¢§ïâì ¤®áâ â®ç­® ¡®«ì訥 a ¨ b. à¨ n > 1 ¨¬¥¥¬
T (n) = n2
6 n2
n;1
X
T (k) + (n)
k=1
nX
;1
(ak lg k + b) + (n)
k=1
nX
;1
= 2na
k=1
k lg k + 2nb (n ; 1) + (n):
¨¦¥ ¬ë ¯®ª ¦¥¬, çâ® ¯¥à¢ãî á㬬㠬®¦­® ®æ¥­¨âì â ª:
nX
;1
k=1
k lg k 6 12 n2 lg n ; 18 n2 :
(8.5)
160
ƒ« ¢ 8 ëáâà ï á®àâ¨à®¢ª ˆá¯®«ì§ãï íâ®, ¯®«ã稬
2
a
1
1
2
2
T (n) 6 n 2 n lg n ; 8 n + 2nb (n ; 1) + (n)
6 an lg n ; a4 n + 2b + (n)
= an lg n + b + (n) + b ; a4 n 6 an lg n + b;
¥á«¨ ¢ë¡à âì a â ª, ç⮡ë a4 n ¡ë«® ¡®«ìè¥ (n)+b. ‘«¥¤®¢ ⥫쭮,
á।­¥¥ ¢à¥¬ï à ¡®âë ¥áâì O(n lg n).
„®ª § ⥫ìá⢮ ®æ¥­ª¨ ¤«ï á㬬ë
Žáâ «®áì ¤®ª § âì ®æ¥­ªã (8.5). ®áª®«ìªã ª ¦¤®¥ á« £ ¥¬®¥ ­¥
¯à¥¢ëè ¥â n lg n, ¯®«ãç ¥¬ ®æ¥­ªã
nX
;1
k lg k 6 n2 lg n:
k=1
„«ï ­ è¨å 楫¥© ®­ ­¥ ¯®¤å®¤¨â | ­ ¬ ­¥®¡å®¤¨¬ ¡®«¥¥ â®ç­ ï
®æ¥­ª 12 n2 lg n ; (n2).
…᫨ ¢ ¯à¥¤ë¤ã饩 ®æ¥­ª¥ § ¬¥­ïâì «¨èì lg k ­ lg n, ®áâ ¢¨¢ k
¢ ­¥¯à¨ª®á­®¢¥­­®áâ¨, ¯®«ã稬 ®æ¥­ªã
nX
;1
k=1
k lg k 6 lg n
nX
;1
k=1
k = n(n2; 1) lg n 6 12 n2 lg n:
Žáâ «®áì «¨èì § ¬¥â¨âì, çâ® § ¬¥­ïï lg k ­ lg n, ¬ë ¯à¨¡ ¢¨«¨
¯® ªà ©­¥© ¬¥à¥ ¯® k 1 ª ª ¦¤®¬ã á« £ ¥¬®¬ ¯¥à¢®© ¯®«®¢¨­ë
á㬬ë (£¤¥ k 6 n=2), ¢á¥£® ¯à¨¬¥à­® (n=2)2=2 = n2=8.
®«¥¥ ä®à¬ «ì­®,
n;1
X
k=1
k lg k =
dn=X
2e;1
k=1
k lg k +
nX
;1
k=dn=2e
k lg k
à¨ k < dn=2e ¨¬¥¥¬ lg k 6 lg(n=2) = lg n ; 1. ®í⮬ã
nX
;1
k=1
k lg k 6 (lg n ; 1)
= lg n
nX
;1
k=1
dn=X
2e;1
k;
k + lg n
k=1
dn=X
2e;1
k=1
6 12 n2 lg n ; 81 n2
nX
;1
k=dn=2e
k
k 6 12 n(n ; 1) lg n ; 12 n2 ; 1 n2
€­ «¨§ ¡ëáâன á®àâ¨à®¢ª¨
161
¯à¨ n > 2. Žæ¥­ª (8.5) ¤®ª § ­ .
[‘«¥¤ãî騩 ¯à®á⮩ ¢ë¢®¤ ®æ¥­ª¨ ¤«ï á।­¥£® ¢à¥¬¥­¨ à ¡®âë
¢¥à®ïâ­®áâ­®£® «£®à¨â¬ ¡ëáâன á®àâ¨à®¢ª¨ (¤«ï ­¥áª®«ìª® ¤à㣮£® ¢ ਠ­â «£®à¨â¬ ) ¯à¥¤«®¦¨« ‹.€. ‹¥¢¨­.
(1) ã¤¥¬ ¯à¥¤áâ ¢«ïâì ᥡ¥ á®àâ¨à®¢ªã â ª: ¥áâì N ª ¬­¥© à §­®£® ¢¥á ¨ ç è¥ç­ë¥ ¢¥áë ¤«ï ¨å áà ¢­¥­¨ï. Œë ¡¥àñ¬ á«ãç ©­ë©
ª ¬¥­ì ¨ ¤¥«¨¬ ¢áî ªãçã ­ âਠç áâ¨: «¥£ç¥ ¥£®, â殮«¥¥ ¥£® ¨ ®­
á ¬, ¯®á«¥ 祣® (४ãàᨢ­ë© ¢ë§®¢) á®àâ¨à㥬 ¯¥à¢ãî ¨ ¢â®àãî
ç áâ¨.
(2) Š ª ¢ë¡à âì á«ãç ©­ë© ª ¬¥­ì? Œ®¦­® áç¨â âì, çâ® á­ ç « ¢á¥¬ ª ¬­ï¬ á«ãç ©­® ¯à¨á¢ ¨¢ îâáï à §«¨ç­ë¥ à ­£¨ (¡ã¤¥¬ áç¨â âì ¨å ç¨á« ¬¨ ®â 1 ¤® N ), ¨ ¢ ª ç¥á⢥ £à ­¨æë ¡¥àñâáï
ª ¬¥­ì ¬¨­¨¬ «ì­®£® à ­£ (¨§ ¯®¤«¥¦ é¨å á®àâ¨à®¢ª¥ ¢ ¤ ­­ë©
¬®¬¥­â). (Œ®¦­® ¯à®¢¥à¨âì, çâ® íâ® à ¢­®á¨«ì­® ­¥§ ¢¨á¨¬ë¬ ¢ë¡®à ¬ ª ¬­¥© ­ ª ¦¤®¬ è £¥: ­ ¯¥à¢®¬ è £¥ ª ¦¤ë© ¨§ ª ¬­¥©
¬®¦¥â ¡ëâì ¢ë¡à ­ á à ¢­®© ¢¥à®ïâ­®áâìî, ¯®á«¥ â ª®£® ¢ë¡®à ¢
ª ¦¤®© ¨§ £à㯯 ¢á¥ ª ¬­¨ â ª¦¥ à ¢­®¢¥à®ïâ­ë ¨ â. ¤.)
(3) ’ ª¨¬ ®¡à §®¬, ª ¦¤ë© ª ¬¥­ì å à ªâ¥à¨§ã¥âáï ¤¢ã¬ï ç¨á« ¬¨ ®â 1 ¤® N | ¯®à浪®¢ë¬ ­®¬¥à®¬ (¢ ¯®à浪¥ ¢®§à áâ ­¨ï
¢¥á®¢) ¨ à ­£®¬. ‘®®â¢¥âá⢨¥ ¬¥¦¤ã ­®¬¥à ¬¨ ¨ à ­£ ¬¨ ®¯à¥¤¥«ï¥â ç¨á«® ®¯¥à 権 ¢ ¯à®æ¥áᥠá®àâ¨à®¢ª¨.
(4) „«ï ª ¦¤ëå ¤¢ãå ­®¬¥à®¢ i, j ¨§ f1; : : :; N g ç¥à¥§ p(i; j ) ®¡®§­ 稬 ¢¥à®ïâ­®áâì ⮣®, çâ® ª ¬­¨ á í⨬¨ ­®¬¥à ¬¨ ¡ã¤ãâ áà ¢­¨¢ âìáï ¤àã£ á ¤à㣮¬.  ¯à¨¬¥à, p(i; i + 1) = 1, ¯®áª®«ìªã á®á¥¤­¨¥ ¯® ¢¥áã ª ¬­¨ ¤®«¦­ë ¡ëâì áà ¢­¥­ë ®¡ï§ ⥫쭮 (áà ¢­¥­¨ï
á ¤à㣨¬¨ ª ¬­ï¬¨ ¨å ­¥ à §«¨ç îâ).
(5) ‡ ¬¥â¨¬, çâ® p(i; i + 2) = 2=3. ‚ á ¬®¬ ¤¥«¥, áà ¢­¥­¨ï ­¥
¯à®¨§®©¤ñâ ¢ ⮬ ¨ ⮫쪮 ⮬ á«ãç ¥, ª®£¤ ¨§ âàñå ª ¬­¥© á
­®¬¥à ¬¨ i, i + 1 ¨ i + 2 ª ¬¥­ì i + 1 ¨¬¥¥â ­ ¨¬¥­ì訩 à ­£.
€­ «®£¨ç­®, p(i; i + k) = 2=(k + 1) (ª ¬­¨ á ­®¬¥à ¬¨ i ¨ i + k
áà ¢­¨¢ îâáï, ¥á«¨ á।¨ k +1 ª ¬­¥© i; i +1; : : :; i + k ®¤¨­ ¨§ ¤¢ãå
ªà ©­¨å ¨¬¥¥â ­ ¨¬¥­ì訩 à ­£).
(6) Œ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ç¨á« áà ¢­¥­¨© ¬®¦­® à §¡¨âì ¢
á㬬ã P m(i; j ) ®¦¨¤ ­¨© ç¨á« áà ¢­¥­¨© ¬¥¦¤ã ª ¬­ï¬¨ á ­®¬¥à ¬¨ i ¨ j . ® ¯®áª®«ìªã ¤¢ ¤ ­­ëå ª ¬­ï áà ¢­¨¢ îâáï ­¥ ¡®«¥¥
®¤­®£® à § , m(i; j ) = p(i; j ). ’ ª¨¬ ®¡à §®¬, ¯®«ãç ¥¬ â®ç­®¥ ¢ëà ¦¥­¨¥ ¤«ï ¬ ⥬ â¨ç¥áª®£® ®¦¨¤ ­¨ï ç¨á« áà ¢­¥­¨©:
X
2
16i<j 6n j ; i + 1
:
(7) ƒà㯯¨àãï ¢ í⮩ á㬬¥ à ¢­ë¥ ç«¥­ë ¨ ¢á¯®¬¨­ ï, çâ® 1 +
1=2 + 1=3 + : : : + 1=k = O(lg k), ¯®«ãç ¥¬ ®æ¥­ªã O(N lg N ) ¤«ï
¬ ⥬ â¨ç¥áª®£® ®¦¨¤ ­¨ï ¢à¥¬¥­¨ à ¡®âë ¡ëáâன á®àâ¨à®¢ª¨.
€­ «¨§ ®¡«¥£ç ¥âáï ⥬, çâ® «£®à¨â¬ à §¡¨¥­¨ï (­ âਠç áâ¨)
¡®«¥¥ ᨬ¬¥âà¨ç¥­. ¥ «¨§ æ¨ï â ª®£® ᯮᮡ à §¡¨¥­¨ï â ª¦¥
162
ƒ« ¢ 8 ëáâà ï á®àâ¨à®¢ª ¯à®áâ : ¬ áᨢ ¤¥«¨âáï ­ ç¥âëॠãç á⪠(¯¥à¥ç¨á«ï¥¬ ¨å á«¥¢ ­ ¯à ¢®): ¬¥­ì訥 £à ­¨æë, à ¢­ë¥ £à ­¨æ¥, ­¥¯à®á¬®â७­ë¥ ¨
¡®«ì訥 £à ­¨æë.]
“¯à ¦­¥­¨ï
„®ª ¦¨â¥, çâ® ­ ¨¬¥­ì襥 ¢à¥¬ï à ¡®âë ¡ëáâன á®àâ¨à®¢ª¨ á®áâ ¢«ï¥â (n lg n).
8.4-2 „®ª ¦¨â¥, çâ® äã­ªæ¨ï q 2 + (n ; q )2 ­ ®â१ª¥ [1; n ; 1]
¯à¨­¨¬ ¥â ­ ¨¡®«ì襥 §­ 祭¨¥ ¢ ª®­æ å ®â१ª .
8.4-3 „®ª ¦¨â¥, çâ® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢à¥¬¥­¨ à ¡®âë
¯à®æ¥¤ãàë Randomized-Quicksort ­ «î¡®¬ ¢å®¤¥ ¥áâì (n lg n).
8.4-4  ¯à ªâ¨ª¥ ¢à¥¬ï à ¡®âë ¡ëáâன á®àâ¨à®¢ª¨
¬®¦­® 㬥­ìè¨âì, ¥á«¨ ­ § ¢¥àè î饬 íâ ¯¥ (ª®£¤ ¬ áᨢ ¯®ç⨠®âá®àâ¨à®¢ ­) ¨á¯®«ì§®¢ âì á®àâ¨à®¢ªã ¢áâ ¢ª ¬¨. ‘¤¥« âì íâ® ¬®¦­®, ­ ¯à¨¬¥à, â ª: ¯ãáâì ¯à®æ¥¤ãà Randomized-Quicksort(A; p; r) ­¨ç¥£® ­¥ ¤¥« ¥â, ¥á«¨ r ; p +1 < k
(â. ¥. á®àâ¨àã¥¬ë© ¬ áᨢ ᮤ¥à¦¨â ¬¥­ìè¥ k í«¥¬¥­â®¢). ®á«¥
®ª®­ç ­¨ï ४ãàᨢ­ëå ¢ë§®¢®¢ ¯®«ã稢訩áï ¬ áᨢ á®àâ¨àã¥âáï á ¯®¬®éìî á®àâ¨à®¢ª¨ ¢áâ ¢ª ¬¨. „®ª ¦¨â¥, çâ® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢à¥¬¥­¨ à ¡®âë â ª®£® «£®à¨â¬ á®áâ ¢«ï¥â
O(nk + n lg(n=k)). Š ª ¡ë ¢ë áâ «¨ ¢ë¡¨à âì ç¨á«® k?
8.4-5? „®ª ¦¨â¥ à ¢¥­á⢮
8.4-1
Z
x ln x dx = 12 x2 ln x ; 41 x2
‚뢥¤¨â¥ ®âáî¤ (¨á¯®«ì§ãï ¬¥â®¤ áà ¢­¥­¨ï á ¨­â¥£à «®¬
) ¡®«¥¥
Pn;1
ᨫì­ãî (¢ áà ¢­¥­¨¨ á (8.5)) ®æ¥­ªã ¤«ï á㬬ë k=1 k lg k.
8.4-6?  áᬮâਬ á«¥¤ãîéãî ¬®¤¨ä¨ª æ¨î ¯à®æ¥¤ãàë
Randomized-Partition: á«ãç ©­ë¬ ®¡à §®¬ ¢ë¡¨à îâáï âà¨
í«¥¬¥­â ¬ áᨢ ¨ ¢ ª ç¥á⢥ £à ­¨ç­®£® í«¥¬¥­â ¡¥àñâáï á।­¨© ¯® ¢¥«¨ç¨­¥ ¨§ ¢ë¡à ­­ëå âàñå ª ¬­¥©. Žæ¥­¨â¥ ¢¥à®ïâ­®áâì
⮣®, çâ® ¯à¨ í⮬ à §¡¨¥­¨¥ ¡ã¤¥â á¡ « ­á¨à®¢ ­® ­¥ å㦥, 祬
: 1 ; .
‡ ¤ ç¨
8-1 à ¢¨«ì­®áâì ¯à®æ¥¤ãàë à §¡¨¥­¨ï
®ª ¦¨â¥, çâ® ¯à®æ¥¤ãà Partition à ¡®â ¥â ¯à ¢¨«ì­®. „«ï
í⮣® ¤®ª ¦¨â¥ á«¥¤ãî饥:
‡ ¤ ç¨ ª £« ¢¥ 8
163
. ‚ ¯à®æ¥áá¥ à ¡®âë ¯à®æ¥¤ãàë ¨­¤¥ªáë i ¨ j ­¥ ¢ë室ïâ § ¯à¥¤¥«ë ®â१ª [p : :r].
¡. ‚ ¬®¬¥­â ®ª®­ç ­¨ï à ¡®âë ¯à®æ¥¤ãàë ¨­¤¥ªá j ­¥ ¬®¦¥â ¡ëâì
à ¢¥­ r (â. ¥. ®¡¥ ç áâ¨ à §¡¨¥­¨ï ­¥¯ãáâë).
¢. ‚ ¬®¬¥­â ®ª®­ç ­¨ï à ¡®âë ¯à®æ¥¤ãàë «î¡®© í«¥¬¥­â ¬ áᨢ A[p : :j ] ­¥ ¡®«ìè¥ «î¡®£® í«¥¬¥­â ¬ áᨢ A[j + 1 : :r].
8-2 €«£®à¨â¬ ‹®¬ãâ® ¤«ï à §¡¨¥­¨ï
‚ ਠ­â ¯à®æ¥¤ãàë Partition, ª®â®àë© ¬ë ᥩç á à áᬮâਬ,
¯à¨­ ¤«¥¦¨â . ‹®¬ãâ® (N. Lomuto). ‚ ¯à®æ¥áá¥ à ¡®âë áâà®ïâáï ªã᪨ A[p : :i] ¨ A[i + 1 : :j ], ¯à¨çñ¬ í«¥¬¥­âë ¯¥à¢®£® ªã᪠­¥ ¡®«ìè¥ x = A[r], í«¥¬¥­âë ¢â®à®£® ªã᪠| ¡®«ìè¥ x.
Lomuto-Partition(A; p; r)
1 x A[r]
2 i p;1
3 for j p to r
4
do if A[j ] 6 x
5
then i i + 1
6
¯®¬¥­ïâì A[i] $ A[j ]
7 if i < r
8 then return i
9 else return i ; 1
. „®ª ¦¨â¥, çâ® ¯à®æ¥¤ãà Lomuto-Partition à ¡®â ¥â ¯à ¢¨«ì­®.
¡. ‘ª®«ìª® à § ¯à®æ¥¤ãàë Partition ¨ Lomuto-Partition ¬®£ãâ ¯¥à¥¬¥é âì ®¤¨­ ¨ â®â ¦¥ í«¥¬¥­â? (“ª ¦¨â¥ ­ ¨¡®«ì訥 §­ 祭¨ï.)
¢. „®ª ¦¨â¥, çâ® ¯à®æ¥¤ãà Lomuto-Partition, ª ª ¨ ¯à®æ¥¤ãà Partition, âॡã¥â ¢à¥¬¥­¨ (n), £¤¥ n | ç¨á«® í«¥¬¥­â®¢ ¢
¬ áᨢ¥.
£. ‡ ¬¥­¨¬ ¢ ⥪á⥠¯à®æ¥¤ãàë Quicksort ¯à®æ¥¤ãàã Partition
­ Lomuto-Partition. Š ª ¨§¬¥­¨âáï ¢à¥¬ï ¡ëáâன á®àâ¨à®¢ª¨
¤«ï ¬ áᨢ , ¢á¥ í«¥¬¥­âë ª®â®à®£® à ¢­ë?
¤.  áᬮâਬ ¯à®æ¥¤ãàã Randomized-Lomuto-Partition,
ª®â®à ï ¬¥­ï¥â A[r] á® á«ãç ©­® ¢ë¡à ­­ë¬ í«¥¬¥­â®¬ ¬ áᨢ ¨ § ⥬ ¢ë§ë¢ ¥â ¯à®æ¥¤ãàã Lomuto-Partition. „®ª ¦¨â¥,
çâ® ¢¥à®ïâ­®áâì ⮣®, çâ® ¯à®æ¥¤ãà Randomized-LomutoPartition ¢¥à­ñâ §­ 祭¨¥ q , à ¢­ ¢¥à®ïâ­®á⨠⮣®, çâ® ¯à®æ¥¤ãà Randomized-Partition ¢¥à­ñâ §­ 祭¨¥ p + r ; q.
8-3 ‘®àâ¨à®¢ª ¯® ç áâï¬
à®ä¥áá®à ¯à¥¤«®¦¨« á«¥¤ãî騩 "¯à®¤¢¨­ãâë©" «£®à¨â¬ á®àâ¨à®¢ª¨:
164
ƒ« ¢ 8 ëáâà ï á®àâ¨à®¢ª Stooge-Sort(A; i; j )
1
2
3
4
5
6
7
8
if A[i] > A[j ]
then ¯®¬¥­ïâì A[i] $ A[j ]
if i + 1 > j
then return
k
b(j ; i + 1)=3c
. Žªà㣫¥­¨¥ á ­¥¤®áâ ⪮¬.
Stooge-Sort(A; i; j ; k) . ¥à¢ë¥ ¤¢¥ âà¥â¨.
Stooge-Sort(A; i + k; j ) . ®á«¥¤­¨¥ ¤¢¥ âà¥â¨.
Stooge-Sort(A; i; j ; k) . Ž¯ïâì ¯¥à¢ë¥ ¤¢¥ âà¥â¨.
. „®ª ¦¨â¥, çâ® ¯à®æ¥¤ãà Stooge-Sort ¤¥©á⢨⥫쭮 á®àâ¨àã¥â ¬ áᨢ.
¡.  ©¤¨â¥ ४ãà७⭮¥ ᮮ⭮襭¨¥ ¤«ï ­ ¨¡®«ì襣® ¢à¥¬¥­¨
à ¡®âë ¯à®æ¥¤ãàë Stooge-Sort ¨ ¯®«ãç¨â¥ ¨§ ­¥£® ®æ¥­ªã í⮣®
¢à¥¬¥­¨.
¢. ‘à ¢­¨â¥ ­ ¨¡®«ì襥 ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë Stooge-Sort
á ­ ¨¡®«ì訬 ¢à¥¬¥­¥¬ ¤«ï ¤àã£¨å ¢ ਠ­â®¢ á®àâ¨à®¢ª¨ (¢áâ ¢ª ¬¨, ᫨ﭨ¥¬, á ¯®¬®éìî ªãç¨ ¨ ¡ëáâன á®àâ¨à®¢ª¨). ‘⮨⠫¨
¯à®¤«¥¢ âì ª®­âà ªâ á ¯à®ä¥áá®à®¬?
8-4  §¬¥à á⥪ ¯à¨ ¡ëáâன á®àâ¨à®¢ª¥
à®æ¥¤ãà Quicksort ¤¢ à § ४ãàᨢ­® ¢ë§ë¢ ¥â ᥡï (¤«ï
«¥¢®© ¨ ¤«ï ¯à ¢®© ç áâ¨). ‚ ¤¥©á⢨⥫쭮á⨠¡¥§ ¢â®à®£® ४ãàᨢ­®£® ¢ë§®¢ ¬®¦­® ®¡®©â¨áì, § ¬¥­¨¢ ¥£® 横«®¬ (¨¬¥­­® â ª
å®à®è¨¥ ª®¬¯¨«ïâ®àë ®¡à ¡ âë¢ îâ á¨âã æ¨î, ª®£¤ ¯®á«¥¤­¨¬
®¯¥à â®à®¬ ¯à®æ¥¤ãàë ï¥âáï ४ãàᨢ­ë© ¢ë§®¢; ¤«ï â ª®© á¨âã 樨 ¥áâì â¥à¬¨­ tail recursion):
Quicksort0 (A; p; r)
1 while p < r
2
do .  §¡¨âì ¨ ®âá®àâ¨à®¢ âì «¥¢ãî ç áâì.
3
q Partition(A; p; r)
4
Quicksort0(A; p; q )
5
p q+1
. „®ª ¦¨â¥, çâ® ¯à®æ¥¤ãà Quicksort0 ¤¥©á⢨⥫쭮 á®àâ¨àã¥â ¬ áᨢ.
Š ª ¯à ¢¨«®, ª®¬¯¨«ïâ®àë ॠ«¨§ãîâ ४ãàá¨î á ¯®¬®éìî
á⥪ , £¤¥ åà ­ïâáï ª®¯¨¨ «®ª «ì­ëå ¯¥à¥¬¥­­ëå ¤«ï ª ¦¤®£® ४ãàᨢ­®£® ¢ë§®¢ . ‚¥à設 á⥪ ᮤ¥à¦¨â ¨­ä®à¬ æ¨î, ®â­®áïéãîáï ª ⥪ã饬㠢맮¢ã; ª®£¤ ®­ § ¢¥àè ¥âáï, ¨­ä®à¬ æ¨ï 㤠«ï¥âáï ¨§ á⥪ . ‚ ­ 襬 á«ãç ¥ ¤«ï ª ¦¤®£® ४ãàᨢ­®£® ¢ë§®¢ «®ª «ì­ë¥ ¯¥à¥¬¥­­ë¥ § ­¨¬ îâ ®¡êñ¬ O(1), â ª çâ® ­¥®¡å®¤¨¬ë©
à §¬¥à á⥪ (stack depth) ¯à®¯®à樮­ «¥­ £«ã¡¨­¥ ४ãàᨨ.
¡. ®ª ¦¨â¥, çâ® ¢ ­¥ª®â®àëå á«ãç ïå ¯à®æ¥¤ãà Quicksort0
âॡã¥â á⥪ à §¬¥à (n).
‡ ¬¥ç ­¨ï ª £« ¢¥ 8
165
¢. ˆ§¬¥­¨â¥ ¯à®æ¥¤ãàã Quicksort0 â ª, çâ®¡ë ®¡êñ¬ á⥪ ­¥
¯à¥¢ëè « (lg n) (á®åà ­ïï ®æ¥­ªã (n lg n) ¤«ï á।­¥£® ¢à¥¬¥­¨
à ¡®âë).
8-5  §¡¨¥­¨¥ á ¯®¬®éìî ¬¥¤¨ ­ë âàñå í«¥¬¥­â®¢
 ¡®âã ¯à®æ¥¤ãàë Randomized-Quicksort ¬®¦­® ã᪮à¨âì,
¢ë¡¨à ï £à ­¨ç­ë© í«¥¬¥­â ¤«ï à §¡¨¥­¨ï ¡®«¥¥ âé ⥫쭮. Ž¤¨­
¨§ à á¯à®áâà ­ñ­­ëå ¯®¤å®¤®¢ | íâ® ¬¥â®¤ ¬¥¤¨ ­ë âàñå (medianof-3 method): ¢ ª ç¥á⢥ £à ­¨ç­®£® í«¥¬¥­â ¨á¯®«ì§ã¥âáï á।­¨©
¨§ âàñå á«ãç ©­® ¢ë¡à ­­ëå í«¥¬¥­â®¢ ¬ áᨢ . Œë ¡ã¤¥¬ ¯à¥¤¯®« £ âì, çâ® ¢á¥ í«¥¬¥­âë ¢å®¤­®£® ¬ áᨢ A[1 : :n] à §«¨ç­ë ¨
n > 3. —¥à¥§ A0[1 : :n] ¡ã¤¥¬ ®¡®§­ ç âì ®âá®àâ¨à®¢ ­­ë© ¬ áᨢ
(ª®â®àë© ¬ë ¨ å®â¨¬ ¯®«ãç¨âì). ãáâì pi = Pfx = A0 [i]g, £¤¥ x |
£à ­¨ç­ë© í«¥¬¥­â, ¢ë¡à ­­ë© ®¯¨á ­­ë¬ ¢ëè¥ á¯®á®¡®¬.
. ‚ëà §¨â¥ ¢¥à®ïâ­®áâì pi (¤«ï i = 2; 3; : : :; n ; 1) ç¥à¥§ i ¨ n
(§ ¬¥âìâ¥, çâ® p1 = pn = 0).
¡.  ᪮«ìª® ¢¥à®ïâ­®áâì ¢ë¡à âì á।­¨© í«¥¬¥­â (A0[b(n +
1)=2c]) ¡®«ìè¥, 祬 ¯à¨ ®¡ëç­®¬ á«ãç ©­®¬ ¢ë¡®à¥? Š 祬ã áâ६¨âáï ®â­®è¥­¨¥ íâ¨å ¢¥à®ïâ­®á⥩ ¯à¨ n ! 1?
¢. ã¤¥¬ ­ §ë¢ âì à §¡¨¥­¨¥ á £à ­¨ç­ë¬ í«¥¬¥­â®¬ x "å®à®è¨¬", ¥á«¨ x = A0[i], £¤¥ n=3 6 i 6 2n=3.  ᪮«ìª® ¢¥à®ïâ­®áâì
"å®à®è¥£®" à §¡¨¥­¨ï ¡®«ìè¥, 祬 ¯à¨ ®¡ëç­®¬ á«ãç ©­®¬ ¢ë¡®à¥? (“ª § ­¨¥: ¯à¨ ¢ëç¨á«¥­¨ïå ®æ¥­¨â¥ á㬬㠨­â¥£à «®¬.)
£. „®ª ¦¨â¥, çâ® ¨á¯®«ì§®¢ ­¨¥ ¬¥â®¤ ¬¥¤¨ ­ë âàñå á®åà ­ï¥â
®æ¥­ªã (n lg n) ¤«ï ¢à¥¬¥­¨ à ¡®âë ¡ëáâன á®àâ¨à®¢ª¨ (¨ ¢«¨ï¥â
«¨èì ­ ª®­áâ ­âã ¯¥à¥¤ n lg n).
‡ ¬¥ç ­¨ï
€«£®à¨â¬ ¡ëáâன á®àâ¨à®¢ª¨ ¯à¨­ ¤«¥¦¨â •® àã [98]. ‚ áâ âì¥ ‘¥¤¦¢¨ª [174] ®¡á㦤 îâáï ¤¥â «¨ ॠ«¨§ 樨 ¡ëáâன á®àâ¨à®¢ª¨ ¨ ¨å ¢«¨ï­¨¥ ­ ¢à¥¬ï à ¡®âë. ‚¥à®ïâ­®áâ­ë¥ «£®à¨â¬ë
¤«ï à §­ëå § ¤ ç à áᬠâਢ îâáï ¢ áâ âì¥  ¡¨­ [165].
9
‘®àâ¨à®¢ª § «¨­¥©­®¥ ¢à¥¬ï
Œë ¯®§­ ª®¬¨«¨áì á à §«¨ç­ë¬¨ «£®à¨â¬ ¬¨, ª®â®àë¥ ¬®£ãâ ®âá®àâ¨à®¢ âì n ç¨á¥« § ¢à¥¬ï O(n lg n). €«£®à¨â¬ë á®àâ¨à®¢ª¨ ᫨ﭨ¥¬ (merge sort) ¨ á®àâ¨à®¢ª¨ á ¯®¬®éìî ªãç¨ (heap sort) à ¡®â îâ § â ª®¥ ¢à¥¬ï ¢ åã¤è¥¬ á«ãç ¥, ã «£®à¨â¬ ¡ëáâன á®àâ¨à®¢ª¨ â ª®¢ë¬ ï¥âáï á।­¥¥ ¢à¥¬ï à ¡®âë. Žæ¥­ª O(n lg n)
â®ç­ : ¤«ï ª ¦¤®£® ¨§ íâ¨å «£®à¨â¬®¢ ¬®¦­® ¯à¥¤êâì ¯®á«¥¤®¢ ⥫쭮áâì ¨§ n ç¨á¥«, ¢à¥¬ï ®¡à ¡®âª¨ ª®â®à®© ¡ã¤¥â (n lg n).
‚ᥠ㯮¬ï­ãâë¥ «£®à¨â¬ë ¯à®¢®¤ïâ á®àâ¨à®¢ªã, ®á­®¢ë¢ ïáì
¨áª«îç¨â¥«ì­® ­ ¯®¯ à­ëå áà ¢­¥­¨ïå í«¥¬¥­â®¢, ¯®í⮬㠨å
¨­®£¤ ­ §ë¢ îâ á®àâ¨à®¢ª ¬¨ áà ¢­¥­¨¥¬ (comparison sort). ‚ à §¤¥«¥ 9.1 ¬ë ¯®ª ¦¥¬, çâ® ¢á直© «£®à¨â¬ â ª®£® ⨯ á®àâ¨àã¥â
n í«¥¬¥­â®¢ § ¢à¥¬ï ­¥ ¬¥­ìè¥ (n lg n) ¢ åã¤è¥¬ á«ãç ¥. ’¥¬ á ¬ë¬ «£®à¨â¬ë á®àâ¨à®¢ª¨ ᫨ﭨ¥¬ ¨ á ¯®¬®éìî ªãç¨ á¨¬¯â®â¨ç¥áª¨ ®¯â¨¬ «ì­ë: ­¥ áãé¥áâ¢ã¥â «£®à¨â¬ á®àâ¨à®¢ª¨ áà ¢­¥­¨¥¬, ª®â®àë© ¯à¥¢®á室¨« ¡ë 㪠§ ­­ë¥ «£®à¨â¬ë ¡®«¥¥, 祬
¢ ª®­¥ç­®¥ ç¨á«® à §.
‚ à §¤¥« å 9.2, 9.3 ¨ 9.4 ¬ë à áᬠâਢ ¥¬ âਠ«£®à¨â¬ á®àâ¨à®¢ª¨ (á®àâ¨à®¢ª ¯®¤áçñ⮬, æ¨ä஢ ï á®àâ¨à®¢ª ¨ á®àâ¨à®¢ª ¢ëçñà¯ë¢ ­¨¥¬), à ¡®â îé¨å § «¨­¥©­®¥ ¢à¥¬ï.  §ã¬¥¥âáï, ®­¨
ã«ãçè î⠮業ªã (n lg n) § áçñâ ⮣®, çâ® ¨á¯®«ì§ãîâ ­¥ ⮫쪮
¯®¯ à­ë¥ áà ¢­¥­¨ï, ­® ¨ ¢­ãâ७­îî áâàãªâãàã á®àâ¨à㥬ëå
®¡ê¥ªâ®¢.
9.1 ¨¦­¨¥ ®æ¥­ª¨ ¤«ï á®àâ¨à®¢ª¨
ƒ®¢®àïâ, çâ® «£®à¨â¬ á®àâ¨à®¢ª¨ ®á­®¢ ­ ­ áà ¢­¥­¨ïå, ¥á«¨
®­ ­¨ª ª ­¥ ¨á¯®«ì§ã¥â ¢­ãâ७­îî áâàãªâãàã á®àâ¨à㥬ëå í«¥¬¥­â®¢, «¨èì áà ¢­¨¢ ¥â ¨å ¨ ¯®á«¥ ­¥ª®â®à®£® ç¨á« áà ¢­¥­¨©
¢ë¤ ñ⠮⢥â (㪠§ë¢ î騩 ¨á⨭­ë© ¯®à冷ª í«¥¬¥­â®¢). ’ ª ¬ë
¯à¨å®¤¨¬ ª ¬®¤¥«¨ «£®à¨â¬®¢ á®àâ¨à®¢ª¨, ­ §ë¢ ¥¬®© à §à¥è î騬¨ ¤¥à¥¢ìﬨ.
¨¦­¨¥ ®æ¥­ª¨ ¤«ï á®àâ¨à®¢ª¨
167
¨áã­®ª 9.1  §à¥è î饥 ¤¥à¥¢® ¤«ï «£®à¨â¬ á®àâ¨à®¢ª¨ ¢áâ ¢ª ¬¨, ®¡à ¡ âë¢ î饣® ¯®á«¥¤®¢ ⥫쭮áâì ¨§ âàñå í«¥¬¥­â®¢. ®áª®«ìªã ç¨á«® ¯¥à¥áâ ­®¢®ª ¨§ âàñå í«¥¬¥­â®¢ à ¢­® 3! = 6, ã ¤¥à¥¢ ¤®«¦­® ¡ëâì ­¥ ¬¥­¥¥ 6
«¨áâ쥢.
 §à¥è î騥 ¤¥à¥¢ìï
 ç­ñ¬ á ¯à¨¬¥à : ­ à¨á. 9.1 ¨§®¡à ¦¥­® à §à¥è î饥 ¤¥à¥¢®
(decision tree), ᮮ⢥âáâ¢ãî饥 á®àâ¨à®¢ª¥ ¯®á«¥¤®¢ ⥫쭮á⨠¨§
âàñå í«¥¬¥­â®¢ á ¯®¬®éìî «£®à¨â¬ á®àâ¨à®¢ª¨ ¢áâ ¢ª ¬¨ ¨§ à §¤¥« 1.1.
ãáâì ⥯¥àì ¬ë á®àâ¨à㥬 n í«¥¬¥­â®¢ a1; : : :; an. Š ¦¤ ï ¢­ã-
â७­ïï ¢¥à設 à §à¥è î饣® ¤¥à¥¢ ᮮ⢥âáâ¢ã¥â ®¯¥à 樨
áà ¢­¥­¨ï ¨ á­ ¡¦¥­ ¯®¬¥âª®© ¢¨¤ ai : aj , 㪠§ë¢ î饩, ª ª¨¥
í«¥¬¥­âë ­ ¤® áà ¢­¨âì (1 6 i; j 6 n). Š ¦¤ë© «¨áâ à §à¥è î饣® ¤¥à¥¢ á­ ¡¦¥­ ¯®¬¥âª®© h(1); (2); : : :; (n)i, £¤¥ | ¯¥à¥áâ ­®¢ª n í«¥¬¥­â®¢ (á¬. à §¤. 6.1 ¯® ¯®¢®¤ã ¯¥à¥áâ ­®¢®ª). „«ï
¯®«ã祭¨ï ­¨¦­¨å ®æ¥­®ª ¬ë ¬®¦¥¬ ®£à ­¨ç¨âìáï á«ãç ¥¬ à §«¨ç­ëå í«¥¬¥­â®¢, ⮣¤ १ã«ìâ ⮬ á®àâ¨à®¢ª¨ ¡ã¤¥â ¯¥à¥áâ ­®¢ª í«¥¬¥­â®¢ ¢ ¯®à浪¥ ¢®§à áâ ­¨ï.
Ž¯¨è¥¬, ª ª®© «£®à¨â¬ á®àâ¨à®¢ª¨ ᮮ⢥âáâ¢ã¥â ¤ ­­®¬ã à §à¥è î饬㠤¥à¥¢ã.  ¤® ¯à®©â¨ ¯® ¤¥à¥¢ã ®â ª®à­ï ¤® «¨áâ . ‚ë¡®à ­ ¯à ¢«¥­¨ï (­ «¥¢® ¨«¨ ­ ¯à ¢®) ¯à®¨á室¨â â ª. ãáâì ¢
¢¥à設¥ ­ ¯¨á ­® ai : aj . ’®£¤ ­ ¤® ¨¤â¨ ­ «¥¢®, ¥á«¨ ai 6 aj , ¨
­ ¯à ¢® ¢ ¯à®â¨¢­®¬ á«ãç ¥. …᫨ ¢ «¨áâ¥, ¢ ª®â®àë© ¬ë ¢ ¨â®£¥
¯à¨å®¤¨¬, § ¯¨á ­ ¯¥à¥áâ ­®¢ª , ⮠१ã«ìâ ⮬ á®àâ¨à®¢ª¨
áç¨â ¥¬ ¯®á«¥¤®¢ ⥫쭮áâì a(1); a(2); : : :; a(n), ª®â®à ï ¤®«¦­ ¡ëâì ­¥ã¡ë¢ î饩, ¥á«¨ «£®à¨â¬ ¯à ¢¨«¥­.
Š ¦¤ ï ¨§ n! ¯¥à¥áâ ­®¢®ª ¤®«¦­ ¯®ï¢¨âìáï å®âï ¡ë ­ ®¤­®¬
«¨áâ¥ à §à¥è î饣® ¤¥à¥¢ (¯®áª®«ìªã ¯à ¢¨«ì­ë© «£®à¨â¬ ¤®«¦¥­ ¯à¥¤ãᬠâਢ âì ¢á¥ ¢®§¬®¦­ë¥ ¯®à浪¨).
¨¦­ïï ®æ¥­ª ¤«ï åã¤è¥£® á«ãç ï
—¨á«® áà ¢­¥­¨© ¢ åã¤è¥¬ á«ãç ¥ ¤«ï â ª®£® «£®à¨â¬ à ¢­®
¢ëá®â¥ à §à¥è î饣® ¤¥à¥¢ | ¬ ªá¨¬ «ì­®© ¤«¨­¥ ¯ã⨠¢ í⮬
¤¥à¥¢¥ ®â ª®à­ï ¤® «¨áâ . ‘«¥¤ãîé ï ⥮६ ¤ ¥â ­¨¦­îî ®æ¥­ªã
­ íâã ¢ëá®âã.
168
ƒ« ¢ 9 ‘®àâ¨à®¢ª § «¨­¥©­®¥ ¢à¥¬ï
’¥®à¥¬ 9.1. ‚ëá®â «î¡®£® à §à¥è î饣® ¤¥à¥¢ , á®àâ¨àãî饣®
n í«¥¬¥­â®¢, ¥áâì (n lg n).
„®ª § ⥫ìá⢮. ®áª®«ìªã á।¨ «¨áâ쥢 à §à¥è î饣® ¤¥à¥¢ ¤®«¦­ë ¡ëâì ¯à¥¤áâ ¢«¥­ë ¢á¥ ¯¥à¥áâ ­®¢ª¨ n í«¥¬¥­â®¢, ç¨á«®
íâ¨å «¨áâ쥢 ­¥ ¬¥­¥¥ n!. ®áª®«ìªã ¤¢®¨ç­®¥ ¤¥à¥¢® ¢ëá®âë h
¨¬¥¥â ­¥ ¡®«¥¥ 2h «¨áâ쥢, ¨¬¥¥¬ n! 6 2h. ‹®£ à¨ä¬¨àãï íâ® ­¥à ¢¥­á⢮ ¯® ®á­®¢ ­¨î 2 ¨ ¯®«ì§ãïáì ­¥à ¢¥­á⢮¬ n! > (n=e)n,
¢ë⥪ î騬 ¨§ ä®à¬ã«ë ‘â¨à«¨­£ (2.11), ¯®«ãç ¥¬, çâ®
h > n lg n ; n lg e = (n lg n);
çâ® ¨ ã⢥ত «®áì.
‘«¥¤á⢨¥ 9.2. €«£®à¨â¬ë á®àâ¨à®¢ª¨ ᫨ﭨ¥¬ ¨ á ¯®¬®éìî ªãç¨
ᨬ¯â®â¨ç¥áª¨ ®¯â¨¬ «ì­ë.
„®ª § ⥫ìá⢮. Ž­¨ à ¡®â îâ § ¢à¥¬ï O(n lg n); ¢ ᨫ㠤®ª § ­­®© ⥮६ë, í⠮業ª ᨬ¯â®â¨ç¥áª¨ ­¥ã«ãçè ¥¬ .
“¯à ¦­¥­¨ï
Š ª®¢ ­ ¨¬¥­ìè ï ¢®§¬®¦­ ï £«ã¡¨­ «¨áâ ¢ à §à¥è î饬 ¤¥à¥¢¥ «£®à¨â¬ á®àâ¨à®¢ª¨?
9.1-2
„®ª ¦¨â¥ ᨬ¯â®â¨ç¥áª¨ â®ç­ãî ®æ¥­ªã ¤«ï lg(n!) =
Pn
k=1 lg k ¡¥§ ä®à¬ã«ë ‘â¨à«¨­£ , ¨á¯®«ì§ãï ¬¥â®¤ë à §¤. 3.2.
9.1-3 ®ª ¦¨â¥, çâ® ­¥ áãé¥áâ¢ã¥â «£®à¨â¬ á®àâ¨à®¢ª¨, ®á­®¢ ­­®£® ­ áà ¢­¥­¨ïå, ª®â®àë© à ¡®â « ¡ë § «¨­¥©­®¥ ¢à¥¬ï ¤«ï
¯®«®¢¨­ë ¨§ n! ¢®§¬®¦­ëå ¢å®¤­ëå ¯®á«¥¤®¢ ⥫쭮á⥩ ¤«¨­ë n.
Š ª ¨§¬¥­¨âáï ®â¢¥â, ¥á«¨ ¢ í⮩ § ¤ ç¥ § ¬¥­¨âì 1=2 ­ 1=n?  1=2n ?
9.1-4 à®ä¥áá®à à §à ¡®â « ª®¬¯ìîâ¥à, ª®â®àë© ¯®¤¤¥à¦¨¢ ¥â
"âன­ë¥ ¢¥â¢«¥­¨ï": ¯®á«¥ ®¤­®£®-¥¤¨­á⢥­­®£® áà ¢­¥­¨ï ai :
aj ã¯à ¢«¥­¨¥ ¬®¦¥â ¡ëâì ¯¥à¥¤ ­® ¢ ®¤­® ¨§ âàñå ¬¥áâ ¯à®£à ¬¬ë, ¢ § ¢¨á¨¬®á⨠®â ⮣®, ª ª®¥ ¨§ ᮮ⭮襭¨© ¢ë¯®«­¥­®:
ai < aj , ai = aj ¨«¨ ai > aj . Ž­ ­ ¤¥¥âáï, çâ® ¡« £®¤ àï â ª¨¬
áà ¢­¥­¨ï¬ á®àâ¨à®¢ªã n í«¥¬¥­â®¢ ¬®¦­® ¯à®¢¥á⨠ᨬ¯â®â¨ç¥áª¨ ¡ëáâ॥, 祬 § ¢à¥¬ï (n lg n). ®ª ¦¨â¥, çâ® ¯à®ä¥áá®à
§ ¡«ã¦¤ ¥âáï.
9.1-5 ®ª ¦¨â¥, çâ® ¤«ï á«¨ï­¨ï ¤¢ãå ®âá®àâ¨à®¢ ­­ëå ¯®á«¥¤®¢ ⥫쭮á⥩ ¨§ n í«¥¬¥­â®¢ ¤®áâ â®ç­® 2n ; 1 áà ¢­¥­¨© ¢ åã¤è¥¬
á«ãç ¥.
9.1-6 ®á«¥¤®¢ ⥫쭮áâì ¨§ n í«¥¬¥­â®¢, ª®â®àãî ­¥®¡å®¤¨¬®
®âá®àâ¨à®¢ âì, à §¡¨â ­ ãç á⪨ ¤«¨­ë k. à¨ í⮬ «î¡®© í«¥9.1-1
‘®àâ¨à®¢ª ¯®¤áçñ⮬
169
¬¥­â ¯¥à¢®£® ãç á⪠¬¥­ìè¥ «î¡®£® í«¥¬¥­â ¢â®à®£® ¨ â. ¤. (â ª
çâ® ®áâ ñâáï «¨èì ®âá®àâ¨à®¢ âì í«¥¬¥­âë ¢­ãâਠãç á⪮¢). ®ª ¦¨â¥, çâ® â ª ï á®àâ¨à®¢ª ¯®âॡã¥â ­¥ ¬¥­¥¥ (n lg k) áà ¢­¥­¨© ¢ åã¤è¥¬ á«ãç ¥. (“ª § ­¨¥: ­¥¤®áâ â®ç­® á®á« âìáï ­ ­¥®¡å®¤¨¬®áâì n=k à § á®àâ¨à®¢ âì ãç á⮪ ¤«¨­®© k.)
9.2 ‘®àâ¨à®¢ª ¯®¤áçñ⮬
€«£®à¨â¬ á®àâ¨à®¢ª¨ ¯®¤áçñ⮬ (counting sort) ¯à¨¬¥­¨¬, ¥á«¨ ª ¦¤ë© ¨§ n í«¥¬¥­â®¢ á®àâ¨à㥬®© ¯®á«¥¤®¢ ⥫쭮á⨠| 楫®¥ ¯®«®¦¨â¥«ì­®¥ ç¨á«® ¢ ¨§¢¥áâ­®¬ ¤¨ ¯ §®­¥ (­¥ ¯à¥¢®á室ï饥 § à ­¥¥ ¨§¢¥áâ­®£® k). …᫨ k = O(n), â® «£®à¨â¬ á®àâ¨à®¢ª¨ ¯®¤áçñ⮬ à ¡®â ¥â § ¢à¥¬ï O(n).
ˆ¤¥ï í⮣® «£®à¨â¬ ¢ ⮬, çâ®¡ë ¤«ï ª ¦¤®£® í«¥¬¥­â x ¯à¥¤¢ à¨â¥«ì­® ¯®¤áç¨â âì, ᪮«ìª® í«¥¬¥­â®¢ ¢å®¤­®© ¯®á«¥¤®¢ ⥫쭮á⨠¬¥­ìè¥ x, ¯®á«¥ 祣® § ¯¨á âì x ­ ¯àï¬ãî ¢ ¢ë室­®© ¬ áᨢ
¢ ᮮ⢥âá⢨¨ á í⨬ ç¨á«®¬ (¥á«¨, ᪠¦¥¬, 17 í«¥¬¥­â®¢ ¢å®¤­®£®
¬ áᨢ ¬¥­ìè¥ x, â® ¢ ¢ë室­®¬ ¬ áᨢ¥ x ¤®«¦¥­ ¡ëâì § ¯¨á ­
­ ¬¥áâ® ­®¬¥à 18). …᫨ ¢ á®àâ¨à㥬®© ¯®á«¥¤®¢ ⥫쭮á⨠¬®£ãâ
¯à¨áãâá⢮¢ âì à ¢­ë¥ ç¨á« , íâã á奬㠭 ¤® á«¥£ª ¬®¤¨ä¨æ¨à®¢ âì, çâ®¡ë ­¥ § ¯¨á âì ­¥áª®«ìª® ç¨á¥« ­ ®¤­® ¬¥áâ®.
‚ ¯à¨¢®¤¨¬®¬ ­¨¦¥ ¯á¥¢¤®ª®¤¥ ¨á¯®«ì§ã¥âáï ¢á¯®¬®£ ⥫ì­ë©
¬ áᨢ C [1 : :k] ¨§ k í«¥¬¥­â®¢. ‚室­ ï ¯®á«¥¤®¢ ⥫쭮áâì § ¯¨á ­ ¢ ¬ áᨢ¥ A[1 : :n], ®âá®àâ¨à®¢ ­­ ï ¯®á«¥¤®¢ ⥫쭮áâì § ¯¨áë¢ ¥âáï ¢ ¬ áᨢ B[1 : :n].
Counting-Sort(A; B; k)
1 for i 1 to k
2
do C [i] 0
3 for j 1 to length[A]
4
do C [A[j ]] C [A[j ]] + 1
5 . C [i] à ¢­® ª®«¨ç¥áâ¢ã í«¥¬¥­â®¢, à ¢­ëå i.
6 for i 2 to k
7
do C [i] C [i] + C [i ; 1]
8 . C [i] à ¢­® ª®«¨ç¥áâ¢ã í«¥¬¥­â®¢, ­¥ ¯à¥¢®á室ïé¨å i
9 for j length[A] downto 1
10
do B [C [A[j ]]] A[j ]
11
C [A[j ]] C [A[j ]] ; 1
 ¡®â «£®à¨â¬ á®àâ¨à®¢ª¨ ¯®¤áçñ⮬ ¯à®¨««îáâà¨à®¢ ­ ­ à¨á. 9.2. ®á«¥ ¨­¨æ¨ «¨§ 樨 (áâப¨ 1{2) ¬ë á­ ç « ¯®¬¥é ¥¬ ¢ C [i] ª®«¨ç¥á⢮ í«¥¬¥­â®¢ ¬ áᨢ A, à ¢­ëå i
(áâப¨ 3{4), § ⥬, ­ 室ï ç áâ¨ç­ë¥ áã¬¬ë ¯®á«¥¤®¢ ⥫쭮á⨠C [1]; C [2]; : : :; C [k], | ª®«¨ç¥á⢮ í«¥¬¥­â®¢, ­¥ ¯à¥¢®á室ïé¨å i (áâப¨ 6{7).  ª®­¥æ, ¢ áâப å 9{11 ª ¦¤ë© ¨§ í«¥¬¥­â®¢
170
ƒ« ¢ 9 ‘®àâ¨à®¢ª § «¨­¥©­®¥ ¢à¥¬ï
¨áã­®ª 9.2  ¡®â «£®à¨â¬ Counting-Sort, ¯à¨¬¥­ñ­­®£® ª ¬ áᨢã
A[1 : : 8], á®áâ®ï饬㠨§ ­ âãà «ì­ëå ç¨á¥«, ­¥ ¯à¥¢®á室ïé¨å k = 6. ( ) Œ áᨢ A ¨ ¢á¯®¬®£ ⥫ì­ë© ¬ áᨢ C ¯®á«¥ ¢ë¯®«­¥­¨ï 横« ¢ áâப å 3{4.
(¡) Œ áᨢ C ¯®á«¥ ¢ë¯®«­¥­¨ï 横« ¢ áâப å 6{7. (¢{¤) ‚ë室­®© ¬ áᨢ
B ¨ ¢á¯®¬®£ ⥫ì­ë© ¬ áᨢ C ¯®á«¥ ®¤­®£®, ¤¢ãå ¨ âàñå ¯®¢â®à¥­¨© 横« ¢
áâப å 9{11. ‡ ç¥à­ñ­­ë¥ ª«¥âª¨ ᮮ⢥âáâ¢ãîâ í«¥¬¥­â ¬ ¬ áᨢ , §­ 祭¨ï
ª®â®àë¬ ¥éñ ­¥ ¯à¨á¢®¥­ë. (¥) Œ áᨢ B ¯®á«¥ ®ª®­ç ­¨ï à ¡®âë «£®à¨â¬ .
¬ áᨢ A ¯®¬¥é ¥âáï ­ ­ã¦­®¥ ¬¥áâ® ¢ ¬ áᨢ¥ B. ‚ á ¬®¬ ¤¥«¥,
¥á«¨ ¢á¥ n í«¥¬¥­â®¢ à §«¨ç­ë, â® ¢ ®âá®àâ¨à®¢ ­­®¬ ¬ áᨢ¥
ç¨á«® A[j ] ¤®«¦­® áâ®ïâì ­ ¬¥á⥠­®¬¥à C [A[j ]], ¨¡® ¨¬¥­­®
á⮫쪮 í«¥¬¥­â®¢ ¬ áᨢ A ­¥ ¯à¥¢®á室ïâ A[j ]; ¥á«¨ ¢ ¬ áᨢ¥
A ¢áâà¥ç îâáï ¯®¢â®à¥­¨ï, â® ¯®á«¥ ª ¦¤®© § ¯¨á¨ ç¨á« A[j ]
¢ ¬ áᨢ B ç¨á«® C [A[j ]] 㬥­ìè ¥âáï ­ ¥¤¨­¨æã (áâப 11),
â ª çâ® ¯à¨ á«¥¤ãî饩 ¢áâà¥ç¥ á ç¨á«®¬, à ¢­ë¬ A[j ], ®­® ¡ã¤¥â
§ ¯¨á ­® ­ ®¤­ã ¯®§¨æ¨î «¥¢¥¥.
Žæ¥­¨¬ ¢à¥¬ï à ¡®âë «£®à¨â¬ á®àâ¨à®¢ª¨ ¯®¤áçñ⮬. –¨ª«ë
¢ áâப å 1{2 ¨ 6{7 à ¡®â îâ § ¢à¥¬ï O(k), 横«ë ¢ áâப å 3{4
¨ 10{11 | § ¢à¥¬ï O(n), ¢¥áì «£®à¨â¬, áâ «® ¡ëâì, à ¡®â ¥â § ¢à¥¬ï O(k + n). …᫨ k = O(n), â® ¢à¥¬ï à ¡®âë ¥áâì O(n).
„«ï «£®à¨â¬ á®àâ¨à®¢ª¨ ¯®¤áçñ⮬ ­¨¦­ïï ®æ¥­ª à §¤. 9.1
| ­¥ ¯à¥¯ïâá⢨¥, ¯®áª®«ìªã ®­ ­¥ áà ¢­¨¢ ¥â á®àâ¨àã¥¬ë¥ ç¨á« ¬¥¦¤ã ᮡ®©, ¨á¯®«ì§ã¥â ¨å ¢ ª ç¥á⢥ ¨­¤¥ªá®¢ ¬ áᨢ .
€«£®à¨â¬ á®àâ¨à®¢ª¨ ¯®¤áçñ⮬ ®¡« ¤ ¥â ¢ ¦­ë¬ ᢮©á⢮¬,
­ §ë¢ ¥¬ë¬ ãá⮩稢®áâìî (it is stable). ˆ¬¥­­®, ¥á«¨ ¢® ¢å®¤­®¬
¬ áᨢ¥ ¯à¨áãâáâ¢ã¥â ­¥áª®«ìª® à ¢­ëå ç¨á¥«, â® ¢ ¢ë室­®¬ ¬ áᨢ¥ ®­¨ áâ®ïâ ¢ ⮬ ¦¥ ¯®à浪¥, çâ® ¨ ¢® ¢å®¤­®¬. â® ᢮©á⢮ ­¥
¨¬¥¥â á¬ëá« , ¥á«¨ ¢ ¬ áᨢ¥ § ¯¨á ­ë ⮫쪮 ç¨á« á ¬¨ ¯® ᥡ¥,
­® ¥á«¨ ¢¬¥á⥠á ç¨á« ¬¨ § ¯¨á ­ë ¤®¯®«­¨â¥«ì­ë¥ ¤ ­­ë¥, íâ®
®ª §ë¢ ¥âáï ¢ ¦­ë¬. ®«¥¥ â®ç­®, ¯à¥¤áâ ¢¨¬ ᥡ¥, çâ® ¬ë á®àâ¨à㥬 ­¥ ¯à®áâ® ç¨á« , ¯ àë ht; xi, £¤¥ t | ç¨á«® ®â 1 ¤® k, x |
¯à®¨§¢®«ì­ë© ®¡ê¥ªâ, ¨ å®â¨¬ ¯¥à¥áâ ¢¨âì ¨å â ª, çâ®¡ë ¯¥à¢ë¥
ª®¬¯®­¥­âë ¯ à 諨 ¢ ­¥ã¡ë¢ î饬 ¯®à浪¥. Ž¯¨á ­­ë© ­ ¬¨ «-
–¨ä஢ ï á®àâ¨à®¢ª 171
£®à¨â¬ ¯®§¢®«ï¥â í⮠ᤥ« âì, ¯à¨çñ¬ ®â­®á¨â¥«ì­®¥ à ᯮ«®¦¥­¨¥
¯ à á à ¢­ë¬¨ ¯¥à¢ë¬¨ ª®¬¯®­¥­â ¬¨ ­¥ ¬¥­ï¥âáï. â® ᢮©á⢮ ¨
­ §ë¢ ¥âáï ãá⮩稢®áâìî. Œë 㢨¤¨¬ ¢ á«¥¤ãî饬 à §¤¥«¥, ª ª
®­® ¯à¨¬¥­ï¥âáï.
“¯à ¦­¥­¨ï
9.2-1
‘«¥¤ãï ®¡à §æã à¨á. 9.2., ¯®ª ¦¨â¥ à ¡®âã «£®à¨â¬ 9.2-2
„®ª ¦¨â¥, çâ® «£®à¨â¬ Counting-Sort ï¥âáï ãá⮩-
Counting-Sort ¤«ï á«ãç ï k = 7 ¨ A = h7; 1; 3; 1; 2; 4; 5; 7; 2; 4; 3i.
稢ë¬.
9.2-3 ‡ ¬¥­¨¬ áâபã 9 «£®à¨â¬ Counting-Sort ­ â ªãî:
9 for j 1 to length[A]
®ª ¦¨â¥, çâ® «£®à¨â¬ ®áâ ñâáï ¯à ¢¨«ì­ë¬. ã¤¥â «¨ ®­ ãá⮩稢?
9.2-4 ãáâì ­ ¢ë室¥ «£®à¨â¬ á®àâ¨à®¢ª¨ ­ ¤® ­ ¯¥ç â âì
í«¥¬¥­âë ¢å®¤­®© ¯®á«¥¤®¢ ⥫쭮á⨠¢ ®âá®àâ¨à®¢ ­­®¬ ¯®à浪¥.
Œ®¤¨ä¨æ¨àã©â¥ «£®à¨â¬ Counting-Sort â ª¨¬ ®¡à §®¬, ç⮡ë
®­ ¤¥« « íâ®, ­¥ ¨á¯®«ì§ãï ¬ áᨢ B ¨«¨ ¨­ëå ¬ áᨢ®¢ (¯®¬¨¬® A
¨ C ). (“ª § ­¨¥: á¢ï¦¨â¥ ¢ ᯨ᪨ í«¥¬¥­âë ¬ áᨢ A á ®¤¨­ ª®¢ë¬ §­ 祭¨¥¬; £¤¥ ¢§ïâì ¬¥áâ® ¤«ï åà ­¥­¨ï 㪠§ ⥫¥©?).
9.2-5 „ ­® n 楫ëå ç¨á¥« ®â 1 ¤® k.  §à ¡®â ©â¥ «£®à¨â¬, ª®â®àë© ¯®¤¢¥à£ ¥â í⨠¤ ­­ë¥ ¯à¥¤¢ à¨â¥«ì­®© ®¡à ¡®âª¥, § ⥬
§ ¢à¥¬ï O(1) ®â¢¥ç ¥â ­ «î¡®© ¢®¯à®á ⨯ "᪮«ìª® ç¨á¥« ¨§
¤ ­­®£® ­ ¡®à «¥¦¨â ¬¥¦¤ã a ¨ b?". ‚à¥¬ï ­ ¯à¥¤¢ à¨â¥«ì­ãî
®¡à ¡®âªã ¤®«¦­® ¡ëâì O(n + k).
9.3 –¨ä஢ ï á®àâ¨à®¢ª €«£®à¨â¬ æ¨ä஢®© á®àâ¨à®¢ª¨ (radix sort) ¨á¯®«ì§®¢ «áï ¢ ¬ 設 å ¤«ï á®àâ¨à®¢ª¨ ¯¥à䮪 àâ (ᥩç á â ª¨¥ ¬ è¨­ë ¬®¦­® ­ ©â¨
à §¢¥ çâ® ¢ ¬ã§¥ïå). ‚ ª àâ®­­ëå ¯¥à䮪 àâ å á¯¥æ¨ «ì­ë© ¯¥àä®à â®à ¯à®¡¨¢ « ¤ëન. ‚ ª ¦¤®© ¨§ 80 ª®«®­®ª ¡ë«¨ ¬¥áâ ¤«ï
12 ¯àאַ㣮«ì­ëå ¤ëப. ‚®®¡é¥-â® ¢ ®¤­®© ª®«®­ª¥ ¬®¦­® ¡ë«®
¯à®¡¨âì ­¥áª®«ìª® ¤ëப, ¨å ª®¬¡¨­ æ¨ï ᮮ⢥âá⢮¢ « ᨬ¢®«ã
(â ª çâ® ­ ª à⥠¡ë«® ¬¥áâ® ¤«ï 80 ᨬ¢®«®¢), ­® æ¨äàë 0{9 ª®¤¨à®¢ «¨áì ®¤¨­®ç­ë¬¨ ¤ëઠ¬¨ ¢ áâப å 0{9 ᮮ⢥âáâ¢ãî饩
ª®«®­ª¨.
‘®àâ¨à®¢®ç­®© ¬ 設¥ 㪠§ë¢ «¨ á⮫¡¥æ, ¯® ª®â®à®¬ã ­ã¦­®
¯à®¨§¢¥á⨠á®àâ¨à®¢ªã, ¨ ®­ à ᪫ ¤ë¢ « ª®«®¤ã ¯¥à䮪 àâ ­ 172
ƒ« ¢ 9 ‘®àâ¨à®¢ª § «¨­¥©­®¥ ¢à¥¬ï
329
720
720
329
457
355
329
355
657
436
436
436
839 ) 457 ) 839 ) 457
436
657
355
657
720
329
457
720
355
839
657
839
"
"
"
¨áã­®ª 9.3 –¨ä஢ ï á®àâ¨à®¢ª ¯®á«¥¤®¢ ⥫쭮á⨠¨§ ᥬ¨ âàñ姭 ç­ëå
ç¨á¥«.  ¢å®¤ ¯®¤ îâáï ç¨á« ¯¥à¢®£® á⮫¡æ . „ «¥¥ ¯®ª § ­ ¯®à冷ª ç¨á¥«
¯®á«¥ á®àâ¨à®¢ª¨ ¯® âà¥â쥩, ¢â®à®© ¨ ¯¥à¢®© æ¨äà ¬ (¢¥à⨪ «ì­ë¥ áâ५ª¨
㪠§ë¢ îâ, ¯® ª ª®© æ¨äॠ¯à®¨§¢®¤¨« áì á®àâ¨à®¢ª ).
10 á⮯®ª ¢ § ¢¨á¨¬®á⨠®â ⮣®, ª ª ï ¨§ ¤ëப 0{9 ¡ë« ¯à®¡¨â ¢ 㪠§ ­­®¬ á⮫¡æ¥.
Š ª ®âá®àâ¨à®¢ âì ª®«®¤ã ¯¥à䮪 àâ á ¬­®£®§­ ç­ë¬¨ ç¨á« ¬¨
(à §àï¤ ¥¤¨­¨æ ¢ ®¤­®¬ á⮫¡æ¥, ¤¥áï⪮¢ | ¢ ¯à¥¤ë¤ã饬 ¨ â. ¤.)?
¥à¢®¥, çâ® ¯à¨å®¤¨â ¢ £®«®¢ã, | ­ ç âì á®àâ¨à®¢ªã á® áâ à襣®
à §àï¤ . à¨ í⮬ ¯®«ãç¨âáï 10 á⮯®ª, ª ¦¤ãî ¨§ ª®â®àëå ­ á«¥¤ãî饬 è £¥ ¯à¨¤ñâáï à §¡¨¢ âì ­ 10 á⮯®ª, ¨ â ª ¤ «¥¥ |
¯®«ãç¨âáï ¬­®£® á⮯®ª ¯¥à䮪 àâ, ¢ ª®â®àëå «¥£ª® § ¯ãâ âìáï
(á¬. ã¯à ¦­¥­¨¥ 9.3-5).
Š ª ­¨ áâà ­­®, ®ª §ë¢ ¥âáï 㤮¡­¥¥ ­ ç âì á ¬« ¤è¥£® à §àï¤ ,
à §«®¦¨¢ ª®«®¤ã ­ 10 á⮯®ª ¢ § ¢¨á¨¬®á⨠®â ⮣®, £¤¥ ¯à®¡¨â®
®â¢¥àá⨥ ¢ "¬« ¤è¥¬" á⮫¡æ¥. ®«ã祭­ë¥ 10 á⮯®ª ­ ¤® ¯®á«¥
í⮣® á«®¦¨âì ¢ ®¤­ã ¢ â ª®¬ ¯®à浪¥: á­ ç « ª àâë á 0, § ⥬
ª àâë á 1, ¨ â. ¤. ®«ã稢èãîáï ª®«®¤ã ¢­®¢ì à áá®àâ¨à㥬 ­ 10
á⮯®ª, ­® 㦥 ¢ ᮮ⢥âá⢨¨ á à §à冷¬ ¤¥áï⪮¢, á«®¦¨¬ ¯®«ã祭­ë¥ á⮯ª¨ ¢ ®¤­ã ª®«®¤ã, ¨ â. ¤.; ¥á«¨ ­ ¯¥à䮪 àâ å ¡ë«¨ § ¯¨á ­ë d-§­ ç­ë¥ ç¨á« , â® ¯®­ ¤®¡¨âáï d à § ¢®á¯®«ì§®¢ âìáï á®àâ¨à®¢®ç­®© ¬ 設®©.  à¨á. 9.3 ¨§®¡à ¦¥­®, ª ª ¤¥©áâ¢ã¥â íâ®â
«£®à¨â¬, ¯à¨¬¥­¥­­ë© ª ᥬ¨ âàñ姭 ç­ë¬ ç¨á« ¬.
‚ ¦­®, çâ®¡ë «£®à¨â¬, á ¯®¬®éìî ª®â®à®£® ¯à®¨á室¨â á®àâ¨à®¢ª ¯® ¤ ­­®¬ã à §àï¤ã, ¡ë« ãá⮩稢ë¬: ª àâ®çª¨, ã ª®â®àëå
¢ ¤ ­­®© ª®«®­ª¥ á⮨⠮¤­ ¨ â ¦¥ æ¨äà , ¤®«¦­ë ¢ë©â¨ ¨§ á®àâ¨à®¢®ç­®© ¬ è¨­ë ¢ ⮩ ¦¥ ¯®á«¥¤®¢ ⥫쭮áâ¨, ¢ ª®â®à®© ®­¨
â㤠¯®¤ ¢ «¨áì (á ¬® ᮡ®©, ¯à¨ ᪫ ¤ë¢ ­¨¨ 10 á⮯®ª ¢ ®¤­ã
¬¥­ïâì ¯®à冷ª ª àâ ¢ á⮯ª å ⮦¥ ­¥ á«¥¤ã¥â).
‚ ª®¬¯ìîâ¥à å æ¨ä஢ ï á®àâ¨à®¢ª ¨­®£¤ ¨á¯®«ì§ã¥âáï ¤«ï
㯮à冷祭¨ï ¤ ­­ëå, ᮤ¥à¦ é¨å ­¥áª®«ìª® ¯®«¥©. ãáâì, ­ ¯à¨¬¥à, ­ ¬ ­ ¤® ®âá®àâ¨à®¢ âì ¯®á«¥¤®¢ ⥫쭮áâì ¤ â. â® ¬®¦­®
ᤥ« âì á ¯®¬®éìî «î¡®£® «£®à¨â¬ á®àâ¨à®¢ª¨, áà ¢­¨¢ ï ¤ âë
á«¥¤ãî騬 ®¡à §®¬: áà ¢­¨âì £®¤ë, ¥á«¨ £®¤ë ᮢ¯ ¤ îâ | áà ¢­¨âì ¬¥áïæë, ¥á«¨ ᮢ¯ ¤ îâ ¨ ¬¥áïæë | áà ¢­¨âì ç¨á« . ‚¬¥áâ®
í⮣®, ®¤­ ª®, ¬®¦­® ¯à®áâ® âਦ¤ë ®âá®àâ¨à®¢ âì ¬ áᨢ ¤ â á
–¨ä஢ ï á®àâ¨à®¢ª 173
¯®¬®éìî ãá⮩稢®£® «£®à¨â¬ : á­ ç « ¯® ¤­ï¬, ¯®â®¬ ¯® ¬¥áïæ ¬, ¯®â®¬ ¯® £®¤ ¬.
à®£à ¬¬ã ¤«ï æ¨ä஢®© á®àâ¨à®¢ª¨ ­ ¯¨á âì «¥£ª®. Œë ¯à¥¤¯®« £ ¥¬, çâ® ª ¦¤ë© í«¥¬¥­â n-í«¥¬¥­â­®£® ¬ áᨢ A á®á⮨â
¨§ d æ¨äà, ¯à¨ç¥¬ æ¨äà ­®¬¥à 1 | ¬« ¤è¨© à §àï¤, æ¨äà ­®¬¥à d | áâ à訩.
Radix-Sort(A; d)
1 for i 1 to d
2
do ®âá®àâ¨à®¢ âì ¬ áᨢ A ãá⮩稢ë¬
«£®à¨â¬®¬ ¯® §­ 祭¨î æ¨äàë ­®¬¥à i
à ¢¨«ì­®áâì «£®à¨â¬ æ¨ä஢®© á®àâ¨à®¢ª¨ ¤®ª §ë¢ ¥âáï ¨­¤ãªæ¨¥© ¯® ­®¬¥àã à §àï¤ (á¬. ã¯à. 9.3-3). ‚६ï à ¡®âë § ¢¨á¨â
®â ¢à¥¬¥­¨ à ¡®âë ¢ë¡à ­­®£® ãá⮩稢®£® «£®à¨â¬ . …᫨ æ¨äàë ¬®£ã⠯ਭ¨¬ âì §­ 祭¨ï ®â 1 ¤® k, £¤¥ k ­¥ ᫨誮¬ ¢¥«¨ª®, â® ®ç¥¢¨¤­ë© ¢ë¡®à | á®àâ¨à®¢ª ¯®¤áçñ⮬. „«ï n ç¨á¥« á
d §­ ª ¬¨ ®â 0 ¤® k ; 1 ª ¦¤ë© ¯à®å®¤ § ­¨¬ ¥â ¢à¥¬ï (n + k);
¯®áª®«ìªã ¬ë ¤¥« ¥¬ d ¯à®å®¤®¢, ¢à¥¬ï à ¡®âë æ¨ä஢®© á®àâ¨à®¢ª¨ à ¢­® (dn + kd). …᫨ d ¯®áâ®ï­­® ¨ k = O(n), â® æ¨ä஢ ï
á®àâ¨à®¢ª à ¡®â ¥â § «¨­¥©­®¥ ¢à¥¬ï.
à¨ æ¨ä஢®© á®àâ¨à®¢ª¥ ¢ ¦­® ¯à ¢¨«ì­® ¢ë¡à âì ®á­®¢ ­¨¥
á¨á⥬ë áç¨á«¥­¨ï, ¯®áª®«ìªã ®â ­¥£® § ¢¨á¨â à §¬¥à âॡ㥬®© ¤®¯®«­¨â¥«ì­®© ¯ ¬ï⨠¨ ¢à¥¬ï à ¡®âë. Š®­ªà¥â­ë© ¯à¨¬¥à:
¯ãáâì ­ ¤® ®âá®àâ¨à®¢ âì ¬¨««¨®­ 64-¡¨â­ëå ç¨á¥«. …᫨ à áᬠâਢ âì ¨å ª ª ç¥âëàñ姭 ç­ë¥ ç¨á« ¢ á¨á⥬¥ áç¨á«¥­¨ï á ®á­®¢ ­¨¥¬ 216, â® ¯à¨ æ¨ä஢®© á®àâ¨à®¢ª¥ ¬ë á¯à ¢¨¬áï á ­¨¬¨ § ç¥âëॠ¯à®å®¤ , ¨á¯®«ì§ãï ¢ ¯à®æ¥¤ãॠCounting-Sort ¬ áᨢ B
à §¬¥à®¬ 216 (çâ® ­¥¬­®£® ¯® áà ¢­¥­¨î á à §¬¥à®¬ á®àâ¨à㥬®£®
¬ áᨢ ) â® ¢ë£®¤­® ®â«¨ç ¥âáï ®â á®àâ¨à®¢ª¨ áà ¢­¥­¨¥¬, ª®£¤ ­ ª ¦¤®¥ ç¨á«® ¯à¨å®¤¨âáï ¯® lg n 20 ®¯¥à 権. Š ᮦ «¥­¨î,
æ¨ä஢ ï á®àâ¨à®¢ª , ®¯¨à îé ïáï ­ á®àâ¨à®¢ªã ¯®¤áçñ⮬, âॡã¥â ¥éñ ®¤­®£® ¬ áᨢ (⮣® ¦¥ à §¬¥à , çâ® ¨ á®àâ¨à㥬ë©)
¤«ï åà ­¥­¨ï ¯à®¬¥¦ãâ®ç­ëå १ã«ìâ ⮢, ¢ â® ¢à¥¬ï ª ª ¬­®£¨¥
«£®à¨â¬ë á®àâ¨à®¢ª¨ áà ¢­¥­¨¥¬ ®¡å®¤ïâáï ¡¥§ í⮣®. ®í⮬ã,
¥á«¨ ­ ¤® íª®­®¬¨âì ¯ ¬ïâì, «£®à¨â¬ ¡ëáâன á®àâ¨à®¢ª¨ ¬®¦¥â
®ª § âìáï ¯à¥¤¯®çâ¨â¥«ì­¥¥.
“¯à ¦­¥­¨ï
‘«¥¤ãï ®¡à §æã à¨á. 9.3, ¯®ª ¦¨â¥, ª ª ¯à®¨á室¨â æ¨ä஢ ï á®àâ¨à®¢ª (¯® «ä ¢¨âã) ­£«¨©áª¨å á«®¢ COW, DOG, SEA,
9.3-1
RUG, ROW, MOB, BOX, TAB, BAR, EAR, TAR, DIG, BIG, TEA,
NOW, FOX.
174
ƒ« ¢ 9 ‘®àâ¨à®¢ª § «¨­¥©­®¥ ¢à¥¬ï
Š ª¨¥ ¨§ á«¥¤ãîé¨å «£®à¨â¬®¢ á®àâ¨à®¢ª¨ ïîâáï
ãá⮩稢묨: á®àâ¨à®¢ª ¢áâ ¢ª ¬¨, á®àâ¨à®¢ª ᫨ﭨ¥¬, á®àâ¨à®¢ª á ¯®¬®éìî ªãç¨, ¡ëáâà ï á®àâ¨à®¢ª ? Ž¡êïá­¨â¥, ª ª¨¬
ᯮᮡ®¬ ¬®¦­® «î¡®© «£®à¨â¬ á®àâ¨à®¢ª¨ ¯à¥¢à â¨âì ¢ ãá⮩稢ë©. ‘ª®«ìª® ¯à¨ í⮬ ¯®âॡã¥âáï ¤®¯®«­¨â¥«ì­®£® ¢à¥¬¥­¨ ¨
¯ ¬ïâ¨?
9.3-3 „®ª ¦¨â¥ ¯® ¨­¤ãªæ¨¨, çâ® «£®à¨â¬ æ¨ä஢®© á®àâ¨à®¢ª¨
¯à ¢¨«¥­. ƒ¤¥ ¢ ¢ 襬 ¤®ª § ⥫ìá⢥ ¨á¯®«ì§ã¥âáï ãá⮩稢®áâì
«£®à¨â¬ á®àâ¨à®¢ª¨ æ¨äà?
9.3-4 Ž¡êïá­¨â¥, ª ª à áá®àâ¨à®¢ âì n 楫ëå ¯®«®¦¨â¥«ì­ëå
ç¨á¥«, ­¥ ¯à¥¢®á室ïé¨å n2, § ¢à¥¬ï O(n).
9.3-5? ãáâì ¬ë á®àâ¨à㥬 ¯¥à䮪 àâë á ¯®¬®éìî á®àâ¨à®¢®ç­®© ¬ 設ë, ­ 稭 ï á® áâ à襣® à §àï¤ . ‘ª®«ìª® à § ¯à¨¤ñâáï
§ ¯ãáâ¨âì ¬ 設ã (¢ åã¤è¥¬ á«ãç ¥) ¤«ï á®àâ¨à®¢ª¨ d-§­ ç­ëå
ç¨á¥«? Š ª®¥ ¬ ªá¨¬ «ì­®¥ ª®«¨ç¥á⢮ á⮯®ª ª à⠯ਤñâáï ®¤­®¢à¥¬¥­­® åà ­¨âì ¯® 室㠤¥« ?
9.3-2
9.4 ‘®àâ¨à®¢ª ¢ëçñà¯ë¢ ­¨¥¬
€«£®à¨â¬ á®àâ¨à®¢ª¨ ¢ëçñà¯ë¢ ­¨¥¬ (bucket sort) à ¡®â ¥â § «¨­¥©­®¥ (á।­¥¥) ¢à¥¬ï. Š ª ¨ á®àâ¨à®¢ª ¯®¤áçñ⮬, á®àâ¨à®¢ª ¢ëçñà¯ë¢ ­¨¥¬ £®¤¨âáï ­¥ ¤«ï «î¡ëå ¨á室­ëå ¤ ­­ëå: £®¢®àï
® «¨­¥©­®¬ á।­¥¬ ¢à¥¬¥­¨, ¬ë ¯à¥¤¯®« £ ¥¬, çâ® ­ ¢å®¤ ¯®¤ ñâáï ¯®á«¥¤®¢ ⥫쭮áâì ­¥§ ¢¨á¨¬ëå á«ãç ©­ëå ç¨á¥«, à ¢­®¬¥à­® à á¯à¥¤¥«ñ­­ëå ­ ¯à®¬¥¦ã⪥ [0; 1) (®¯à¥¤¥«¥­¨¥ à ¢­®¬¥à­®£® à á¯à¥¤¥«¥­¨ï ¤ ­® ¢ à §¤. 6.2).
[‡ ¬¥â¨¬, çâ® íâ®â «£®à¨â¬ | ¤¥â¥à¬¨­¨à®¢ ­­ë© (­¥ ¨á¯®«ì§ã¥â £¥­¥à â®à á«ãç ©­ëå ç¨á¥«); ¯®­ï⨥ á«ãç ©­®á⨠¢®§­¨ª ¥â
«¨èì ¯à¨ ­ «¨§¥ ¢à¥¬¥­¨ ¥£® à ¡®âë.]
ˆ¤¥ï «£®à¨â¬ á®á⮨⠢ ⮬, çâ® ¯à®¬¥¦ã⮪ [0; 1) ¤¥«¨âáï ­ n à ¢­ëå ç á⥩, ¯®á«¥ 祣® ¤«ï ç¨á¥« ¨§ ª ¦¤®© ç á⨠¢ë¤¥«ï¥âáï
᢮© ï騪-ç¥à¯ ª (bucket), ¨ n ¯®¤«¥¦ é¨å á®àâ¨à®¢ª¥ ç¨á¥« à ᪫ ¤ë¢ îâáï ¯® í⨬ ï騪 ¬. ®áª®«ìªã ç¨á« à ¢­®¬¥à­® à á¯à¥¤¥«¥­ë ­ ®â१ª¥ [0; 1), á«¥¤ã¥â ®¦¨¤ âì, çâ® ¢ ª ¦¤®¬ ï騪¥
¨å ¡ã¤¥â ­¥¬­®£®. ’¥¯¥àì ®âá®àâ¨à㥬 ç¨á« ¢ ª ¦¤®¬ ï騪¥ ¯®
®â¤¥«ì­®á⨠¨ ¯à®©¤ñ¬áï ¯® ï騪 ¬ ¢ ¯®à浪¥ ¢®§à áâ ­¨ï, ¢ë¯¨áë¢ ï ¯®¯ ¢è¨¥ ¢ ª ¦¤ë© ¨§ ­¨å ç¨á« â ª¦¥ ¢ ¯®à浪¥ ¢®§à áâ ­¨ï.
ã¤¥¬ áç¨â âì, çâ® ­ ¢å®¤ ¯®¤ ¥âáï n-í«¥¬¥­â­ë© ¬ áᨢ A,
¯à¨ç¥¬ 0 6 A[i] < 1 ¤«ï ¢á¥å i. ˆá¯®«ì§ã¥âáï â ª¦¥ ¢á¯®¬®£ ⥫ì­ë© ¬ áᨢ B[0 : :n ; 1], á®áâ®ï騩 ¨§ ᯨ᪮¢, ᮮ⢥âáâ¢ãîé¨å
ï騪 ¬. €«£®à¨â¬ ¨á¯®«ì§ã¥â ®¯¥à 樨 ᮠᯨ᪠¬¨, ª®â®àë¥ ®¯¨-
‘®àâ¨à®¢ª ¢ëçñà¯ë¢ ­¨¥¬
175
¨áã­®ª 9.4  ¡®â «£®à¨â¬ Bucket-Sort. ( )  ¢å®¤ ¯®¤ ­ ¬ áᨢ
A[1 : : 10]. (¡) Œ áᨢ ᯨ᪮¢ B [0 : : 9] ¯®á«¥ ¢ë¯®«­¥­¨ï áâப¨ 5. ‘¯¨á®ª á
¨­¤¥ªá®¬ i ᮤ¥à¦¨â ç¨á« , ã ª®â®àëå ¯¥à¢ë© §­ ª ¯®á«¥ § ¯ï⮩ ¥áâì i.
Žâá®àâ¨à®¢ ­­ë© ¬ áᨢ ¯®«ãç¨âáï, ¥á«¨ ¯®á«¥¤®¢ ⥫쭮 ¢ë¯¨á âì ᯨ᪨
B [0]; : : : ; B [9].
á ­ë ¢ à §¤. 11.2.
Bucket-Sort(A)
1 n length[A]
2 for i 1 to n
3
do ¤®¡ ¢¨âì A[i] ª ᯨáªã B [bnA[i]c]
4 for i 0 to n ; 1
5
do ®âá®àâ¨à®¢ âì ᯨ᮪ B [i] (á®àâ¨à®¢ª ¢áâ ¢ª ¬¨)
6 ᮥ¤¨­¨âì ᯨ᪨ B [0]; B [1]; : : :; B [n ; 1] (¢ 㪠§ ­­®¬ ¯®à浪¥)
 à¨á. 9.4 ¯®ª § ­ à ¡®â í⮣® «£®à¨â¬ ­ ¯à¨¬¥à¥ ¬ áᨢ ¨§ 10 ç¨á¥«.
—â®¡ë ¯®ª § âì, çâ® «£®à¨â¬ á®àâ¨à®¢ª¨ ¢ëçñà¯ë¢ ­¨¥¬ ¯à ¢¨«¥­, à áᬮâਬ ¤¢ ç¨á« A[i] ¨ A[j ]. …᫨ ®­¨ ¯®¯ «¨ ¢ à §­ë¥
ï騪¨, â® ¬¥­ì襥 ¨§ ­¨å ¯®¯ «® ¢ ï騪 á ¬¥­ì訬 ­®¬¥à®¬, ¨
¢ ¢ë室­®© ¯®á«¥¤®¢ ⥫쭮á⨠®­® ®ª ¦¥âáï à ­ìè¥; ¥á«¨ ®­¨ ¯®¯ «¨ ¢ ®¤¨­ ï騪, â® ¯®á«¥ á®àâ¨à®¢ª¨ ᮤ¥à¦¨¬®£® ï騪 ¬¥­ì襥 ç¨á«® ¡ã¤¥â â ª¦¥ ¯à¥¤è¥á⢮¢ âì ¡®«ì襬ã.
à® ­ «¨§¨à㥬 ¢à¥¬ï à ¡®âë «£®à¨â¬ . Ž¯¥à 樨 ¢® ¢á¥å
áâப å, ªà®¬¥ ¯ï⮩, âॡãîâ (®¡é¥£®) ¢à¥¬¥­¨ O(n). à®á¬®âà
¢á¥å ï騪®¢ â ª¦¥ § ­¨¬ ¥â ¢à¥¬ï O(n). ’ ª¨¬ ®¡à §®¬, ­ ¬
®áâ ñâáï ⮫쪮 ®æ¥­¨âì ¢à¥¬ï á®àâ¨à®¢ª¨ ¢áâ ¢ª ¬¨ ¢­ãâਠï騪®¢.
ãáâì ¢ ï騪 B[i] ¯®¯ «® ni ç¨á¥« (ni | á«ãç ©­ ï ¢¥«¨ç¨­ ).
®áª®«ìªã á®àâ¨à®¢ª ¢áâ ¢ª ¬¨ à ¡®â ¥â § ª¢ ¤à â¨ç­®¥ ¢à¥¬ï,
¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¤«¨â¥«ì­®á⨠á®àâ¨à®¢ª¨ ç¨á¥« ¢ ï騪¥
­®¬¥à i ¥áâì O(M[n2i ]), ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ á㬬 à­®£® ¢à¥-
176
ƒ« ¢ 9 ‘®àâ¨à®¢ª § «¨­¥©­®¥ ¢à¥¬ï
¬¥­¨ á®àâ¨à®¢ª¨ ¢® ¢á¥å ï騪 å ¥áâì
nX
;1
i=0
O(M[n2i ]) = O
nX
;1
i=0
!
M[n2i ]
:
(9.1)
 ©¤ñ¬ äã­ªæ¨î à á¯à¥¤¥«¥­¨ï á«ãç ©­ëå ¢¥«¨ç¨­ ni. ®áª®«ìªã ç¨á« à á¯à¥¤¥«¥­ë à ¢­®¬¥à­®, ¢¥«¨ç¨­ë ¢á¥å ®â१ª®¢
à ¢­ë, ¢¥à®ïâ­®áâì ⮣®, çâ® ¤ ­­®¥ ç¨á«® ¯®¯ ¤¥â ¢ ï騪 ­®¬¥à
i, à ¢­ 1=n. ‘â «® ¡ëâì, ¬ë ­ 室¨¬áï ¢ á¨âã 樨 ¯à¨¬¥à ¨§
à §¤. 6.6.2 á è à ¬¨ ¨ ãà­ ¬¨: ã ­ á n è ஢-ç¨á¥«, n ãà­-ï騪®¢,
¨ ¢¥à®ïâ­®áâì ¯®¯ ¤ ­¨ï ¤ ­­®£® è à ¢ ¤ ­­ãî ãà­ã à ¢­ p =
1=n. ®í⮬ã ç¨á« ni à á¯à¥¤¥«¥­ë ¡¨­®¬ «ì­®: ¢¥à®ïâ­®áâì ⮣®,
çâ® ni = k, à ¢­ Cnk pk (1 ; p)n;k , ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ à ¢­®
M[ni ] = np = 1, ¨ ¤¨á¯¥àá¨ï à ¢­ D[ni ] = np(1 ; p) = 1 ; 1=n. ˆ§
ä®à¬ã«ë (6.30) ¨¬¥¥¬:
M[n2i ] = D[ni ] + M2[ni ] = 2 ; n1 = (1):
®¤áâ ¢«ïï íâ㠮業ªã ¢ (9.1), ¯®«ãç ¥¬, çâ® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ á㬬 à­®£® ¢à¥¬¥­¨ á®àâ¨à®¢ª¨ ¢á¥å ï騪®¢ ¥áâì O(n), â ª
çâ® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢à¥¬¥­¨ à ¡®âë «£®à¨â¬ á®àâ¨à®¢ª¨ ¢ëçñà¯ë¢ ­¨¥¬ ¢ á ¬®¬ ¤¥«¥ «¨­¥©­® § ¢¨á¨â ®â ª®«¨ç¥á⢠ç¨á¥«.
“¯à ¦­¥­¨ï
‘«¥¤ãï ®¡à §æã à¨á. 9.4, ¯®ª ¦¨â¥, ª ª à ¡®â ¥â «£®à¨â¬ Bucket-Sort ¤«ï ¬ áᨢ A = h0:79; 0:13; 0:16; 0:64; 0:39;
0:20; 0:89; 0:53; 0:71; 0:42i.
9.4-2 Š ª®¢® ¢à¥¬ï à ¡®âë «£®à¨â¬ á®àâ¨à®¢ª¨ ¢ëçñà¯ë¢ ­¨¥¬ ¢ åã¤è¥¬ á«ãç ¥? à¨¤ã¬ ©â¥ ¥£® ¯à®áâãî ¬®¤¨ä¨ª æ¨î, á®åà ­ïîéãî «¨­¥©­®¥ á।­¥¥ ¢à¥¬ï à ¡®âë ¨ á­¨¦ îéãî ¢à¥¬ï
à ¡®âë ¢ åã¤è¥¬ á«ãç ¥ ¤® O(n lg n).
9.4-3? „ ­® n ­¥§ ¢¨á¨¬ëå á«ãç ©­ëå â®ç¥ª á ª®®à¤¨­ â ¬¨
(xi ; yi), à ¢­®¬¥à­® à á¯à¥¤¥«ñ­­ëå ¢ ªà㣥 à ¤¨ãá 1 á 業â஬
¢ ­ ç «¥ ª®®à¤¨­ â (íâ® ®§­ ç ¥â, çâ® ¢¥à®ïâ­®áâì ­ ©â¨ â®çªã
¢ ª ª®©-â® ®¡« á⨠¯à®¯®à樮­ «ì­ ¯«®é ¤¨ í⮩ ®¡« áâ¨).  §à ¡®â ©â¥ «£®à¨â¬, à ᯮ« £ î騩 â®çª¨ ¢ ¯®à浪¥ ¢®§à áâ ­¨ï
à ááâ®ï­¨ï ®â 業âà ¨ ¨¬¥î騩 á।­¥¥ ¢à¥¬ï à ¡®âë (n). (“ª § ­¨¥: ¢®á¯®«ì§ã©â¥áì á®àâ¨à®¢ª®© ¢ëçñà¯ë¢ ­¨¥¬, ­® ¯®§ ¡®âìâ¥áì ® ⮬, çâ®¡ë ¯«®é ¤¨ ï騪®¢ ¡ë«¨ à ¢­ë).
9.4-4? ãáâì X | á«ãç ©­ ï ¢¥«¨ç¨­ . …¥ äã­ªæ¨ï à á¯à¥¤¥«¥­¨ï
(probability distribution function) ®¯à¥¤¥«ï¥âáï ä®à¬ã«®© P (x) =
9.4-1
‡ ¤ ç¨ ª £« ¢¥ 9
177
PfX 6 xg. à¥¤¯®«®¦¨¬, çâ® ­ ¢å®¤ «£®à¨â¬ ¯®áâ㯠¥â ¯®á«¥¤®¢ ⥫쭮áâì ¨§ n ç¨á¥«, ª®â®àë¥ ï¢«ïîâáï ­¥§ ¢¨á¨¬ë¬¨ á«ãç ©­ë¬¨ ¢¥«¨ç¨­ ¬¨ á ä㭪樥© à á¯à¥¤¥«¥­¨ï P . ”ã­ªæ¨ï P ­¥¯à¥à뢭 ¨ ¬®¦¥â ¡ëâì ¢ëç¨á«¥­ § ¢à¥¬ï O(1). Š ª ®âá®àâ¨à®¢ âì â ªãî ¯®á«¥¤®¢ ⥫쭮áâì, ç⮡ë á।­¥¥ ¢à¥¬ï á®àâ¨à®¢ª¨
«¨­¥©­® § ¢¨á¥«® ®â n?
‡ ¤ ç¨
9-1 ¨¦­¨¥ ®æ¥­ª¨ ¤«ï á।­¥£® ç¨á« áà ¢­¥­¨©
‚ í⮩ § ¤ ç¥ ¬ë ¤®ª ¦¥¬, çâ® á।­¥¥ ¢à¥¬ï à ¡®âë «î¡®£®
¤¥â¥à¬¨­¨à®¢ ­­®£® ¨«¨ ¢¥à®ïâ­®áâ­®£® «£®à¨â¬ á®àâ¨à®¢ª¨ n
ç¨á¥«, ®á­®¢ ­­®£® ­ áà ¢­¥­¨ïå, ¥áâì (n lg n).  ç­¥¬ á ⮣®, çâ®
à áᬮâਬ ¤¥â¥à¬¨­¨à®¢ ­­ë© «£®à¨â¬ A, ®á­®¢ ­­ë© ­ áà ¢­¥­¨ïå; ¯ãáâì TA | ¥£® à §à¥è î饥 ¤¥à¥¢®. Œë ¯à¥¤¯®« £ ¥¬,
çâ® ¢á¥ ¯¥à¥áâ ­®¢ª¨ ¢å®¤­®© ¯®á«¥¤®¢ ⥫쭮áâ¨ à ¢­®¢¥à®ïâ­ë.
.  ¯¨è¥¬ ­ ª ¦¤®¬ «¨á⥠¤¥à¥¢ TA ¢¥à®ïâ­®áâì ⮣®, çâ®
«£®à¨â¬ § ¢¥àè¨âáï ¢ í⮬ «¨áâ¥. ®ª ¦¨â¥, çâ® ¢ n! «¨áâ å ­ ¯¨á ­® 1=n!, ¢ ®áâ «ì­ëå «¨áâ å ­ ¯¨á ­ ­ã«ì.
¡. Ž¡®§­ 稬 ç¥à¥§ D(T ) á㬬㠣«ã¡¨­ ¢á¥å «¨áâ쥢 ¢ ¤¢®¨ç­®¬ ¤¥à¥¢¥ T (¬ë ¯à¥¤¯®« £ ¥¬, çâ® ª ¦¤ ï ¢¥à設 «¨¡® ï¥âáï «¨á⮬, «¨¡® ¨¬¥¥â ¤¢ãå ¤¥â¥© | â ª ãáâ஥­ë à §à¥è î騥 ¤¥à¥¢ìï). ãáâì T | ¤¥à¥¢® á k > 1 «¨áâìﬨ, ¨ ¯ãáâì ç¥à¥§
LT ¨ RT ®¡®§­ ç¥­ë «¥¢®¥ ¨ ¯à ¢®¥ ¯®¤¤¥à¥¢ìï. ®ª ¦¨â¥, çâ®
D(T ) = D(LT ) + D(RT ) + k.
¢. ãáâì d(m) | ­ ¨¬¥­ì襥 §­ 祭¨¥ ç¨á« D(T ) á।¨ ¢á¥å
¤¥à¥¢ì¥¢ T á m «¨áâìﬨ. ®ª ¦¨â¥, çâ® d(k) = min16i6k;1 fd(i) +
d(k ; i) + kg. (“ª § ­¨¥: ¤¥à¥¢® LT ¬®¦¥â ᮤ¥à¦ âì ®â 1 ¤® k ; 1
«¨áâ쥢.)
£. ®ª ¦¨â¥, çâ® ¤«ï 䨪á¨à®¢ ­­®£® k ¢ëà ¦¥­¨¥ i lg i + (k ;
i) lg(k ; i) ¤®á⨣ ¥â ¬¨­¨¬ã¬ ­ ®â१ª¥ ®â 1 ¤® k ; 1 ¢ â®çª¥
i = k=2. ‚뢥¤¨â¥ ®âáî¤ , çâ® d(k) = (k lg k).
¤. ®ª ¦¨â¥, çâ® D(TA) = (n! lg(n!)), ¨ ¢ë¢¥¤¨â¥ ®âáî¤ , çâ®
¢à¥¬ï á®àâ¨à®¢ª¨ n ç¨á¥« á ¯®¬®éìî à §à¥è î饣® ¤¥à¥¢ TA,
ãá।­ñ­­®¥ ¯® ¢á¥¬ ¯¥à¥áâ ­®¢ª ¬ ­ ¢å®¤¥, ¥áâì (n lg n).
’¥¯¥àì à áᬮâਬ ¢¥à®ïâ­®áâ­ë© «£®à¨â¬ B, ®á­®¢ ­­ë© ­ áà ¢­¥­¨ïå. …£® ¬®¦­® ®¯¨á âì á ¯®¬®éìî à §à¥è î饣® ¤¥à¥¢ , ¢
ª®â®à®¬ ¡ë¢ îâ ã§«ë ¤¢ãå ⨯®¢: ᮮ⢥âáâ¢ãî騥 áà ¢­¥­¨ï¬ ¨
á«ãç ©­ë¬ ¢ë¡®à ¬. ‚ 㧫 å ¢â®à®£® ⨯ ¯à®¨á室¨â ¢ë§®¢ ¯à®æ¥¤ãàë Random(1; r); ã â ª®£® 㧫 r ¤¥â¥©, ª ¦¤ë© ¨§ ª®â®àëå
¢ë¡¨à ¥âáï á à ¢­®© ¢¥à®ïâ­®áâìî. („«ï à §­ëå 㧫®¢ ç¨á«® r ¬®¦¥â ¡ëâì à §­ë¬.)
¥. ãáâì ¨¬¥¥âáï ¢¥à®ïâ­®áâ­ë© «£®à¨â¬ á®àâ¨à®¢ª¨ B. „«ï
ª ¦¤®© ¯¥à¥áâ ­®¢ª¨ ­ ¢å®¤¥ ­ ©¤ñ¬ ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥
178
ƒ« ¢ 9 ‘®àâ¨à®¢ª § «¨­¥©­®¥ ¢à¥¬ï
ç¨á« áà ¢­¥­¨©. “á।­¨¬ í⨠®¦¨¤ ­¨ï ¯® ¢á¥¬ ¢å®¤ ¬; ¯®«ãç¨âáï ­¥ª®â®à®¥ ç¨á«® T . ®ª ¦¨â¥, çâ® áãé¥áâ¢ã¥â ¤¥â¥à¬¨­¨à®¢ ­­ë© «£®à¨â¬ A, ã ª®â®à®£® á।­¥¥ (¯® ¢á¥¬ ¯¥à¥áâ ­®¢ª ¬ ­ ¢å®¤¥) ç¨á«® áà ¢­¥­¨© ­¥ ¯à¥¢®á室¨â T . ‚뢥¤¨â¥ ®âáî¤ , çâ®
¤«ï «î¡®£® ¢¥à®ïâ­®áâ­®£® «£®à¨â¬ ¬ ªá¨¬ «ì­®¥ (¯® ¢á¥¬ ¢å®¤ ¬) ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ç¨á« áà ¢­¥­¨© ¥áâì (n lg n).
(“ª § ­¨¥. …᫨ á।­¥¥ ¯® ¢á¥¬ ¢å®¤ ¬ ¨ ¢á¥¬ ¢ ਠ­â ¬ á«ãç ©­ëå ç¨á¥« à ¢­® T , â® áãé¥áâ¢ã¥â â ª®© ­ ¡®à á«ãç ©­ëå ç¨á¥«, ¯à¨ ª®â®à®¬ á।­¥¥ ¯® ¢á¥¬ ¢å®¤ ¬ ­¥ ¡®«ìè¥ T .)
9-2 ‘®àâ¨à®¢ª ¡¥§ ¤®¯®«­¨â¥«ì­®© ¯ ¬ï⨠§ «¨­¥©­®¥ ¢à¥¬ï
. ãáâì ­ ¬ ¤ ­ ¬ áᨢ § ¯¨á¥©, ª®â®àë© ­¥®¡å®¤¨¬® ®âá®àâ¨à®¢ âì ¯® ª«îçã, ¯à¨­¨¬ î饬㠧­ 祭¨¥ 0 ¨«¨ 1. à¨¤ã¬ ©â¥
¯à®á⮩ «£®à¨â¬, ®áãé¥á⢫ïî騩 â ªãî á®àâ¨à®¢ªã § «¨­¥©­®¥ ¢à¥¬ï ¨ ¨á¯®«ì§ãî騩 ¤®¯®«­¨â¥«ì­ãî ¯ ¬ïâì O(1) (¨­ë¬¨
á«®¢ ¬¨, ®¡ê¥¬ ¤®¯®«­¨â¥«ì­®© ¯ ¬ï⨠­¥ § ¢¨á¨â ®â à §¬¥à®¢ á®àâ¨à㥬®£® ¬ áᨢ ).
¡. Œ®¦­® «¨ ¢®á¯®«ì§®¢ âìáï «£®à¨â¬®¬ ¨§ ¯ã­ªâ ( ) ¤«ï æ¨ä஢®© á®àâ¨à®¢ª¨ ¯® b-¡¨â­®¬ã ª«îçã § ¢à¥¬ï O(bn)? Ž¡êïá­¨â¥
᢮© ®â¢¥â.
¢. ãáâì n § ¯¨á¥© ­ ¤® ®âá®àâ¨à®¢ âì ¯® ª«îçã, ¯à¨­¨¬ î饬ã æ¥«ë¥ §­ 祭¨ï ®â 1 ¤® k. Š ª ¬®¤¨ä¨æ¨à®¢ âì á®àâ¨à®¢ªã
¯®¤áçñ⮬, çâ®¡ë ¬®¦­® ¡ë«® ®âá®àâ¨à®¢ âì í⨠§ ¯¨á¨ § ¢à¥¬ï
O(n + k), ¨ ¯à¨ í⮬ ®¡ê¥¬ ¨á¯®«ì§ã¥¬®© ¯ ¬ï⨠(¯®¬¨¬® á®àâ¨à㥬®£® ¬ áᨢ ) ¡ë« O(k)? (“ª § ­¨¥.  筨⥠ᮠá«ãç ï k = 3.)
‡ ¬¥ç ­¨ï
€­ «¨§ «£®à¨â¬®¢ á®àâ¨à®¢ª¨ á ¯®¬®éìî à §à¥è îé¨å ¤¥à¥¢ì¥¢ ¡ë« ¯à¥¤«®¦¥­ ”®à¤®¬ ¨ „¦®­á®­®¬ [72]. ‚ äã­¤ ¬¥­â «ì­®©
ª­¨£¥ Š­ãâ [123], ¯®á¢ï饭­®© á®àâ¨à®¢ª¥, à áᬠâਢ îâáï ¬­®£®ç¨á«¥­­ë¥ ¢ ਠ­âë í⮩ § ¤ ç¨ ¨ ¤®ª §ë¢ ¥âáï ­¨¦­ïï ®æ¥­ª ç¨á« áà ¢­¥­¨© (¯à¨¢¥¤ñ­­ ï ¢ í⮩ £« ¢¥). ¨¦­¨¥ ®æ¥­ª¨ ¤«ï
§ ¤ ç¨ á®àâ¨à®¢ª¨ ¨ à §«¨ç­ëå ®¡®¡é¥­¨© à §à¥è îé¨å ¤¥à¥¢ì¥¢
¯®¤à®¡­® ¨§ãç «¨áì ¥­-Žà®¬ [23].
‘®£« á­® Š­ãâã, § á«ã£ ¨§®¡à¥â¥­¨ï á®àâ¨à®¢ª¨ ¯®¤áçñ⮬
(1954 £®¤) ¨ ¥ñ ª®¬¡¨­ 樨 á æ¨ä஢®© á®àâ¨à®¢ª®© ¯à¨­ ¤«¥¦¨â ‘ìî à¤ã (H. H. Seward). ‘ ¬ ¦¥ æ¨ä஢ ï á®àâ¨à®¢ª , ¢¨¤¨¬®, ¤ ¢­® ¯à¨¬¥­ï« áì ¤«ï á®àâ¨à®¢ª¨ ¯¥à䮪 àâ. Š­ãâ ã⢥ত ¥â, çâ® ¯¥à¢®¥ ¯¥ç â­®¥ ®¯¨á ­¨¥ í⮣® ¬¥â®¤ ¯®ï¢¨«®áì ¢
1929 £®¤ã ¢ ª ç¥á⢥ á®áâ ¢­®© ç á⨠à㪮¢®¤á⢠¯® ®¡®à㤮¢ ­¨î ¤«ï à ¡®âë á ¯¥à䮪 àâ ¬¨, ­ ¯¨á ­­®£® Š®¬à¨ (L. J. Comrie).
‘®àâ¨à®¢ª ¢ëçñà¯ë¢ ­¨¥¬ ¨á¯®«ì§ã¥âáï á 1956 £®¤ , ª®£¤ €©§¥ª (E. J. Isaac) ¨ ‘¨­£«¥â®­ (R. C. Singleton) ¯à¥¤«®¦¨«¨ ®á­®¢­ãî
‡ ¬¥ç ­¨ï ª £« ¢¥ 9
¨¤¥î.
179
10
Œ¥¤¨ ­ë ¨ ¯®à浪®¢ë¥ áâ â¨á⨪¨
‚ í⮩ £« ¢¥ ¬ë à áᬠâਢ ¥¬ â ªãî § ¤ çã: ¤ ­® ¬­®¦¥á⢮
¨§ n ç¨á¥«; ­ ©â¨ â®â ¥£® í«¥¬¥­â, ª®â®àë© ¡ã¤¥â i-¬ ¯® áçñâã,
¥á«¨ à ᯮ«®¦¨âì í«¥¬¥­âë ¬­®¦¥á⢠¢ ¯®à浪¥ ¢®§à áâ ­¨ï. ‚
­£«®ï§ëç­®© «¨â¥à âãॠ⠪®© í«¥¬¥­â ­ §ë¢ ¥âáï i-© ¯®à浪®¢®©
áâ â¨á⨪®© (order statistic).  ¯à¨¬¥à, ¬¨­¨¬ã¬ (minimum) | íâ®
¯®à浪®¢ ï áâ â¨á⨪ ­®¬¥à 1, ¬ ªá¨¬ã¬ (maximum) | ¯®à浪®¢ ï áâ â¨á⨪ ­®¬¥à n. Œ¥¤¨ ­®© (median) ­ §ë¢ ¥âáï í«¥¬¥­â
¬­®¦¥á⢠, ­ 室ï騩áï (¯® áçñâã) ¯®á¥à¥¤¨­¥ ¬¥¦¤ã ¬¨­¨¬ã¬®¬
¨ ¬ ªá¨¬ã¬®¬. ’®ç­¥¥ £®¢®àï, ¥á«¨ n ­¥çñâ­®, â® ¬¥¤¨ ­ | íâ® ¯®à浪®¢ ï áâ â¨á⨪ ­®¬¥à i = (n +1)=2, ¥á«¨ n çñâ­®, â® ¬¥¤¨ ­
¤ ¦¥ ¤¢¥: á ­®¬¥à ¬¨ i = n=2 ¨ i = n=2+1. Œ®¦­® ¥éñ ᪠§ âì, çâ®,
­¥§ ¢¨á¨¬® ®â çñâ­®á⨠n, ¬¥¤¨ ­ë ¨¬¥îâ ­®¬¥à i = b(n + 1)=2c ¨
i = d(n + 1)=2e. ‚ ¤ «ì­¥©è¥¬ ¬ë ¡ã¤¥¬ ­ §ë¢ âì ¬¥¤¨ ­®© ¬¥­ìèãî ¨§ ¤¢ãå (¥á«¨ ¨å ¤¢¥).
„«ï 㤮¡á⢠¬ë ¡ã¤¥¬ áç¨â âì, çâ® ¬­®¦¥á⢮, ¢ ª®â®à®¬ ¬ë
¨é¥¬ ¯®à浪®¢ë¥ áâ â¨á⨪¨, á®á⮨⠨§ à §«¨ç­ëå í«¥¬¥­â®¢,
å®âï ¯à ªâ¨ç¥áª¨ ¢áñ, çâ® ¬ë ¤¥« ¥¬, ¯¥à¥­®á¨âáï ­ á¨âã æ¨î,
ª®£¤ ¢® ¬­®¦¥á⢥ ¥áâì ¯®¢â®àïî騥áï í«¥¬¥­âë. ‡ ¤ ç ¢ë¡®à í«¥¬¥­â á ¤ ­­ë¬ ­®¬¥à®¬ (selection problem) á®á⮨⠢ á«¥¤ãî饬:
„ ­®: Œ­®¦¥á⢮ A ¨§ n à §«¨ç­ëå í«¥¬¥­â®¢ ¨ 楫®¥ ç¨á«® i, 1 6
i 6 n.
 ©â¨: «¥¬¥­â x 2 A, ¤«ï ª®â®à®£® ஢­® i ; 1 í«¥¬¥­â®¢ ¬­®¦¥á⢠A ¬¥­ìè¥ x.
âã § ¤ çã ¬®¦­® à¥è¨âì § ¢à¥¬ï O(n lg n): ®âá®àâ¨à®¢ âì ç¨á« ,
¯®á«¥ 祣® ¢§ïâì i-© í«¥¬¥­â ¢ ¯®«ã祭­®¬ ¬ áᨢ¥. …áâì, ®¤­ ª®,
¨ ¡®«¥¥ ¡ëáâàë¥ «£®à¨â¬ë.
‚ à §¤¥«¥ 10.1 ¬ë à áᬮâਬ ¯à®á⥩訩 á«ãç ©: ­ 宦¤¥­¨¥
¬ ªá¨¬ «ì­®£® ¨ ¬¨­¨¬ «ì­®£® í«¥¬¥­â®¢. Ž¡é ï § ¤ ç ¡®«¥¥ ¨­â¥à¥á­ ; ¥© ¯®á¢ïé¥­ë ¤¢ á«¥¤ãîé¨å à §¤¥« . ‚ à §¤¥«¥ 10.2 ¬ë
à áᬠâਢ ¥¬ 㤮¡­ë© ­ ¯à ªâ¨ª¥ ¢¥à®ïâ­®áâ­ë© «£®à¨â¬, ª®â®àë© ¨é¥â ¯®à浪®¢ãî áâ â¨á⨪㠧 ¢à¥¬ï O(n) ¢ á।­¥¬ (¨¬¥¥âáï ¢ ¢¨¤ã ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢à¥¬¥­¨ ¥£® à ¡®âë ­ «î¡®¬ ¢å®¤¥). ‚ à §¤¥«¥ 10.3 ¬ë à áᬠâਢ ¥¬ (¯à¥¤áâ ¢«ïî騩 ᪮॥ ⥮à¥â¨ç¥áª¨© ¨­â¥à¥á) ¤¥â¥à¬¨­¨à®¢ ­­ë© «£®à¨â¬, âॡã-
Œ¨­¨¬ã¬ ¨ ¬ ªá¨¬ã¬
181
î騩 ¢à¥¬¥­¨ O(n) ¢ åã¤è¥¬ á«ãç ¥.
10.1 Œ¨­¨¬ã¬ ¨ ¬ ªá¨¬ã¬
‘ª®«ìª® áà ¢­¥­¨© ­¥®¡å®¤¨¬®, çâ®¡ë ¢® ¬­®¦¥á⢥ ¨§ n ç¨á¥«
­ ©â¨ ­ ¨¬¥­ì襥? ‡ n ; 1 áà ¢­¥­¨© í⮠ᤥ« âì «¥£ª®: ­ ¤® ¯®á«¥¤®¢ ⥫쭮 ¯¥à¥¡¨à âì ¢á¥ ç¨á« , åà ­ï §­ 祭¨¥ ­ ¨¬¥­ì襣®
ç¨á« ¨§ 㦥 ¯à®á¬®â७­ëå. ‡ ¯¨è¥¬ íâ®â «£®à¨â¬, áç¨â ï, çâ®
ç¨á« § ¤ ­ë ¢ ¢¨¤¥ ¬ áᨢ A ¤«¨­ë n.
Minimum(A)
1 min A[1]
2 for i 2 to length[A]
3
do if min > A[i]
4
then min A[i]
5 return min
 §ã¬¥¥âáï, ­ «®£¨ç­ë¬ ®¡à §®¬ ¬®¦­® ­ ©â¨ ¨ ¬ ªá¨¬ã¬.
Œ®¦­® «¨ ­ ©â¨ ¬¨­¨¬ã¬ ¥é¥ ¡ëáâ॥? ¥â, ¨ ¢®â ¯®ç¥¬ã.
 áᬮâਬ «£®à¨â¬ ­ 宦¤¥­¨ï ­ ¨¬¥­ì襣® ç¨á« ª ª âãà­¨à
á।¨ n ç¨á¥«, ª ¦¤®¥ áà ¢­¥­¨¥ | ª ª ¬ âç, ¢ ª®â®à®¬ ¬¥­ì襥
ç¨á«® ¯®¡¥¦¤ ¥â. —â®¡ë ¯®¡¥¤¨â¥«ì ¡ë« ­ ©¤¥­, ª ¦¤®¥ ¨§ ®áâ «ì­ëå ç¨á¥« ¤®«¦­® ¯à®¨£à âì ¯® ªà ©­¥© ¬¥à¥ ®¤¨­ ¬ âç, â ª çâ®
¬¥­ìè¥ n ; 1 áà ¢­¥­¨© ¡ëâì ­¥ ¬®¦¥â, ¨ «£®à¨â¬ Minimum ®¯â¨¬ «¥­ ¯® ç¨á«ã áà ¢­¥­¨©.
ˆ­â¥à¥á­ë© ¢®¯à®á, á¢ï§ ­­ë© á í⨬ «£®à¨â¬®¬ | ­ 宦¤¥­¨¥
¬ ⥬ â¨ç¥áª®£® ®¦¨¤ ­¨ï ç¨á« ¨á¯®«­¥­¨© áâப¨ 4. ‚ § ¤ ç¥ 62 âॡã¥âáï ¯®ª § âì, çâ® íâ ¢¥«¨ç¨­ ¥áâì (lg n).
Ž¤­®¢à¥¬¥­­ë© ¯®¨áª ¬¨­¨¬ã¬ ¨ ¬ ªá¨¬ã¬ ˆ­®£¤ ¡ë¢ ¥â ­ã¦­® ­ ©â¨ ®¤­®¢à¥¬¥­­® ¬¨­¨¬ «ì­ë© ¨ ¬ ªá¨¬ «ì­ë© í«¥¬¥­âë ¬­®¦¥á⢠. à¥¤áâ ¢¨¬ ᥡ¥ ¯à®£à ¬¬ã, ª®â®à ï ¤®«¦­ 㬥­ìè¨âì à¨áã­®ª (­ ¡®à â®ç¥ª, § ¤ ­­ëå ᢮¨¬¨
ª®®à¤¨­ â ¬¨) â ª, çâ®¡ë ®­ 㬥á⨫áï ­ íªà ­¥. „«ï í⮣® ­ã¦­®
­ ©â¨ ¬ ªá¨¬ã¬ ¨ ¬¨­¨¬ã¬ ¯® ª ¦¤®© ª®®à¤¨­ â¥.
…᫨ ¬ë ¯®¯à®áâã ­ ©¤¥¬ á­ ç « ¬¨­¨¬ã¬, ¯®â®¬ ¬ ªá¨¬ã¬,
§ âà ⨢ ­ ª ¦¤ë© ¨§ ­¨å ¯® n ; 1 áà ¢­¥­¨©, â® ¢á¥£® ¡ã¤¥â
2n ; 2 áà ¢­¥­¨ï, ç⮠ᨬ¯â®â¨ç¥áª¨ ®¯â¨¬ «ì­®. Œ®¦­®, ®¤­ ª®,
à¥è¨âì íâã § ¤ ç㠢ᥣ® § 3dn=2e ; 2 áà ¢­¥­¨©. ˆ¬¥­­®, ¡ã¤¥¬
åà ­¨âì §­ 祭¨ï ¬ ªá¨¬ã¬ ¨ ¬¨­¨¬ã¬ 㦥 ¯à®á¬®â७­ëå ç¨á¥«, ®ç¥à¥¤­ë¥ ç¨á« ¡ã¤¥¬ ®¡à ¡ âë¢ âì ¯® ¤¢ â ª¨¬ ®¡à §®¬:
á­ ç « áà ¢­¨¬ ¤¢ ®ç¥à¥¤­ëå ç¨á« ¤àã£ á ¤à㣮¬, § ⥬ ¡®«ì襥 ¨§ ­¨å áà ¢­¨¬ á ¬ ªá¨¬ã¬®¬, ¬¥­ì襥 | á ¬¨­¨¬ã¬®¬.
182
ƒ« ¢ 10 Œ¥¤¨ ­ë ¨ ¯®à浪®¢ë¥ áâ â¨á⨪¨
à¨ í⮬ ­ ®¡à ¡®âªã ¤¢ãå í«¥¬¥­â®¢ ¬ë § âà ⨬ âਠáà ¢­¥­¨ï ¢¬¥áâ® ç¥âëàñå (ªà®¬¥ ¯¥à¢®© ¯ àë, £¤¥ ¯®­ ¤®¡¨âáï ¢á¥£® ®¤­®
áà ¢­¥­¨¥).
“¯à ¦­¥­¨ï
®ª ¦¨â¥, çâ® ¢â®à®¥ ¯® ¢¥«¨ç¨­¥ ç¨á«® ¨§ n ¤ ­­ëå
¬®¦­® ­ ©â¨ ¢ åã¤è¥¬ á«ãç ¥ § n + dlg ne ; 2 áà ¢­¥­¨ï. (“ª § ­¨¥. ˆé¨â¥ íâ® ç¨á«® ¢¬¥áâ¥ á ­ ¨¬¥­ì訬.)
10.1-2? ®ª ¦¨â¥, çâ® ¤«ï ®¤­®¢à¥¬¥­­®£® ­ 宦¤¥­¨ï ­ ¨¡®«ì襣® ¨ ­ ¨¬¥­ì襣® ¨§ n ç¨á¥« ¢ åã¤è¥¬ á«ãç ¥ ­¥®¡å®¤¨¬® ­¥ ¬¥­¥¥ d3n=2e;2 áà ¢­¥­¨©. (“ª § ­¨¥. ‚ ª ¦¤ë© ¬®¬¥­â í«¥¬¥­âë ¤¥«ïâáï ­ ç¥âëॠ£à㯯ë: (1) ­¥¯à®á¬®â७­ë¥ (ª®â®àë¥ ¬®£ãâ ®ª § âìáï ¨ ¬¨­¨¬ «ì­ë¬¨, ¨ ¬ ªá¨¬ «ì­ë¬¨); (2) â¥, çâ® ¥éñ ¬®£ãâ
®ª § âìáï ¬¨­¨¬ «ì­ë¬¨, ­® § ¢¥¤®¬® ­¥ ¬ ªá¨¬ «ì­ë; (3) â¥, çâ®
¥éñ ¬®£ãâ ®ª § âìáï ¬ ªá¨¬ «ì­ë¬¨, ­® ­¥ ¬¨­¨¬ «ì­ë¬¨; (4) ®â¡à®è¥­­ë¥ (ª®â®àë¥ § ¢¥¤®¬® ­¥ ¬¨­¨¬ «ì­ë ¨ ­¥ ¬ ªá¨¬ «ì­ë).
ãáâì a1; a2; a3; a4 | ª®«¨ç¥á⢮ í«¥¬¥­â®¢ ª ¦¤®© £à㯯ë. Š ª
¬¥­ïîâáï í⨠ç¨á« ¯à¨ áà ¢­¥­¨ïå?)
10.1-1
10.2 ‚ë¡®à § «¨­¥©­®¥ ¢ á।­¥¬ ¢à¥¬ï
•®âï ®¡é ï § ¤ ç ¢ë¡®à ¢ë£«ï¤¨â ¡®«¥¥ á«®¦­®©, 祬 § ¤ ç ®
¬¨­¨¬ã¬¥ ¨«¨ ¬ ªá¨¬ã¬¥, ¥ñ, ª ª ­¨ áâà ­­®, ⮦¥ ¬®¦­® à¥è¨âì
§ ¢à¥¬ï (n). ‚ í⮬ à §¤¥«¥ ¬ë à áᬮâਬ ¢¥à®ïâ­®áâ­ë© «£®à¨â¬ Randomized-Select ¤«ï à¥è¥­¨ï í⮩ § ¤ ç¨, ¤¥©áâ¢ãî騩
¯® á奬¥ "à §¤¥«ï© ¨ ¢« áâ¢ã©". Ž­ ­ «®£¨ç¥­ «£®à¨â¬ã ¡ëáâன
á®àâ¨à®¢ª¨ ¨§ £« ¢ë 8: ¬ áᨢ à §¡¨¢ ¥âáï ­ ¬¥­ì訥 ç áâ¨. Ž¤­ ª® «£®à¨â¬ ¡ëáâன á®àâ¨à®¢ª¨, à §¡¨¢ ¬ áᨢ ­ ¤¢ ªã᪠,
®¡à ¡ âë¢ ¥â ®¡ , «£®à¨â¬ Randomized-Select | ⮫쪮 ®¤¨­
¨§ íâ¨å ªã᪮¢. ®í⮬㠮­ ¡ëáâ॥: á।­¥¥ ¢à¥¬ï ¡ëáâன á®àâ¨à®¢ª¨ ¥áâì (n lg n), ¢ â® ¢à¥¬ï ª ª «£®à¨â¬ Randomized-Select
à ¡®â ¥â ¢ á।­¥¬ § ¢à¥¬ï (n).
€«£®à¨â¬ Randomized-Select ¨á¯®«ì§ã¥â ¯à®æ¥¤ãàã RandomizedPartition, ®¯¨á ­­ãî ¢ à §¤¥«¥ 8.3, ¯®¢¥¤¥­¨¥ ª®â®à®© (¨, áâ «®
¡ëâì, ¢á¥£® «£®à¨â¬ ) § ¢¨á¨â ®â ¤ â稪 á«ãç ©­ëå ç¨á¥«.
‚맮¢ Randomized-Select(A; p; r; i) ¢®§¢à é ¥â i-© ¯® áçñâã ¢
¯®à浪¥ ¢®§à áâ ­¨ï í«¥¬¥­â ¬ áᨢ A[p : :r].
‚ë¡®à § «¨­¥©­®¥ ¢ á।­¥¬ ¢à¥¬ï
183
Randomized-Select (A; p; r; i)
1
2
3
4
5
6
7
if p = r
then return A[p]
q
k
Randomized-Partition(A; p; r)
q;p+1
if i 6 k
then return Randomized-Select (A; p; q; i)
else return Randomized-Select (A; q + 1; r; i ; k)
®á«¥ ¨á¯®«­¥­¨ï ¯à®æ¥¤ãàë Randomized-Partition ¢ áâப¥ 3
¬ áᨢ A[p : :r] á®á⮨⠨§ ¤¢ãå ­¥¯ãáâëå ç á⥩ A[p : :q] ¨ A[q +
1 : :r], ¯à¨çñ¬ ¢á直© í«¥¬¥­â A[p : :q ] ¬¥­ìè¥ ¢á类£® í«¥¬¥­â A[q +1 : :r]. ‚ áâப¥ 4 ¢ëç¨á«ï¥âáï ª®«¨ç¥á⢮ í«¥¬¥­â®¢ ¢ ¬ áᨢ¥
A[p : :q]. „ «ì­¥©è¥¥ § ¢¨á¨â ®â ⮣®, ¢ ª ª®¬ ¨§ íâ¨å ¤¢ãå ¬ áᨢ®¢ «¥¦¨â i-© ¯® ¢¥«¨ç¨­¥ í«¥¬¥­â ¬ áᨢ A[p : :r]. …᫨ i 6 k, â®
­ã¦­ë© ­ ¬ í«¥¬¥­â «¥¦¨â ¢ «¥¢®© ç á⨠(¬ áᨢ¥ A[p : :q]), ®âªã¤ ¨ ¨§¢«¥ª ¥âáï ¢ १ã«ìâ ⥠(४ãàᨢ­®£®) ¢ë§®¢ RandomizedSelect ¢ áâப¥ 6. …᫨ ¦¥ i > k, â® ¢á¥ k í«¥¬¥­â®¢ «¥¢®© ç á⨠(A[p : :q]) § ¢¥¤®¬® ¬¥­ìè¥ ¨áª®¬®£®, ª®â®àë© ¬®¦­® ­ ©â¨ ª ª
(i ; k)-© ¯® áçñâã í«¥¬¥­â ¬ áᨢ A[q + 1 : :r] (áâப 7).
‚६ï à ¡®âë «£®à¨â¬ Randomized-Select (á ãçñ⮬ ¢à¥¬¥­¨ à ¡®âë ¯à®æ¥¤ãàë Randomized-Partition) ¢ åã¤è¥¬ á«ãç ¥
¥áâì (n2), ¤ ¦¥ ¥á«¨ ¬ë ¨é¥¬ ¢á¥£® «¨èì ¬¨­¨¬ã¬: ¢ á ¬®¬ ¤¥«¥,
¯à¨ ®á®¡®¬ ­¥¢¥§¥­¨¨ ¬®¦¥â ®ª § âìáï, çâ® ¬ë ¢á¥ ¢à¥¬ï à §¡¨¢ ¥¬ ¬ áᨢ ¢®§«¥ ­ ¨¡®«ì襣® ®á⠢襣®áï í«¥¬¥­â . Ž¤­ ª® á«ãç ©­ë© ¢ë¡®à £ à ­â¨àã¥â, çâ® ¤«ï «î¡®£® ¢å®¤ á।­¥¥ ¢à¥¬ï
à ¡®âë «£®à¨â¬ ¡ã¤¥â ­¥¢¥«¨ª®.
„®ª ¦¥¬ íâ®.  áᬮâਬ ¤«ï ª ¦¤®© ¨§ ¢®§¬®¦­ëå ¯¥à¥áâ ­®¢®ª n í«¥¬¥­â®¢ ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢à¥¬¥­¨ à ¡®âë «£®à¨â¬ (á।­¥¥ ¯® ¢á¥¬ á«ãç ©­ë¬ ¢ë¡®à ¬). ãáâì T (n) | ¬ ªá¨¬ «ì­®¥ ¨§ íâ¨å ®¦¨¤ ­¨©. Š ª ¬ë ®â¬¥ç «¨ ¢ à §¤¥«¥ 8.4, ¯®á«¥
¢ë§®¢ Randomized-Partition «¥¢ ï ç áâì à §¡¨¥­¨ï ᮤ¥à¦¨â 1
í«¥¬¥­â á ¢¥à®ïâ­®áâìî 2=n, ¨ ᮤ¥à¦¨â i > 1 í«¥¬¥­â®¢ á ¢¥à®ïâ­®áâìî 1=n ¤«ï «î¡®£® i ®â 2 ¤® n ; 1. Œ®¦­® áç¨â âì, çâ® T (n)
¬®­®â®­­® ¢®§à áâ ¥â á à®á⮬ n (¥á«¨ íâ® ­¥ â ª, § ¬¥­¨¬ T (n)
­ T 0(n) = max16i6n T (i) ¨ ¯®¢â®à¨¬ ¢á¥ à áá㦤¥­¨ï ¤«ï T 0). ‡ ¬¥â¨¬, çâ® åã¤è¨¬ á«ãç ¥¬ ¡ã¤¥â â®â, ª®£¤ i-© ¯® áçñâã í«¥¬¥­â
¯®¯ ¤ ¥â ¢ ¡®«ìèãî ¨§ ¤¢ãå ¯®«®¢¨­, ­ ª®â®àë¥ à §¡¨¢ ¥âáï ¬ á-
184
ƒ« ¢ 10 Œ¥¤¨ ­ë ¨ ¯®à浪®¢ë¥ áâ â¨á⨪¨
ᨢ. Žâáî¤ ¨¬¥¥¬:
!
nX
;1
T (n) 6 n1 T (max(1; n ; 1)) + T (max(k; n ; k)) + O(n)
0
6 n1 @T (n ; 1) + 2
= n2
nX
;1
k=dn=2e
nX
;1
k=1
k=dn=2e
1
T (k)A + O(n)
T (k) + O(n)
(¬ë á£à㯯¨à®¢ «¨ ®¤¨­ ª®¢ë¥ á« £ ¥¬ë¥ ¯à¨ ¯¥à¥å®¤¥ ®â ¯¥à¢®©
áâப¨ ª® ¢â®à®© ¨ ®â¡à®á¨«¨ T (n ; 1)=n ¯à¨ ¯¥à¥å®¤¥ ®â ¢â®à®©
áâப¨ ª âà¥â쥩, â ª ª ª ¢ åã¤è¥¬ á«ãç ¥ T (n ; 1) = O(n2), ¨ ⥬
á ¬ë¬ á« £ ¥¬®¥ T (n ; 1)=n ¬®¦­® ¢ª«îç¨âì ¢ O(n)).
’¥¯¥àì ¤®ª ¦¥¬, çâ® T (n) 6 cn, à áá㦤 ï ¯® ¨­¤ãªæ¨¨ (ª ª
¢ë¡à âì c, ¬ë ᪠¦¥¬ ¯®á«¥). ‚ á ¬®¬ ¤¥«¥, ¯ãáâì ­¥à ¢¥­á⢮
T (j ) 6 cj ¢¥à­® ¤«ï ¢á¥å j < n. ’®£¤ , ¨á¯®«ì§ãï ä®à¬ã«ã ¤«ï
á㬬ë à¨ä¬¥â¨ç¥áª®© ¯à®£à¥áᨨ, ¯®«ãç ¥¬, çâ®
nX
;1
2
T (n) 6 n
ck + O(n)
k=dn=2e
6 2nc n2 n=2 + 12+ n ; 1 + O(n)
= 3cn + O(n) 6 cn;
4
¥á«¨ ¢ë¡à âì c áâ®«ì ¡®«ì訬, ç⮡ë c=4 ¯à¥¢®á室¨«® ª®­áâ ­âã,
¯®¤à §ã¬¥¢ ¥¬ãî ¢ á« £ ¥¬®¬ O(n).
‘â «® ¡ëâì, «î¡ ï ¯®à浪®¢ ï áâ â¨á⨪ , ¨ ¬¥¤¨ ­ ¢ ⮬ ç¨á«¥, ¬®¦¥â ¡ëâì ­ ©¤¥­ § «¨­¥©­®¥ ¢ á।­¥¬ ¢à¥¬ï.
“¯à ¦­¥­¨ï
 ¯¨è¨â¥ ¢¥àá¨î ¯à®æ¥¤ãàë Randomized-Select, ­¥ ¨á¯®«ì§ãîéãî ४ãàᨨ.
10.2-2 à¥¤¯®«®¦¨¬, çâ® ¬ë ¨á¯®«ì§ã¥¬ «£®à¨â¬ RandomizedSelect ¤«ï ¢ë¡®à ­ ¨¬¥­ì襣® í«¥¬¥­â ¨§ ¬ áᨢ A =
h3; 2; 9; 0; 7; 5; 4; 8; 6; 1i. Ž¯¨è¨â¥ ¯®á«¥¤®¢ ⥫쭮áâì à §¡¨¥­¨©,
ᮮ⢥âáâ¢ãîéãî åã¤è¥¬ã á«ãç î.
10.2-3 ã¤¥â «¨ «£®à¨â¬ Randomized-Select ¯à ¢¨«ì­® à ¡®â âì, ¥á«¨ ¢ ¬ áᨢ¥ A ¥áâì à ¢­ë¥ í«¥¬¥­âë (ª ª ¬ë ¯®¬­¨¬, ¢
í⮬ á«ãç ¥ ¯à®æ¥¤ãà Randomized-Partition à §¡¨¢ ¥â A[p : :r]
10.2-1
‚ë¡®à § «¨­¥©­®¥ ¢ åã¤è¥¬ á«ãç ¥ ¢à¥¬ï
185
­ ç á⨠A[p : :q] ¨ A[q + 1 : :r] â ª¨¬ ®¡à §®¬, çâ® ¢á直© í«¥¬¥­â
A[p : :q] ­¥ ¯à¥¢®á室¨â ¢á类£® í«¥¬¥­â A[q + 1 : :r])?
10.3 ‚ë¡®à § «¨­¥©­®¥ ¢ åã¤è¥¬ á«ãç ¥ ¢à¥¬ï
’¥¯¥àì à áᬮâਬ (¤¥â¥à¬¨­¨à®¢ ­­ë©) «£®à¨â¬ Select, à¥è î騩 § ¤ çã ® ¯®à浪®¢ëå áâ â¨á⨪ å § ¢à¥¬ï O(n) ¢ åã¤è¥¬ á«ãç ¥. Š ª ¨ Randomized-Select, íâ®â «£®à¨â¬ ®á­®¢ ­
­ ¯®á«¥¤®¢ ⥫쭮¬ à §¡¨¥­¨¨ ¬ áᨢ ­ ¬¥­ì訥 ç áâ¨; ¢ ¤ ­­®¬ á«ãç ¥, ®¤­ ª®, ¬ë £ à ­â¨à㥬, çâ® ¢ë¡à ­­®¥ à §¡¨¥­¨¥ ­¥
ï¥âáï ­¥ã¤ ç­ë¬. €«£®à¨â¬ Select ¨á¯®«ì§ã¥â (¤¥â¥à¬¨­¨à®¢ ­­ãî) ¯à®æ¥¤ãàã Partition (á¬. ®¯¨á ­¨¥ «£®à¨â¬ ¡ëáâன
á®àâ¨à®¢ª¨ ¢ à §¤. 8.1), ¬®¤¨ä¨æ¨à®¢ ­­ãî â ª¨¬ ®¡à §®¬, ç⮡ë
í«¥¬¥­â, á ª®â®àë¬ áà ¢­¨¢ îâ, § ¤ ¢ «áï ª ª ¯ à ¬¥âà.
€«£®à¨â¬ Select ­ 室¨â i-© ¯® ¯®à浪ã í«¥¬¥­â ¢ ¬ áᨢ¥ à §¬¥à n > 1 á«¥¤ãî騬 ®¡à §®¬:
1.  §¡¨âì n í«¥¬¥­â®¢ ¬ áᨢ ­ bn=5c £à㯯 ¯® 5 í«¥¬¥­â®¢ ¨
(¢®§¬®¦­®) ®¤­ã £à㯯ã, ¢ ª®â®à®© ¬¥­¥¥ ¯ïâ¨ í«¥¬¥­â®¢.
2.  ©â¨ ¬¥¤¨ ­ã ª ¦¤®© ¨§ dn=5e £à㯯 (¤«ï 祣® ®âá®àâ¨à®¢ âì
£à㯯㠢áâ ¢ª ¬¨).
3. ‚맢 ¢ (४ãàᨢ­®) ¯à®æ¥¤ãàã Select, ­ ©â¨ ç¨á«® x, ïî饥áï ¬¥¤¨ ­®© ­ ©¤¥­­ëå dn=5e ¬¥¤¨ ­.
4. ‚맢 ¢ ¬®¤¨ä¨æ¨à®¢ ­­ãî ¯à®æ¥¤ãàã Partition, à §¡¨âì ¬ áᨢ
®â­®á¨â¥«ì­® ­ ©¤¥­­®© "¬¥¤¨ ­ë ¬¥¤¨ ­". ãáâì k | ª®«¨ç¥á⢮ í«¥¬¥­â®¢ ¢ ­¨¦­¥© ç á⨠í⮣® à §¡¨¥­¨ï (¢ ¢¥àå­¥© ç áâ¨,
áâ «® ¡ëâì, n ; k).
5. ‚맢 ¢ (४ãàᨢ­®) ¯à®æ¥¤ãàã Select, ­ ©â¨ i-ãî ¯®à浪®¢ãî
áâ â¨á⨪㠭¨¦­¥© ç áâ¨ à §¡¨¥­¨ï, ¥á«¨ i 6 k, ¨«¨ (i ; k)-î
¯®à浪®¢ãî áâ â¨á⨪㠢¥àå­¥© ç áâ¨ à §¡¨¥­¨ï, ¥á«¨ i > k.
Žæ¥­¨¬ ¢à¥¬ï à ¡®âë «£®à¨â¬ Select. „«ï ­ ç « ¢ëïá­¨¬, ᪮«ìª® ç¨á¥« § ¢¥¤®¬® ¡ã¤ãâ ¡®«ìè¥ "¬¥¤¨ ­ë ¬¥¤¨ ­" x
(á¬. à¨á. 10.1). ¥ ¬¥­¥¥ ¯®«®¢¨­ë ¬¥¤¨ ­, ­ ©¤¥­­ëå ­ ¢â®à®¬
è £¥, ¡ã¤ãâ ¡®«ìè¥ ¨«¨ à ¢­ë x. ‘â «® ¡ëâì, ¯® ªà ©­¥© ¬¥à¥
¯®«®¢¨­ ¨§ dn=5e £à㯯 ¤ áâ ¯® âਠç¨á« , ¡®«ìè¨å x, § ¤¢ã¬ï
¢®§¬®¦­ë¬¨ ¨áª«î祭¨ï¬¨: £à㯯 , ᮤ¥à¦ é ï x, ¨ ¯®á«¥¤­ïï ­¥¯®«­ ï £à㯯 . ’¥¬ á ¬ë¬ ¨¬¥¥âáï ­¥ ¬¥­¥¥
l m
1
n
3
; 2 > 3n ; 6:
2 5
10
í«¥¬¥­â®¢, § ¢¥¤®¬® ¡®«ìè¨å x, ¨ â®ç­® â ª ¦¥ ¯®«ãç ¥¬, çâ® ¨¬¥¥âáï ­¥ ¬¥­¥¥ 3n=10 ; 6 í«¥¬¥­â®¢, § ¢¥¤®¬® ¬¥­ìè¨å x. ‡­ ç¨â,
«£®à¨â¬ Select, ४ãàᨢ­® ¢ë§ë¢ ¥¬ë© ­ ¯ï⮬ è £¥, ¡ã¤¥â
®¡à ¡ âë¢ âì ¬ áᨢ ¤«¨­®© ­¥ ¡®«¥¥ 7n=10 + 6.
186
ƒ« ¢ 10 Œ¥¤¨ ­ë ¨ ¯®à浪®¢ë¥ áâ â¨á⨪¨
10.1 €­ «¨§ «£®à¨â¬ Select. «¥¬¥­âë ¬ áᨢ (¨å n) ¨§®¡à ¦¥­ë ªà㦪 ¬¨, ª ¦¤ë© á⮫¡¥æ | £à㯯 ¨§ 5 ¨«¨ ¬¥­ìè¥ í«¥¬¥­â®¢, ¡¥«ë¥
ªà㦪¨ | ¬¥¤¨ ­ë £à㯯. "Œ¥¤¨ ­ ¬¥¤¨ ­" ®¡®§­ 祭 ¡ãª¢®© x. ‘â५ª¨
¨¤ã⠮⠡®«ìè¨å ç¨á¥« ª ¬¥­ì訬. ‚¨¤­®, çâ® ¢ ª ¦¤®¬ ¨§ ¯®«­ëå á⮫¡æ®¢
¯à ¢¥¥ x ¨¬¥¥âáï âਠç¨á« , ¡®«ìè¨å x, ¨ çâ® ¢ ª ¦¤®¬ ¨§ á⮫¡æ®¢ «¥¢¥¥ x ¨¬¥¥âáï âਠç¨á« , ¬¥­ìè¨å x. Œ­®¦¥á⢮ ç¨á¥«, § ¢¥¤®¬® ¡®«ìè¨å x, ¢ë¤¥«¥­®
á¥àë¬.
¨áã­®ª
ãáâì ⥯¥àì T (n) | ¢à¥¬ï à ¡®âë «£®à¨â¬ Select ­ ¬ áᨢ¥ ¨§ n í«¥¬¥­â®¢ ¢ åã¤è¥¬ á«ãç ¥. ¥à¢ë©, ¢â®à®© ¨ ç¥â¢¥àâë©
è £¨ ¢ë¯®«­ïîâáï § ¢à¥¬ï O(n) (­ ¢â®à®¬ è £¥ ¬ë O(n) à § á®àâ¨à㥬 ¬ áᨢë à §¬¥à®¬ O(1)), âà¥â¨© è £ ¢ë¯®«­ï¥âáï § ¢à¥¬ï
­¥ ¡®«¥¥ T (dn=5e), ¯ïâë© è £, ¯® ¤®ª § ­­®¬ã, | § ¢à¥¬ï, ­¥ ¯à¥¢®á室ï饥 T (b7n=10+6c) (ª ª ¨ à ­ìè¥, ¬®¦­® ¯à¥¤¯®« £ âì, çâ®
T (n) ¬®­®â®­­® ¢®§à áâ ¥â á à®á⮬ n). ‘â «® ¡ëâì,
T (n) 6 T (dn=5e) + T (b7n=10 + 6c) + O(n):
®áª®«ìªã á㬬 ª®íää¨æ¨¥­â®¢ ¯à¨ n ¢ ¯à ¢®© ç á⨠(1=5+7=10 =
9=10) ¬¥­ìè¥ ¥¤¨­¨æë, ¨§ í⮣® ४ãà७⭮£® ᮮ⭮襭¨ï ¢ë⥪ ¥â, çâ® T (n) 6 cn ¤«ï ­¥ª®â®à®© ª®­áâ ­âë c. â® ¬®¦­® ¤®ª § âì ¯® ¨­¤ãªæ¨¨. ‚ á ¬®¬ ¤¥«¥, ¯à¥¤¯®« £ ï, çâ® T (m) 6 cm ¤«ï
¢á¥å m < n, ¨¬¥¥¬
T (n) 6 c(dn=5e) + c(b7n=10 + 6c) + O(n)
6 c(n=5 + 1) + c(7n=10 + 6) + O(n)
6 9cn=10 + 7c + O(n) =
= cn ; c(n=10 ; 7) + O(n):
à¨ ¯®¤å®¤ï饬 ¢ë¡®à¥ c íâ® ¢ëà ¦¥­¨¥ ¡ã¤¥â ­¥ ¡®«ìè¥ cn ¯à¨
¢á¥å n > 70 (­ ¤®, ç⮡ë c(n=10 ; 6) ¯à¥¢®á室¨«® ª®íää¨æ¨¥­â,
¯®¤à §ã¬¥¢ ¥¬ë© ¢ O(n)). ’ ª¨¬ ®¡à §®¬, ¨­¤ãªâ¨¢­ë© ¯¥à¥å®¤
¢®§¬®¦¥­ ¯à¨ n > 70 (§ ¬¥â¨¬ ¥éñ, çâ® ¯à¨ â ª¨å n ¢ëà ¦¥­¨ï
dn=5e ¨ b7n=10 + 6c ¬¥­ìè¥ n).
“¢¥«¨ç¨¢ c ¥éñ (¥á«¨ ­ ¤®), ¬®¦­® ¤®¡¨âìáï ⮣®, ç⮡ë T (n)
­¥ ¯à¥¢®á室¨«® cn ¨ ¯à¨ ¢á¥å n 6 70, çâ® § ¢¥àè ¥â à áá㦤¥­¨¥
¯® ¨­¤ãªæ¨¨. ‘â «® ¡ëâì, «£®à¨â¬ Select à ¡®â ¥â § «¨­¥©­®¥
¢à¥¬ï (¢ åã¤è¥¬ á«ãç ¥).
‚ë¡®à § «¨­¥©­®¥ ¢ åã¤è¥¬ á«ãç ¥ ¢à¥¬ï
187
Žâ¬¥â¨¬, çâ® «£®à¨â¬ë Select ¨ Randomized-Select, ¢ ®â«¨ç¨¥ ®â ®¯¨á ­­ëå ¢ £« ¢¥ 9 «£®à¨â¬®¢ á®àâ¨à®¢ª¨ § «¨­¥©­®¥
¢à¥¬ï, ¨á¯®«ì§ãîâ ⮫쪮 ¯®¯ à­ë¥ áà ¢­¥­¨ï í«¥¬¥­â®¢ ¬ áᨢ ¨ ¯à¨¬¥­¨¬ë ¤«ï ¯à®¨§¢®«ì­®£® 㯮à冷祭­®£® ¬­®¦¥á⢠. â¨
«£®à¨â¬ë ᨬ¯â®â¨ç¥áª¨ íä䥪⨢­¥¥ ®ç¥¢¨¤­®£® ¯®¤å®¤ "㯮àï¤®ç¨ ¬­®¦¥á⢮ ¨ ¢ë¡¥à¨ ­ã¦­ë© í«¥¬¥­â", ¯®áª®«ìªã ¢á直©
«£®à¨â¬ á®àâ¨à®¢ª¨, ¨á¯®«ì§ãî騩 ⮫쪮 ¯®¯ à­ë¥ áà ¢­¥­¨ï,
âॡã¥â ¢à¥¬¥­¨ (n lg n) ­¥ ⮫쪮 ¢ åã¤è¥¬ á«ãç ¥ (à §¤¥« 9.1),
­® ¨ ¢ á।­¥¬ (§ ¤ ç 9-1).
“¯à ¦­¥­¨ï
10.3-1 ã¤¥â «¨ «£®à¨â¬ Select à ¡®â âì § «¨­¥©­®¥ ¢à¥¬ï,
¥á«¨ à §¡¨¢ âì ¬ áᨢ ­ £àã¯¯ë ­¥ ¨§ ¯ïâ¨, ¨§ ᥬ¨ í«¥¬¥­â®¢? ®ª ¦¨â¥, çâ® ¤«ï £à㯯 ¨§ âàñå í«¥¬¥­â®¢ à áá㦤¥­¨¥ ­¥
¯à®å®¤¨â.
10.3-2 ãáâì x | "¬¥¤¨ ­ ¬¥¤¨ ­" ¢ «£®à¨â¬¥ Select (¬ áᨢ
ᮤ¥à¦¨â n í«¥¬¥­â®¢). ®ª ¦¨â¥, çâ® ¯à¨ n > 38 ª®«¨ç¥á⢮ í«¥¬¥­â®¢, ¡®«ìè¨å x (â ª ¦¥ ª ª ¨ ª®«¨ç¥á⢮ í«¥¬¥­â®¢, ¬¥­ìè¨å x)
­¥ ¬¥­ìè¥ dn=4e.
10.3-3 Œ®¤¨ä¨æ¨àã©â¥ «£®à¨â¬ ¡ëáâன á®àâ¨à®¢ª¨ â ª, ç⮡ë
®­ à ¡®â « § ¢à¥¬ï O(n lg n) ¢ åã¤è¥¬ á«ãç ¥.
10.3-4? ãáâì «£®à¨â¬ ¢ë¡®à i-£® ¯® áçñâã í«¥¬¥­â ¨á¯®«ì§ã¥â
⮫쪮 ¯®¯ à­ë¥ áà ¢­¥­¨ï. ®ª ¦¨â¥, çâ® á ¯®¬®éìî â¥å ¦¥ áà ¢­¥­¨© ¬®¦­® ¢ ª ç¥á⢥ ¯®¡®ç­®£® १ã«ìâ â ¯®«ãç¨âì ᯨ᪨ í«¥¬¥­â®¢, ¬¥­ìè¨å ¨áª®¬®£®, â ª¦¥ ¡®«ìè¨å ¨áª®¬®£®.
10.3-5 ãáâì ã ­ á ¥áâì ª ª®©-â® «£®à¨â¬, ­ 室ï騩 ¬¥¤¨ ­ã
§ «¨­¥©­®¥ ¢ åã¤è¥¬ á«ãç ¥ ¢à¥¬ï. ˆá¯®«ì§ãï ¥£® ¢ ª ç¥á⢥ ¯®¤¯à®£à ¬¬ë, à §à ¡®â ©â¥ ¯à®á⮩ «£®à¨â¬, à¥è î騩 § ¤ çã ­ 宦¤¥­¨ï ¯à®¨§¢®«ì­®© ¯®à浪®¢®© áâ â¨á⨪¨ § «¨­¥©­®¥ ¢à¥¬ï.
10.3-6 ®¤ k-ª¢ ­â¨«ï¬¨ (k-th quantiles) ¬­®¦¥á⢠¨§ n ç¨á¥« ¬ë
¯®­¨¬ ¥¬ k ; 1 ¥£® í«¥¬¥­â®¢, ®¡« ¤ îé¨å á«¥¤ãî騬 ᢮©á⢮¬:
¥á«¨ à ᯮ«®¦¨âì í«¥¬¥­âë ¬­®¦¥á⢠¢ ¯®à浪¥ ¢®§à áâ ­¨ï, â®
ª¢ ­â¨«¨ ¡ã¤ãâ à §¡¨¢ âì ¬­®¦¥á⢮ ­ k à ¢­ëå (â®ç­¥¥, ®â«¨ç îé¨åáï ­¥ ¡®«¥¥ 祬 ­ ®¤¨­ í«¥¬¥­â) ç á⥩.  §à ¡®â ©â¥ «£®à¨â¬, ª®â®àë© § ¢à¥¬ï O(n lg k) ­ 室¨â k-ª¢ ­â¨«¨ ¤ ­­®£®
¬­®¦¥á⢠.
10.3-7  §à ¡®â ©â¥ «£®à¨â¬, ª®â®àë© ¯® § ¤ ­­®¬ã k ­ 室¨â
¢ ¤ ­­®¬ ¬­®¦¥á⢥ S ¥£® k í«¥¬¥­â®¢, ¬¥­¥¥ ¢á¥£® ®âáâ®ïé¨å ®â
¬¥¤¨ ­ë. —¨á«® ®¯¥à 権 ¤®«¦­® ¡ëâì O(jS j).
188
ƒ« ¢ 10 Œ¥¤¨ ­ë ¨ ¯®à浪®¢ë¥ áâ â¨á⨪¨
¨áã­®ª 10.2 Š ª ¯à®¢¥áâ¨ á ¢®á⮪ ­ § ¯ ¤ ¬ £¨áâà «ì, ç⮡ë á㬬 à­ ï
¤«¨­ ¯®¤¢®¤ïé¨å âàã¡®¯à®¢®¤®¢ ¡ë« ¬¨­¨¬ «ì­ ?
ãáâì X [1 : :n] ¨ Y [1 : :n] | ¤¢ ¢®§à áâ îé¨å ¬ áᨢ .
 §à ¡®â ©â¥ «£®à¨â¬, ­ 室ï騩 § ¢à¥¬ï O(lg n) ¬¥¤¨ ­ã ¬­®¦¥á⢠, ¯®«ã祭­®£® ®¡ê¥¤¨­¥­¨¥¬ í«¥¬¥­â®¢ íâ¨å ¬ áᨢ®¢.
10.3-9 à®ä¥áá®à ª®­áã«ìâ¨àã¥â ­¥äâï­ãî ª®¬¯ ­¨î, ª®â®à®©
âॡã¥âáï ¯à®¢¥á⨠¬ £¨áâà «ì­ë© ­¥ä⥯஢®¤ ¢ ­ ¯à ¢«¥­¨¨
áâண® á § ¯ ¤ ­ ¢®á⮪ ç¥à¥§ ­¥ä⥭®á­®¥ ¯®«¥, ­ ª®â®à®¬ à ᯮ«®¦¥­ë n ­¥äâï­ëå ᪢ ¦¨­. Žâ ª ¦¤®© ᪢ ¦¨­ë ­¥®¡å®¤¨¬®
¯®¤¢¥á⨠ª ¬ £¨áâà «¨ âàã¡®¯à®¢®¤ ¯® ªà âç ©è¥¬ã ¯ã⨠(áâண®
­ ᥢ¥à ¨«¨ ­ î£, à¨á. 10.2). Š®®à¤¨­ âë ¢á¥å ᪢ ¦¨­ ¯à®ä¥áá®àã ¨§¢¥áâ­ë; ­¥®¡å®¤¨¬® ¢ë¡à âì ¬¥á⮯®«®¦¥­¨¥ ¬ £¨áâà «¨,
ç⮡ë á㬬 ¤«¨­ ¢á¥å âàã¡®¯à®¢®¤®¢, ¢¥¤ãé¨å ®â ᪢ ¦¨­ ª ¬ £¨áâà «¨, ¡ë« ¬¨­¨¬ «ì­ . ®ª ¦¨â¥, çâ® ®¯â¨¬ «ì­®¥ ¬¥áâ® ¤«ï
¬ £¨áâà «¨ ¬®¦­® ­ ©â¨ § «¨­¥©­®¥ ¢à¥¬ï.
10.3-8
‡ ¤ ç¨
10-1 ‘®àâ¨à®¢ª i ­ ¨¡®«ìè¨å í«¥¬¥­â®¢
„ ­® ¬­®¦¥á⢮ ¨§ n ç¨á¥«; âॡã¥âáï ¢ë¡à âì ¨§ ­¨å i ­ ¨¡®«ìè¨å ¨ ®âá®àâ¨à®¢ âì (¯®«ì§ãïáì ⮫쪮 ¯®¯ à­ë¬¨ áà ¢­¥­¨ï¬¨).
„«ï ª ¦¤®£® ¨§ ¯à¨¢¥¤¥­­ëå ­¨¦¥ ¯®¤å®¤®¢ à §à ¡®â ©â¥ ᮮ⢥âáâ¢ãî騩 «£®à¨â¬ ¨ ¢ëïá­¨â¥, ª ª § ¢¨á¨â ®â n ¨ i ¢à¥¬ï à ¡®âë
íâ¨å «£®à¨â¬®¢ ¢ åã¤è¥¬ á«ãç ¥.
Žâá®àâ¨à®¢ âì ¢á¥ ç¨á« ¨ ¢ë¯¨á âì i ­ ¨¡®«ìè¨å.
¡ ®¬¥áâ¨âì ç¨á« ¢ ®ç¥à¥¤ì á ¯à¨®à¨â¥â ¬¨ ¨ ¢ë§¢ âì i à § ¯à®æ¥¤ãàã Extract-Max.
‡ ¤ ç¨ ª £« ¢¥ 10
189
¢  ©â¨ á ¯®¬®éìî «£®à¨â¬ à §¤¥« 10.3 i-¥ ¯® ¢¥«¨ç¨­¥ ç¨á«®
(áç¨â ï ®â ­ ¨¡®«ì襣®), à §¡¨âì ¬ áᨢ ®â­®á¨â¥«ì­® ­¥£® ¨ ®âá®àâ¨à®¢ âì i ­ ¨¡®«ìè¨å ç¨á¥«.
10-2 ‚§¢¥è¥­­ ï ¬¥¤¨ ­ ãáâì ¤ ­® n à §«¨ç­ëå ç¨á¥« x1; : : :; xn, ¨ ¯ãáâì ª ¦¤®¬ã xi
ᮯ®áâ ¢«¥­® ¯®«®¦¨â¥«ì­®¥ ç¨á«® ("¢¥á") wi, ¯à¨çñ¬ á㬬 ¢á¥å
¢¥á®¢ à ¢­ 1. ‚§¢¥è¥­­®© ¬¥¤¨ ­®© (weighted median) ­ §ë¢ ¥âáï
â ª®¥ ç¨á«® xk , çâ®
X
xi <xk
wi 6 21
¨
X
xi >xk
wi 6 12 :
®ª ¦¨â¥, çâ® ¥á«¨ ¢á¥ ¢¥á à ¢­ë 1=n, â® ¢§¢¥è¥­­ ï ¬¥¤¨ ­ ᮢ¯ ¤ ¥â á ®¡ëç­®©.
¡ Š ª ­ ©â¨ ¢§¢¥è¥­­ãî ¬¥¤¨ ­ã n ç¨á¥« á ¯®¬®éìî á®àâ¨à®¢ª¨
§ ¢à¥¬ï O(n lg n) ¢ åã¤è¥¬ á«ãç ¥?
¢ Š ª ¬®¤¨ä¨æ¨à®¢ âì «£®à¨â¬ Select (à §¤¥« 10.3), çâ®¡ë ®­
¨áª « ¢§¢¥è¥­­ãî ¬¥¤¨ ­ã § ¢à¥¬ï (n) ¢ åã¤è¥¬ á«ãç ¥?
‡ ¤ ç ® ¢ë¡®à¥ ¬¥áâ ¤«ï ¯®çâë (post-oce location problem) á®á⮨⠢ á«¥¤ãî饬. „ ­® n â®ç¥ª p1; : : :; pn ¨ n ¯®«®¦¨â¥«ì­ëå
¢¥á®¢ w1; : : :; wn; âॡã¥âáï ­ ©â¨ â®çªã p (­¥ ®¡ï§ ⥫쭮
ᮢ¯ ¤ îéãî á ®¤­®© ¨§ pi), ¤«ï ª®â®à®© ¢ëà ¦¥­¨¥ Pni=1 wid(p; pi) ¡ã¤¥â ¬¨­¨¬ «ì­® (ç¥à¥§ d(a; b) ®¡®§­ ç ¥âáï à ááâ®ï­¨¥ ¬¥¦¤ã â®çª ¬¨ a ¨ b).
¤ ®ª ¦¨â¥, çâ® ¢ ®¤­®¬¥à­®¬ á«ãç ¥ (â®çª¨ | ¢¥é¥á⢥­­ë¥ ç¨á« , d(a; b) = ja ; bj) ¢§¢¥è¥­­ ï ¬¥¤¨ ­ ¡ã¤¥â à¥è¥­¨¥¬ í⮩
§ ¤ ç¨.
¥  ©¤¨â¥ ®¯â¨¬ «ì­®¥ à¥è¥­¨¥ ¢ ¤¢ã¬¥à­®¬ á«ãç ¥ (â®çª¨ |
¯ àë ¢¥é¥á⢥­­ëå ç¨á¥«), ¥á«¨ à ááâ®ï­¨¥ ¬¥¦¤ã â®çª ¬¨ a =
(x1; y1) ¨ b = (x2; y2) § ¤ ¥âáï "¢ L1-¬¥âਪ¥": d(a; b) = jx1 ;
x2j + jy1 ; y2 j ( ¬¥à¨ª ­æë ­ §ë¢ îâ â ªãî ¬¥âਪã Manhattan
distance, ¯® ­ §¢ ­¨î à ©®­ ìî-‰®àª , à §¡¨â®£® ã«¨æ ¬¨ ­ ¯àאַ㣮«ì­ë¥ ª¢ àâ «ë)
10-3  宦¤¥­¨¥ i-£® ¯® ¢¥«¨ç¨­¥ í«¥¬¥­â ¯à¨ ¬ «ëå i
ãáâì T (n) | ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë Select, ¯à¨¬¥­¥­­®© ª
¬ áᨢ㠨§ n ç¨á¥«; ¢ åã¤è¥¬ á«ãç ¥ T (n) = (n), ­® ª®íää¨æ¨¥­â
¯à¨ n, ¯®¤à §ã¬¥¢ ¥¬ë© ¢ í⮬ ®¡®§­ 祭¨¨, ¤®¢®«ì­® ¢¥«¨ª. …᫨
i ¬ «® ¯® áà ¢­¥­¨î á n, â® ®â®¡à âì i-ë© ¯® ¢¥«¨ç¨­¥ í«¥¬¥­â
¬®¦­® ¡ëáâ॥.
190
ƒ« ¢ 10 Œ¥¤¨ ­ë ¨ ¯®à浪®¢ë¥ áâ â¨á⨪¨
Ž¯¨è¨â¥ «£®à¨â¬, ª®â®àë© ­ 室¨â i-© ¯® ¢¥«¨ç¨­¥ í«¥¬¥­â ¢
¬­®¦¥á⢥ ¨§ n ç¨á¥«, ¤¥« ï Ui(n) áà ¢­¥­¨©, ¯à¨çñ¬
(
Ui(n) =
T (n )
¥á«¨ n 6 2i,
n=2 + Ui(bn=2c) + T (2i + 1) ¨­ ç¥.
(“ª § ­¨¥: ᤥ« ©â¥ bn=2c ¯®¯ à­ëå áà ¢­¥­¨© ¨ ®â¡¥à¨â¥ i ­ ¨¬¥­ìè¨å á।¨ ¬¥­ìè¨å í«¥¬¥­â®¢ ¯ à.)
¡ ®ª ¦¨â¥, çâ® Ui (n) = n + O(T (2i) log(n=i)).
¢ ®ª ¦¨â¥, çâ®, ¯à¨ ¯®áâ®ï­­®¬ i, ¨¬¥¥¬ Ui (n) = n + O(lg n).
[’ ¦¥ ®æ¥­ª ¯®«ãç¨âáï, ¥á«¨ ¯®áâநâì ªãçã ¨§ £« ¢ë 7, § ⥬
i à § ¢ë¡à âì ¨§ ­¥ñ ¬¨­¨¬ «ì­ë© í«¥¬¥­â.]
£ ãáâì i = n=k, ¯à¨çñ¬ k > 2; ¯®ª ¦¨â¥, çâ® Ui (n) = n +
O(T (2n=k) lg k).
‡ ¬¥ç ­¨ï
€«£®à¨â¬ ¤«ï ­ 宦¤¥­¨ï ¬¥¤¨ ­ë § «¨­¥©­®¥ ¢ åã¤è¥¬ á«ãç ¥
¢à¥¬ï ¯à¥¤«®¦¨«¨ «î¬, ”«®©¤, à ââ, ¨¢¥áâ ¨ ’ àìï­ [29]. ‚¥à®ïâ­®áâ­ë© «£®à¨â¬ á «¨­¥©­ë¬ á।­¨¬ ¢à¥¬¥­¥¬ à ¡®âë ¯à¨­ ¤«¥¦¨â •® àã [97]. ”«®©¤ ¨ ¨¢¥áâ [70] à §à ¡®â «¨ ãᮢ¥à襭á⢮¢ ­­ãî ¢¥àá¨î í⮣® «£®à¨â¬ , ¢ ª®â®à®© £à ­¨æ à §¡¨¥­¨ï
®¯à¥¤¥«ï¥âáï ¯® ­¥¡®«ì让 á«ãç ©­®© ¢ë¡®àª¥.
III
‘âàãªâãàë ¤ ­­ëå
‚¢¥¤¥­¨¥
‚ ¯à®£à ¬¬¨à®¢ ­¨¨ ç áâ® ¯à¨å®¤¨âáï ¨¬¥âì ¤¥«® á ¬­®¦¥á⢠¬¨, ¬¥­ïî騬¨áï ¢ ¯à®æ¥áᥠ¢ë¯®«­¥­¨ï «£®à¨â¬ . ‚ á«¥¤ãîé¨å ¯ï⨠£« ¢ å ¬ë à áᬮâਬ áâàãªâãàë ¤ ­­ëå, ¯à¥¤­ §­ 祭­ë¥ ¤«ï åà ­¥­¨ï ¨§¬¥­ïîé¨åáï (¤¨­ ¬¨ç¥áª¨å, ¯®- ­£«¨©áª¨
dynamic) ¬­®¦¥áâ¢.
 §­ë¥ «£®à¨â¬ë ¨á¯®«ì§ãîâ à §­ë¥ ®¯¥à 樨. ¥à¥¤ª®, ­ ¯à¨¬¥à, âॡã¥âáï «¨èì ¤®¡ ¢«ïâì ¨ 㤠«ïâì í«¥¬¥­âë ¢ ¬­®¦¥á⢮, â ª¦¥ ¯à®¢¥àïâì, ¯à¨­ ¤«¥¦¨â «¨ ¬­®¦¥áâ¢ã ¤ ­­ë© í«¥¬¥­â. ‘âàãªâãà ¤ ­­ëå, ¯®¤¤¥à¦¨¢ îé ï â ª¨¥ ®¯¥à 樨, ­ §ë¢ ¥âáï á«®¢ àñ¬ (dictionary). ‚ ¤à㣨å á¨âã æ¨ïå ¬®£ãâ ¯®­ ¤®¡¨âìáï ¡®«¥¥ á«®¦­ë¥ ®¯¥à 樨.  ¯à¨¬¥à, ®ç¥à¥¤¨ á ¯à¨®à¨â¥â ¬¨, ® ª®â®àëå è« à¥çì ¢ £« ¢¥ 7 ¢ á¢ï§¨ á ªãç ¬¨, à §à¥è îâ
¢ë¡¨à âì ¨ 㤠«ïâì ­ ¨¬¥­ì訩 í«¥¬¥­â (¯®¬¨¬® ¤®¡ ¢«¥­¨ï í«¥¬¥­â®¢). ®­ïâ­®, çâ® ¢ë¡®à ॠ«¨§ 樨 ¤¨­ ¬¨ç¥áª®£® ¬­®¦¥á⢠§ ¢¨á¨â ®â ⮣®, ª ª¨¥ ®¯¥à 樨 á ­¨¬ ­ ¬ ¯®âॡãîâáï.
«¥¬¥­âë ¬­®¦¥áâ¢
Ž¡ëç­® í«¥¬¥­â ¤¨­ ¬¨ç¥áª®£® ¬­®¦¥á⢠| íâ® § ¯¨áì, ᮤ¥à¦ é ï à §«¨ç­ë¥ ¯®«ï. — áâ® ®¤­® ¨§ ¯®«¥© à áᬠâਢ ¥âáï ª ª ª«îç (key), ¯à¥¤­ §­ 祭­ë© ¤«ï ¨¤¥­â¨ä¨ª 樨 í«¥¬¥­â , ®áâ «ì­ë¥ ¯®«ï | ª ª ¤®¯®«­¨â¥«ì­ ï ¨­ä®à¬ æ¨ï (satellite
data), åà ­ïé ïáï ¢¬¥áâ¥ á ª«î箬. «¥¬¥­â ¬­®¦¥á⢠¨é¥âáï
¯® ª«îçã; ª®£¤ í«¥¬¥­â, ¬ë ¬®¦¥¬ ¯à®ç¥áâì ¨«¨ ¨§¬¥­¨âì ¤®¯®«­¨â¥«ì­ãî ¨­ä®à¬ æ¨î, ¨¬¥îéãîáï ¢ í⮬ í«¥¬¥­â¥. ‚® ¬­®£¨å
á«ãç ïå ¢á¥ ª«îç¨ à §«¨ç­ë, ¨ ⮣¤ ¬­®¦¥á⢮ ¬®¦­® à áᬠâਢ âì ª ª äã­ªæ¨î, ª®â®à ï á ª ¦¤ë¬ (áãé¥áâ¢ãî騬) ª«î箬
ᮯ®áâ ¢«ï¥â ­¥ª®â®àãî ¤®¯®«­¨â¥«ì­ãî ¨­ä®à¬ æ¨î.
Œ­®£¨¥ ᯮᮡë ॠ«¨§ 樨 ¬­®¦¥á⢠âॡãîâ, çâ®¡ë ¢¬¥á⥠á
ª ¦¤ë¬ ª«î箬 åà ­¨«¨áì ­¥ ⮫쪮 ¤®¯®«­¨â¥«ì­ë¥ ¤ ­­ë¥, ­® ¨
194
— áâì III ‘âàãªâãàë ¤ ­­ëå
­¥ª®â®à ï á«ã¦¥¡­ ï ¨­ä®à¬ æ¨ï (­ ¯à¨¬¥à, 㪠§ ⥫¨ ­ ¤à㣨¥
í«¥¬¥­âë ¬­®¦¥á⢠)
— áâ® ­ ¬­®¦¥á⢥ ª«î祩 ¨¬¥¥âáï ¥áâ¥á⢥­­ë© «¨­¥©­ë© ¯®à冷ª (­ ¯à¨¬¥à, ª«îç¨ ¬®£ãâ ¡ëâì ¤¥©á⢨⥫ì­ë¬¨ ç¨á« ¬¨
¨«¨ á«®¢ ¬¨, ­ ª®â®àëå ¥áâì «¥ªá¨ª®£à ä¨ç¥áª¨© ¯®à冷ª). ‚ í⮬
á«ãç ¥ ¬®¦­® £®¢®à¨âì, ­ ¯à¨¬¥à, ® ­ ¨¬¥­ì襬 í«¥¬¥­â¥ ¬­®¦¥á⢠¨«¨ ®¡ í«¥¬¥­â¥, ­¥¯®á।á⢥­­® á«¥¤ãî饬 § ¤ ­­ë¬.
Œë ¯à¥¤¯®« £ ¥¬, çâ® í«¥¬¥­âë ¬­®¦¥á⢠åà ­ïâáï ¢ ­¥ª®â®à®© ®¡é¥© ®¡« á⨠¯ ¬ï⨠¨ ¤«ï ª ¦¤®£® ¨¬¥¥âáï 㪠§ ⥫ì, ª®â®àë© ¯®§¢®«ï¥â ¯®«ãç¨âì ¤®áâ㯠ª í⮬ã í«¥¬¥­âã. Ž¡ëç­® ¢ ª ç¥á⢥ 㪠§ â¥«ï ¢ëáâ㯠¥â ¯à®áâ® ¤à¥á ¢ ¯ ¬ïâ¨; ¥á«¨ ï§ëª ¯à®£à ¬¬¨à®¢ ­¨ï í⮣® ­¥ ¯à¥¤ãᬠâਢ ¥â, 㪠§ ⥫¥¬ ¬®¦¥â ¡ëâì
¨­¤¥ªá ¢ ¬ áᨢ¥.
Ž¯¥à 樨 ­ ¤ ¬­®¦¥á⢠¬¨
Ž¯¥à 樨 ­ ¤ ¬­®¦¥á⢠¬¨ ¤¥«ïâáï ­ § ¯à®áë (queries), ª®â®àë¥
­¥ ¬¥­ïîâ ¬­®¦¥á⢠, ¨ ®¯¥à 樨, ¬¥­ïî騥 ¬­®¦¥á⢮ (modifying
operations). ’¨¯¨ç­ë¥ ®¯¥à 樨 á ¬­®¦¥á⢠¬¨ â ª®¢ë:
Search(S; k) (¯®¨áª). ‡ ¯à®á, ª®â®àë© ¯® ¤ ­­®¬ã ¬­®¦¥áâ¢ã S
¨ ª«îçã k ¢®§¢à é ¥â 㪠§ â¥«ì ­ í«¥¬¥­â ¬­®¦¥á⢠S á ª«î箬 k. …᫨ â ª®£® í«¥¬¥­â ¢ ¬­®¦¥á⢥ S ­¥â, ¢®§¢à é ¥âáï nil.
Insert(S; x) ¤®¡ ¢«ï¥â ª ¬­®¦¥áâ¢ã S í«¥¬¥­â, ­ ª®â®àë© ãª §ë¢ ¥â 㪠§ ⥫ì x (¯®¤à §ã¬¥¢ ¥âáï, çâ® ª í⮬㠬®¬¥­â㠢ᥠ¯®«ï
¢ § ¯¨á¨, ­ ª®â®àãî 㪠§ë¢ ¥â x, 㦥 § ¯®«­¥­ë).
Delete(S; x) 㤠«ï¥â ¨§ ¬­®¦¥á⢠S í«¥¬¥­â, ­ ª®â®àë© ãª §ë¢ ¥â 㪠§ ⥫ì x (®¡à â¨â¥ ¢­¨¬ ­¨¥, çâ® x | 㪠§ ⥫ì, ­¥
ª«îç).
Minimum(S ) ¢ë¤ ñâ 㪠§ â¥«ì ­ í«¥¬¥­â ¬­®¦¥á⢠S á ­ ¨¬¥­ì訬 ª«î箬 (áç¨â ¥¬, çâ® ª«îç¨ «¨­¥©­® 㯮à冷祭ë).
Maximum(S ) ¢ë¤ ñâ 㪠§ â¥«ì ­ í«¥¬¥­â ¬­®¦¥á⢠S á ­ ¨¡®«ì訬 ª«î箬.
Successor(S; x) (á«¥¤ãî騩) ¢®§¢à é ¥â 㪠§ â¥«ì ­ í«¥¬¥­â
¬­®¦¥á⢠S , ­¥¯®á।á⢥­­® á«¥¤ãî騩 § í«¥¬¥­â®¬ x (¢ á¬ëá«¥ «¨­¥©­®£® ¯®à浪 ­ ª«îç å). …᫨ x | ­ ¨¡®«ì訩 í«¥¬¥­â,
¢®§¢à é ¥âáï nil.
Predecessor(S; x) (¯à¥¤ë¤ã騩) ¢®§¢à é ¥â 㪠§ â¥«ì ­ í«¥¬¥­â, ­¥¯®á।á⢥­­® ¯à¥¤è¥áâ¢ãî騩 í«¥¬¥­âã x (¥á«¨ x |
­ ¨¬¥­ì訩 í«¥¬¥­â, ¢®§¢à é ¥âáï nil).
‡ ¯à®áë Successor ¨ Predecessor ç áâ® ¨á¯®«ì§ãîâáï ¨ ¯à¨ à ¡®â¥ á ¬­®¦¥á⢠¬¨, ¢ ª®â®àëå ª«îç¨ à §«¨ç­ëå í«¥¬¥­â®¢ ¬®£ãâ
ᮢ¯ ¤ âì. à¨ í⮬ à §ã¬­ ï ॠ«¨§ æ¨ï £ à ­â¨àã¥â, çâ® ä㭪樨 Successor ¨ Predecessor ®¡à â­ë, çâ® ­ ç ¢ á Minumum(S )
— áâì III ‘âàãªâãàë ¤ ­­ëå
195
¨ ¯à¨¬¥­ïï äã­ªæ¨î Successor, ¬ë ¯¥à¥ç¨á«¨¬ ¢á¥ í«¥¬¥­âë ¬­®¦¥á⢠¢ ­¥ã¡ë¢ î饬 ¯®à浪¥ ¨ â. ¯.
‘⮨¬®áâì ®¯¥à 権 ­ ¤ ¬­®¦¥á⢠¬¨ ®¡ëç­® ®æ¥­¨¢ ¥âáï ç¥à¥§ à §¬¥à ¬­®¦¥áâ¢, ª ª®â®àë¬ ®­¨ ¯à¨¬¥­ïîâáï.  ¯à¨¬¥à, ¢
£« ¢¥ 14 ¬ë ®¯¨áë¢ ¥¬ áâàãªâãàã ¤ ­­ëå, ª®â®à ï ¯®§¢®«ï¥â ¢ë¯®«­¨âì ª ¦¤ãî ¨§ ¯¥à¥ç¨á«¥­­ëå ®¯¥à 権 § ¢à¥¬ï O(lg n), £¤¥
n | ç¨á«® í«¥¬¥­â®¢ ¬­®¦¥á⢠.
Ž¡§®à ç á⨠III
‚ £« ¢ å 11{15 ¬ë ®¯¨áë¢ ¥¬ à §«¨ç­ë¥ áâàãªâãàë ¤ ­­ëå,
¯à¥¤­ §­ 祭­ë¥ ¤«ï à ¡®âë á ¤¨­ ¬¨ç¥áª¨¬¨ ¬­®¦¥á⢠¬¨. ‘ ¯®¬®éìî íâ¨å áâàãªâãà ¤ ­­ëå ¬®¦­® à §à ¡®â âì íä䥪⨢­ë¥
«£®à¨â¬ë ¤«ï à¥è¥­¨ï ¬­®£¨å à §«¨ç­ëå § ¤ ç. Šáâ â¨, á ®¤­®© ¢ ¦­®© áâàãªâãன ¤ ­­ëå (ªã祩) ¬ë 㦥 ¯®§­ ª®¬¨«¨áì ¢
£« ¢¥ 7.
‚ £« ¢¥ 11 ¬ë à §¡¨à ¥¬ ¯à¨­æ¨¯ë à ¡®âë á ¯à®á⥩訬¨
áâàãªâãà ¬¨ ¤ ­­ëå: á⥪ ¬¨, ®ç¥à¥¤ï¬¨, á¢ï§ ­­ë¬¨ ᯨ᪠¬¨
¨ ª®à­¥¢ë¬¨ ¤¥à¥¢ìﬨ. ‚ í⮩ ¦¥ £« ¢¥ à á᪠§ë¢ ¥âáï, ª ª ॠ«¨§®¢ âì § ¯¨á¨ ¨ 㪠§ ⥫¨ á ¯®¬®éìî ï§ëª®¢ ¯à®£à ¬¬¨à®¢ ­¨ï,
¢ ª®â®àëå ­¥â ᮮ⢥âáâ¢ãîé¨å ⨯®¢ ¤ ­­ëå. ®«ìè ï ç áâì ¬ â¥à¨ « í⮩ £« ¢ë á®áâ ¢«ï¥â áâ ­¤ àâ­ë© ¬ â¥à¨ « ­ ç «ì­®£®
ªãàá ¯à®£à ¬¬¨à®¢ ­¨ï.
‚ £« ¢¥ 12 ¬ë ¯®§­ ª®¬¨¬áï á å¥è-â ¡«¨æ ¬¨, ¯®¤¤¥à¦¨¢ î騬¨ ®¯¥à 樨 Insert, Delete ¨ Search. ‚ åã¤è¥¬ á«ãç ¥ ¯®¨áª
¢ å¥è-â ¡«¨æ¥ âॡã¥â ¢à¥¬¥­¨ (n), ­® á।­¥¥ ¢à¥¬ï, ­¥®¡å®¤¨¬®¥ ¤«ï ¢ë¯®«­¥­¨ï «î¡®© ¨§ á«®¢ à­ëå ®¯¥à 権 á å¥è-â ¡«¨æ¥©,
á®áâ ¢«ï¥â (¯à¨ ­¥ª®â®àëå ¯à¥¤¯®«®¦¥­¨ïå) «¨èì O(1). €­ «¨§
å¥è¨à®¢ ­¨ï ¨á¯®«ì§ã¥â ⥮à¨î ¢¥à®ïâ­®á⥩, ­® ¤«ï ¯®­¨¬ ­¨ï
¡®«ì襩 ç á⨠£« ¢ë §­ ª®¬á⢮ á í⮩ ⥮ਥ© ­¥ ®¡ï§ ⥫쭮.
‚ £« ¢¥ 13 ¬ë § ­¨¬ ¥¬áï ¤¥à¥¢ìﬨ ¤¢®¨ç­®£® ¯®¨áª . â¨ ¤¥à¥¢ìï ¯®¤¤¥à¦¨¢ î⠢ᥠ¯¥à¥ç¨á«¥­­ë¥ ®¯¥à 樨 á ¬­®¦¥á⢠¬¨.
‚ åã¤è¥¬ á«ãç ¥ á⮨¬®áâì ª ¦¤®© ¨§ ®¯¥à 権 ¥áâì (n), ­® ¤«ï
á«ãç ©­® ¯®áâ஥­­®£® ¤¥à¥¢ ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ í⮩ á⮨¬®á⨠¥áâì O(lg n).  ¡ §¥ ¤¥à¥¢ì¥¢ ¤¢®¨ç­®£® ¯®¨áª áâà®ïâáï
¬­®£¨¥ ¤à㣨¥ áâàãªâãàë ¤ ­­ëå.
ƒ« ¢ 14 ¯®á¢ï饭 ªà á­®-çñà­ë¬ ¤¥à¥¢ìï¬. â à §­®¢¨¤­®áâì ¤¥à¥¢ì¥¢ ¤¢®¨ç­®£® ¯®¨áª £ à ­â¨à®¢ ­­® à ¡®â ¥â ¡ëáâà®:
¢à¥¬ï ¢ë¯®«­¥­¨ï ª ¦¤®© ®¯¥à 樨 ¢ åã¤è¥¬ á«ãç ¥ ¥áâì O(lg n).
Šà á­®-çñà­ë¥ ¤¥à¥¢ìï ¯à¥¤áâ ¢«ïîâ ᮡ®© ®¤¨­ ¨§ ¢ ਠ­â®¢
"á¡ « ­á¨à®¢ ­­ëå" ¤¥à¥¢ì¥¢ ¯®¨áª ; ¤à㣮© ¢ ਠ­â (-¤¥à¥¢ìï)
®¡á㦤 ¥âáï ¢ £« ¢¥ 19. €«£®à¨â¬ë ¤«ï à ¡®âë á ªà á­®-çñà­ë¬¨
¤¥à¥¢ìﬨ ãáâ஥­ë ¤®¢®«ì­® å¨âà®. •®âï ¤¥â «¨ ¬®¦­® ®¯ãáâ¨âì
¯à¨ ¯¥à¢®¬ ç⥭¨¨, ¨­â¥à¥á­® ¢ ­¨å à §®¡à âìáï.
‚ £« ¢¥ 15 ¬ë à áᬠâਢ ¥¬ ¤®¯®«­¨â¥«ì­ë¥ áâàãªâãàë ­ 196
— áâì III ‘âàãªâãàë ¤ ­­ëå
ªà á­®-çñà­ëå ¤¥à¥¢ìïå, ¯®§¢®«ïî騥 ¢ë¯®«­ïâì ¥éñ ­¥áª®«ìª®
®¯¥à 権 (¯®à浪®¢ë¥ áâ â¨á⨪¨, ®¯¥à 樨 á ¤¥à¥¢ìﬨ ¯à®¬¥¦ã⪮¢).
11
«¥¬¥­â à­ë¥ áâàãªâãàë ¤ ­­ëå
‚ í⮩ £« ¢¥ ¬ë à áᬠâਢ ¥¬ ­¥áª®«ìª® ¯à®áâëå áâàãªâãà ¤ ­­ëå ¤«ï åà ­¥­¨ï ¬­®¦¥áâ¢: á⥪¨, ®ç¥à¥¤¨, ᯨ᪨, ª®à­¥¢ë¥ ¤¥à¥¢ìï. Œë ¯®ª ¦¥¬, ª ª ¬®¦­® ॠ«¨§®¢ âì ¨å á ¯®¬®éìî 㪠§ ⥫¥©
¨«¨ ¬ áᨢ®¢.
11.1 ‘⥪¨ ¨ ®ç¥à¥¤¨
‘⥪¨ ¨ ®ç¥à¥¤¨ | íâ® ¤¨­ ¬¨ç¥áª¨¥ ¬­®¦¥á⢠, ¢ ª®â®àëå í«¥¬¥­â, 㤠«ï¥¬ë© ¨§ ¬­®¦¥á⢠®¯¥à 樥© Delete, ­¥ § ¤ ñâáï
¯à®¨§¢®«ì­®, ®¯à¥¤¥«ï¥âáï áâàãªâãன ¬­®¦¥á⢠. ˆ¬¥­­®, ¨§
á⥪ (stack) ¬®¦­® 㤠«¨âì ⮫쪮 â®â í«¥¬¥­â, ª®â®àë© ¡ë« ¢
­¥£® ¤®¡ ¢«¥­ ¯®á«¥¤­¨¬: á⥪ à ¡®â ¥â ¯® ¯à¨­æ¨¯ã " ¯®á«¥¤­¨¬
¯à¨èñ« | ¯¥à¢ë¬ ãèñ«" (last-in, rst-out | ᮪à 饭­® LIFO).
ˆ§ ®ç¥à¥¤¨ (queue), ­ ¯à®â¨¢, ¬®¦­® 㤠«¨âì ⮫쪮 â®â í«¥¬¥­â,
ª®â®àë© ­ 室¨«áï ¢ ®ç¥à¥¤¨ ¤®«ìè¥ ¢á¥£®: à ¡®â ¥â ¯à¨­æ¨¯ "¯¥à¢ë¬ ¯à¨èñ« | ¯¥à¢ë¬ ãèñ«" (rst-in, rst-out, ᮪à 饭­® FIFO).
‘ãé¥áâ¢ã¥â ­¥áª®«ìª® ᯮᮡ®¢ íä䥪⨢­® ॠ«¨§®¢ âì á⥪¨ ¨
®ç¥à¥¤¨. ‚ í⮬ à §¤¥«¥ ¬ë à á᪠¦¥¬, ª ª ॠ«¨§®¢ âì ¨å ­ ¡ §¥
¬ áᨢ .
‘⥪¨
Ž¯¥à æ¨ï ¤®¡ ¢«¥­¨ï í«¥¬¥­â ¢ á⥪ ç áâ® ®¡®§­ ç ¥âáï Push,
®¯¥à æ¨ï 㤠«¥­¨ï ¢¥àå­¥£® í«¥¬¥­â ¨§ á⥪ ç áâ® ®¡®§­ ç ¥âáï Pop (push ¢ ¤ ­­®¬ ª®­â¥ªá⥠®§­ ç ¥â "§ ¯¨å¨¢ âì", pop |
"¢ë­¨¬ âì"). ‘⥪ ¬®¦­® 㯮¤®¡¨âì á⮯ª¥ â ५®ª, ¨§ ª®â®à®©
¬®¦­® ¢§ïâì ¢¥àå­îî ¨ ­ ª®â®àãî ¬®¦­® ¯®«®¦¨âì ­®¢ãî â ५ªã. [„à㣮¥ ­ §¢ ­¨¥ á⥪ ¢ àãá᪮© «¨â¥à âãॠ| "¬ £ §¨­"
| ¯®­ïâ­® ¢á类¬ã, ªâ® à §¡¨à « ¢â®¬ ⠊ « è­¨ª®¢ .]
 à¨á. 11.1 ¯®ª § ­®, ª ª ¬®¦­® ॠ«¨§®¢ âì á⥪ ñ¬ª®áâìî ­¥
¡®«¥¥ n í«¥¬¥­â®¢ ­ ¡ §¥ ¬ áᨢ S [1 : :n].  àï¤ã á ¬ áᨢ®¬ ¬ë
åà ­¨¬ ç¨á«® top[S ], ïî饥áï ¨­¤¥ªá®¬ ¯®á«¥¤­¥£® ¤®¡ ¢«¥­­®£®
¢ á⥪ í«¥¬¥­â . ‘⥪ á®á⮨⠨§ í«¥¬¥­â®¢ S [1 : : top[S ]], £¤¥ S [1] |
198
ƒ« ¢ 11 «¥¬¥­â à­ë¥ áâàãªâãàë ¤ ­­ëå
¨áã­®ª 11.1 ¥ «¨§ æ¨ï á⥪ ­ ¡ §¥ ¬ áᨢ S . ‘¢¥â«®-á¥àë¥ ª«¥âª¨ § ­ïâë
í«¥¬¥­â ¬¨ á⥪ . ( ) ‘⥪ S ᮤ¥à¦¨â 4 í«¥¬¥­â , ¢¥àå­¨© í«¥¬¥­â | ç¨á«® 9.
(¡) ’®â ¦¥ á⥪ ¯®á«¥ ¢ë¯®«­¥­¨ï ®¯¥à 権 Push(S; 17) ¨ Push(S; 3). (¢) ‘⥪
¯®á«¥ ⮣®, ª ª ®¯¥à æ¨ï Pop(S ) ¢¥à­ã« §­ 祭¨¥ 3 (¯®á«¥¤­¨© ¤®¡ ¢«¥­­ë©
¢ á⥪ í«¥¬¥­â). •®âï ç¨á«® 3 ¯®-¯à¥¦­¥¬ã ¯à¨áãâáâ¢ã¥â ¢ ¬ áᨢ¥ S , ¢ á⥪¥
¥£® 㦥 ­¥â; ­ ¢¥à設¥ á⥪ | ç¨á«® 17.
­¨¦­¨© í«¥¬¥­â á⥪ ("¤­®") S [top[S ]] | ¢¥àå­¨© í«¥¬¥­â, ¨«¨
¢¥à設 á⥪ .
…᫨ top[S ] = 0, â® á⥪ ¯ãáâ (is empty). …᫨ top[S ] = n, â®
¯à¨ ¯®¯ë⪥ ¤®¡ ¢¨âì í«¥¬¥­â ¯à®¨á室¨â ¯¥à¥¯®«­¥­¨¥ (overow),
¯®áª®«ìªã à §¬¥à á⥪ ¢ ­ 襩 ॠ«¨§ 樨 ®£à ­¨ç¥­ ç¨á«®¬ n.
‘¨¬¬¥âà¨ç­ ï á¨âã æ¨ï | ¯®¯ë⪠㤠«¨âì í«¥¬¥­â ¨§ ¯ãá⮣®
á⥪ | ¯®-àãá᪨ ­¨ª ª ­¥ ­ §ë¢ ¥âáï ("­¥¤®-¯®«­¥­¨¥"?), ¯® ­£«¨©áª¨ ­ §ë¢ ¥âáï underow. ‚ í⮩ £« ¢¥ ¤«ï ¯à®áâ®âë ¬ë ­¥
¡ã¤¥¬ ®¡à é âì ¢­¨¬ ­¨¥ ­ ¢®§¬®¦­®áâì ¯¥à¥¯®«­¥­¨ï á⥪ .
Ž¯¥à 樨 á® á⥪®¬ (¯à®¢¥àª ¯ãáâ®âë, ¤®¡ ¢«¥­¨¥ í«¥¬¥­â ,
㤠«¥­¨¥ í«¥¬¥­â ) § ¯¨áë¢ îâáï â ª:
Stack-Empty(S )
1 if top[S ] = 0
2
3
then return true
else return false
Push(S; x)
1 top[S ] top[S ] + 1
2 S [top[S ]] x
Pop(S )
1 if Stack-Empty(S )
2
3
4
then error \underow"
else top[S ] top[S ] ; 1
return S [top[S ] + 1]
‚믮«­¥­¨¥ ®¯¥à 権 Push ¨ Pop ¯®ª § ­® ­ à¨á. 11.1. Š ¦¤ ï
¨§ âàñå ®¯¥à 権 á® á⥪®¬ ¢ë¯®«­ï¥âáï § ¢à¥¬ï O(1).
‘⥪¨ ¨ ®ç¥à¥¤¨
199
Žç¥à¥¤¨
Ž¯¥à æ¨î ¤®¡ ¢«¥­¨ï í«¥¬¥­â ª ®ç¥à¥¤¨ ¬ë ¡ã¤¥¬ ®¡®§­ ç âì
Enqueue, ®¯¥à æ¨î 㤠«¥­¨ï í«¥¬¥­â ¨§ ®ç¥à¥¤¨ ¡ã¤¥¬ ®¡®§­ ç âì Dequeue. (Š ª ¨ ¤«ï á⥪®¢, 㤠«ï¥¬ë© ¨§ ®ç¥à¥¤¨ í«¥¬¥­â
®¯à¥¤¥«¥­ ®¤­®§­ ç­® ¨ ¯®í⮬ã ï¥âáï ­¥ ¯¥à¥¤ ñâáï ¯à®æ¥¤ãà¥
¯à®æ¥¤ãॠDequeue, ¢®§¢à é ¥âáï í⮩ ¯à®æ¥¤ãன.) à ¢¨«®
§¤¥áì â ª®¥ ¦¥, ª ª ¢ ¦¨¢®© ®ç¥à¥¤¨: ¯¥à¢ë¬ ¯à¨èñ« | ¯¥à¢ë¬ ®¡á«ã¦¥­. (ˆ ¥á«¨ ­ è¨ ¯à®£à ¬¬ë ¯à ¢¨«ì­ë, ¬®¦­® ­¥ ®¯ á âìáï,
çâ® ªâ®-â® ¯à®©¤ñâ ¡¥§ ®ç¥à¥¤¨.)
„à㣨¬¨ á«®¢ ¬¨, ã ®ç¥à¥¤¨ ¥áâì £®«®¢ (head) ¨ 墮áâ (tail). «¥¬¥­â, ¤®¡ ¢«ï¥¬ë© ¢ ®ç¥à¥¤ì, ®ª §ë¢ ¥âáï ¢ ¥ñ 墮áâ¥, ª ª ⮫쪮
çâ® ¯®¤®è¥¤è¨© ¯®ªã¯ ⥫ì; í«¥¬¥­â, 㤠«ï¥¬ë© ¨§ ®ç¥à¥¤¨, ­ 室¨âáï ¢ ¥ñ £®«®¢¥, ª ª â®â ¯®ªã¯ ⥫ì, çâ® ®âáâ®ï« ¤®«ìè¥ ¢á¥å.
 à¨á. 11.2 ¯®ª § ­®, ª ª ¬®¦­® ॠ«¨§®¢ âì ®ç¥à¥¤ì, ¢¬¥é îéãî ­¥ ¡®«¥¥ 祬 n ; 1 í«¥¬¥­â, ­ ¡ §¥ ¬ áᨢ Q[1 : :n]. Œë
åà ­¨¬ ç¨á« head[Q] | ¨­¤¥ªá £®«®¢ë ®ç¥à¥¤¨, ¨ tail[Q] | ¨­¤¥ªá ᢮¡®¤­®© ï祩ª¨, ¢ ª®â®àãî ¡ã¤¥â ¯®¬¥éñ­ á«¥¤ãî騩 ¤®¡ ¢«ï¥¬ë© ª ®ç¥à¥¤¨ í«¥¬¥­â. Žç¥à¥¤ì á®á⮨⠨§ í«¥¬¥­â®¢ ¬ áᨢ , áâ®ïé¨å ­ ¬¥áâ å á ­®¬¥à ¬¨ head[Q], head[Q] + 1, : : : ,
tail[Q] ; 1 (¯®¤à §ã¬¥¢ ¥âáï, çâ® ¬ áᨢ á¢ñà­ãâ ¢ ª®«ìæ®: § n á«¥¤ã¥â 1). …᫨ head[Q] = tail[Q], â® ®ç¥à¥¤ì ¯ãáâ . ¥à¢®­ ç «ì­®
¨¬¥¥¬ head[Q] = tail[Q] = 1. …᫨ ®ç¥à¥¤ì ¯ãáâ , ¯®¯ë⪠㤠«¨âì
í«¥¬¥­â ¨§ ­¥ñ ¢¥¤ñâ ª ®è¨¡ª¥ (underow); ¥á«¨ head[Q] = tail[Q]+1,
â® ®ç¥à¥¤ì ¯®«­®áâìî § ¯®«­¥­ , ¨ ¯®¯ë⪠¤®¡ ¢¨âì ª ­¥© í«¥¬¥­â
¢ë§®¢¥â ¯¥à¥¯®«­¥­¨¥ (overow).
‚ ­ è¨å ॠ«¨§ æ¨ïå ¯à®æ¥¤ãà Enqueue ¨ Dequeue ¬ë ¨£­®à¨à㥬 ¢®§¬®¦­®áâì ¯¥à¥¯®«­¥­¨ï ¨«¨ ¯®¯ë⪨ ¨§êïâ¨ï í«¥¬¥­â ¨§ ¯ãá⮩ ®ç¥à¥¤¨ (¢ ã¯à ¦­¥­¨¨ 11.1-4 ¬ë ¯®¯à®á¨¬ ¢ á ¢­¥á⨠¢
ª®¤ ᮮ⢥âáâ¢ãî騥 ¯à®¢¥àª¨).
Enqueue(Q; x)
1 Q[tail[Q]] x
2 if tail[Q] = length[Q]
3 then tail[Q] 1
4 else tail[Q] tail[Q] + 1
Dequeue(Q)
1 x Q[head[Q]]
2 if head[Q] = length[Q]
3 then head[Q] 1
4 else head[Q] head[Q] + 1
5 return x
 ¡®â ¯à®æ¥¤ãà Enqueue ¨ Dequeue ¯®ª § ­ ­ à¨á. 11.2. Š ¦¤ ï ¨§ íâ¨å ¯à®æ¥¤ãà à ¡®â ¥â § ¢à¥¬ï O(1).
200
ƒ« ¢ 11 «¥¬¥­â à­ë¥ áâàãªâãàë ¤ ­­ëå
¨áã­®ª 11.2 Žç¥à¥¤ì, ॠ«¨§®¢ ­­ ï ­ ¡ §¥ ¬ áᨢ Q[1 : : n]. ‘¢¥â«®-á¥àë¥
ª«¥âª¨ § ­ïâë í«¥¬¥­â ¬¨ ®ç¥à¥¤¨. ( ) ‚ ®ç¥à¥¤¨ ­ 室ïâáï 5 í«¥¬¥­â®¢
(¯®§¨æ¨¨ Q[7 : : 11]). (¡) Žç¥à¥¤ì ¯®á«¥ ¢ë¯®«­¥­¨ï ¯à®æ¥¤ãà Enqueue(Q; 17),
Enqueue(Q; 3) ¨ Enqueue(Q; 5). (¢) Žç¥à¥¤ì ¯®á«¥ ¢ë¯®«­¥­¨ï ¯à®æ¥¤ãàë
Dequeue(Q) (ª®â®à ï ¢®§¢à é ¥â §­ 祭¨¥ 15). ®¢®© £®«®¢®© ®ç¥à¥¤¨ áâ «®
ç¨á«® 6.
“¯à ¦­¥­¨ï
11.1-1
‘«¥¤ãï ®¡à §æã à¨á. 11.1, ¯®ª ¦¨â¥ à ¡®âã ®¯¥à 権
Push(S; 4), Push(S; 1), Push(S; 3), Pop(S ), Push(S; 8) ¨ Pop(S ) ­ á⥪¥, ॠ«¨§®¢ ­­®¬ á ¯®¬®éìî ¬ áᨢ S [1 : : 6]. ¥à¢®­ ç «ì­®
á⥪ ¯ãáâ.
11.1-2 Š ª ­ ¡ §¥ ®¤­®£® ¬ áᨢ A[1 : :n] ॠ«¨§®¢ âì ¤¢ á⥪ á㬬 à­®© ¤«¨­ë ­¥ ¡®«ìè¥ n? Ž¯¥à 樨 Push ¨ Pop ¤®«¦­ë
¢ë¯®«­ïâìáï § ¢à¥¬ï O(1).
11.1-3 ‘«¥¤ãï ®¡à §æã à¨á. 11.2, ¯®ª ¦¨â¥ à ¡®âã ®¯¥à 権
Enqueue(Q; 4), Enqueue(Q; 1), Enqueue(Q; 3), Dequeue(Q),
Enqueue(Q; 8) ¨ Dequeue(Q) ­ ®ç¥à¥¤¨, ॠ«¨§®¢ ­­®© á ¯®¬®éìî ¬ áᨢ Q[1 : : 5]. ¥à¢®­ ç «ì­® ®ç¥à¥¤ì ¯ãáâ .
11.1-4 ¥à¥¯¨è¨â¥ ¯à®æ¥¤ãàë Enqueue ¨ Dequeue, ¯à¥¤ãᬮâॢ ¯à®¢¥àª¨ ­ á«ãç © ¯¥à¥¯®«­¥­¨ï ¨«¨ underow.
11.1-5 ‘⥪ ¯®§¢®«ï¥â ¤®¡ ¢«ïâì ¨ 㤠«ïâì í«¥¬¥­âë ⮫쪮 á
®¤­®£® ª®­æ . ‚ ®ç¥à¥¤ì ¤®¡ ¢«ïâì í«¥¬¥­âë ¬®¦­® ⮫쪮 á ®¤­®£® ª®­æ , 㤠«ïâì | ⮫쪮 á ¤à㣮£®. ‘âàãªâãà ¤ ­­ëå, ­ §ë¢ ¥¬ ï ¤¥ª®¬ (deque, ®â double-ended queue | "®ç¥à¥¤ì á ¤¢ã¬ï
ª®­æ ¬¨"), ¯®§¢®«ï¥â ¤®¡ ¢«ïâì ¨ 㤠«ïâì í«¥¬¥­âë á ®¡®¨å ª®­æ®¢. ¥ «¨§ã©â¥ ¤¥ª ­ ¡ §¥ ¬ áᨢ â ª¨¬ ®¡à §®¬, çâ®¡ë ®¯¥à -
‘¢ï§ ­­ë¥ ᯨ᪨
201
樨 ¤®¡ ¢«¥­¨ï ¨ 㤠«¥­¨ï í«¥¬¥­â á ª ¦¤®£® ¨§ ª®­æ®¢ § ­¨¬ «¨
¢à¥¬ï O(1).
11.1-6 Ž¡êïá­¨â¥, ª ª ¬®¦­® ॠ«¨§®¢ âì ®ç¥à¥¤ì ­ ¡ §¥ ¤¢ãå
á⥪®¢. Š ª®¢® ¢à¥¬ï à ¡®âë ®¯¥à 権 Enqueue ¨ Dequeue ¯à¨
â ª®© ॠ«¨§ 樨?
11.1-7 Ž¡êïá­¨â¥, ª ª ॠ«¨§®¢ âì á⥪ ­ ¡ §¥ ¤¢ãå ®ç¥à¥¤¥©.
Š ª®¢® ¢à¥¬ï à ¡®âë á⥪®¢ëå ®¯¥à 権?
11.2 ‘¢ï§ ­­ë¥ ᯨ᪨
‚ á¢ï§ ­­®¬ ᯨ᪥ (¨«¨ ¯à®á⮠ᯨ᪥; ¯®- ­£«¨©áª¨ linked list)
í«¥¬¥­âë «¨­¥©­® 㯮à冷祭ë, ­® ¯®à冷ª ®¯à¥¤¥«ï¥âáï ­¥ ­®¬¥à ¬¨, ª ª ¢ ¬ áᨢ¥, 㪠§ ⥫ﬨ, ¢å®¤ï騬¨ ¢ á®áâ ¢ í«¥¬¥­â®¢
ᯨ᪠. ‘¯¨áª¨ ïîâáï 㤮¡­ë¬ ᯮᮡ®¬ ॠ«¨§ 樨 ¤¨­ ¬¨ç¥áª¨å ¬­®¦¥áâ¢, ¯®§¢®«ïî騬 ॠ«¨§®¢ âì ¢á¥ ®¯¥à 樨, ¯¥à¥ç¨á«¥­­ë¥ ¢® ¢¢¥¤¥­¨¨ ª í⮩ ç á⨠(å®âï ¨ ­¥ ¢á¥£¤ íä䥪⨢­®).
…᫨ ª ¦¤ë© áâ®ï騩 ¢ ®ç¥à¥¤¨ § ¯®¬­¨â, ªâ® § ­¨¬ á⮨â,
¯®á«¥ 祣® ¢á¥ ¢ ¡¥á¯®à浪¥ à ááï¤ãâáï ­ « ¢®çª¥, ¯®«ãç¨âáï ®¤­®áâ®à®­­¥ á¢ï§ ­­ë© ᯨ᮪; ¥á«¨ ®­ § ¯®¬­¨â ¥éñ ¨ ¢¯¥à¥¤¨ áâ®ï饣®, ¡ã¤¥â ¤¢ãáâ®à®­­¥ á¢ï§ ­­ë© ᯨ᮪.
„à㣨¬¨ á«®¢ ¬¨, ª ª ¯®ª § ­® ­ à¨á. 11.3, í«¥¬¥­â ¤¢ãáâ®à®­­¥
á¢ï§ ­­®£® ᯨ᪠(doubly linked list) | íâ® § ¯¨áì, ᮤ¥à¦ é ï âà¨
¯®«ï: key (ª«îç) ¨ ¤¢ 㪠§ ⥫ï next (á«¥¤ãî騩) ¨ prev (®â
previous | ¯à¥¤ë¤ã騩). ®¬¨¬® í⮣®, í«¥¬¥­âë ᯨ᪠¬®£ãâ
ᮤ¥à¦ âì ¤®¯®«­¨â¥«ì­ë¥ ¤ ­­ë¥. …᫨ x | í«¥¬¥­â ᯨ᪠, â®
next[x] 㪠§ë¢ ¥â ­ á«¥¤ãî騩 í«¥¬¥­â ᯨ᪠, prev[x] | ­ ¯à¥¤è¥áâ¢ãî騩. …᫨ prev[x] = nil, â® ã í«¥¬¥­â x ­¥â ¯à¥¤è¥áâ¢ãî饣®: íâ® £®«®¢ (head) ᯨ᪠. …᫨ next[x] = nil, â® x |
¯®á«¥¤­¨© í«¥¬¥­â ᯨ᪠¨«¨, ª ª £®¢®àïâ, ¥£® 墮áâ (tail).
à¥¦¤¥ 祬 ¤¢¨£ âìáï ¯® 㪠§ ⥫ï¬, ­ ¤® §­ âì å®âï ¡ë ®¤¨­
í«¥¬¥­â ᯨ᪠; ¬ë ¯à¥¤¯®« £ ¥¬, çâ® ¤«ï ᯨ᪠L ¨§¢¥á⥭ 㪠§ ⥫ì head[L] ­ ¥£® £®«®¢ã. …᫨ head[L] = nil, ⮠ᯨ᮪ ¯ãáâ.
‚ à §«¨ç­ëå á¨âã æ¨ïå ¨á¯®«ì§ãîâáï à §­ë¥ ¢¨¤ë ᯨ᪮¢. ‚
®¤­®áâ®à®­­¥ á¢ï§ ­­®¬ (singly linked) ᯨ᪥ ®âáãâáâ¢ãîâ ¯®«ï prev.
‚ 㯮à冷祭­®¬ (sorted) ᯨ᪥ í«¥¬¥­âë à ᯮ«®¦¥­ë ¢ ¯®à浪¥
¢®§à áâ ­¨ï ª«î祩, â ª çâ® ã £®«®¢ë ᯨ᪠ª«îç ­ ¨¬¥­ì訩,
ã 墮áâ ᯨ᪠| ­ ¨¡®«ì訩, ¢ ®â«¨ç¨¥ ®â ­¥ã¯®à冷祭­®£®
(unsorted) ᯨ᪠. ‚ ª®«ì楢®¬ ᯨ᪥ (circular list) ¯®«¥ prev £®«®¢ë
ᯨ᪠㪠§ë¢ ¥â ­ 墮áâ ᯨ᪠, ¯®«¥ next 墮áâ ᯨ᪠㪠§ë¢ ¥â ­ £®«®¢ã ᯨ᪠.
…᫨ ¨­®¥ ­¥ ®£®¢®à¥­® ®á®¡®, ¯®¤ ᯨ᪮¬ ¬ë ¡ã¤¥¬ ¯®­¨¬ âì
­¥ã¯®à冷祭­ë© ¤¢ãáâ®à®­­¥ á¢ï§ ­­ë© ᯨ᮪.
202
ƒ« ¢ 11 «¥¬¥­â à­ë¥ áâàãªâãàë ¤ ­­ëå
¨áã­®ª 11.3 ( ) „¢ãáâ®à®­­¥ á¢ï§ ­­ë© ᯨ᮪ L ᮤ¥à¦¨â ç¨á« 1; 4; 9; 16.
Š ¦¤ë© í«¥¬¥­â ᯨ᪠| íâ® § ¯¨áì á ¯®«ï¬¨ ¤«ï ª«îç ¨ 㪠§ ⥫¥© ­ ¯à¥¤ë¤ã騩 ¨ ¯®á«¥¤ãî騩 í«¥¬¥­âë (í⨠㪠§ ⥫¨ ¨§®¡à ¦¥­ë áâ५ª ¬¨). ‚
¯®«¥ next ã 墮áâ ᯨ᪠¨ ¢ ¯®«¥ prev ã £®«®¢ë ᯨ᪠­ 室¨âáï 㪠§ ⥫ì nil
(ª®á ï ç¥àâ ­ à¨áã­ª¥); head[L] 㪠§ë¢ ¥â ­ £®«®¢ã ᯨ᪠. (¡) ‚ १ã«ìâ â¥
¢ë¯®«­¥­¨ï ®¯¥à 樨 List-Insert(L; x), £¤¥ key[x] = 25, ¢ ᯨ᪥ ¯®ï¢¨«áï ­®¢ë© í«¥¬¥­â á ª«î箬 25; ®­ áâ « ­®¢®© £®«®¢®© ᯨ᪠, ¥£® ¯®«¥ next 㪠§ë¢ ¥â ­ ¡ë¢èãî £®«®¢ã | í«¥¬¥­â á ª«î箬 9. (¢) ‚á«¥¤ § í⨬ ¡ë« ¢ë¯®«­¥­ ®¯¥à æ¨ï List-Delete(L; x), £¤¥ x | 㪠§ â¥«ì ­ í«¥¬¥­â á ª«î箬
4.
®¨áª ¢ ᯨ᪥
à®æ¥¤ãà List-Search(L; k) ­ 室¨â ¢ ᯨ᪥ L (á ¯®¬®éìî
¯à®á⮣® «¨­¥©­®£® ¯®¨áª ) ¯¥à¢ë© í«¥¬¥­â, ¨¬¥î騩 ª«îç k.
’®ç­¥¥ £®¢®àï, ®­ ¢®§¢à é ¥â 㪠§ â¥«ì ­ íâ®â í«¥¬¥­â, ¨«¨ nil,
¥á«¨ í«¥¬¥­â á â ª¨¬ ª«î箬 ¢ ᯨ᪥ ­¥â. …᫨, ­ ¯à¨¬¥à, L |
ᯨ᮪ à¨á. 11.3 , â® ¢ë§®¢ List-Search(L; 4) ¢¥à­ñâ 㪠§ â¥«ì ­ âà¥â¨© í«¥¬¥­â ᯨ᪠, ¢ë§®¢ List-Search(L; 7) ¢¥à­ñâ nil.
List-Search(L; k)
1 x head[L]
2 while x =
6 nil and key[x] =6 k
3
do x next[x]
4 return x
®¨áª ¢ ᯨ᪥ ¨§ n í«¥¬¥­â®¢ âॡã¥â ¢ åã¤è¥¬ á«ãç ¥ (ª®£¤ ¯à¨å®¤¨âáï ¯à®á¬ âਢ âì ¢¥áì ᯨ᮪) (n) ®¯¥à 権.
„®¡ ¢«¥­¨¥ í«¥¬¥­â ¢ ᯨ᮪
à®æ¥¤ãà List-Insert ¤®¡ ¢«ï¥â í«¥¬¥­â x ª ᯨáªã L, ¯®¬¥é ï
¥£® ¢ £®«®¢ã ᯨ᪠(à¨á. 11.3¡).
‘¢ï§ ­­ë¥ ᯨ᪨
203
List-Insert(L; x)
1
2
3
4
5
next[x] head[L]
if head[L] 6= nil
then prev[head[L]]
head[L] x
prev[x] nil
x
à®æ¥¤ãà List-Insert ¢ë¯®«­ï¥âáï § ¢à¥¬ï O(1) (­¥ § ¢¨áï饥
®â ¤«¨­ë ᯨ᪠).
“¤ «¥­¨¥ í«¥¬¥­â ¨§ ᯨ᪠à®æ¥¤ãà List-Delete 㤠«ï¥â í«¥¬¥­â x ¨§ ᯨ᪠L, ­ ¯à ¢«ïï 㪠§ ⥫¨ "¢ ®¡å®¤" í⮣® í«¥¬¥­â . à¨ í⮬ ¢ ª ç¥á⢥ à£ã¬¥­â ¥© ¯¥à¥¤ ñâáï 㪠§ â¥«ì ­ x. …᫨ § ¤ ­ ª«îç í«¥¬¥­â x,
â® ¯¥à¥¤ 㤠«¥­¨¥¬ ­ ¤® ­ ©â¨ ¥£® 㪠§ ⥫ì á ¯®¬®éìî ¯à®æ¥¤ãàë List-Search.
List-Delete(L; x)
1 if prev[x] =
6 nil
2 then next[prev[x]] next[x]
3 else head[L] next[x]
4 if next[x] =
6 nil
5 then prev[next[x]] prev[x]
“¤ «¥­¨¥ í«¥¬¥­â ¨§ ᯨ᪠¯à®¨««îáâà¨à®¢ ­® ­ à¨á. 11.3¢.
à®æ¥¤ãà List-Delete à ¡®â ¥â § ¢à¥¬ï O(1); ®¤­ ª® ¤«ï 㤠«¥­¨ï í«¥¬¥­â á § ¤ ­­ë¬ ª«î箬 ¥£® ­ ¤® á­ ç « ­ ©â¨, çâ®
¯®âॡã¥â ¢à¥¬¥­¨ (n).
”¨ªâ¨¢­ë¥ í«¥¬¥­âë
…᫨ § ¡ëâì ®¡ ®á®¡ëå á¨âã æ¨ïå ­ ª®­æ å ᯨ᪠, ¯à®æ¥¤ãàã List-Delete ¬®¦­® § ¯¨á âì ᮢᥬ ¯à®áâ®:
List-Delete0 (L; x)
1 next[prev[x]] next[x]
2 prev[next[x]] prev[x]
’ ª¨¥ ã¯à®é¥­¨ï áâ ­ãâ § ª®­­ë¬¨, ¥á«¨ ¤®¡ ¢¨âì ª ᯨáªã L 䨪⨢­ë© í«¥¬¥­â nil[L], ª®â®àë© ¡ã¤¥â ¨¬¥âì ¯®«ï next ¨ prev ­ à ¢­¥ á ¯à®ç¨¬¨ í«¥¬¥­â ¬¨ ᯨ᪠. â®â í«¥¬¥­â (­ §ë¢ ¥¬ë©
sentinel | ç ᮢ®©) ­¥ ¯®§¢®«¨â ­ ¬ ¢ë©â¨ § ¯à¥¤¥«ë ᯨ᪠. “ª § â¥«ì ­ ­¥£® ¨£à ¥â à®«ì §­ 祭¨ï nil. ‡ ¬ª­ñ¬ ᯨ᮪ ¢ ª®«ìæ®:
¢ ¯®«ï next[nil[L]] ¨ prev[nil[L]] § ¯¨è¥¬ 㪠§ ⥫¨ ­ £®«®¢ã ¨ 墮áâ
ᯨ᪠ᮮ⢥âá⢥­­®, ¢ ¯®«ï prev ã £®«®¢ë ᯨ᪠¨ next ã
204
ƒ« ¢ 11 «¥¬¥­â à­ë¥ áâàãªâãàë ¤ ­­ëå
¨áã­®ª 11.4 ‘¯¨á®ª L, ¨á¯®«ì§ãî騩 䨪⨢­ë© í«¥¬¥­â nil[L] (âñ¬­®-á¥àë©
¯àאַ㣮«ì­¨ª). ‚¬¥áâ® head[L] ¨á¯®«ì§ã¥¬ next[nil[L]]. ( ) ãá⮩ ᯨ᮪.
(¡) ‘¯¨á®ª à¨á. 11.3 (í«¥¬¥­â á ª«î箬 9 | £®«®¢ , 1 | 墮áâ). (¢) ’®â ¦¥
ᯨ᮪ ¯®á«¥ ¯à®æ¥¤ãàë List-Insert0 (L; x), ¥á«¨ key[x] = 25. (£) ®á«¥ 㤠«¥­¨ï
í«¥¬¥­â á ª«î箬 1. ®¢ë© 墮áâ ¨¬¥¥â ª«îç 4.
墮áâ ᯨ᪠§ ­¥áñ¬ 㪠§ ⥫¨ ­ nil[L] (à¨á. 11.4). à¨ í⮬
next[nil[L]] | 㪠§ â¥«ì ­ £®«®¢ã ᯨ᪠, â ª çâ® âਡãâ head[L]
áâ ­®¢¨âáï «¨è­¨¬. ãá⮩ ᯨ᮪ L ⥯¥àì ¡ã¤¥â ª®«ì殬, ¢ ª®â®à®¬ nil[L] | ¥¤¨­á⢥­­ë© í«¥¬¥­â.
‚ ¯à®æ¥¤ãॠList-Search ­ã¦­® «¨èì § ¬¥­¨âì nil ­ nil[L] ¨
head[L] ­ next[nil[L]]:
List-Search0 (L; k)
1 x next[nil[L]]
2 while x =
6 nil[L] and key[x] =6 k
3
do x next[x]
4 return x
„«ï 㤠«¥­¨ï í«¥¬¥­â £®¤¨âáï ¯à®æ¥¤ãà List-Delete0, ¯à¨¢¥¤ñ­­ ï ¢ëè¥.  ª®­¥æ, ¤®¡ ¢«ïâì í«¥¬¥­â ª ᯨáªã ¬®¦­® â ª:
List-Insert0 (L; x)
1 next[x] next[nil[L]]
2 prev[next[nil[L]]] x
3 next[nil[L]] x
4 prev[x] nil[L]
à¨¬¥à à ¡®âë ¯à®æ¥¤ãà List-Insert0 ¨ List-Delete0 ¯®ª § ­ ­ à¨á. 11.4.
ˆá¯®«ì§®¢ ­¨¥ 䨪⨢­ëå í«¥¬¥­â®¢ ¥¤¢ «¨ ¬®¦¥â ã«ãçè¨âì
ᨬ¯â®â¨ªã ¢à¥¬¥­¨ à ¡®âë «£®à¨â¬ , ­® ã¯à®é ¥â ¯à®£à ¬¬ã.
ˆ­®£¤ (¥á«¨ ¨á¯®«ì§®¢ ­¨¥ 䨪⨢­ëå í«¥¬¥­â®¢ ¯®§¢®«ï¥â ᮪à â¨âì äà £¬¥­â ª®¤ , ­ 室ï騩áï £«ã¡®ª® ¢­ãâਠ横« ), ¬®¦­®
ã᪮à¨âì ¨á¯®«­¥­¨¥ ¯à®£à ¬¬ë ¢ ­¥áª®«ìª® à §.
¥ á«¥¤ã¥â ¯à¨¬¥­ïâì 䨪⨢­ë¥ í«¥¬¥­âë ¡¥§ ­ã¦¤ë. …᫨ «£®à¨â¬ ¨á¯®«ì§ã¥â ¬­®£® ª®à®âª¨å ᯨ᪮¢, ¨á¯®«ì§®¢ ­¨¥ 䨪⨢-
‘¢ï§ ­­ë¥ ᯨ᪨
205
­ëå í«¥¬¥­â®¢ ¬®¦¥â ®¡¥à­ãâìáï á¥à쥧­®© ¤®¯®«­¨â¥«ì­®© âà ⮩
¯ ¬ïâ¨. ‚ í⮩ ª­¨£¥ 䨪⨢­ë¥ í«¥¬¥­âë ¨á¯®«ì§ãîâáï ⮫쪮
⮣¤ , ª®£¤ íâ® áãé¥á⢥­­® ã¯à®é ¥â ¯à®£à ¬¬ã.
“¯à ¦­¥­¨ï
Œ®¦­® «¨ ¤®¡ ¢¨âì í«¥¬¥­â ¢ ¬­®¦¥á⢮, ¯à¥¤áâ ¢«¥­­®¥
®¤­®áâ®à®­­¥ á¢ï§ ­­ë¬ ᯨ᪮¬, § ¢à¥¬ï O(1)? ’®â ¦¥ ¢®¯à®á
¤«ï 㤠«¥­¨ï í«¥¬¥­â .
11.2-2 ¥ «¨§ã©â¥ á⥪ ­ ¡ §¥ ®¤­®áâ®à®­­¥ á¢ï§ ­­®£® ᯨ᪠.
Ž¯¥à 樨 Push ¨ Pop ¤®«¦­ë ¢ë¯®«­ïâìáï § ¢à¥¬ï O(1).
11.2-3 ¥ «¨§ã©â¥ ®ç¥à¥¤ì ­ ¡ §¥ ®¤­®áâ®à®­­¥ á¢ï§ ­­®£®
ᯨ᪠. Ž¯¥à 樨 Enqueue ¨ Dequeue ¤®«¦­ë ¢ë¯®«­ïâìáï § ¢à¥¬ï O(1).
11.2-4 ¥ «¨§ã©â¥ á«®¢ à­ë¥ ®¯¥à 樨 Insert, Delete ¨ Search
¤«ï á¢ñà­ã⮣® ¢ ª®«ìæ® ®¤­®áâ®à®­­¥ á¢ï§ ­­®£® ᯨ᪠. Š ª®¢®
¢à¥¬ï à ¡®âë ¢ è¨å ¯à®æ¥¤ãà?
11.2-5 Ž¯¥à æ¨ï Union (®¡ê¥¤¨­¥­¨¥) ¯®«ãç ¥â ­ ¢å®¤¥ ¤¢ ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥á⢠¨ ¢®§¢à é ¥â ¨å ®¡ê¥¤¨­¥­¨¥ (á ¬¨ ¨á室­ë¥ ¬­®¦¥á⢠¯à¨ í⮬ ¯à®¯ ¤ îâ). ¥ «¨§ã©â¥ íâã ®¯¥à æ¨î
â ª, çâ®¡ë ®­ à ¡®â « § ¢à¥¬ï O(1), ¯à¥¤áâ ¢«ïï ¬­®¦¥á⢠ᯨ᪠¬¨ ¯®¤å®¤ï饣® ⨯ .
11.2-6  ¯¨è¨â¥ ¯à®æ¥¤ãàã, ª®â®à ï ᫨¢ ¥â ¤¢ ®¤­®áâ®à®­­¥
á¢ï§ ­­ëå 㯮à冷祭­ëå ᯨ᪠¢ ®¤¨­ (â ª¦¥ 㯮à冷祭­ë©),
­¥ ¨á¯®«ì§ãï 䨪⨢­ëå í«¥¬¥­â®¢. ‡ ⥬ ᤥ« ©â¥ íâ®, ¨á¯®«ì§ãï
䨪⨢­ë© í«¥¬¥­â á ª«î箬 1 (¤®¡ ¢«ï¥¬ë© ¢ ª®­¥æ ᯨ᪮¢).
Š ª ï ¨§ ¤¢ãå ¯à®£à ¬¬ ¯à®é¥?
11.2-7  ¯¨è¨â¥ ­¥à¥ªãàᨢ­ãî ¯à®æ¥¤ãàã, ª®â®à ï § ¢à¥¬ï
(n) ¯¥à¥áâ ¢«ï¥â í«¥¬¥­âë ®¤­®áâ®à®­­¥ á¢ï§ ­­®£® ᯨ᪠¢
®¡à â­®¬ ¯®à浪¥. Ž¡êñ¬ ¤®¯®«­¨â¥«ì­®© (¯®¬¨¬® ­¥®¡å®¤¨¬®©
¤«ï åà ­¥­¨ï ¨á室­®£® ᯨ᪠) ¯ ¬ï⨠¤®«¦¥­ ¡ëâì O(1).
11.2-8? …áâì ᯮᮡ áíª®­®¬¨âì ¬¥áâ® ¯à¨ ॠ«¨§ 樨 ¤¢ãáâ®à®­­¥
á¢ï§ ­­®£® ᯨ᪠, ᦠ¢ ¤¢ 㪠§ ⥫ï next ¨ prev ¢ ®¤­® §­ 祭¨¥
np[x]. ã¤¥¬ áç¨â âì, çâ® ¢á¥ 㪠§ ⥫¨ áãâì k-¡¨â­ë¥ ç¨á« ¨
㪠§ ⥫î nil ᮮ⢥âáâ¢ã¥â ç¨á«® ­ã«ì. Ž¯à¥¤¥«¨¬ np[x] ¯® ä®à¬ã«¥ np[x] = next[x]XOR prev[x], £¤¥ XOR | ¯®¡¨â®¢®¥ á«®¦¥­¨¥ ¯®
¬®¤ã«î 2 (¨áª«îç î饥 ˆ‹ˆ). ¥ § ¡ã¤ì⥠㪠§ âì, ª ª¨¬ ®¡à §®¬ åà ­¨âáï ¨­ä®à¬ æ¨ï ® £®«®¢¥ ᯨ᪠. Š ª ॠ«¨§®¢ âì ®¯¥à 樨 Search, Insert ¨ Delete? Ž¡êïá­¨â¥, ª ª ¯¥à¥áâ ¢¨âì â ª®©
ᯨ᮪ ¢ ®¡à â­®¬ ¯®à浪¥ § ¢à¥¬ï O(1).
11.2-1
206
ƒ« ¢ 11 «¥¬¥­â à­ë¥ áâàãªâãàë ¤ ­­ëå
¨áã­®ª 11.5 ‘¯¨á®ª à¨á. 11.3 , ¯à¥¤áâ ¢«¥­­ë© á ¯®¬®éìî âனª¨ ¬ áᨢ®¢
(key; next; prev). Š ¦¤®¬ã í«¥¬¥­âã ᯨ᪠ᮮ⢥âáâ¢ã¥â ᢥ⫮-á¥àë© á⮫¡¨ª.
‚ ¢¥àå­¥© áâà®çª¥ ¢ë¯¨á ­ë ¯®à浪®¢ë¥ ­®¬¥à , ¨£à î騥 ஫ì 㪠§ ⥫¥©;
¤¥©á⢨¥ 㪠§ ⥫¥© ¯®ª § ­® áâ५ª ¬¨. ‡­ 祭¨¥ ¯¥à¥¬¥­­®© L | 㪠§ ⥫ì
­ £®«®¢ã ᯨ᪠.
11.3 ¥ «¨§ æ¨ï 㪠§ ⥫¥© ¨ § ¯¨á¥© á ­¥áª®«ìª¨¬¨ ¯®«ï¬¨
‚ ï§ëª å ¢à®¤¥ ä®àâà ­ ­¥ ¯à¥¤ãᬮâ७® ­¨ 㪠§ ⥫¥©, ­¨
í«¥¬¥­â®¢, ¨¬¥îé¨å ­¥áª®«ìª® ¯®«¥©. ‚ â ª®¬ á«ãç ¥ ¯à¨å®¤¨âáï
®¡å®¤¨âìáï ¬ áᨢ ¬¨, ¨á¯®«ì§ãï ¨­¤¥ªá ¢ ¬ áᨢ¥ ª ª 㪠§ ⥫ì
¨ § ¬¥­ïï ¬ áᨢ § ¯¨á¥© ­¥áª®«ìª¨¬¨ ¬ áᨢ ¬¨.
à¥¤áâ ¢«¥­¨¥ á ¯®¬®éìî ­¥áª®«ìª¨å ¬ áᨢ®¢
Œ áᨢ, á®áâ ¢«¥­­ë© ¨§ § ¯¨á¥©, ¬®¦­® § ¬¥­¨âì ­¥áª®«ìª¨¬¨
¬ áᨢ ¬¨ (¯® ®¤­®¬ã ­ ª ¦¤®¥ ¯®«¥ § ¯¨á¨).  ¯à¨¬¥à, ­ à¨á. 11.5 ¯®ª § ­®, ª ª ¯à¥¤áâ ¢¨âì ¢ ¢¨¤¥ âàñå ¬ áᨢ®¢ â®â ¦¥
ᯨ᮪, çâ® ¨ ­ à¨á. 11.3 : ¢ ¬ áᨢ¥ key åà ­ïâáï ª«îç¨, ¢ ¬ áᨢ å next ¨ prev | 㪠§ ⥫¨. Š ¦¤®¬ã í«¥¬¥­âã ᯨ᪠ᮮ⢥âáâ¢ã¥â âனª (key[x]; next[x]; prev[x]) ¤«ï ­¥ª®â®à®£® ¨­¤¥ªá x.
®«ì 㪠§ â¥«ï ­ íâ®â í«¥¬¥­â ¨£à ¥â ç¨á«® x. ‚ ª ç¥á⢥ nil
¬®¦­® ¨á¯®«ì§®¢ âì ç¨á«®, ­¥ ïî饥áï ¨­¤¥ªá®¬ ­¨ª ª®£® í«¥¬¥­â ¬ áᨢ®¢ (­ ¯à¨¬¥à, 0 ¨«¨ ;1).  à¨á. 11.3 § ¯¨áì á ª«î箬 4 á⮨⠢ ᯨ᪥ áà §ã ¯®á«¥ § ¯¨á¨ á ª«î箬 16; ¨ ¤¥©á⢨⥫쭮, ç¨á«® 16 á⮨⠢ ¬ áᨢ¥ key ­ ¬¥áâ¥ á ­®¬¥à®¬ 5, ç¨á«® 4 | ­ ¬¥á⥠­®¬¥à 2, ¨ ¨¬¥¥¬ next[5] = 2, â ª¦¥ prev[2] = 5.
‚ ­ è¨å ¯à®£à ¬¬ å ®¡®§­ 祭¨¥ ⨯ key[x] ¬®¦¥â ¯®­¨¬ âìáï
¤¢®ïª®: ¨ ª ª í«¥¬¥­â ¬ áᨢ key á ¨­¤¥ªá®¬ x, ¨ ª ª ¯®«¥ key
§ ¯¨á¨ á ¤à¥á®¬ x (¢ § ¢¨á¨¬®á⨠®â ¢®§¬®¦­®á⥩ ï§ëª ¯à®£à ¬¬¨à®¢ ­¨ï ¯®«¥§­® â® ¨«¨ ¤à㣮¥ ¯®­¨¬ ­¨¥).
à¥¤áâ ¢«¥­¨¥ á ¯®¬®éìî ®¤­®£® ¬ áᨢ ‚¬¥áâ® ­¥áª®«ìª¨å ¬ áᨢ®¢ ¬®¦­® ¨á¯®«ì§®¢ âì ®¤¨­, à §¬¥é ï
¢ ­ñ¬ à §«¨ç­ë¥ ¯®«ï ®¤­®£® ®¡ê¥ªâ à冷¬. ’ ª ®¡ëç­® ¯®áâ㯠¥â
ª®¬¯¨«ïâ®à: ¥á«¨ ¢ ¯à®£à ¬¬¥ ¨á¯®«ì§ã¥âáï ¬ áᨢ í«¥¬¥­â®¢, ª -
¥ «¨§ æ¨ï 㪠§ ⥫¥© ¨ § ¯¨á¥© á ­¥áª®«ìª¨¬¨ ¯®«ï¬¨
207
¨áã­®ª 11.6 ’®â ¦¥ ᯨ᮪, çâ® ­ à¨á. 11.3 ¨ 11.5, ॠ«¨§®¢ ­­ë© ­ ¡ §¥
¥¤¨­á⢥­­®£® ¬ áᨢ A. Š ¦¤®© § ¯¨á¨ ᮮ⢥âáâ¢ã¥â âனª ¨¤ãé¨å ¯®¤àï¤
í«¥¬¥­â®¢ ¬ áᨢ . ®«ï¬ key, next ¨ prev ᮮ⢥âáâ¢ãîâ ᤢ¨£¨ 0, 1 ¨ 2. “ª § â¥«ì ­ § ¯¨áì | ¨­¤¥ªá ¯¥à¢®£® ¨§ ®â¢¥¤ñ­­ëå ¤«ï ­¥ñ í«¥¬¥­â®¢. ‘¢¥â«®á¥àë¥ § ¯¨á¨ ¢å®¤ïâ ¢ ᯨ᮪; áâ५ª ¬¨ ¨§®¡à ¦¥­® ¤¥©á⢨¥ 㪠§ ⥫¥©.
¦¤ë© ¨§ ª®â®àëå ¨¬¥¥â ­¥áª®«ìª® ¯®«¥©, â® ­ ª ¦¤ë© í«¥¬¥­â
®â¢®¤¨âáï ­¥¯à¥àë¢­ë© ãç á⮪ ¯ ¬ïâ¨, ¢ ª®â®à®¬ ¤à㣠§ ¤à㣮¬
à §¬¥é îâáï §­ 祭¨ï ¯®«¥©. “ª § ⥫¥¬ ­ í«¥¬¥­â ®¡ëç­® áç¨â îâ ¤à¥á ¯¥à¢®© ï祩ª¨ í⮣® ãç á⪠; ¤à¥á ¯®«¥© ¯®«ãç îâáï
ᤢ¨£®¬ ­ ®¯à¥¤¥«ñ­­ë¥ ª®­áâ ­âë.
à¨ ॠ«¨§ 樨 § ¯¨á¥© ­ ¡ §¥ ¬ áᨢ ¬®¦­® ¢®á¯®«ì§®¢ âìáï
⮩ ¦¥ áâà ⥣¨¥©.  áᬮâਬ ®¤¨­-¥¤¨­á⢥­­ë© ¬ áᨢ A. Š ¦¤ ï § ¯¨áì ¡ã¤¥â § ­¨¬ âì ¢ ­ñ¬ ­¥¯à¥àë¢­ë© ãç á⮪ A[j : :k].
“ª § â¥«ì ­ § ¯¨áì | íâ® ¨­¤¥ªá j ; ª ¦¤®¬ã ¯®«î § ¯¨á¨ ᮮ⢥âáâ¢ã¥â ç¨á«® ¨§ ¨­â¥à¢ « [0 : :k ; j ] | ᤢ¨£.  ¯à¨¬¥à, ¯à¨
¯à¥¤áâ ¢«¥­¨¨ ¢áñ ⮣® ¦¥ ᯨ᪠, çâ® ¨ ­ à¨á. 11.3 ¨ 11.5, ¬®¦­®
à¥è¨âì, çâ® ¯®«ï¬ key, next ¨ prev ᮮ⢥âáâ¢ãîâ ᤢ¨£¨ 0, 1 ¨ 2.
’®£¤ §­ 祭¨¥ prev[i], £¤¥ i | 㪠§ ⥫ì (= ¨­¤¥ªá ¢ ¬ áᨢ¥ A),
¥áâì ­¥ çâ® ¨­®¥, ª ª A[i + 2] (á¬. à¨á. 11.6).
’ ª®¥ ¯à¥¤áâ ¢«¥­¨¥ ¯®§¢®«ï¥â åà ­¨âì ¢ ®¤­®¬ ¬ áᨢ¥ § ¯¨á¨
à §­ëå ⨯®¢ (®â¢®¤ï ¯®¤ ­¨å ãç á⪨ à §­®© ¤«¨­ë), ­® ¤«ï ­ è¨å 楫¥© ¡ã¤¥â ¤®áâ â®ç­® ¯à¥¤áâ ¢«¥­¨ï ¢ ¢¨¤¥ ­¥áª®«ìª¨å ¬ áᨢ®¢, ¯®áª®«ìªã ¡®«ì設á⢮ áâàãªâãà ¤ ­­ëå, á ª®â®à묨 ¬ë
¡ã¤¥¬ ¨¬¥âì ¤¥«®, á®áâ®ïâ ¨§ ®¤­®â¨¯­ëå § ¯¨á¥©.
‚뤥«¥­¨¥ ¨ ®á¢®¡®¦¤¥­¨¥ ¯ ¬ïâ¨
à¨ ¤®¡ ¢«¥­¨¨ ­®¢®£® í«¥¬¥­â ¢ ᯨ᮪ ­ ¤® ®â¢¥á⨠¯®¤ ­¥£®
¬¥áâ® ¢ ¯ ¬ïâ¨. ‘â «® ¡ëâì, ­¥®¡å®¤¨¬® ¢¥á⨠ãçñ⠨ᯮ«ì§®¢ ­¨ï
¤à¥á®¢. ‚ ­¥ª®â®àëå á¨á⥬ å í⨬ ¢¥¤ ¥â á¯¥æ¨ «ì­ ï ¯®¤¯à®£à ¬¬ | á¡®à騪 ¬ãá®à (garbage collector), ª®â®à ï ®¯à¥¤¥«ï¥â,
ª ª¨¥ ãç á⪨ ¯ ¬ï⨠¡®«¥¥ ­¥ ¨á¯®«ì§ãîâáï, ¨ ¢®§¢à é ¥â ¨å ¤«ï
¯®¢â®à­®£® ¨á¯®«ì§®¢ ­¨ï. ‚® ¬­®£¨å á«ãç ïå, ®¤­ ª®, ¬®¦­® ¢®§«®¦¨âì ®¡ï§ ­­®á⨠¯® ¢ë¤¥«¥­¨î ¨ ®á¢®¡®¦¤¥­¨î ¯ ¬ï⨠­ á ¬ã
áâàãªâãàã ¤ ­­ëå. ‚ í⮬ à §¤¥«¥ ¬ë ¯®ª ¦¥¬, ª ª íâ® ¤¥« ¥âáï; ¢
ª ç¥á⢥ ¯à¨¬¥à à áᬮâਬ ¤¢ãáâ®à®­­¥ á¢ï§ ­­ë© ᯨ᮪, ¯à¥¤áâ ¢«¥­­ë© á ¯®¬®éìî ­¥áª®«ìª¨å ¬ áᨢ®¢.
ãáâì ¬ áᨢë, á ¯®¬®éìî ª®â®àëå ¬ë ¯à¥¤áâ ¢«ï¥¬ ­ è ᯨ-
208
ƒ« ¢ 11 «¥¬¥­â à­ë¥ áâàãªâãàë ¤ ­­ëå
¨áã­®ª 11.7  ¡®â ¯à®æ¥¤ãà Allocate-Object ¨ Free-Object. ( ) ’®â ¦¥
ᯨ᮪, çâ® ­ à¨á. 11.5 (ᢥ⫮-á¥àë©) ¨ ᯨ᮪ ᢮¡®¤­ëå ¯®§¨æ¨© (âñ¬­®á¥àë©). ‘âàãªâãà ᯨ᪠᢮¡®¤­ëå ¯®§¨æ¨© ¨§®¡à ¦¥­ á ¯®¬®éìî áâ५®ª.
(¡) ‚®â çâ® ¯®«ãç¨âáï ¯®á«¥ ¢ë§®¢ Allocate-Object() (¢®§¢à é ¥â §­ 祭¨¥ 4), ¯à¨á¢ ¨¢ ­¨ï key[4] 25 ¨ ¢ë§®¢ List-Insert(L; 4). ®¢ë© ᯨ᮪
᢮¡®¤­ëå ¯®§¨æ¨© ­ 稭 ¥âáï á 8 (â ª®¢® ¡ë«® §­ 祭¨¥ next[4]). (¢) ’¥¯¥àì
¬ë ¢ë§¢ «¨ List-Delete(L; 5), § ⥬ Free-Object(5). ®§¨æ¨ï 5 | £®«®¢ ­®¢®£® ᯨ᪠᢮¡®¤­ëå ¯®§¨æ¨©, § ­¥© á«¥¤ã¥â 8.
᮪, ¨¬¥îâ ¤«¨­ã m, ¨ ¯ãáâì ¢ ¤ ­­ë© ¬®¬¥­â ¢ ᯨ᪥ ᮤ¥à¦¨âáï
n 6 m í«¥¬¥­â®¢. Žáâ «ì­ë¥ n ; m ¬¥áâ (¯®§¨æ¨©) ¢ ¬ áᨢ¥ ᢮¡®¤­ë (free).
Œë ¡ã¤¥¬ åà ­¨âì ᢮¡®¤­ë¥ ¯®§¨æ¨¨ ¢ ®¤­®áâ®à®­­¥ á¢ï§ ­­®¬ ᯨ᪥, ­ §ë¢ ¥¬®¬ ᯨ᪮¬ ᢮¡®¤­ëå ¯®§¨æ¨© (free list). â®â
ᯨ᮪ ¨á¯®«ì§ã¥â ⮫쪮 ¬ áᨢ next: ¨¬¥­­®, next[i] ᮤ¥à¦¨â ¨­¤¥ªá ᢮¡®¤­®© ¯®§¨æ¨¨, á«¥¤ãî饩 § ᢮¡®¤­®© ¯®§¨æ¨¥© i. ƒ®«®¢ ᯨ᪠åà ­¨âáï ¢ ¯¥à¥¬¥­­®© free. ‘¯¨á®ª ᢮¡®¤­ëå ¯®§¨æ¨© åà ­¨âáï ¢¯¥à¥¬¥¦ªã ᮠᯨ᪮¬ L (à¨á. 11.7). Ž¡à â¨â¥ ¢­¨¬ ­¨¥, çâ®
ª ¦¤®¬ã ç¨á«ã ¨§ ®â१ª [1; m] ®â¢¥ç ¥â í«¥¬¥­â «¨¡® ᯨ᪠L,
«¨¡® ᯨ᪠᢮¡®¤­ëå ¬¥áâ.
‘¯¨á®ª ᢮¡®¤­ëå ¯®§¨æ¨© ¢¥¤ñâ á¥¡ï ª ª á⥪: ¨§ ¢á¥å ᢮¡®¤­ëå
ãç á⪮¢ ¯ ¬ï⨠¯®¤ ­®¢ãî § ¯¨áì ¢ë¤¥«ï¥âáï â®â, ª®â®àë© ¡ë«
®á¢®¡®¦¤ñ­ ¯®á«¥¤­¨¬. ®í⮬㠤«ï ¢ë¤¥«¥­¨ï ¨ ®á¢®¡®¦¤¥­¨ï ¯ ¬ï⨠¬®¦­® ¢®á¯®«ì§®¢ âìáï ॠ«¨§ 樥© á⥪®¢ëå ®¯¥à 権 Push
¨ Pop ­ ¡ §¥ ᯨ᪠. ‚ ¯à¨¢®¤¨¬ëå ­¨¦¥ ¯à®æ¥¤ãà å AllocateObject (¢ë¤¥«¨âì ¬¥áâ®) ¨ Free-Object (®á¢®¡®¤¨âì ¬¥áâ®) ¯®¤à §ã¬¥¢ ¥âáï, çâ® ¢ £«®¡ «ì­®© ¯¥à¥¬¥­­®© free § ¯¨á ­ ¨­¤¥ªá
¯¥à¢®© (¢ ᯨ᪥) ᢮¡®¤­®© ¯®§¨æ¨¨.
¥ «¨§ æ¨ï 㪠§ ⥫¥© ¨ § ¯¨á¥© á ­¥áª®«ìª¨¬¨ ¯®«ï¬¨
209
¨áã­®ª 11.8 ‘¯¨áª¨ L1 (ᢥ⫮-á¥àë©) ¨ L2 (âñ¬­®-á¥àë©), â ª¦¥ ᯨ᮪
᢮¡®¤­ëå ¬¥áâ (ç¥à­ë©) åà ­ïâáï ¢ ®¤­®© âனª¥ ¬ áᨢ®¢.
Allocate-Object ()
1 if free = nil
2
3
4
5
then error "‘¢®¡®¤­®£® ¬¥áâ ­¥â"
else x free
free next[x]
return x
Free-Object (x)
1 next[x] free
2 free x
¥à¢®­ ç «ì­® ᯨ᮪ ᢮¡®¤­ëå ¯®§¨æ¨© ᮤ¥à¦¨â n í«¥¬¥­â®¢.
…᫨ ᢮¡®¤­®£® ¬¥áâ ­¥ ®áâ «®áì, ¯à®æ¥¤ãà Allocate-Object
á®®¡é ¥â ®¡ ®è¨¡ª¥.
— áâ® ®¤¨­ ᯨ᮪ ᢮¡®¤­ëå ¯®§¨æ¨© ®¡á«ã¦¨¢ ¥â áà §ã ­¥áª®«ìª® ¤¨­ ¬¨ç¥áª¨å ¬­®¦¥á⢠(à¨á. 11.8).
Ž¯¨á ­­ë¥ ¯à®æ¥¤ãàë ¢ë¤¥«¥­¨ï ¨ ®á¢®¡®¦¤¥­¨ï ¯ ¬ï⨠¯à®áâë
¨ 㤮¡­ë (à ¡®â îâ § ¢à¥¬ï O(1)). ˆå ¬®¦­® ¯à¨á¯®á®¡¨âì ¤«ï
åà ­¥­¨ï ®¤­®â¨¯­ëå § ¯¨á¥© «î¡®£® ¢¨¤ , ®â¢¥¤ï ®¤­® ¨§ ¯®«¥©
§ ¯¨á¨ ¯®¤ åà ­¥­¨¥ ¨­¤¥ªá next (¢ ᢮¡®¤­ëå ¯®§¨æ¨ïå).
“¯à ¦­¥­¨ï
‘«¥¤ãï ®¡à §æã à¨á. 11.5, ¨§®¡à §¨â¥ ¯à¥¤áâ ¢«¥­¨¥ ¯®á«¥¤®¢ ⥫쭮á⨠h13; 4; 8; 19; 5; 11i ¢ ¢¨¤¥ ¤¢ãáâ®à®­­¥ á¢ï§ ­­®£®
ᯨ᪠, ॠ«¨§®¢ ­­®£® á ¯®¬®éìî âà¥å ¬ áᨢ®¢; ¯® ®¡à §æã
à¨á. 11.6 ¨§®¡à §¨â¥ â®â ¦¥ ᯨ᮪, ॠ«¨§®¢ ­­ë© á ¯®¬®éìî ®¤­®£® ¬ áᨢ .
11.3-2  ¯¨è¨â¥ ¯à®æ¥¤ãàë Allocate-Object ¨ Free-Object
¤«ï á«ãç ï ®¤­®â¨¯­ëå § ¯¨á¥©, åà ­ïé¨åáï ¢ ®¤­®¬ ¬ áᨢ¥.
11.3-3 ®ç¥¬ã ¢ ¯à®æ¥¤ãà å Allocate-Object ¨ Free-Object
­¨ª ª ­¥ 䨣ãà¨àã¥â ¯®«¥ prev?
11.3-4 — áâ® (­ ¯à¨¬¥à, ¯à¨ áâà ­¨ç­®© ®à£ ­¨§ 樨 ¢¨àâã «ì­®© ¯ ¬ïâ¨) ¡ë¢ ¥â ¯®«¥§­® åà ­¨âì í«¥¬¥­âë ᯨ᪠¢ ­¥¯à¥àë¢11.3-1
210
ƒ« ¢ 11 «¥¬¥­â à­ë¥ áâàãªâãàë ¤ ­­ëå
­®¬ ãç á⪥ ¯ ¬ïâ¨.  áᬮâਬ ॠ«¨§ æ¨î á¯¨áª á ¯®¬®éìî
­¥áª®«ìª¨å ¬ áᨢ®¢. ¥à¥¯¨è¨â¥ ¯à®æ¥¤ãàë Allocate-Object
¨ Free-Object â ª¨¬ ®¡à §®¬, ç⮡ë í«¥¬¥­âë ᯨ᪠§ ­¨¬ «¨
¯®§¨æ¨¨ 1 : :m, £¤¥ m | ç¨á«® í«¥¬¥­â®¢ ᯨ᪠. (“ª § ­¨¥: ¢®á¯®«ì§ã©â¥áì ॠ«¨§ 樥© á⥪ ­ ¡ §¥ ¬ áᨢ .)
11.3-5 ãáâì ¤¢ãáâ®à®­­¥ á¢ï§ ­­ë© ᯨ᮪ L ¤«¨­ë m ¯à¥¤áâ ¢«¥­ á ¯®¬®éìî âà¥å ¬ áᨢ®¢ key, prev ¨ next ¤«¨­ë n, ¯à®æ¥¤ãàë ¢ë¤¥«¥­¨ï ¨ ®á¢®¡®¦¤¥­¨ï ¬¥áâ ¯®¤¤¥à¦¨¢ îâ ¤¢ãáâ®à®­­¥
á¢ï§ ­­ë© ᯨ᮪ ᢮¡®¤­ëå ¯®§¨æ¨©.
 ¯¨è¨â¥ ¯à®æ¥¤ãàã Compactify-List (ᦠ⨥ ᯨ᪠), ª®â®à ï ¯¥à¥¯¨áë¢ ¥â ᯨ᮪ L ¤«¨­ë m ¢ ¯¥à¢ë¥ m ¯®§¨æ¨© ¬ áᨢ®¢,
á®åà ­ïï ¥£® áâàãªâãàã (¨ ¨§¬¥­ïï ᯨ᮪ ᢮¡®¤­ëå ¯®§¨æ¨© ­ã¦­ë¬ ®¡à §®¬). ‚६ï à ¡®âë «£®à¨â¬ ¤®«¦­® ¡ëâì (m), à §¬¥à
¨á¯®«ì§ã¥¬®© ¯ ¬ï⨠(ᢥàå § ­ï⮩ ¬ áᨢ ¬¨) ¤®«¦¥­ ¡ëâì O(1).
¥ § ¡ã¤ì⥠¤®ª § âì ¯à ¢¨«ì­®áâì ᢮¥£® «£®à¨â¬ .
11.4 à¥¤áâ ¢«¥­¨¥ ª®à­¥¢ëå ¤¥à¥¢ì¥¢
Ž¯¨á ­­ë¥ ¢ ¯à¥¤ë¤ã饬 à §¤¥«¥ á¯®á®¡ë ¯à¥¤áâ ¢«¥­¨ï ᯨ᪮¢ ¯à¨¬¥­¨¬ë ¨ ª ¤à㣨¬ áâàãªâãà ¬ ¤ ­­ëå, á®áâ ¢«¥­­ë¬ ¨§
®¤­®â¨¯­ëå í«¥¬¥­â®¢. ‚ í⮬ à §¤¥«¥ ¬ë ­ ã稬áï ¨á¯®«ì§®¢ âì
㪠§ ⥫¨ ¤«ï ¯à¥¤áâ ¢«¥­¨ï ¤¥à¥¢ì¥¢.  ç­ñ¬ ¬ë á ¤¢®¨ç­ëå ¤¥à¥¢ì¥¢, § ⥬ ®¡êïá­¨¬, ª ª ¯à¥¤áâ ¢«ïâì ¤¥à¥¢ìï á ¯à®¨§¢®«ì­ë¬ ¢¥â¢«¥­¨¥¬.
Š ¦¤ ï ¢¥à設 ¤¥à¥¢ ¡ã¤¥â § ¯¨áìî á ­¥áª®«ìª¨¬¨ ¯®«ï¬¨.
Ž¤­® ¨§ íâ¨å ¯®«¥© ᮤ¥à¦¨â ª«îç, ª ª ¨ ¢ á«ãç ¥ ᮠᯨ᪠¬¨.
Žáâ «ì­ë¥ ¯®«ï ¯à¥¤­ §­ ç¥­ë ¤«ï åà ­¥­¨ï ¤®¯®«­¨â¥«ì­ëå ¤ ­­ëå ¨, £« ¢­®¥, 㪠§ ⥫¥© ­ ¤à㣨¥ ¢¥à設ë. Š ª ª®­ªà¥â­®
ãáâ஥­ë í⨠¯®«ï, § ¢¨á¨â ®â ⨯ ¤¥à¥¢ .
„¢®¨ç­ë¥ ¤¥à¥¢ìï
Š ª ¯®ª § ­® ­ à¨á. 11.9, ¯à¨ ¯à¥¤áâ ¢«¥­¨¨ ¤¢®¨ç­®£® ¤¥à¥¢ T
¬ë ¨á¯®«ì§ã¥¬ ¯®«ï p, left ¨ right, ¢ ª®â®àëå åà ­ïâáï 㪠§ ⥫¨
­ த¨â¥«ï, «¥¢®£® ¨ ¯à ¢®£® ॡñ­ª ¢¥à設ë x ᮮ⢥âá⢥­­®.
…᫨ p[x] = nil, â® x | ª®à¥­ì; ¥á«¨ ã x ­¥â «¥¢®£® ¨«¨ ¯à ¢®£®
ॡñ­ª , â® left[x] ¨«¨ right[x] ¥áâì nil. ‘ ¤¥à¥¢®¬ T á¢ï§ ­ âਡãâ root[T ] | 㪠§ â¥«ì ­ ¥£® ª®à¥­ì. …᫨ root[T ] = nil, â® ¤¥à¥¢® T ¯ãáâ®.
à¥¤áâ ¢«¥­¨¥ ª®à­¥¢ëå ¤¥à¥¢ì¥¢
211
¨áã­®ª 11.9 à¥¤áâ ¢«¥­¨¥ ¤¢®¨ç­®£® ¤¥à¥¢ T . Š ¦¤ ï ¢¥à設 x ¢ª«îç ¥â
¯®«ï p[x] (ᢥàåã), left[x] (¢­¨§ã á«¥¢ ) ¨ right[x] (¢­¨§ã á¯à ¢ ). Š«îç¨ ­ á奬¥
­¥ ¯®ª § ­ë.
Š®à­¥¢ë¥ ¤¥à¥¢ìï á ¯à®¨§¢®«ì­ë¬ ¢¥â¢«¥­¨¥¬
…᫨ ¨§¢¥áâ­®, çâ® ç¨á«® ¤¥â¥© ª ¦¤®© ¢¥àè¨­ë ®£à ­¨ç¥­®
ᢥàåã ª®­á⠭⮩ k, â® â ª®¥ ¤¥à¥¢® ¬®¦­® ॠ«¨§®¢ âì ­ «®£¨ç­® ¤¢®¨ç­®¬ã ¤¥à¥¢ã, ¯®¬¥é ï 㪠§ ⥫¨ ­ ¤¥â¥© ¢ ¯®«ï
child1 ; child2; : : :; childk , § ¬¥­ïî騥 ¯®«ï left ¨ right. …᫨ ª®«¨ç¥á⢮ ¤¥â¥© ¬®¦¥â ¡ëâì «î¡ë¬, â ª ¤¥« âì ­¥«ì§ï: § à ­¥¥ ­¥¨§¢¥áâ­®, ᪮«ìª® ¯®«¥© (¨«¨ ¬ áᨢ®¢ | ¯à¨ ¯à¥¤áâ ¢«¥­¨¨ á ¯®¬®éìî ­¥áª®«ìª¨å ¬ áᨢ®¢) ­ ¤® ¢ë¤¥«¨âì.
à®¡«¥¬ ¬®¦¥â ¢®§­¨ª­ãâì ¨ ¢ ⮬ á«ãç ¥, ¥á«¨ ª®«¨ç¥á⢮ ¤¥â¥© ®£à ­¨ç¥­® § à ­¥¥ ¨§¢¥áâ­ë¬ ç¨á«®¬ k, ­® ã ¡®«ì設á⢠¢¥à設 ç¨á«® ¤¥â¥© ¬­®£® ¬¥­ìè¥ k: ®¯¨á ­­ ï ॠ«¨§ æ¨ï âà â¨â
¬­®£® ¯ ¬ï⨠§àï.
Š ª ¦¥ ¡ëâì? ‡ ¬¥â¨¬, çâ® «î¡®¥ ¤¥à¥¢® ¬®¦­® ¯à¥®¡à §®¢ âì
¢ ¤¢®¨ç­®¥. à¨ í⮬ ã ª ¦¤®© ¢¥àè¨­ë ¡ã¤¥â ­¥ ¡®«¥¥ ¤¢ãå ¤¥â¥©:
«¥¢ë© ॡñ­®ª ®áâ ­¥âáï ⥬ ¦¥, ­® ¯à ¢ë¬ ॡñ­ª®¬ áâ ­¥â ¢¥à設 , ª®â®à ï ¡ë« ¯à ¢ë¬ á®á¥¤®¬ (­¥¯®á।á⢥­­® á«¥¤ãî騬
ॡñ­ª®¬ ⮣® ¦¥ த¨â¥«ï). ’¥¯¥àì íâ® ¤¢®¨ç­®¥ ¤¥à¥¢® ¬®¦­®
åà ­¨âì ®¯¨á ­­ë¬ ¢ëè¥ á¯®á®¡®¬.
Ž¯¨è¥¬ á奬ã åà ­¥­¨ï ¤¥à¥¢ì¥¢ á ¯à®¨§¢®«ì­ë¬ ¢¥â¢«¥­¨¥¬,
®á­®¢ ­­ãî ­ í⮩ ¨¤¥¥, ¡®«¥¥ ¯®¤à®¡­®. Ž­ ­ §ë¢ ¥âáï "«¥¢ë©
ॡñ­®ª | ¯à ¢ë© á®á¥¤" (left-child, right-sibling representation) ¨
¯®ª § ­ ­ à¨á. 11.10. ®-¯à¥¦­¥¬ã ¢ ª ¦¤®© ¢¥à設¥ åà ­¨âáï
㪠§ ⥫ì p ­ த¨â¥«ï ¨ âਡãâ root[T ] ï¥âáï 㪠§ ⥫¥¬ ­ ª®à¥­ì ¤¥à¥¢ . Šà®¬¥ p, ¢ ª ¦¤®© ¢¥à設¥ åà ­ïâáï ¥éñ ¤¢ 㪠§ ⥫ï:
1. left-child[x] 㪠§ë¢ ¥â ­ á ¬®£® «¥¢®£® ॡñ­ª ¢¥à設ë x;
212
ƒ« ¢ 11 «¥¬¥­â à­ë¥ áâàãªâãàë ¤ ­­ëå
¨áã­®ª 11.10 à¥¤áâ ¢«¥­¨¥ ¤¥à¥¢ T ¯® á奬¥ "«¥¢ë© ॡñ­®ª | ¯à ¢ë©
á®á¥¤". ‚ ª ¦¤®© § ¯¨á¨ x ¯à¨áãâáâ¢ãîâ ¯®«ï p[x] (ᢥàåã), left-child[x] (¢­¨§ã
á«¥¢ ) ¨ right-sibling[x] (¢­¨§ã á¯à ¢ ). Š«îç¨ ­¥ ¯®ª § ­ë.
2. right-sibling[x] 㪠§ë¢ ¥â ­ ¡«¨¦ ©è¥£® á¯à ¢ á®á¥¤ ¢¥à設ë x
("á«¥¤ãî饣® ¯® áâ à設áâ¢ã ¡à â ")
‚¥à設 x ­¥ ¨¬¥¥â ¤¥â¥© ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ left-child[x] = nil. …᫨ ¢¥à設 x | ªà ©­¨© ¯à ¢ë© ॡ¥­®ª
᢮¥£® த¨â¥«ï, â® right-sibling[x] = nil.
„à㣨¥ á¯®á®¡ë ¯à¥¤áâ ¢«¥­¨ï ¤¥à¥¢ì¥¢
ˆ­®£¤ ¢áâà¥ç îâáï ¤à㣨¥ á¯®á®¡ë ¯à¥¤áâ ¢«¥­¨ï ¤¥à¥¢ì¥¢.  ¯à¨¬¥à, ¢ £« ¢¥ 7 ¯à¨ ॠ«¨§ 樨 ªãç¨ ­¥ ­ ¤® ¡ë«® åà ­¨âì 㪠§ ⥫¥© ­ த¨â¥«ï ¨ ¤¥â¥©, ¯®áª®«ìªã ¨å ­®¬¥à ¯®«ãç «¨áì 㬭®¦¥­¨¥¬ ¨ ¤¥«¥­¨¥¬ ­ 2. ‚ £« ¢¥ 22 ­ ¬ ¢áâà¥âïâáï ¤¥à¥¢ìï, ¯®
ª®â®àë¬ ¤¢¨£ îâáï ®â «¨áâ쥢 ª ª®à­î (¨ ¯®â®¬ã 㪠§ ⥫¨ ­ ¤¥â¥© ¨«¨ á®á¥¤¥© ­¥ ­ã¦­ë). Š®­ªà¥â­ë© ¢ë¡®à ¯à¥¤áâ ¢«¥­¨ï
¤¥à¥¢ ®¯à¥¤¥«ï¥âáï ᯥæ¨ä¨ª®© § ¤ ç¨.
“¯à ¦­¥­¨ï
11.4-1
 à¨áã©â¥ ¤¢®¨ç­®¥ ¤¥à¥¢®, ¯à¥¤áâ ¢«¥­­®¥ á«¥¤ãî騬
®¡à §®¬:
‡ ¤ ç¨ ª £« ¢¥ 11
213
¨­¤¥ªá key left right
1
2
3
4
5
6
7
8
9
10
12
15
4
10
2
18
7
14
21
5
7
8
10
5
3
nil
nil
9
nil
nil
nil
nil
nil
nil
nil
nil
1
6
4
2
Š®à¥­ì ¤¥à¥¢ | ¢ ¢¥à設¥ á ¨­¤¥ªá®¬ 6.
11.4-2  ¯¨è¨â¥ à ¡®â îéãî § «¨­¥©­®¥ ¢à¥¬ï ४ãàᨢ­ãî
¯à®æ¥¤ãàã, ª®â®à ï ¯¥ç ⠥⠪«îç¨ ¢á¥å ¢¥à設 ¤ ­­®£® ¤¢®¨ç­®£®
¤¥à¥¢ .
11.4-3 Š ª ᤥ« âì â® ¦¥ á ¬®¥ (çâ® ¨ ¢ ¯à¥¤ë¤ã饬 ã¯à ¦­¥­¨¨), ¨á¯®«ì§ãï ­¥à¥ªãàᨢ­ãî ¯à®æ¥¤ãàã? (à¨ ãáâà ­¥­¨¨ ४ãàᨨ ¯®«¥§¥­ á⥪.)
11.4-4  ¯¨è¨â¥ à ¡®â îéãî § «¨­¥©­®¥ ¢à¥¬ï ¯à®æ¥¤ãàã, ¯¥ç â îéãî ª«îç¨ ¢á¥å ¢¥à設 ¤¥à¥¢ , ¯à¥¤áâ ¢«¥­­®£® ¯® á奬¥
"«¥¢ë© ॡñ­®ª | ¯à ¢ë© á®á¥¤".
11.4-5?  ¯¨è¨â¥ à ¡®â îéãî § «¨­¥©­®¥ ¢à¥¬ï ­¥à¥ªãàᨢ­ãî
¯à®æ¥¤ãàã, ¯¥ç â îéãî ª«îç¨ ¢á¥å ¢¥à設 ¤¢®¨ç­®£® ¤¥à¥¢ , ¤«ï
ª®â®à®© ®¡êñ¬ ¨á¯®«ì§ã¥¬®© ¯ ¬ï⨠(ᢥàå ¯ ¬ïâ¨, ¢ ª®â®à®© åà ­¨âáï ¤¥à¥¢®) ¥áâì O(1), ¨ ¢® ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë ¤¥à¥¢® ­¥
¬¥­ï¥âáï (¤ ¦¥ ¢à¥¬¥­­®).
11.4-6? à¨¤ã¬ ©â¥ ᯮᮡ åà ­¥­¨ï ¤¥à¥¢ á ¯à®¨§¢®«ì­ë¬ ¢¥â¢«¥­¨¥¬, ¯à¨ ª®â®à®¬ ¢ ª ¦¤®© ¢¥à設¥ åà ­ïâáï ¢á¥£® ¤¢ ( ­¥
âà¨, ª ª ¢ á奬¥ "«¥¢ë© ॡ¥­®ª | ¯à ¢ë© á®á¥¤") 㪠§ â¥«ï ¯«îá
®¤­ ¡ã«¥¢ ¯¥à¥¬¥­­ ï.
‡ ¤ ç¨
11-1 ‘à ¢­¥­¨¥ à §­ëå ⨯®¢ ᯨ᪮¢
 ©¤¨â¥ ᨬ¯â®â¨ªã ¢à¥¬¥­¨ à ¡®âë (¢ åã¤è¥¬ á«ãç ¥) ¤«ï
ª ¦¤®© ¨§ ¯¥à¥ç¨á«¥­­ëå ¢ ­ ç «¥ ç á⨠III (á. ??) ®¯¥à 権, ¯à¨¬¥­ñ­­®© ª ª ¦¤®¬ã ¨§ 㪠§ ­­ëå ⨯®¢ ᯨ᪮¢.
214
ƒ« ¢ 11 «¥¬¥­â à­ë¥ áâàãªâãàë ¤ ­­ëå
Search(L; k)
Insert(L; x)
Delete(L; x)
Successor(L; x)
Predecessor (L; x)
Minimum(L)
Maximum(L)
­¥ã¯®à冷祭­ë©ã¯®à冷祭­ë©
,
, ­¥ã¯®à冷祭­ë©ã¯®à冷祭­
,
®¤­®áâ®à®­­¥ ®¤­®áâ®à®­­¥ ¤¢ãáâ®à®­­¥ ¤¢ãáâ®à®­­
á¢ï§ ­­ë©
á¢ï§ ­­ë©
á¢ï§ ­­ë©
á¢ï§ ­­ë©
11-2 ¥ «¨§ æ¨ï ᫨¢ ¥¬ëå ªãç ­ ¡ §¥ ᯨ᪮¢
‘âàãªâãà ¤ ­­ëå ¯®¤ ­ §¢ ­¨¥¬ ᫨¢ ¥¬ë¥ ªãç¨ (mergeable
heaps) åà ­¨â ­ ¡®à ¤¨­ ¬¨ç¥áª¨å ¬­®¦¥á⢠(ªãç), ¨ ¯®¤¤¥à¦¨¢ ¥â á«¥¤ãî騥 ®¯¥à 樨: Make-Heap (ᮧ¤ ­¨¥ ¯ãá⮩ ªãç¨),
Insert, Minimum, Extract-Min ¨, ­ ª®­¥æ, Union (®¡ê¥¤¨­¥­¨¥
¤¢ãå ªãç ¢ ®¤­ã; ¤¢¥ áâ àë¥ ªãç¨ ¯à®¯ ¤ îâ). „«ï ª ¦¤®£® ¨§ ¯¥à¥ç¨á«¥­­ëå ­¨¦¥ á«ãç ¥¢ ॠ«¨§ã©â¥ (¯® ¢®§¬®¦­®á⨠íä䥪⨢­®)
᫨¢ ¥¬ë¥ ªãç¨ ­ ¡ §¥ ᯨ᪮¢. Žæ¥­¨â¥ ¢à¥¬ï à ¡®âë ®¯¥à 権
ç¥à¥§ à §¬¥àë ãç áâ¢ãîé¨å ¬­®¦¥áâ¢.
‘¯¨áª¨ 㯮à冷祭ë.
¡ ‘¯¨áª¨ ­¥ã¯®à冷祭ë.
¢ ‘¯¨áª¨ ­¥ã¯®à冷祭ë, ®¡ê¥¤¨­ï¥¬ë¥ ¬­®¦¥á⢠­¥ ¯¥à¥á¥ª îâáï ¤àã£ á ¤à㣮¬.
11-3 ®¨áª ¢ ®âá®àâ¨à®¢ ­­®¬ ᦠ⮬ ᯨ᪥
‚ ã¯à ¦­¥­¨¨ 11.3-4 âॡ®¢ «®áì åà ­¨âì ᯨ᪨ "ª®¬¯ ªâ­®":
n-í«¥¬¥­â­ë© ᯨ᮪ ¤®«¦¥­ ¡ë« § ­¨¬ âì ¯¥à¢ë¥ n ¯®§¨æ¨© ¬ áᨢ . à¥¤¯®«®¦¨¬ ¥éñ, çâ® ¢á¥ ª«îç¨ à §«¨ç­ë ¨ ç⮠ᯨ᮪ 㯮à冷祭 (¨­ë¬¨ á«®¢ ¬¨, key[i] < key[next[i]] ¯à¨ next[i] =
6 nil). Žª §ë¢ ¥âáï, çâ® ¢ íâ¨å ¯à¥¤¯®«®¦¥­¨ïå á«¥¤ãî騩 ¢¥à®ïâ­®áâ­ë©
«£®à¨â¬ ¢ë¯®«­ï¥â ¯®¨áª ¢ ᯨ᪥ § ¢à¥¬ï o(n):
Compact-List-Search(L; k)
1 i head[L]
2 n length[L]
3 while i =
6 nil and key[i] 6 k
4
do j Random(1; n)
5
if key[i] < key[j ] and key[j ] < k
6
then i j
7
i next[i]
8
if key[i] = k
9
then return i
10 return nil
‡ ¬¥ç ­¨ï ª £« ¢¥ 11
215
¥§ áâப 4{6 íâ® ¡ë« ¡ë ®¡ëç­ë© «£®à¨â¬ á ¯®á«¥¤®¢ ⥫ì­ë¬
¯¥à¥¡®à®¬ í«¥¬¥­â®¢ ᯨ᪠. ‚ áâப å 4{6 ¬ë ¯ëâ ¥¬áï ¯¥à¥áª®ç¨âì ­ á«ãç ©­® ¢ë¡à ­­ãî ¯®§¨æ¨î j . …᫨ key[i] < key[j ] < k,
â® ¯à¨ í⮬ ¬ë íª®­®¬¨¬ ¢à¥¬ï, â ª ª ª ­¥ ¯à®¢¥à塞 í«¥¬¥­âë,
«¥¦ 騥 ¢ ¯®§¨æ¨ïå ¬¥¦¤ã i ¨ j . (« £®¤ àï ⮬ã, ç⮠ᯨ᮪ § ­¨¬ ¥â ­¥¯à¥àë¢­ë© ãç á⮪ ¬ áᨢ , ¬ë ¬®¦¥¬ ¢ë¡à âì ¢ ­ñ¬
á«ãç ©­ë© í«¥¬¥­â.)
‡ 祬 ­ã¦­® ¯à¥¤¯®« £ âì, çâ® ¢á¥ ª«îç¨ à §«¨ç­ë? ®ª ¦¨â¥, çâ® ¤«ï ­¥ã¡ë¢ î饣® ᯨ᪠á (¢®§¬®¦­®) ᮢ¯ ¤ î騬¨
ª«îç ¬¨ á«ãç ©­ë¥ ᪠窨 ¬®£ãâ ­¥ ã«ãçè¨âì ᨬ¯â®â¨ªã ¢à¥¬¥­¨ ¯®¨áª .
Š ª ®æ¥­¨âì ¢à¥¬ï à ¡®âë? à¥¤áâ ¢¨¬ ᥡ¥, çâ® ­ ­¥áª®«ìª¨å ¯¥à¢ëå è £ å ¬ë ¢ë¯®«­ï¥¬ ⮫쪮 á«ãç ©­ë¥ ᪠窨, ­ ®áâ «ì­ëå ¢ë¯®«­ï¥¬ «¨­¥©­ë© ¯®¨áª. Œ®¦­® ®æ¥­¨âì ®¦¨¤ ¥¬®¥
à ááâ®ï­¨¥ ¤® ¨áª®¬®£® í«¥¬¥­â ¯®á«¥ ¯¥à¢®© ä §ë | ¨ ⥬ á ¬ë¬
¤«¨â¥«ì­®áâì ¢â®à®© ä §ë.  è «£®à¨â¬ ¡ã¤¥â à ¡®â âì ­¥ å㦥
â ª®£® ãá¥çñ­­®£®, ¨ ®áâ ñâáï ⮫쪮 ¯à ¢¨«ì­® ¢ë¡à âì ¤«¨â¥«ì­®áâì ¯¥à¢®© ä §ë, çâ®¡ë ¯®«ãç¨âì ®æ¥­ªã ¯®«ãçè¥.
‘¤¥« ¥¬ íâ® ªªãà â­®. „«ï ª ¦¤®£® t > 0 ®¡®§­ 稬 ç¥à¥§
Xt á«ãç ©­ãî ¢¥«¨ç¨­ã, à ¢­ãî à ááâ®ï­¨î (¨§¬¥à¥­­®¬ã ¢¤®«ì
ᯨ᪠) ®â ¯®§¨æ¨¨ i ¤® ¨áª®¬®£® ª«îç k ¯®á«¥ t á«ãç ©­ëå ᪠窮¢.
¡ ®ª ¦¨â¥, çâ® ¤«ï ª ¦¤®£® t > 0 ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢à¥¬¥­¨ à ¡®âë «£®à¨â¬ Compact-List-Search
¥áâì O(t + E [Xt]).
Pn
t
¢ ®ª ¦¨â¥, çâ® E (Xt) 6 r=1 (1 ; r=n) . (“ª § ­¨¥: ¢®á¯®«ì§ã©â¥áì ä®à¬ã«®© (6.28)).
P ;1
£ ®ª ¦¨â¥, çâ® nr=0
5 6 nt+1 =(t + 1).
¤ ®ª ¦¨â¥, çâ® E (Xt) 6 n=(t + 1), ¨ ®¡êï᭨⥠"­ ¯ «ìæ å", ¯®ç¥¬ã íâ® ­¥à ¢¥­á⢮ ¤®«¦­® ¡ëâì ¢¥à­®.
e ®ª ¦¨â¥, çâ® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥
¢à¥¬¥­¨ à ¡®âë «£®à¨â¬ Compact-List-Search ¥áâì O(pn).
‡ ¬¥ç ­¨ï
à¥ªà á­ë¥ á¯à ¢®ç­¨ª¨ ¯® áâàãªâãà ¬ ¤ ­­ëå | ª­¨£¨ €å®,
•®¯ªà®äâ ¨ “«ì¬ ­ [5] ¨ Š­ãâ [121]. ¥§ã«ìâ âë íªá¯¥à¨¬¥­â®¢
¯® áà ¢­¥­¨î íä䥪⨢­®áâ¨ à §«¨ç­ëå ®¯¥à 権 ­ áâàãªâãà å
¤ ­­ëå ¬®¦­® ­ ©â¨ ¢ ƒ®­­¥â [90]
‘⥪¨ ¨ ®ç¥à¥¤¨ ¨á¯®«ì§®¢ «¨áì ¢ ¬ ⥬ ⨪¥ ¨ ¤¥«®¯à®¨§¢®¤á⢥ ¢ ¤®ª®¬¯ìîâ¥à­ãî íàã. Š­ãâ [121] ®â¬¥ç ¥â, çâ® ¢ 1947 £®¤ã
’ìîਭ£ (A.M. Turing) ¨á¯®«ì§®¢ « á⥪¨ ¤«ï á¢ï§¨ ¯®¤¯à®£à ¬¬.
‘âàãªâãàë ¤ ­­ëå, ®á­®¢ ­­ë¥ ­ 㪠§ ⥫ïå, â ª¦¥, ¢¨¤¨¬®,
®â­®áïâáï ª "䮫쪫®àã". ‘®£« á­® Š­ãâã, 㪠§ ⥫¨ ¨á¯®«ì§®¢ -
216
ƒ« ¢ 11 «¥¬¥­â à­ë¥ áâàãªâãàë ¤ ­­ëå
«¨áì ¥é¥ ¢ ¯¥à¢ëå ª®¬¯ìîâ¥à å á ¬ £­¨â­ë¬¨ ¡ à ¡ ­ ¬¨. ‚ 1951
£®¤ã •®¯¯¥à (G. M. Hopper) à §à ¡®â « ï§ëª A-1, ¢ ª®â®à®¬ «£¥¡à ¨ç¥áª¨¥ ä®à¬ã«ë ¯à¥¤áâ ¢«ï«¨áì ¢ ¢¨¤¥ ¤¢®¨ç­ëå ¤¥à¥¢ì¥¢.
’®â ¦¥ Š­ãâ 㪠§ë¢ ¥â, çâ® á¨á⥬ â¨ç¥áª®¥ ¨á¯®«ì§®¢ ­¨¥ 㪠§ ⥫¥© ­ ç «®áì á ï§ëª IPL-II, ª®â®àë© à §à ¡®â «¨ ¢ 1956 £®¤ã
ìîí««, ˜®ã ¨ ‘ ©¬®­ (A. Newell, J. C. Shaw, H. A. Simon). ‚ à §à ¡®â ­­®¬ ⥬¨ ¦¥ ¢â®à ¬¨ ¢ 1957 £®¤ã ï§ëª¥ IPL-III ¯®ï¢¨«¨áì
¢ ®¬ ¢¨¤¥ ®¯¥à 樨 á® á⥪ ¬¨.
12
•¥è-â ¡«¨æë
— áâ® ¡ë¢ îâ ­ã¦­ë ¤¨­ ¬¨ç¥áª¨¥ ¬­®¦¥á⢠, ¯®¤¤¥à¦¨¢ î騥
⮫쪮 "á«®¢ à­ë¥ ®¯¥à 樨" ¤®¡ ¢«¥­¨ï, ¯®¨áª ¨ 㤠«¥­¨ï í«¥¬¥­â . ‚ í⮬ á«ãç ¥ ç áâ® ¯à¨¬¥­ïîâ â ª ­ §ë¢ ¥¬®¥ å¥è¨à®¢ ­¨¥; ᮮ⢥âáâ¢ãîé ï áâàãªâãà ¤ ­­ëå ­ §ë¢ ¥âáï "å¥èâ ¡«¨æ " (¨«¨ "â ¡«¨æ à ááâ ­®¢ª¨"). ‚ åã¤è¥¬ á«ãç ¥ ¯®¨áª
¢ å¥è-â ¡«¨æ¥ ¬®¦¥â § ­¨¬ âì á⮫쪮 ¦¥ ¢à¥¬¥­¨, ᪮«ìª® ¯®¨áª
¢ ᯨ᪥ ((n)), ­® ­ ¯à ªâ¨ª¥ å¥è¨à®¢ ­¨¥ ¢¥áì¬ íä䥪⨢­®.
à¨ ¢ë¯®«­¥­¨¨ ­¥ª®â®àëå ¥áâ¥á⢥­­ëå ãá«®¢¨© ¬ ⥬ â¨ç¥áª®¥
®¦¨¤ ­¨¥ ¢à¥¬¥­¨ ¯®¨áª í«¥¬¥­â ¢ å¥è-â ¡«¨æ¥ ¥áâì O(1).
•¥è-â ¡«¨æã ¬®¦­® à áᬠâਢ âì ª ª ®¡®¡é¥­¨¥ ®¡ëç­®£®
¬ áᨢ . …᫨ ã ­ á ¤®áâ â®ç­® ¯ ¬ï⨠¤«ï ¬ áᨢ , ç¨á«® í«¥¬¥­â®¢ ª®â®à®£® à ¢­® ç¨á«ã ¢á¥å ¢®§¬®¦­ëå ª«î祩, ¤«ï ª ¦¤®£®
¢®§¬®¦­®£® ª«îç ¬®¦­® ®â¢¥á⨠ï祩ªã ¢ í⮬ ¬ áᨢ¥ ¨ ⥬ á ¬ë¬ ¨¬¥âì ¢®§¬®¦­®áâì ¤®¡à âìáï ¤® «î¡®© § ¯¨á¨ § ¢à¥¬ï O(1)
("¯àï¬ ï ¤à¥á æ¨ï", á¬. à §¤. 12.1). Ž¤­ ª® ¥á«¨ ॠ«ì­®¥ ª®«¨ç¥á⢮ § ¯¨á¥© §­ ç¨â¥«ì­® ¬¥­ìè¥, 祬 ª®«¨ç¥á⢮ ¢®§¬®¦­ëå
ª«î祩, â® íä䥪⨢­¥¥ ¯à¨¬¥­¨âì å¥è¨à®¢ ­¨¥: ¢ëç¨á«ïâì ¯®§¨æ¨î § ¯¨á¨ ¢ ¬ áᨢ¥, ¨áå®¤ï ¨§ ª«îç . ‚ à §¤¥«¥ 12.2 ®¡á㦤 îâáï ®á­®¢­ë¥ ¨¤¥¨, ¢ à §¤¥«¥ 12.3 | ª®­ªà¥â­ë¥ ᯮᮡë â ª®£®
¢ëç¨á«¥­¨ï. ‚ í⮩ £« ¢¥ ¯à¥¤áâ ¢«¥­® ­¥áª®«ìª® ¢ ਠ­â®¢ å¥è¨à®¢ ­¨ï.
Œë 㢨¤¨¬, çâ® å¥è¨à®¢ ­¨¥ | íä䥪⨢­ë© ¨ 㤮¡­ë© ᯮᮡ
¢ë¯®«­ïâì ®á­®¢­ë¥ á«®¢ à­ë¥ ®¯¥à 樨 (á।­¥¥ ¢à¥¬ï O(1) ¯à¨
­¥ª®â®àëå ¯à¥¤¯®«®¦¥­¨ïå).
12.1 àï¬ ï ¤à¥á æ¨ï
àï¬ ï ¤à¥á æ¨ï ¯à¨¬¥­¨¬ , ¥á«¨ ª®«¨ç¥á⢮ ¢®§¬®¦­ëå
ª«î祩 ­¥¢¥«¨ª®. ãáâì ¢®§¬®¦­ë¬¨ ª«îç ¬¨ ïîâáï ç¨á« ¨§ ¬­®¦¥á⢠U = f0; 1; : : :; m ; 1g (ç¨á«® m ­¥ ®ç¥­ì ¢¥«¨ª®).
à¥¤¯®«®¦¨¬ â ª¦¥, çâ® ª«îç¨ ¢á¥å í«¥¬¥­â®¢ à §«¨ç­ë.
„«ï åà ­¥­¨ï ¬­®¦¥á⢠¬ë ¯®«ì§ã¥¬áï ¬ áᨢ®¬ T [0 : :m ; 1],
­ §ë¢ ¥¬ë¬ â ¡«¨æ¥© á ¯àאַ© ¤à¥á 樥© (direct-address table). Š -
218
ƒ« ¢ 12 •¥è-â ¡«¨æë
¥à¥¢®¤ë ­ ¤¯¨á¥© ­ á ¬®© ª à⨭ª¥: universe of keys | ¢á¥¢®§¬®¦­ë¥ ª«îç¨, actual keys | ¨á¯®«ì§ã¥¬ë¥ ª«îç¨, key | ª«îç,
satellite data | ¤®¯®«­¨â¥«ì­ë¥ ¤ ­­ë¥.
¨áã­®ª 12.1 ¥ «¨§ æ¨ï ¤¨­ ¬¨ç¥áª®£® ¬­®¦¥áâ¢ á ¯®¬®éìî â ¡«¨æë T á
¯àאַ© ¤à¥á 樥©. Œ­®¦¥á⢮ ¢®§¬®¦­ëå ª«î祩 ¥áâì U = f0; 1; : : : ; 9g. Š ¦¤®¬ã ¨§ íâ¨å ª«î祩 ᮮ⢥âáâ¢ã¥â ᢮ñ ¬¥áâ® ¢ â ¡«¨æ¥. ‚ ¯®§¨æ¨ïå â ¡«¨æë
á ­®¬¥à ¬¨ 2, 3, 5 ¨ 8 (ä ªâ¨ç¥áª¨ ¨á¯®«ì§ã¥¬ë¥ ª«îç¨) § ¯¨á ­ë 㪠§ ⥫¨
­ í«¥¬¥­âë ¬­®¦¥á⢠, ¢ ­¥¨á¯®«ì§ã¥¬ëå ¯®§¨æ¨ïå â ¡«¨æë (âñ¬­®-á¥àë¥)
§ ¯¨á ­ nil.
¦¤ ï ¯®§¨æ¨ï, ¨«¨ ï祩ª , (¯®- ­£«¨©áª¨ slot ¨«¨ position) ᮮ⢥âáâ¢ã¥â ®¯à¥¤¥«ñ­­®¬ã ª«îçã ¨§ ¬­®¦¥á⢠U (à¨á. 12.1: T [k] | ¬¥áâ®, ¯à¥¤­ §­ 祭­®¥ ¤«ï § ¯¨á¨ 㪠§ â¥«ï ­ í«¥¬¥­â á ª«î箬 k;
¥á«¨ í«¥¬¥­â á ª«î箬 k ¢ â ¡«¨æ¥ ­¥â, â® T [k] = nil).
¥ «¨§ æ¨ï á«®¢ à­ëå ®¯¥à 権 âਢ¨ «ì­ :
Direct-Address-Search (T; k)
return T [k]
Direct-Address-Insert (T; x)
T [key[x]]
x
Direct-Address-Delete (T; x)
T [key[x]] nil
Š ¦¤ ï ¨§ íâ¨å ®¯¥à 権 âॡã¥â ¢à¥¬¥­¨ O(1).
ˆ­®£¤ ¬®¦­® áíª®­®¬¨âì ¬¥áâ®, § ¯¨áë¢ ï ¢ â ¡«¨æã T ­¥ 㪠§ ⥫¨ ­ í«¥¬¥­âë ¬­®¦¥á⢠, á ¬¨ íâ¨ í«¥¬¥­âë. Œ®¦­® ®¡®©â¨áì ¨ ¡¥§ ®â¤¥«ì­®£® ¯®«ï "ª«îç": ª«î箬 á«ã¦¨â ¨­¤¥ªá ¢ ¬ áᨢ¥. ‚¯à®ç¥¬, ¥á«¨ ¬ë ®¡å®¤¨¬áï ¡¥§ ª«î祩 ¨ 㪠§ ⥫¥©, â® ­ ¤®
¨¬¥âì ᯮᮡ 㪠§ âì, çâ® ¤ ­­ ï ¯®§¨æ¨ï ᢮¡®¤­ .
“¯à ¦­¥­¨ï
Ž¯¨è¨â¥ ¯à®æ¥¤ãàã ¤«ï ­ 宦¤¥­¨ï ­ ¨¡®«ì襣® í«¥¬¥­â ¤¨­ ¬¨ç¥áª®£® ¬­®¦¥á⢠, ¯à¥¤áâ ¢«¥­­®£® ¢ ¢¨¤¥ â ¡«¨æë
á ¯àאַ© ¤à¥á 樥©. Š ª®¢® ¢à¥¬ï à ¡®âë í⮩ ¯à®æ¥¤ãàë ¢ åã¤12.1-1
•¥è-â ¡«¨æë
219
襬 á«ãç ¥?
12.1-2 ¨â®¢ë© ¢¥ªâ®à (bit vector) | íâ® ¬ áᨢ ¡¨â®¢ (­ã«¥© ¨
¥¤¨­¨æ). ¨â®¢ë© ¢¥ªâ®à ¤«¨­ë m § ­¨¬ ¥â §­ ç¨â¥«ì­® ¬¥­ìè¥
¬¥áâ , 祬 ¬ áᨢ ¨§ m 㪠§ ⥫¥©. Š ª, ¯®«ì§ãïáì ¡¨â®¢ë¬ ¢¥ªâ®à®¬, ॠ«¨§®¢ âì ¤¨­ ¬¨ç¥áª®¥ ¬­®¦¥á⢮, á®áâ®ï饥 ¨§ à §«¨ç­ëå í«¥¬¥­â®¢ ¨ ­¥ ᮤ¥à¦ 饥 ¤®¯®«­¨â¥«ì­ëå ¤ ­­ëå? ‘«®¢ à­ë¥ ®¯¥à 樨 ¤®«¦­ë ¢ë¯®«­ïâìáï § ¢à¥¬ï O(1).
12.1-3 Š ª ॠ«¨§®¢ âì â ¡«¨æã á ¯àאַ© ¤à¥á 樥©, ¢ ª®â®à®©
ª«îç¨ à §«¨ç­ëå í«¥¬¥­â®¢ ¬®£ãâ ᮢ¯ ¤ âì, á ¬¨ í«¥¬¥­âë ¬®£ãâ ᮤ¥à¦ âì ¤®¯®«­¨â¥«ì­ë¥ ¤ ­­ë¥? Ž¯¥à 樨 ¤®¡ ¢«¥­¨ï, 㤠«¥­¨ï ¨ ¯®¨áª ¤®«¦­ë ¢ë¯®«­ïâìáï § ¢à¥¬ï O(1) (­¥ § ¡ã¤ìâ¥,
çâ® à£ã¬¥­â®¬ ¯à®æ¥¤ãàë 㤠«¥­¨ï Delete ï¥âáï 㪠§ ⥫ì
­ 㤠«ï¥¬ë© í«¥¬¥­â, ­¥ ª«îç).
12.1-4? à¥¤¯®«®¦¨¬, çâ® ­ ¬ ­ ¤® ॠ«¨§®¢ âì ¤¨­ ¬¨ç¥áª®¥
¬­®¦¥á⢮, ¯®¤¤¥à¦¨¢ î饥 á«®¢ à­ë¥ ®¯¥à 樨, ­ ¡ §¥ ®ç¥­ì
¡®«ì讣® ¬ áᨢ . ¥à¢®­ ç «ì­® ¢ ¬ áᨢ¥ ¬®¦¥â ¡ëâì § ¯¨á ­®
çâ®-â®, ­¥ ¨¬¥î饥 ®â­®è¥­¨¥ ª ­ 襩 § ¤ ç¥, ­® ¬ áᨢ â ª®©
¡®«ì让, çâ® ¯à¥¤¢ à¨â¥«ì­® ®ç¨é âì ¥£® ­¥¯à ªâ¨ç­®. Š ª ¢ â ª¨å ãá«®¢¨ïå ॠ«¨§®¢ âì â ¡«¨æã á ¯àאַ© ¤à¥á 樥©? Š ¦¤ ï
§ ¯¨áì ¤®«¦­ § ­¨¬ âì ¬¥áâ® à §¬¥à®¬ O(1), ®¯¥à 樨 ¤®¡ ¢«¥­¨ï, 㤠«¥­¨ï ¨ ¯®¨áª ¤®«¦­ë ¢ë¯®«­ïâìáï § ¢à¥¬ï O(1), ¢à¥¬ï
­ ¨­¨æ¨ «¨§ æ¨î áâàãªâãàë ¤ ­­ëå â ª¦¥ ¤®«¦­® ¡ëâì à ¢­®
O(1). (“ª § ­¨¥: çâ®¡ë ¨¬¥âì ¢®§¬®¦­®áâì 㧭 âì, ¨¬¥¥â «¨ ¤ ­­ë© í«¥¬¥­â ¬ áᨢ ®â­®è¥­¨¥ ª ­ 襩 áâàãªâãॠ¤ ­­ëå, § ¢¥¤¨â¥ á⥪, à §¬¥à ª®â®à®£® à ¢¥­ ª®«¨ç¥áâ¢ã § ¯¨á¥© ¢ â ¡«¨æ¥).
12.2 •¥è-â ¡«¨æë
àï¬ ï ¤à¥á æ¨ï ®¡« ¤ ¥â ®ç¥¢¨¤­ë¬ ­¥¤®áâ ⪮¬: ¥á«¨ ¬­®¦¥á⢮ U ¢á¥¢®§¬®¦­ëå ª«î祩 ¢¥«¨ª®, â® åà ­¨âì ¢ ¯ ¬ï⨠¬ áᨢ T à §¬¥à®¬ jU j ­¥¯à ªâ¨ç­®, â® ¨ ­¥¢®§¬®¦­®. Šà®¬¥ ⮣®,
¥á«¨ ç¨á«® ॠ«ì­® ¯à¨áãâáâ¢ãîé¨å ¢ â ¡«¨æ¥ § ¯¨á¥© ¬ «® ¯®
áà ¢­¥­¨î á jU j, â® ¬­®£® ¯ ¬ï⨠âà â¨âáï §àï.
…᫨ ª®«¨ç¥á⢮ § ¯¨á¥© ¢ â ¡«¨æ¥ áãé¥á⢥­­® ¬¥­ìè¥, 祬 ª®«¨ç¥á⢮ ¢á¥¢®§¬®¦­ëå ª«î祩, â® å¥è-â ¡«¨æ § ­¨¬ ¥â £®à §¤®
¬¥­ìè¥ ¬¥áâ , 祬 â ¡«¨æ á ¯àאַ© ¤à¥á 樥©. ˆ¬¥­­®, å¥èâ ¡«¨æ âॡã¥â ¯ ¬ï⨠®¡êñ¬®¬ (jK j), £¤¥ K | ¬­®¦¥á⢮ § ¯¨á¥©, ¯à¨ í⮬ ¢à¥¬ï ¯®¨áª ¢ å¥è-â ¡«¨æ¥ ¯®-¯à¥¦­¥¬ã ¥áâì O(1)
(¥¤¨­á⢥­­®¥ "­®" ¢ ⮬, çâ® ­ ᥩ à § íâ® | ®æ¥­ª ¢ á।­¥¬,
­¥ ¢ åã¤è¥¬ á«ãç ¥, ¤ ¨ ⮠⮫쪮 ¯à¨ ®¯à¥¤¥«ñ­­ëå ¯à¥¤¯®«®¦¥­¨ïå).
‚ â® ¢à¥¬ï ª ª ¯à¨ ¯àאַ© ¤à¥á 樨 í«¥¬¥­âã á ª«î箬 k ®â-
220
ƒ« ¢ 12 •¥è-â ¡«¨æë
¥à¥¢®¤ë ­ ¤¯¨á¥© ­ á ¬®© ª à⨭ª¥: universe of keys | ¢á¥¢®§¬®¦­ë¥ ª«îç¨, actual keys | ¨á¯®«ì§ã¥¬ë¥ ª«îç¨
¨áã­®ª 12.2 ˆá¯®«ì§®¢ ­¨¥ å¥è-ä㭪樨 ¤«ï ®â®¡à ¦¥­¨ï ª«î祩 ¢ ¯®§¨æ¨¨
å¥è-â ¡«¨æë. •¥è-§­ 祭¨ï ª«î祩 k2 ¨ k5 ᮢ¯ ¤ îâ | ¨¬¥¥â ¬¥áâ® ª®««¨§¨ï.
¢®¤¨âáï ¯®§¨æ¨ï ­®¬¥à k, ¯à¨ å¥è¨à®¢ ­¨¨ íâ®â í«¥¬¥­â § ¯¨áë¢ ¥âáï ¢ ¯®§¨æ¨î ­®¬¥à h(k) ¢ å¥è-â ¡«¨æ¥ (hash table) T [0 : :m ; 1],
£¤¥
h : U ! f0; 1; : : :; m ; 1g
| ­¥ª®â®à ï äã­ªæ¨ï, ­ §ë¢ ¥¬ ï å¥è-ä㭪樥© (hash function).
—¨á«® h(k) ­ §ë¢ îâ å¥è-§­ 祭¨¥¬ (hash value) ª«îç k. ˆ¤¥ï å¥è¨à®¢ ­¨ï ¯®ª § ­ ­ à¨á. 12.2: ¯®«ì§ãïáì ¬ áᨢ®¬ ¤«¨­ë m, ­¥ jU j, ¬ë íª®­®¬¨¬ ¯ ¬ïâì.
à®¡«¥¬ , ®¤­ ª®, ¢ ⮬, çâ® å¥è-§­ 祭¨ï ¤¢ãå à §­ëå ª«î祩
¬®£ãâ ᮢ¯ áâì. ‚ â ª¨å á«ãç ïå £®¢®àïâ, çâ® á«ã稫 áì ª®««¨§¨ï,
¨«¨ á⮫ª­®¢¥­¨¥ (collision). Š áç áâìî, í⠯஡«¥¬ à §à¥è¨¬ :
å¥è-äã­ªæ¨ï¬¨ ¬®¦­® ¯®«ì§®¢ âìáï ¨ ¯à¨ ­ «¨ç¨¨ á⮫ª­®¢¥­¨©.
•®â¥«®áì ¡ë ¢ë¡à âì å¥è-äã­ªæ¨î â ª, çâ®¡ë ª®««¨§¨¨ ¡ë«¨
­¥¢®§¬®¦­ë. ® ¯à¨ jU j > m ­¥¨§¡¥¦­® áãé¥áâ¢ãîâ à §­ë¥ ª«îç¨,
¨¬¥î騥 ®¤­® ¨ â® ¦¥ å¥è-§­ 祭¨¥. ’ ª çâ® ¬®¦­® «¨èì ­ ¤¥ïâìáï, çâ® ¤«ï ä ªâ¨ç¥áª¨ ¯à¨áãâáâ¢ãîé¨å ¢ ¬­®¦¥á⢥ ª«î祩
ª®««¨§¨© ¡ã¤¥â ­¥¬­®£®, ¨ ¡ëâì £®â®¢ë¬¨ ®¡à ¡ âë¢ âì ⥠ª®««¨§¨¨, ª®â®àë¥ ¢áñ-â ª¨ ¯à®¨§®©¤ãâ.
‚롨à ï å¥è-äã­ªæ¨î, ¬ë ®¡ëç­® ­¥ §­ ¥¬ § à ­¥¥, ª ª¨¥
¨¬¥­­® ª«îç¨ ¡ã¤ãâ åà ­¨âìáï. ® ­ ¢á直© á«ãç © à §ã¬­® ᤥ« âì ᤥ« âì å¥è-äã­ªæ¨î ¢ ª ª®¬-â® á¬ëá«¥ "á«ãç ©­®©", å®à®è®
¯¥à¥¬¥è¨¢ î饩 ª«îç¨ ¯® ï祩ª ¬ ( ­£«¨©áª¨© £« £®« \to hash"
®§­ ç ¥â "¬¥«ª® ¯®à㡨âì, ¯®¬¥è¨¢ ï").  §ã¬¥¥âáï, "á«ãç ©­ ï"
å¥è-äã­ªæ¨ï ¤®«¦­ ¢áñ ¦¥ ¡ëâì ¤¥â¥à¬¨­¨à®¢ ­­®© ¢ ⮬ á¬ëá«¥, çâ® ¯à¨ ¥¥ ¯®¢â®à­ëå ¢ë§®¢ å á ®¤­¨¬ ¨ ⥬ ¦¥ à£ã¬¥­â®¬
®­ ¤®«¦­ ¢®§¢à é âì ®¤­® ¨ â® ¦¥ å¥è-§­ 祭¨¥.
‚ í⮬ à §¤¥«¥ ¬ë à áᬮâਬ ¯à®á⥩訩 ᯮᮡ ®¡à ¡®âª¨
(ª ª £®¢®àïâ, "à §à¥è¥­¨ï") ª®««¨§¨© á ¯®¬®éìî 楯®ç¥ª. „à㣮©
ᯮᮡ | ®âªàëâ ï ¤à¥á æ¨ï | à áᬠâਢ ¥âáï ¢ à §¤¥«¥ 12.4.
•¥è-â ¡«¨æë
221
¥à¥¢®¤ë ­ ¤¯¨á¥© ­ á ¬®© ª à⨭ª¥: universe of keys | ¢á¥¢®§¬®¦­ë¥ ª«îç¨, actual keys | ¨á¯®«ì§ã¥¬ë¥ ª«îç¨
¨áã­®ª 12.3  §à¥è¥­¨¥ ª®««¨§¨© á ¯®¬®éìî 楯®ç¥ª. ‚ ¯®§¨æ¨¨ T [j ] åà ­¨âáï 㪠§ â¥«ì ­ ᯨ᮪ í«¥¬¥­â®¢ á å¥è-§­ 祭¨¥¬ j .  ¯à¨¬¥à, h(k1 ) =
h(k4 ) ¨ h(k5 ) = h(k2 ) = h(k7 ).
 §à¥è¥­¨¥ ª®««¨§¨© á ¯®¬®éìî 楯®ç¥ª
’¥å­®«®£¨ï á楯«¥­¨ï í«¥¬¥­â®¢ (chaining) á®á⮨⠢ ⮬, çâ®
í«¥¬¥­âë ¬­®¦¥á⢠, ª®â®àë¬ á®®â¢¥âáâ¢ã¥â ®¤­® ¨ â® ¦¥ å¥è§­ 祭¨¥, á¢ï§ë¢ îâáï ¢ 楯®çªã-ᯨ᮪ (à¨á. 12.3). ‚ ¯®§¨æ¨¨ ­®¬¥à j åà ­¨âáï 㪠§ â¥«ì ­ £®«®¢ã ᯨ᪠â¥å í«¥¬¥­â®¢, ã ª®â®àëå å¥è-§­ 祭¨¥ ª«îç à ¢­® j ; ¥á«¨ â ª¨å í«¥¬¥­â®¢ ¢ ¬­®¦¥á⢥ ­¥â, ¢ ¯®§¨æ¨¨ j § ¯¨á ­ nil.
Ž¯¥à 樨 ¤®¡ ¢«¥­¨ï, ¯®¨áª ¨ 㤠«¥­¨ï ॠ«¨§ãîâáï «¥£ª®:
Chained-Hash-Insert(T; x)
¤®¡ ¢¨âì x ¢ £®«®¢ã ᯨ᪠T [h(key[x])]
Chained-Hash-Search(T; k)
­ ©â¨ í«¥¬¥­â á ª«î箬 k ¢ ᯨ᪥ T [h(k)]
Chained-Hash-Delete(T; x)
㤠«¨âì x ¨§ ᯨ᪠T [h(key[x])]
Ž¯¥à æ¨ï ¤®¡ ¢«¥­¨ï à ¡®â ¥â ¢ åã¤è¥¬ á«ãç ¥ § ¢à¥¬ï O(1).
Œ ªá¨¬ «ì­®¥ ¢à¥¬ï à ¡®âë ®¯¥à 樨 ¯®¨áª ¯à®¯®à樮­ «ì­®
¤«¨­¥ ᯨ᪠(­¨¦¥ ¬ë à áᬮâਬ íâ®â ¢®¯à®á ¯®¤à®¡­¥¥).  ª®­¥æ, 㤠«¥­¨¥ í«¥¬¥­â ¬®¦­® ¯à®¢¥á⨠§ ¢à¥¬ï O(1) | ¯à¨ ãá«®¢¨¨, ç⮠ᯨ᪨ ¤¢ãáâ®à®­­¥ á¢ï§ ­ë (¥á«¨ ᯨ᪨ á¢ï§ ­ë ®¤­®áâ®à®­­¥, â® ¤«ï 㤠«¥­¨ï í«¥¬¥­â x ­ ¤® ¯à¥¤¢ à¨â¥«ì­® ­ ©â¨
¥£® ¯à¥¤è¥á⢥­­¨ª , ¤«ï 祣® ­¥®¡å®¤¨¬ ¯®¨áª ¯® ᯨáªã; ¢ â ª®¬
á«ãç ¥ á⮨¬®áâì 㤠«¥­¨ï ¨ ¯®¨áª ¯à¨¬¥à­® ®¤¨­ ª®¢ë).
222
ƒ« ¢ 12 •¥è-â ¡«¨æë
€­ «¨§ å¥è¨à®¢ ­¨ï á 楯®çª ¬¨
‚ í⮬ à §¤¥«¥ ¬ë ®æ¥­¨¬ ¢à¥¬ï à ¡®âë ®¯¥à 権 ¤«ï å¥è¨à®¢ ­¨ï á 楯®çª ¬¨.
ãáâì T | å¥è-â ¡«¨æ á m ¯®§¨æ¨ï¬¨, ¢ ª®â®àãî § ­¥á¥­® n
í«¥¬¥­â®¢. Š®íää¨æ¨¥­â®¬ § ¯®«­¥­¨ï (load factor) â ¡«¨æë ­ §ë¢ ¥âáï ç¨á«® = n=m (íâ® ç¨á«® ¬®¦¥â ¡ëâì ¨ ¬¥­ìè¥, ¨ ¡®«ìè¥
¥¤¨­¨æë). Œë ¡ã¤¥¬ ®æ¥­¨¢ âì á⮨¬®áâì ®¯¥à 権 ¢ â¥à¬¨­ å .
‚ åã¤è¥¬ á«ãç ¥ å¥è¨à®¢ ­¨¥ á 楯®çª ¬¨ ¢¥¤¥â á¥¡ï ®â¢à â¨â¥«ì­®: ¥á«¨ å¥è-§­ 祭¨ï ¢á¥å n ª«î祩 ᮢ¯ ¤ îâ, â® â ¡«¨æ ᢮¤¨âáï ª ®¤­®¬ã ᯨáªã ¤«¨­ë n, ¨ ­ ¯®¨áª ¡ã¤¥â âà â¨âìáï
â® ¦¥ ¢à¥¬ï (n), çâ® ¨ ­ ¯®¨áª ¢ ᯨ᪥, ¯«îá ¥éñ ¢à¥¬ï ­ ¢ëç¨á«¥­¨¥ å¥è-ä㭪樨. Š®­¥ç­®, ¢ â ª®© á¨âã 樨 å¥è¨à®¢ ­¨¥
¡¥áá¬ëá«¥­­®.
‘।­ïï á⮨¬®áâì ¯®¨áª § ¢¨á¨â ®â ⮣®, ­ ᪮«ìª® à ¢­®¬¥à­® å¥è-äã­ªæ¨ï à á¯à¥¤¥«ï¥â å¥è-§­ 祭¨ï ¯® ¯®§¨æ¨ï¬ â ¡«¨æë. ‚®¯à®áã ® ⮬, ª ª ¤®¡¨¢ âìáï í⮩ à ¢­®¬¥à­®áâ¨, ¯®á¢ïéñ­ à §¤¥« 12.3; ¯®ª ¦¥ ¡ã¤¥¬ ãá«®¢­® ¯à¥¤¯®« £ âì, çâ® ª ¦¤ë© ¤ ­­ë© í«¥¬¥­â ¬®¦¥â ¯®¯ áâì ¢ «î¡ãî ¨§ m ¯®§¨æ¨© â ¡«¨æë á à ¢­®© ¢¥à®ïâ­®áâìî ¨ ­¥§ ¢¨á¨¬® ®â ⮣®, ªã¤ ¯®¯ «
¤à㣮© í«¥¬¥­â. Œë ¡ã¤¥¬ ­ §ë¢ âì íâ® ¯à¥¤¯®«®¦¥­¨¥ £¨¯®â¥§®©
"à ¢­®¬¥à­®£® å¥è¨à®¢ ­¨ï" (simple uniform hashing).
ã¤¥¬ áç¨â âì, çâ® ¤«ï ¤ ­­®£® ª«îç k ¢ëç¨á«¥­¨¥ å¥è§­ 祭¨ï h(k), è £ ¯® ᯨáªã ¨ áà ¢­¥­¨¥ ª«î祩 âॡã¥â 䨪á¨à®¢ ­­®£® ¢à¥¬¥­¨, â ª çâ® ¢à¥¬ï ¯®¨áª í«¥¬¥­â á ª«î箬 k
«¨­¥©­® § ¢¨á¨â ®â ª®«¨ç¥áâ¢ í«¥¬¥­â®¢ ¢ ᯨ᪥ T [h(k)], ª®â®àë¥ ¬ë ¯à®á¬ âਢ ¥¬ ¢ ¯à®æ¥áᥠ¯®¨áª . ã¤¥¬ à §«¨ç âì ¤¢ á«ãç ï: ¢ ¯¥à¢®¬ á«ãç ¥ ¯®¨áª ®ª ­ç¨¢ ¥âáï ­¥ã¤ 祩 (í«¥¬¥­â á
ª«î箬 k ¢ ᯨ᪥ ­¥â), ¢® ¢â®à®¬ ¯®¨áª ãᯥ襭 | í«¥¬¥­â á âà¥¡ã¥¬ë¬ ª«î箬 ®¡­ à㦨¢ ¥âáï.
’¥®à¥¬ 12.1. ãáâì T | å¥è-â ¡«¨æ á 楯®çª ¬¨, ¨¬¥îé ï ª®íää¨æ¨¥­â § ¯®«­¥­¨ï . à¥¤¯®«®¦¨¬, çâ® å¥è¨à®¢ ­¨¥ à ¢­®¬¥à­®. ’®£¤ ¯à¨ ¯®¨áª¥ í«¥¬¥­â , ®âáãâáâ¢ãî饣® ¢ â ¡«¨æ¥,
¡ã¤¥â ¯à®á¬®â७® ¢ á।­¥¬ í«¥¬¥­â®¢ â ¡«¨æë, á।­¥¥
¢à¥¬ï â ª®£® ¯®¨áª (¢ª«îç ï ¢à¥¬ï ­ ¢ëç¨á«¥­¨¥ å¥è-ä㭪樨)
¡ã¤¥â à ¢­® (1 + ).
„®ª § ⥫ìá⢮. ®áª®«ìªã ¢ ¯à¥¤¯®«®¦¥­¨¨ à ¢­®¬¥à­®£® å¥è¨à®¢ ­¨ï ¢á¥ ¯®§¨æ¨¨ â ¡«¨æë ¤«ï ¤ ­­®£® ª«îç à ¢­®¢¥à®ïâ­ë,
á।­¥¥ ¢à¥¬ï ¯®¨áª ®âáãâáâ¢ãî饣® í«¥¬¥­â ᮢ¯ ¤ ¥â á® á।­¨¬ ¢à¥¬¥­¥¬ ¯®«­®£® ¯à®á¬®âà ®¤­®£® ¨§ m ᯨ᪮¢, â® ¥áâì ¯à®¯®à樮­ «ì­® á।­¥© ¤«¨­¥ ­ è¨å m ᯨ᪮¢. â á।­ïï ¤«¨­ ¥áâì n=m = , ®âªã¤ ¯®«ãç ¥¬ ¯¥à¢®¥ ã⢥ত¥­¨¥ ⥮६ë; ¢â®à®¥ ã⢥ত¥­¨¥ ¯®«ãç¨âáï, ¥á«¨ ¤®¡ ¢¨âì ¢à¥¬ï (1) ­ ¢ëç¨á«¥­¨¥ å¥è-§­ 祭¨ï.
•¥è-â ¡«¨æë
223
’¥®à¥¬ 12.2. à¨ à ¢­®¬¥à­®¬ å¥è¨à®¢ ­¨¨ á।­¥¥ ¢à¥¬ï ãᯥ譮£® ¯®¨áª ¢ å¥è-â ¡«¨æ¥ á 楯®çª ¬¨ ¥áâì (1 + ), £¤¥ |
ª®íää¨æ¨¥­â § ¯®«­¥­¨ï.
„®ª § ⥫ìá⢮. •®âï ä®à¬ã«¨à®¢ª í⮩ â¥®à¥¬ë ¯®å®¦ ­ ¯à¥¤ë¤ãéãî, á¬ëá« ã⢥ত¥­¨ï ­¥áª®«ìª® ¨­®©. ‚ ¯à¥¤ë¤ã饩
⥮६¥ ¬ë à áᬠâਢ «¨ ¯à®¨§¢®«ì­ãî â ¡«¨æã á ª®íää¨æ¨¥­â®¬ § ¯®«­¥­¨ï ¨ ®æ¥­¨¢ «¨ á।­¥¥ ç¨á«® ¤¥©á⢨©, ­¥®¡å®¤¨¬ëå ¤«ï ¯®¨áª á«ãç ©­®£® í«¥¬¥­â , à ¢­®¢¥à®ïâ­® ¯®¯ ¤ î饣®
¢® ¢á¥ ï祩ª¨ â ¡«¨æë.
‚ í⮩ ⥮६¥ â ª ¤¥« âì ­¥«ì§ï: ¥á«¨ ¬ë ¢®§ì¬ñ¬ ¯à®¨§¢®«ì­ãî â ¡«¨æã ¨, áç¨â ï ¢á¥ ¥ñ í«¥¬¥­âë à ¢­®¢¥à®ïâ­ë¬¨, ¡ã¤¥¬ ¨áª âì á।­¥¥ ¢à¥¬ï ¯®¨áª á«ãç ©­® ¢ë¡à ­­®£® ¨§ ­¨å, â® ®æ¥­ª¨
¢¨¤ (1 + ) ­¥ ¯®«ãç¨âáï (ª®­âà¯à¨¬¥à: â ¡«¨æ , ¢ ª®â®à®© ¢á¥
í«¥¬¥­âë ¯®¯ «¨ ¢ ®¤¨­ ᯨ᮪)
”®à¬ã«¨à®¢ª ¯®¤à §ã¬¥¢ ¥â ¤¢®©­®¥ ãá।­¥­¨¥: á­ ç « ¬ë
à áᬠâਢ ¥¬ á«ãç ©­® ¢ë¡à ­­ãî ¯®á«¥¤®¢ ⥫쭮áâì í«¥¬¥­â®¢, ¤®¡ ¢«ï¥¬ëå ¢ â ¡«¨æã, ¯à¨çñ¬ ­ ª ¦¤®¬ è £¥ ¢á¥ §­ 祭¨ï ª«îç à ¢­®¢¥à®ïâ­ë ¨ è £¨ ­¥§ ¢¨á¨¬ë, § ⥬ ¢ ¯®«ã祭­®© â ¡«¨æ¥ ¢ë¡¨à ¥¬ í«¥¬¥­â ¤«ï ¯®¨áª , áç¨â ï ¢á¥ ¥ñ í«¥¬¥­âë
à ¢­®¢¥à®ïâ­ë¬¨.
®á¬®âਬ ­ á¨âã æ¨î ¢ â®â ¬®¬¥­â, ª®£¤ â ¡«¨æ 㦥 ¯®áâ஥­ , ­® á«ãç ©­ë© í«¥¬¥­â ¤«ï ¯®¨áª ¥éñ ­¥ ¢ë¡à ­. —¥¬ã
à ¢­® á।­¥¥ ¢à¥¬ï ¯®¨áª , ãá।­ñ­­®¥ ¯® ¢á¥¬ n í«¥¬¥­â ¬ â ¡«¨æë?  ¤® á«®¦¨âì ¯®§¨æ¨¨ ¢á¥å í«¥¬¥­â®¢ ¢ ᢮¨å á¯¨áª å ¨
¯®¤¥«¨âì á㬬㠭 n (®¡é¥¥ ç¨á«® í«¥¬¥­â®¢).
…᫨ ¯à¥¤áâ ¢¨âì ᥡ¥, çâ® ¯à¨ § ¯®«­¥­¨¨ â ¡«¨æë í«¥¬¥­âë
¤®¯¨áë¢ «¨áì ¢ ª®­¥æ ᮮ⢥âáâ¢ãîé¨å ᯨ᪮¢ (á¬. ã¯à. 12.2-3),
⮠㯮¬ï­ãâ ï á㬬 ¯® ¯®à浪㠢¥«¨ç¨­ë à ¢­ ®¡é¥¬ã ç¨á«®
®¯¥à 権, ¢ë¯®«­¥­­ëå ¯à¨ § ¯®«­¥­¨¨ â ¡«¨æë (¯®áª®«ìªã ¯à¨
¤®¡ ¢«¥­¨¨ ¢ ª®­¥æ ¨ ¯à¨ ¯®¨áª¥ ¢ë¯®«­ï¥âáï ®¤­® ¨ â® ¦¥ ª®«¨ç¥á⢮ ¤¥©á⢨©).
’¥¯¥àì ¢á¯®¬­¨¬ ®¡ ãá।­¥­¨¨ ¯® à §«¨ç­ë¬ ¢®§¬®¦­®áâï¬ ¢
¯à®æ¥áᥠ¯®áâ஥­¨ï â ¡«¨æë. à¨ ¤®¡ ¢«¥­¨¨ ¢ ­¥ñ i-£® í«¥¬¥­â ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ç¨á« ¤¥©á⢨© à ¢­® (1 + (i ; 1)=m)
(á¬. ¤®ª § ⥫ìá⢮ ¯à¥¤ë¤ã饩 ⥮६ë), ¨ ¯®â®¬ã ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ®¡é¥£® ç¨á« ¤¥©á⢨© ¯à¨ § ¯®«­¥­¨¨ â ¡«¨æë,
¤¥«ñ­­®¥ ­ n, ¥áâì
n
X
1
1+ i;1
n i=1
m
!
!
n
X
1
= 1+
(i ; 1) =
nm i=1
1
(
n
;
1)
n
= 1 + nm 2
=
= 1 + 2 ; 21m = (1 + ):
224
ƒ« ¢ 12 •¥è-â ¡«¨æë
…᫨ ª®«¨ç¥á⢮ ¯®§¨æ¨© ¢ å¥è-â ¡«¨æ¥ áç¨â âì ¯à®¯®à樮­ «ì­ë¬ ç¨á«ã í«¥¬¥­â®¢ ¢ â ¡«¨æ¥, â® ¨§ ¤®ª § ­­ëå ⥮६ ¢ë⥪ ¥â, çâ® á।­¥¥ ¢à¥¬ï ­ ¯®¨áª (¢ ®¯â¨¬¨áâ¨ç¥áª¨å ¯à¥¤¯®«®¦¥­¨ïå ® à á¯à¥¤¥«¥­¨¨ ¢¥à®ïâ­®á⥩) ¥áâì O(1). ‚ á ¬®¬ ¤¥«¥, ¥á«¨
n = O(m), â® = n=m = O(1) ¨ O(1 + ) = O(1). ®áª®«ìªã
á⮨¬®áâì ¤®¡ ¢«¥­¨ï ¢ å¥è-â ¡«¨æã á 楯®çª ¬¨ ¥áâì O(1) (¤ ¦¥
¯à¨ ¤®¡ ¢«¥­¨¨ ¢ ª®­¥æ, á¬. ã¯à. 12.2-3), á⮨¬®áâì 㤠«¥­¨ï í«¥¬¥­â ¥áâì O(1) (¬ë áç¨â ¥¬, ç⮠ᯨ᪨ ¤¢ãáâ®à®­­¥ á¢ï§ ­ë),
á।­¥¥ ¢à¥¬ï ¢ë¯®«­¥­¨ï «î¡®© á«®¢ à­®© ®¯¥à 樨 (¢ ¯à¥¤¯®«®¦¥­¨¨ à ¢­®¬¥à­®£® å¥è¨à®¢ ­¨ï) ¥áâì O(1).
“¯à ¦­¥­¨ï
12.2-1 ãáâì h | á«ãç ©­ ï å¥è-äã­ªæ¨ï, ᮯ®áâ ¢«ïîé ï á ª ¦¤ë¬ ¨§ n à §«¨ç­ëå ª«î祩 fk1; k2; : : :; kng ®¤­ã ¨§ m ¯®§¨æ¨©
¢ â ¡«¨æ¥. Š ª®¢® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ç¨á« ª®««¨§¨© (â®ç­¥¥, ç¨á« ¯ à (i; j ), ¤«ï ª®â®àëå çâ® h(ki) = h(kj ))?
12.2-2 Š ª ¡ã¤¥â ¢ë£«ï¤¥âì å¥è-â ¡«¨æ á 楯®çª ¬¨ ¯®á«¥
⮣®, ª ª ¢ ­¥ñ ¯®á«¥¤®¢ ⥫쭮 ¯®¬¥á⨫¨ í«¥¬¥­âë á ª«îç ¬¨
5; 28; 19; 15; 20; 33; 12; 17; 10 (¢ 㪠§ ­­®¬ ¯®à浪¥)? —¨á«® ¯®§¨æ¨©
¢ â ¡«¨æ¥ à ¢­® 9, å¥è-äã­ªæ¨ï ¨¬¥¥â ¢¨¤ h(k) = k mod 9.
12.2-3 ®ª ¦¨â¥, çâ® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢à¥¬¥­¨ ¤®¡ ¢«¥­¨ï ­®¢®£® í«¥¬¥­â (¢ ¯à¥¤¯®«®¦¥­¨¨ à ¢­®¬¥à­®£® å¥è¨à®¢ ­¨ï) ¥áâì O(1 + ), ¥á«¨ ¬ë ¤®¡ ¢«ï¥¬ ­®¢ë© í«¥¬¥­â ¢ ª®­¥æ
ᮮ⢥âáâ¢ãî饩 楯®çª¨.
12.2-4 à®ä¥áá®à ¯à¥¤¯®« £ ¥â, çâ® å¥è¨à®¢ ­¨¥ á 楯®çª ¬¨ ¡ã¤¥â £®à §¤® íä䥪⨢­¥¥, ¥á«¨ ᯨ᪨ í«¥¬¥­â®¢ á ¤ ­­ë¬ å¥è§­ 祭¨¥¬ ¡ã¤ãâ 㯮à冷祭­ë¬¨. Š ª íâ®â ¯®¤å®¤ ¯®¢«¨ï¥â ­ á⮨¬®áâì ãᯥ譮£® ¯®¨áª , ¯®¨áª ®âáãâáâ¢ãî饣® í«¥¬¥­â , ¤®¡ ¢«¥­¨ï, 㤠«¥­¨ï?
12.2-5  §à ¡®â ©â¥ ॠ«¨§ æ¨î å¥è-â ¡«¨æë á 楯®çª ¬¨, ¢ ª®â®à®© § ¯¨á¨ åà ­ïâáï ¢­ãâà¨ á ¬®© å¥è-â ¡«¨æë (­¥¨á¯®«ì§ã¥¬ë¥ ¯®§¨æ¨¨ á¢ï§ë¢ îâáï ¢ ᯨ᮪ ᢮¡®¤­ëå ¬¥áâ). ‘ç¨â ©â¥, çâ®
¢ ª ¦¤®© ¯®§¨æ¨¨ ¬®£ãâ åà ­¨âìáï «¨¡® ä« £ ¨ ¤¢ 㪠§ ⥫ï, «¨¡®
ä« £, 㪠§ â¥«ì ¨ í«¥¬¥­â. ‚ᥠ᫮¢ à­ë¥ ®¯¥à 樨, â ª¦¥ ®¯¥à 樨 ¯® ¢ë¤¥«¥­¨î ¨ ®á¢®¡®¦¤¥­¨î ¬¥áâ , ¤®«¦­ë ¢ë¯®«­ïâìáï
§ ¢à¥¬ï O(1). Ž¡ï§ ⥫쭮 «¨ ¤¥« âì ᯨ᮪ ᢮¡®¤­ëå ¬¥áâ ¤¢ãáâ®à®­­¥ á¢ï§ ­­ë¬?
12.2-6 ãáâì ®¡é¥¥ ç¨á«® ¢®§¬®¦­ëå ª«î祩 (à §¬¥à ¬­®¦¥á⢠U ) ¯à¥¢®á室¨â mn, £¤¥ m | ª®«¨ç¥á⢮ å¥è-§­ 祭¨©. ®ª ¦¨â¥,
•¥è-ä㭪樨
225
çâ® áãé¥áâ¢ã¥â ­¥ ¬¥­¥¥ n ª«î祩 á ®¤­¨¬ ¨ ⥬ ¦¥ å¥è-§­ 祭¨¥¬,
â ª çâ® ¢ åã¤è¥¬ á«ãç ¥ ¯®¨áª ¢ å¥è-â ¡«¨æ¥ á 楯®çª ¬¨ § ©¬¥â
¢à¥¬ï (n).
12.3 •¥è-ä㭪樨
‚ í⮬ à §¤¥«¥ ¬ë ®¡á㤨¬, 祣® ¬ë ¦¤ñ¬ ®â å®à®è¥© å¥èä㭪樨, § ⥬ à §¡¥àñ¬ âਠᯮᮡ ¯®áâ஥­¨ï å¥è-ä㭪権:
¤¥«¥­¨¥ á ®áâ ⪮¬, 㬭®¦¥­¨¥ ¨ ã­¨¢¥àá «ì­®¥ å¥è¨à®¢ ­¨¥.
Š ª®© ¤®«¦­ ¡ëâì å®à®è ï å¥è-äã­ªæ¨ï?
•®à®è ï å¥è-äã­ªæ¨ï ¤®«¦­ (¯à¨¡«¨¦¥­­®) 㤮¢«¥â¢®àïâì
¯à¥¤¯®«®¦¥­¨ï¬ à ¢­®¬¥à­®£® å¥è¨à®¢ ­¨ï: ¤«ï ®ç¥à¥¤­®£® ª«îç ¢á¥ m å¥è-§­ 祭¨© ¤®«¦­ë ¡ëâì à ¢­®¢¥à®ïâ­ë. —⮡ë íâ® ¯à¥¤¯®«®¦¥­¨¥ ¨¬¥«® á¬ëá«, 䨪á¨à㥬 à á¯à¥¤¥«¥­¨¥ ¢¥à®ïâ­®á⥩ P
­ ¬­®¦¥á⢥ U ; ¡ã¤¥¬ ¯à¥¤¯®« £ âì, çâ® ª«îç¨ ¢ë¡¨à îâáï ¨§ U
­¥§ ¢¨á¨¬® ¤à㣠®â ¤à㣠, ¨ ª ¦¤ë© à á¯à¥¤¥«ñ­ ¢ ᮮ⢥âá⢨¨
á P . ’®£¤ à ¢­®¬¥à­®¥ å¥è¨à®¢ ­¨¥ ®§­ ç ¥â, çâ®
X
P (k) = m1 ¤«ï j = 0; 1; : : :; m ; 1.
(12.1)
k : h(k)=j
Š ᮦ «¥­¨î, à á¯à¥¤¥«¥­¨¥ P ®¡ëç­® ­¥¨§¢¥áâ­®, â ª çâ® ¯à®¢¥à¨âì íâ® ­¥¢®§¬®¦­® (¤ ¨ ª«îç¨ ­¥ ¢á¥£¤ à §ã¬­® áç¨â âì ­¥§ ¢¨á¨¬ë¬¨).
ˆ§à¥¤ª à á¯à¥¤¥«¥­¨¥ P ¡ë¢ ¥â ¨§¢¥áâ­®. ãáâì, ­ ¯à¨¬¥à,
ª«îç¨ | á«ãç ©­ë¥ ¤¥©á⢨⥫ì­ë¥ ç¨á« , ­¥§ ¢¨á¨¬® ¨ à ¢­®¬¥à­® à á¯à¥¤¥«ñ­­ë¥ ­ ¨­â¥à¢ «¥ [0; 1). ‚ í⮬ á«ãç ¥ «¥£ª® ¢¨¤¥âì, çâ® å¥è-äã­ªæ¨ï h(k) = bkmc 㤮¢«¥â¢®àï¥â ãá«®¢¨î (12.1).
 ¯à ªâ¨ª¥ ¯à¨ ¢ë¡®à¥ å¥è-ä㭪権 ¯®«ì§ãîâáï à §«¨ç­ë¬¨
í¢à¨á⨪ ¬¨, ®á­®¢ ­­ë¬¨ ­ ᯥæ¨ä¨ª¥ § ¤ ç¨.  ¯à¨¬¥à, ª®¬¯¨«ïâ®à ï§ëª ¯à®£à ¬¬¨à®¢ ­¨ï åà ­¨â â ¡«¨æã ᨬ¢®«®¢, ¢ ª®â®à®© ª«îç ¬¨ ïîâáï ¨¤¥­â¨ä¨ª â®àë ¯à®£à ¬¬ë. — áâ® ¢ ¯à®£à ¬¬¥ ¨á¯®«ì§ã¥âáï ­¥áª®«ìª® ¯®å®¦¨å ¨¤¥­â¨ä¨ª â®à®¢ (­ ¯à¨¬¥à, pt ¨ pts). •®à®è ï å¥è-äã­ªæ¨ï ¡ã¤¥â áâ à âìáï, ç⮡ë å¥è§­ 祭¨ï ã â ª¨å ¯®å®¦¨å ¨¤¥­â¨ä¨ª â®à®¢ ¡ë«¨ à §«¨ç­ë.
Ž¡ëç­® áâ à îâáï ¯®¤®¡à âì å¥è-äã­ªæ¨î â ª¨¬ ®¡à §®¬,
çâ®¡ë ¥ñ ¯®¢¥¤¥­¨¥ ­¥ ª®à५¨à®¢ «® á à §«¨ç­ë¬¨ § ª®­®¬¥à­®áâﬨ, ª®â®àë¥ ¬®£ãâ ¢áâà¥â¨âìáï ¢ å¥è¨à㥬ëå ¤ ­­ëå.
 ¯à¨¬¥à, ®¯¨áë¢ ¥¬ë© ­¨¦¥ ¬¥â®¤ ¤¥«¥­¨ï á ®áâ ⪮¬ á®á⮨â
¢ ⮬, çâ® ¢ ª ç¥á⢥ å¥è-§­ 祭¨ï ¡¥àñâáï ®áâ ⮪ ®â ¤¥«¥­¨ï
ª«îç ­ ­¥ª®â®à®¥ ¯à®á⮥ ç¨á«®. …᫨ íâ® ¯à®á⮥ ç¨á«® ­¨ª ª
­¥ á¢ï§ ­® á ä㭪樥© à á¯à¥¤¥«¥­¨ï P , â® â ª®© ¬¥â®¤ ¤ ñâ
å®à®è¨¥ १ã«ìâ âë.
226
ƒ« ¢ 12 •¥è-â ¡«¨æë
‡ ¬¥â¨¬ ¢ § ª«î祭¨¥, çâ® ¨­®£¤ ¦¥« ⥫쭮, ç⮡ë å¥èäã­ªæ¨ï 㤮¢«¥â¢®àï« ãá«®¢¨ï¬, ¢ë室ï騬 § ¯à¥¤¥«ë âॡ®¢ ­¨ï à ¢­®¬¥à­®£® å¥è¨à®¢ ­¨ï.  ¯à¨¬¥à, ¬®¦­® áâ à âìáï,
ç⮡ë "¡«¨§ª¨¬" ¢ ª ª®¬-«¨¡® á¬ëá«¥ ª«îç ¬ ᮮ⢥âá⢮¢ «¨
"¤ «ñª¨¥" å¥è-§­ 祭¨ï (íâ® ®á®¡¥­­® ¦¥« ⥫쭮 ¯à¨ ¯®«ì§®¢ ­¨¨
®¯¨á ­­®© ¢ à §¤¥«¥ 12.4 «¨­¥©­®© ¯®á«¥¤®¢ ⥫쭮áâìî ¯à®¡).
Š«îç¨ ª ª ­ âãà «ì­ë¥ ç¨á« Ž¡ëç­® ¯à¥¤¯®« £ îâ, çâ® ®¡« áâì ®¯à¥¤¥«¥­¨ï å¥è-ä㭪樨 |
¬­®¦¥á⢮ 楫ëå ­¥®âà¨æ ⥫ì­ëå ç¨á¥«. …᫨ ª«îç¨ ­¥ ïîâáï
­ âãà «ì­ë¬¨ ç¨á« ¬¨, ¨å ®¡ëç­® ¬®¦­® ¯à¥®¡à §®¢ âì ª â ª®¬ã
¢¨¤ã (å®âï ç¨á« ¬®£ãâ ¯®«ãç¨âìáï ¡®«ì訬¨).  ¯à¨¬¥à, ¯®á«¥¤®¢ ⥫쭮á⨠ᨬ¢®«®¢ ¬®¦­® ¨­â¥à¯à¥â¨à®¢ âì ª ª ç¨á« , § ¯¨á ­­ë¥ ¢ á¨á⥬¥ áç¨á«¥­¨ï á ¯®¤å®¤ï騬 ®á­®¢ ­¨¥¬: ¨¤¥­â¨ä¨ª â®à pt | íâ® ¯ à ç¨á¥« (112; 116) (â ª®¢ë ASCII-ª®¤ë ¡ãª¢ p
¨ t), ¨«¨ ¦¥ ç¨á«® (112 128) + 116 = 14452 (¢ á¨á⥬¥ áç¨á«¥­¨ï
¯® ®á­®¢ ­¨î 128). „ «¥¥ ¬ë ¢á¥£¤ ¡ã¤¥¬ áç¨â âì, çâ® ª«îç¨ |
æ¥«ë¥ ­¥®âà¨æ ⥫ì­ë¥ ç¨á« .
12.3.1 „¥«¥­¨¥ á ®áâ ⪮¬
®áâ஥­¨¥ å¥è-ä㭪樨 ¬¥â®¤®¬ ¤¥«¥­¨ï á ®áâ ⪮¬ (division
method) á®á⮨⠢ ⮬, çâ® ª«îçã k áâ ¢¨âáï ¢ ᮮ⢥âá⢨¥ ®áâ ⮪ ®â ¤¥«¥­¨ï k ­ m, £¤¥ m | ç¨á«® ¢®§¬®¦­ëå å¥è-§­ 祭¨©:
h(k) = k mod m:
 ¯à¨¬¥à, ¥á«¨ à §¬¥à å¥è-â ¡«¨æë à ¢¥­ m = 12 ¨ ª«îç à ¢¥­ 100, â® å¥è-§­ 祭¨¥ à ¢­® 4.
à¨ í⮬ ­¥ª®â®àëå §­ 祭¨© m á⮨⠨§¡¥£ âì.  ¯à¨¬¥à, ¥á«¨
m = 2p, â® h(k) | íâ® ¯à®áâ® p ¬« ¤è¨å ¡¨â®¢ ç¨á« k. …᫨
­¥â 㢥७­®áâ¨, çâ® ¢á¥ ª®¬¡¨­ 樨 ¬« ¤è¨å ¡¨â®¢ ª«îç ¡ã¤ãâ ¢áâà¥ç âìáï á ®¤¨­ ª®¢®© ç áâ®â®©, â® á⥯¥­ì ¤¢®©ª¨ ¢ ª ç¥á⢥ ç¨á« m ­¥ ¢ë¡¨à îâ. ¥å®à®è® â ª¦¥ ¢ë¡¨à âì ¢ ª ç¥á⢥ m á⥯¥­ì ¤¥áï⪨, ¥á«¨ ª«îç¨ ¥áâ¥á⢥­­® ¢®§­¨ª îâ ª ª
¤¥áïâ¨ç­ë¥ ç¨á« : ¢¥¤ì ¢ í⮬ á«ãç ¥ ®ª ¦¥âáï, ç⮠㦥 ç áâì
æ¨äà ª«îç ¯®«­®áâìî ®¯à¥¤¥«ï¥â å¥è-§­ 祭¨¥. …᫨ ª«îç¨ ¥áâ¥á⢥­­® ¢®§­¨ª îâ ª ª ç¨á« ¢ á¨á⥬¥ áç¨á«¥­¨ï á ®á­®¢ ­¨¥¬ 2p,
â® ­¥å®à®è® ¡à âì m = 2p ; 1, ¯®áª®«ìªã ¯à¨ í⮬ ®¤¨­ ª®¢®¥ å¥è§­ 祭¨¥ ¨¬¥îâ ª«îç¨, ®â«¨ç î騥áï «¨èì ¯¥à¥áâ ­®¢ª®© "2p¨ç­ëå æ¨äà".
•®à®è¨¥ १ã«ìâ âë ®¡ëç­® ¯®«ãç îâáï, ¥á«¨ ¢ë¡à âì ¢ ª ç¥á⢥ m ¯à®á⮥ ç¨á«®, ¤ «¥ª® ®âáâ®ï饥 ®â á⥯¥­¥© ¤¢®©ª¨.
ãáâì, ­ ¯à¨¬¥à, ­ ¬ ­ ¤® ¯®¬¥áâ¨âì ¯à¨¬¥à­® 2000 § ¯¨á¥© ¢ å¥èâ ¡«¨æã á 楯®çª ¬¨, ¯à¨ç¥¬ ­ á ­¥ ¯ã£ ¥â ¢®§¬®¦­ë© ¯¥à¥¡®à
•¥è-ä㭪樨
227
¥à¥¢®¤ë ­ ¤¯¨á¥©: w bits | w ¡¨â®¢; extract p bits | ¢ë¤¥«¨âì p
¡¨â®¢. ‚ˆŒ€ˆ…: ­ à¨áã­ª¥ ­ ¤® “€’œ §­ ª¨ 楫®© ç áâ¨,
§ ¬¥­¨¢ bA 2w c ­ A 2w !!!!!!!
¨áã­®ª 12.4 •¥è¨à®¢ ­¨¥ ¬¥â®¤®¬ 㬭®¦¥­¨ï. Š«îç k, ¯à¥¤áâ ¢«¥­­ë© ¢
¢¨¤¥ w-¡¨â­®£® ç¨á« , 㬭®¦ ¥âáï ­ w-¡¨â­®¥ ç¨á«® A 2w, £¤¥ A | ª®­áâ ­â ¨§ ¨­â¥à¢ « (0; 1). “ ¯à®¨§¢¥¤¥­¨ï ¡¥àãâ ¬« ¤è¨¥ w ¡¨â®¢, ¨§ íâ¨å w ¡¨â®¢
¢ë¤¥«ïîâ p áâ àè¨å. â® ¨ ¥áâì å¥è-§­ 祭¨¥ h(k).
âàñå ¢ ਠ­â®¢ ¯à¨ ¯®¨áª¥ ®âáãâáâ¢ãî饣® ¢ â ¡«¨æ¥ í«¥¬¥­â .
—â® ¦, ¢®á¯®«ì§ã¥¬áï ¬¥â®¤®¬ ¤¥«¥­¨ï á ®áâ ⪮¬ ¯à¨ ¤«¨­¥ å¥èâ ¡«¨æë m = 701. —¨á«® 701 ¯à®á⮥, 701 2000=3, ¨ ¤® á⥯¥­¥©
¤¢®©ª¨ ®â ç¨á« 701 ⮦¥ ¤ «¥ª®. ‘â «® ¡ëâì, ¬®¦­® ¢ë¡à âì å¥èäã­ªæ¨î ¢¨¤ h(k) = k mod 701:
 ¢á直© á«ãç © ¬®¦­® ¥éñ ¯®íªá¯¥à¨¬¥­â¨à®¢ âì á ॠ«ì­ë¬¨
¤ ­­ë¬¨ ­ ¯à¥¤¬¥â ⮣®, ­ ᪮«ìª® à ¢­®¬¥à­® ¡ã¤ãâ à á¯à¥¤¥«¥­ë ¨å å¥è-§­ 祭¨ï.
12.3.2 “¬­®¦¥­¨¥
®áâ஥­¨¥ å¥è-ä㭪樨 ¬¥â®¤®¬ 㬭®¦¥­¨ï (multiplication
method) á®á⮨⠢ á«¥¤ãî饬. ãáâì ª®«¨ç¥á⢮ å¥è-§­ 祭¨©
à ¢­® m. ‡ 䨪á¨à㥬 ª®­áâ ­âã A ¢ ¨­â¥à¢ «¥ 0 < A < 1, ¨
¯®«®¦¨¬
h(k) = bm(kA mod 1)c;
£¤¥ kA mod 1 | ¤à®¡­ ï ç áâì kA.
„®á⮨­á⢮ ¬¥â®¤ 㬭®¦¥­¨ï ¢ ⮬, çâ® ª ç¥á⢮ å¥è-ä㭪樨
¬ «® § ¢¨á¨â ®â ¢ë¡®à m. Ž¡ëç­® ¢ ª ç¥á⢥ m ¢ë¡¨à îâ á⥯¥­ì
¤¢®©ª¨, ¯®áª®«ìªã ¢ ¡®«ì設á⢥ ª®¬¯ìîâ¥à®¢ 㬭®¦¥­¨¥ ­ â ª®¥
m ॠ«¨§ã¥âáï ª ª ᤢ¨£ á«®¢ . ãáâì, ­ ¯à¨¬¥à, ¤«¨­ á«®¢ ¢ ­ 襬 ª®¬¯ìîâ¥à¥ à ¢­ w ¡¨â ¬ ¨ ª«îç k ¯®¬¥é ¥âáï ¢ ®¤­® á«®¢®.
’®£¤ , ¥á«¨ m = 2p, â® ¢ëç¨á«¥­¨¥ å¥è-ä㭪樨 ¬®¦­® ¯à®¢¥áâ¨
â ª: 㬭®¦¨¬ k ­ w-¡¨â­®¥ 楫®¥ ç¨á«® A 2w (¬ë ¯à¥¤¯®« £ ¥¬,
çâ® íâ® ç¨á«® ï¥âáï 楫ë¬); ¯®«ãç¨âáï 2w-¡¨â­®¥ ç¨á«®
Œ¥â®¤ 㬭®¦¥­¨ï à ¡®â ¥â ¯à¨ «î¡®¬ ¢ë¡®à¥ ª®­áâ ­âë A, ­®
­¥ª®â®àë¥ §­ 祭¨ï A ¬®£ãâ ¡ëâì «ãçè¥ ¤à㣨å. Ž¯â¨¬ «ì­ë©
¢ë¡®à § ¢¨á¨â ®â ⮣®, ª ª®£® த ¤ ­­ë¥ ¯®¤¢¥à£ îâáï å¥è¨à®¢ ­¨î. ‚ ª­¨£¥ [123] Š­ãâ ®¡á㦤 ¥â ¢ë¡®à ª®­áâ ­âë A ¨ ¯à¨å®-
228
ƒ« ¢ 12 •¥è-â ¡«¨æë
¤¨â ª ¢ë¢®¤ã, çâ® §­ 祭¨¥
p
A ( 5 ; 1)=2 = 0;6180339887 : : :
(12.2)
ï¥âáï ¤®¢®«ì­® 㤠ç­ë¬.
‚ § ª«î祭¨¥ ¯à¨¢¥¤ñ¬ ¯à¨¬¥à: ¥á«¨ k = 123456, m = 10000 ¨ A
®¯à¥¤¥«¥­® ä®à¬ã«®© (12.2), â®
h(k) = b10000 (123456 0;61803 : : : mod 1)c =
= b10000 (76300;0041151 : : : mod 1)c =
= b10000 0;0041151 : : : c =
= b41;151 : : : c = 41:
12.3.3 “­¨¢¥àá «ì­®¥ å¥è¨à®¢ ­¨¥
…᫨ ­¥¤®¡à®¦¥« â¥«ì ¡ã¤¥â á¯¥æ¨ «ì­® ¯®¤¡¨à âì ¤ ­­ë¥ ¤«ï
å¥è¨à®¢ ­¨ï, â® (§­ ï äã­ªæ¨î h) ®­ ¬®¦¥â ãáâநâì â ª, çâ® ¢á¥
n ª«î祩 ¡ã¤ãâ ᮮ⢥âá⢮¢ âì ®¤­®© ¯®§¨æ¨¨ ¢ â ¡«¨æ¥, ¢ १ã«ìâ ⥠祣® ¢à¥¬ï ¯®¨áª ¡ã¤¥â à ¢­® (n). ‹î¡ ï 䨪á¨à®¢ ­­ ï å¥è-äã­ªæ¨ï ¬®¦¥â ¡ëâì ¤¨áªà¥¤¨â¨à®¢ ­ â ª¨¬ ®¡à §®¬.
…¤¨­á⢥­­ë© ¢ë室 ¨§ ¯®«®¦¥­¨ï | ¢ë¡¨à âì å¥è-äã­ªæ¨î á«ãç ©­ë¬ ®¡à §®¬, ­¥ § ¢¨áï騬 ®â ⮣®, ª ª¨¥ ¨¬¥­­® ¤ ­­ë¥ ¢ë
å¥è¨àã¥â¥. ’ ª®© ¯®¤å®¤ ­ §ë¢ ¥âáï ã­¨¢¥àá «ì­ë¬ å¥è¨à®¢ ­¨¥¬
(universal hashing). —â® ¡ë ­¨ ¯à¥¤¯à¨­¨¬ « ¢ è ­¥¤®¡à®¦¥« ⥫ì,
¥á«¨ ®­ ­¥ ¨¬¥¥â ¨­ä®à¬ 樨 ® ¢ë¡à ­­®© å¥è-ä㭪樨, á।­¥¥
¢à¥¬ï ¯®¨áª ®áâ ­¥âáï å®à®è¨¬.
Žá­®¢­ ï ¨¤¥ï ã­¨¢¥àá «ì­®£® å¥è¨à®¢ ­¨ï | ¢ë¡¨à âì å¥èäã­ªæ¨î ¢® ¢à¥¬ï ¨á¯®«­¥­¨ï ¯à®£à ¬¬ë á«ãç ©­ë¬ ®¡à §®¬ ¨§
­¥ª®â®à®£® ¬­®¦¥á⢠. ‘â «® ¡ëâì, ¯à¨ ¯®¢â®à­®¬ ¢ë§®¢¥ á ⥬¨
¦¥ ¢å®¤­ë¬¨ ¤ ­­ë¬¨ «£®à¨â¬ ¡ã¤¥â à ¡®â âì 㦥 ¯®-¤à㣮¬ã.
Š ª ¨ ¢ á«ãç ¥ á «£®à¨â¬®¬ ¡ëáâன á®àâ¨à®¢ª¨, à ­¤®¬¨§ æ¨ï
£ à ­â¨àã¥â, çâ® ­¥«ì§ï ¯à¨¤ã¬ âì ¢å®¤­ëå ¤ ­­ëå, ­ ª®â®àëå
«£®à¨â¬ ¢á¥£¤ ¡ë à ¡®â « ¬¥¤«¥­­® (¢ ¯à¨¬¥à¥ á ª®¬¯¨«ïâ®à®¬ ¨
â ¡«¨æ¥© ᨬ¢®«®¢ ­¥ ᬮ¦¥â ¯®«ãç¨âìáï, çâ® ª ª®©-â® ®¯à¥¤¥«ñ­­ë© áâ¨«ì ¢ë¡®à ¨¤¥­â¨ä¨ª â®à®¢ ¯à¨¢®¤¨â ª § ¬¥¤«¥­¨î ª®¬¯¨«ï樨: ¢¥à®ïâ­®áâì, çâ® ª®¬¯¨«ïæ¨ï § ¬¥¤«¨âáï ¨§-§ ­¥ã¤ ç­®£®
å¥è¨à®¢ ­¨ï, ¢®-¯¥à¢ëå, ¬ « , ¨ ¢®-¢â®àëå, § ¢¨á¨â ⮫쪮 ®â ª®«¨ç¥á⢠¨¤¥­â¨ä¨ª â®à®¢, ­® ­¥ ®â ¨å ¢ë¡®à ).
ãáâì H | ª®­¥ç­®¥ ᥬ¥©á⢮ ä㭪権, ®â®¡à ¦ îé¨å ¤ ­­®¥ ¬­®¦¥á⢮ U (¬­®¦¥á⢮ ¢á¥¢®§¬®¦­ëå ª«î祩) ¢® ¬­®¦¥á⢮ f0; 1; : : :; m ; 1g (¬­®¦¥á⢮ å¥è-§­ 祭¨©). â® ᥬ¥©á⢮ ­ §ë¢ ¥âáï ã­¨¢¥àá «ì­ë¬ (universal), ¥á«¨ ¤«ï «î¡ëå ¤¢ãå ª«î祩
x; y 2 U ç¨á«® ä㭪権 h 2 H, ¤«ï ª®â®àëå h(x) = h(y), à ¢­®
jHj=m. ˆ­ë¬¨ á«®¢ ¬¨, ¯à¨ á«ãç ©­®¬ ¢ë¡®à¥ å¥è-ä㭪樨 ¢¥à®ïâ­®áâì ª®««¨§¨¨ ¬¥¦¤ã ¤¢ã¬ï ¤ ­­ë¬¨ ª«îç ¬¨ ¤®«¦­ à ¢-
•¥è-ä㭪樨
229
­ïâìáï ¢¥à®ïâ­®á⨠ᮢ¯ ¤¥­¨ï ¤¢ãå á«ãç ©­® ¢ë¡à ­­ëå å¥è§­ 祭¨© (ª®â®à ï à ¢­ 1=m).
‘«¥¤ãîé ï ⥮६ ¯®ª §ë¢ ¥â, çâ® ã­¨¢¥àá «ì­®¥ ᥬ¥©á⢮
å¥è-ä㭪権 ®¡¥á¯¥ç¨¢ ¥â å®à®èãî ¯à®¨§¢®¤¨â¥«ì­®áâì ¢ á।­¥¬.
’¥®à¥¬ 12.3. ãáâì ­ ¬ ­¥®¡å®¤¨¬® ¯®¬¥áâ¨âì n 䨪á¨à®¢ ­­ëå
ª«î祩 ¢ â ¡«¨æã à §¬¥à m, £¤¥ m > n, ¨ å¥è-äã­ªæ¨ï ¢ë¡¨à ¥âáï á«ãç ©­ë¬ ®¡à §®¬ ¨§ ã­¨¢¥àá «ì­®£® ᥬ¥©á⢠. ’®£¤ ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ç¨á« ª®««¨§¨©, ¢ ª®â®àëå ãç áâ¢ã¥â
¤ ­­ë© ª«îç x, ¬¥­ìè¥ ¥¤¨­¨æë.
„®ª § ⥫ìá⢮. Œ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ç¨á« ª®««¨§¨© ¤ ­­®£® ª«îç x á ¤ ­­ë¬ ª«î箬 y à ¢­® 1=m ¯® ®¯à¥¤¥«¥­¨î ã­¨¢¥àá «ì­®£® ᥬ¥©á⢠. ®áª®«ìªã ¢á¥£® ¨¬¥¥âáï n ; 1 ª«î祩, ®â«¨ç­ëå ®â x, ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ç¨á« ª®««¨§¨© á ª ª¨¬­¨¡ã¤ì ¨§ íâ¨å ª«î祩 à ¢­® (n ; 1)=m, çâ® ¬¥­ìè¥ ¥¤¨­¨æë, ¯®áª®«ìªã n 6 m.
Š ª ¦¥ ¯®áâநâì ã­¨¢¥àá «ì­®¥ ᥬ¥©á⢮?  ¬ ¯®¬®¦¥â ¢ í⮬
í«¥¬¥­â à­ ï ⥮à¨ï ç¨á¥«. —¨á«® m (ª®«¨ç¥á⢮ å¥è-§­ 祭¨©)
¢ë¡¥à¥¬ ¯à®áâë¬. ã¤¥¬ áç¨â âì, çâ® ª ¦¤ë© ª«îç ¯à¥¤áâ ¢«ï¥â
ᮡ®© ¯®á«¥¤®¢ ⥫쭮áâì r + 1 "¡ ©â®¢" (¡ ©â, ¨«¨ ᨬ¢®«,| íâ®
¯à®áâ® ¤¢®¨ç­®¥ ç¨á«® á ®£à ­¨ç¥­­ë¬ ç¨á«®¬ à §à冷¢; ¬ë ¡ã¤¥¬ áç¨â âì, çâ® ¬ ªá¨¬ «ì­®¥ §­ 祭¨¥ ¡ ©â ¬¥­ìè¥ m). „«ï
ª ¦¤®© ¯®á«¥¤®¢ ⥫쭮á⨠a = ha0; a1; : : :; ari, í«¥¬¥­âë ª®â®à®©
ïîâáï ¢ëç¥â ¬¨ ¯® ¬®¤ã«î m (â® ¥áâì ¯à¨­ ¤«¥¦ â ¬­®¦¥áâ¢ã
f0; 1; : : :; m ; 1g), à áᬮâਬ äã­ªæ¨î ha, § ¤ ­­ãî ä®à¬ã«®©
ha(x) =
r
X
i=0
ai xi mod m;
(12.3)
£¤¥ ª«îç x ¥áâì ¯®á«¥¤®¢ ⥫쭮áâì ¡ ©â®¢ hx0; x1; : : :; xr i. ®«®¦¨¬
[
H = fhag;
(12.4)
a
Žç¥¢¨¤­®, ¬­®¦¥á⢮ H ᮤ¥à¦¨â mr+1 í«¥¬¥­â®¢.
’¥®à¥¬ 12.4. ‘¥¬¥©á⢮ ä㭪権 H, ®¯à¥¤¥«ñ­­®¥ ¯® ä®à¬ã« ¬ (12.3) ¨ (12.4), ï¥âáï ã­¨¢¥àá «ì­ë¬ ᥬ¥©á⢮¬ å¥èä㭪権.
„®ª § ⥫ìá⢮. ãáâì x = hx0; x1; : : :; xri ¨ y = hy0; y1; : : :; yr i |
¤¢ à §«¨ç­ëå ª«îç ; ­¥ ®£à ­¨ç¨¢ ï ®¡é­®áâ¨, ¬®¦­® áç¨â âì,
çâ® x0 =
6 y0. …᫨ a = ha0; a1; : : :; ari, â® ha(x) = ha(y) ⮣¤ ¨
⮫쪮 ⮣¤ , ª®£¤ a0 (x0 ; y0) ;
r
X
j =1
ai (xi ; yi) (mod m):
230
ƒ« ¢ 12 •¥è-â ¡«¨æë
®áª®«ìªã x0 ; y0 6 0 (mod m), ¤«ï ª ¦¤®© ¯®á«¥¤®¢ ⥫쭮á⨠ha1; : : :; ar i áãé¥áâ¢ã¥â ¨ ¥¤¨­á⢥­­® §­ 祭¨¥ a0, ¯à¨ ª®â®à®¬
íâ® à ¢¥­á⢮ ¢ë¯®«­¥­® (à §¤¥« 33.4). Š®«¨ç¥á⢮ â ª¨å ¯®á«¥¤®¢ ⥫쭮á⥩ à ¢­® mr , ¨ â ª®¢® ¦¥, áâ «® ¡ëâì, ª®«¨ç¥á⢮ ä㭪権 ¨§ H, ­¥ à §«¨ç îé¨å ª«îç¨ x ¨ y. ®áª®«ìªã mr = jHj=m,
¢áñ ¤®ª § ­®.
[Š®à®ç¥ ¬®¦­® ᪠§ âì â ª: ­¥­ã«¥¢®© «¨­¥©­ë© ä㭪樮­ «
h 7! h(x ; y ) á à ¢­®© ¢¥à®ïâ­®áâìî ¯à¨­¨¬ ¥â «î¡®¥ ¨§ m ᢮¨å
§­ 祭¨©, ¢ ⮬ ç¨á«¥ 0.]
“¯à ¦­¥­¨ï
12.3-1 ãáâì ¢ á¢ï§ ­­®¬ ᯨ᪥ ª ¦¤ë© í«¥¬¥­â åà ­¨âáï ¢¬¥áâ¥ á ¥£® ª«î箬 k ¨ ᮮ⢥âáâ¢ãî騬 å¥è-§­ 祭¨¥¬ h(k). Š«îç
¯à¥¤áâ ¢«ï¥â ᮡ®© ¤«¨­­ãî ¯®á«¥¤®¢ ⥫쭮áâì ᨬ¢®«®¢. Š ª
¬®¦­® ã¯à®áâ¨âì ¯®¨áª ¢ í⮬ ᯨ᪥ í«¥¬¥­â á ¤ ­­ë¬ ª«î箬?
12.3-2 à¥¤¯®«®¦¨¬, çâ® ª«îç ¬¨ ïîâáï ¯®á«¥¤®¢ ⥫쭮áâ¨
ᨬ¢®«®¢, ª®â®àë¥ ¬ë à áᬠâਢ ¥¬ ª ª ç¨á« , § ¯¨á ­­ë¥ ¢ á¨á⥬¥ áç¨á«¥­¨ï á ®á­®¢ ­¨¥¬ 128. —¨á«® m ¯®¬¥é ¥âáï ¢ 32-¡¨â­®¬
á«®¢¥ á § ¯ ᮬ, ­® ç¨á« , ᮮ⢥âáâ¢ãî騥 ª«îç ¬, 㦥 ­¥ ¯®¬¥é îâáï, ¯®áª®«ìªã ª«îç¨ á®¤¥à¦ â ¬­®£® ¤¥áï⪮¢ ᨬ¢®«®¢. Š ª
¢ëç¨á«¨âì å¥è-äã­ªæ¨î, ¯®áâ஥­­ãî ¬¥â®¤®¬ ¤¥«¥­¨ï? (¥â ­¥®¡å®¤¨¬®á⨠ॠ«¨§®¢ë¢ âì à¨ä¬¥â¨ç¥áª¨¥ ®¯¥à 樨 á ¤«¨­­ë¬¨
ç¨á« ¬¨ | ¤®áâ â®ç­® ¤®¯®«­¨â¥«ì­®© ¯ ¬ï⨠¯®áâ®ï­­®£® ®¡êñ¬ .)
12.3-3 ãáâì ª«îç¨ ¯à¥¤áâ ¢«ïîâ ᮡ®© ¯®á«¥¤®¢ ⥫쭮á⨠p¡¨â­ëå ᨬ¢®«®¢, à áᬠâਢ ¥¬ë¥ ª ª ç¨á« ¢ 2p-¨ç­®© á¨á⥬¥
áç¨á«¥­¨ï, ¢ ª ç¥á⢥ å¥è-ä㭪樨 ¢ë¡à ­ ®áâ ⮪ ¯à¨ ¤¥«¥­¨¨
­ m = 2p ; 1. ®ª ¦¨â¥, çâ® ¤¢ã¬ ª«îç ¬, ®â«¨ç î騬áï ⮫쪮
¯®à浪®¬ ᨬ¢®«®¢, ᮮ⢥âáâ¢ã¥â ®¤­® ¨ â® ¦¥ å¥è-§­ 祭¨¥.
à¨¢¥¤¨â¥ ¯à¨¬¥à ¯à¨«®¦¥­¨ï, ¢ ª®â®à®¬ ¯à¨¬¥­¥­¨¥ â ª®© å¥èä㭪樨 ¡ë«® ¡ë ­¥¦¥« ⥫쭮.
12.3-4 ãáâì à §¬¥à å¥è-â ¡«¨æë à ¢¥­ m = 1000,
p å¥èäã­ªæ¨ï ¨¬¥¥â ¢¨¤ h(k) = bm(kA mod 1)c, £¤¥ A = ( 5 ; 1)=2.
‚ ª ª¨¥ ¯®§¨æ¨¨ ¯®¯ ¤ãâ ª«îç¨ 61, 62, 63, 64 ¨ 65?
12.3-5 “¤ «¨¬ ¨§ ᥬ¥©á⢠H, ®¯à¥¤¥«ñ­­®£® ¯® ä®à¬ã« ¬ (12.3)
¨ (12.4), ⥠ä㭪樨 ha, ¢ ª®â®àëå å®âï ¡ë ®¤­® ¨§ ai à ¢­ ­ã«î.
®ª ¦¨â¥, çâ® ¯®«ã稢襥áï ᥬ¥©á⢮ å¥è-ä㭪権 ã­¨¢¥àá «ì­ë¬ ­¥ ¡ã¤¥â.
Žâªàëâ ï ¤à¥á æ¨ï
231
12.4 Žâªàëâ ï ¤à¥á æ¨ï
‚ ®â«¨ç¨¥ ®â å¥è¨à®¢ ­¨ï á 楯®çª ¬¨, ¯à¨ ®âªàë⮩ ¤à¥á 樨
(open addressing) ­¨ª ª¨å ᯨ᪮¢ ­¥â, ¢á¥ § ¯¨á¨ åà ­ïâáï ¢ á ¬®© å¥è-â ¡«¨æ¥: ª ¦¤ ï ï祩ª â ¡«¨æë ᮤ¥à¦¨â «¨¡® í«¥¬¥­â
¤¨­ ¬¨ç¥áª®£® ¬­®¦¥á⢠, «¨¡® nil. ®¨áª § ª«îç ¥âáï ¢ ⮬, çâ®
¬ë ®¯à¥¤¥«ñ­­ë¬ ®¡à §®¬ ¯à®á¬ âਢ ¥¬ í«¥¬¥­âë â ¡«¨æë, ¯®ª ­¥ ­ ©¤ñ¬ â®, çâ® ¨é¥¬, ¨«¨ ­¥ 㤮á⮢¥à¨¬áï, çâ® í«¥¬¥­â á â ª¨¬ ª«î箬 ¢ â ¡«¨æ¥ ­¥â. ’¥¬ á ¬ë¬ ç¨á«® åà ­¨¬ëå í«¥¬¥­â®¢
­¥ ¬®¦¥â ¡ëâì ¡®«ìè¥ à §¬¥à â ¡«¨æë: ª®íää¨æ¨¥­â § ¯®«­¥­¨ï
­¥ ¡®«ìè¥ 1.
Š®­¥ç­®, ¨ ¯à¨ å¥è¨à®¢ ­¨¨ á 楯®çª ¬¨ ¬®¦­® ¨á¯®«ì§®¢ âì
᢮¡®¤­ë¥ ¬¥áâ ¢ å¥è-â ¡«¨æ¥ ¤«ï åà ­¥­¨ï ᯨ᪮¢ (ã¯à ¦­¥­¨¥ 12.2-5), ­® ¯à¨ ®âªàë⮩ ¤à¥á 樨 㪠§ ⥫¨ ¢®®¡é¥ ­¥ ¨á¯®«ì§ãîâáï: ¯®á«¥¤®¢ ⥫쭮áâì ¯à®á¬ âਢ ¥¬ëå ï祥ª ¢ëç¨á«ï¥âáï. ‡ áç¥â íª®­®¬¨¨ ¯ ¬ï⨠­ 㪠§ ⥫ïå ¬®¦­® 㢥«¨ç¨âì
ª®«¨ç¥á⢮ ¯®§¨æ¨© ¢ â ¡«¨æ¥, ç⮠㬥­ìè ¥â ç¨á«® ª®««¨§¨© ¨
᮪à é ¥â ¯®¨áª.
—â®¡ë ¤®¡ ¢¨âì ­®¢ë© í«¥¬¥­â ¢ â ¡«¨æã á ®âªàë⮩ ¤à¥á 樥©, ï祩ª¨ ª®â®à®© § ­ã¬¥à®¢ ­ë 楫묨 ç¨á« ¬¨ ®â 0 ¤® m ; 1,
¬ë ¯à®á¬ âਢ ¥¬ ¥ñ, ¯®ª ­¥ ­ ©¤¥¬ ᢮¡®¤­®¥ ¬¥áâ®. …᫨ ¢á直© à § ¯à®á¬ âਢ âì ï祩ª¨ ¯®¤àï¤ (0; 1; : : :; m ; 1), ¯®âॡã¥âáï
¢à¥¬ï (n), ­® áãâì ¢ ⮬, çâ® ¯®à冷ª ¯à®á¬®âà â ¡«¨æë § ¢¨á¨â
®â ª«îç ! ˆ­ë¬¨ á«®¢ ¬¨, ¬ë ¤®¡ ¢«ï¥¬ ª å¥è-ä㭪樨 ¢â®à®© à£ã¬¥­â | ­®¬¥à ¯®¯ë⪨ (­ã¬¥à æ¨î ­ 稭 ¥¬ á ­ã«ï), â ª çâ®
å¥è-äã­ªæ¨ï ¨¬¥¥â ¢¨¤
h : U f0; 1; : : :; m ; 1g ! f0; 1; : : :; m ; 1g
(U | ¬­®¦¥á⢮ ª«î祩). ®á«¥¤®¢ ⥫쭮áâì ¨á¯à®¡®¢ ­­ëå ¬¥áâ
(probe sequence), ¨«¨ (ª®à®ç¥) ¯®á«¥¤®¢ ⥫쭮áâì ¯à®¡ ¤«ï ¤ ­­®£®
ª«îç k ¨¬¥¥â ¢¨¤
hh(k; 0); h(k; 1); : : :; h(k; m ; 1)i;
äã­ªæ¨ï h ¤®«¦­ ¡ëâì â ª®©, çâ®¡ë ª ¦¤®¥ ¨§ ç¨á¥« ®â 0 ¤® m ; 1
¢áâà¥â¨«®áì ¢ í⮩ ¯®á«¥¤®¢ ⥫쭮á⨠஢­® ®¤¨­ à § (¤«ï ª ¦¤®£® ª«îç ¢á¥ ¯®§¨æ¨¨ â ¡«¨æë ¤®«¦­ë ¡ëâì ¤®áâ㯭ë). ¨¦¥
¯à¨¢®¤¨âáï ⥪áâ ¯à®æ¥¤ãàë ¤®¡ ¢«¥­¨ï ¢ â ¡«¨æã T á ®âªàë⮩
¤à¥á 樥©; ¢ ­¥¬ ¯®¤à §ã¬¥¢ ¥âáï, çâ® § ¯¨á¨ ­¥ ᮤ¥à¦ â ¤®¯®«­¨â¥«ì­®© ¨­ä®à¬ 樨, ªà®¬¥ ª«îç . …᫨ ï祩ª â ¡«¨æë ¯ãáâ , ¢ ­¥© § ¯¨á ­ nil (䨪á¨à®¢ ­­®¥ §­ 祭¨¥, ®â«¨ç­®¥ ®â ¢á¥å
ª«î祩).
232
ƒ« ¢ 12 •¥è-â ¡«¨æë
Hash-Insert(T; k)
1 i 0
2 repeat j h(k; i)
3
if T [j ] = nil
4
then T [j ] k
5
return j
6
else i i + 1
7 until i = m
8 error "¯¥à¥¯®«­¥­¨¥ å¥è-â ¡«¨æë"
à¨ ¯®¨áª¥ í«¥¬¥­â á ª«î箬 k ¢ â ¡«¨æ¥ á ®âªàë⮩ ¤à¥á 樥© ï祩ª¨ â ¡«¨æë ¯à®á¬ âਢ îâáï ¢ ⮬ ¦¥ ¯®à浪¥, çâ® ¨ ¯à¨
¤®¡ ¢«¥­¨¨ ¢ ­¥¥ í«¥¬¥­â á ª«î箬 k. …᫨ ¯à¨ í⮬ ¬ë ­ âëª ¥¬áï ­ ï祩ªã, ¢ ª®â®à®© § ¯¨á ­ nil, â® ¬®¦­® ¡ëâì 㢥७­ë¬,
çâ® ¨áª®¬®£® í«¥¬¥­â ¢ â ¡«¨æ¥ ­¥â (¨­ ç¥ ®­ ¡ë« ¡ë § ­¥áñ­ ¢
íâã ï祩ªã). (‚­¨¬ ­¨¥: ¬ë ¯à¥¤¯®« £ ¥¬, çâ® ­¨ª ª¨¥ í«¥¬¥­âë
¨§ â ¡«¨æë ­¥ 㤠«ïîâáï!)
‚®â ⥪áâ ¯à®æ¥¤ãàë ¯®¨áª Hash-Search (¥á«¨ í«¥¬¥­â á ª«î箬 k ᮤ¥à¦¨âáï ¢ â ¡«¨æ¥ T ¢ ¯®§¨æ¨¨ j , ¯à®æ¥¤ãà ¢®§¢à é ¥â j ,
¢ ¯à®â¨¢­®¬ á«ãç ¥ ®­ ¢®§¢à é ¥â nil).
Hash-Search(T; k)
1 i 0
2 repeat j h(k; i)
3
if T [j ] = k
4
then return j
5
i i+1
6 until T [j ] = nil ¨«¨ i = m
7 return nil
“¤ «¨âì í«¥¬¥­â ¨§ â ¡«¨æë á ®âªàë⮩ ¤à¥á 樥© ­¥ â ª ¯à®áâ®. …᫨ ¯à®áâ® § ¯¨á âì ­ ¥£® ¬¥áâ® nil, â® ¢ ¤ «ì­¥©è¥¬ ¬ë
­¥ ᬮ¦¥¬ ­ ©â¨ â¥ í«¥¬¥­âë, ¢ ¬®¬¥­â ¤®¡ ¢«¥­¨ï ª®â®àëå ¢
â ¡«¨æã íâ® ¬¥áâ® ¡ë«® § ­ïâ® (¨ ¨§-§ í⮣® ¡ë« ¢ë¡à ­ ¡®«¥¥ ¤ «ñª¨© í«¥¬¥­â ¢ ¯®á«¥¤®¢ ⥫쭮á⨠¨á¯à®¡®¢ ­­ëå ¬¥áâ).
‚®§¬®¦­®¥ à¥è¥­¨¥ | § ¯¨áë¢ âì ­ ¬¥á⮠㤠«ñ­­®£® í«¥¬¥­â ­¥ nil, á¯¥æ¨ «ì­®¥ §­ 祭¨¥ deleted ("㤠«ñ­"), ¨ ¯à¨ ¤®¡ ¢«¥­¨¨ à áᬠâਢ âì ï祩ªã á § ¯¨áìî deleted ª ª ᢮¡®¤­ãî,
¯à¨ ¯®¨áª¥ | ª ª § ­ïâãî (¨ ¯à®¤®«¦ âì ¯®¨áª). ¥¤®áâ ⮪
í⮣® ¯®¤å®¤ ¢ ⮬, çâ® ¢à¥¬ï ¯®¨áª ¬®¦¥â ®ª § âìáï ¡®«ì訬
¤ ¦¥ ¯à¨ ­¨§ª®¬ ª®íää¨æ¨¥­â¥ § ¯®«­¥­¨ï. ®í⮬ã, ¥á«¨ âॡã¥âáï 㤠«ïâì § ¯¨á¨ ¨§ å¥è-â ¡«¨æë, ¯à¥¤¯®ç⥭¨¥ ®¡ëç­® ®â¤ îâ
å¥è¨à®¢ ­¨î á 楯®çª ¬¨.
‚ ­ 襬 ­ «¨§¥ ®âªàë⮩ ¤à¥á 樨 ¬ë ¡ã¤¥¬ ¨á室¨âì ¨§
¯à¥¤¯®«®¦¥­¨ï, çâ® å¥è¨à®¢ ­¨¥ à ¢­®¬¥à­® (uniform) ¢ ⮬ á¬ëá«¥, çâ® ¢á¥ m! ¯¥à¥áâ ­®¢®ª ¬­®¦¥á⢠f0; 1; : : :; m ; 1g à ¢­®¢¥-
Žâªàëâ ï ¤à¥á æ¨ï
233
à®ïâ­ë.  ¯à ªâ¨ª¥ íâ® ¢àï¤ «¨ â ª, å®âï ¡ë ¯® ⮩ ¯à¨ç¨­¥,
çâ® ¤«ï í⮣® ­¥®¡å®¤¨¬®, ç⮡ë ç¨á«® ¢®§¬®¦­ëå ª«î祩 ¡ë«®
ª ª ¬¨­¨¬ã¬ 6 m!, £¤¥ m | ç¨á«® å¥è-§­ 祭¨©. ®í⮬㠮¡ëç­®
¯®«ì§ãîâáï ¡®«¥¥ ¨«¨ ¬¥­¥¥ 㤠ç­ë¬¨ áãàண â ¬¨, ¢à®¤¥ ®¯¨áë¢ ¥¬®£® ­¨¦¥ ¤¢®©­®£® å¥è¨à®¢ ­¨ï.
Ž¡ëç­® ¯à¨¬¥­ïîâ â ª¨¥ âਠᯮᮡ ¢ëç¨á«¥­¨ï ¯®á«¥¤®¢ ⥫쭮á⨠¨á¯à®¡®¢ ­­ëå ¬¥áâ: «¨­¥©­ë©, ª¢ ¤à â¨ç­ë© ¨
¤¢®©­®¥ å¥è¨à®¢ ­¨¥. ‚ ª ¦¤®¬ ¨§ íâ¨å ᯮᮡ®¢ ¯®á«¥¤®¢ ⥫쭮áâì hh(k; 0); h(k; 1); : : :; h(k; m ; 1)i ¡ã¤¥â ¯¥à¥áâ ­®¢ª®©
¬­®¦¥á⢠f0; 1; : : :; m ; 1g ¯à¨ «î¡®¬ §­ 祭¨¨ ª«îç k, ­® ­¨
®¤¨­ ¨§ íâ¨å ᯮᮡ®¢ ­¥ ï¥âáï à ¢­®¬¥à­ë¬ ¯® ⮩ ¯à¨ç¨­¥,
çâ® ®­¨ ¤ îâ ­¥ ¡®«¥¥ m2 ¯¥à¥áâ ­®¢®ª ¨§ m! ¢®§¬®¦­ëå. ®«ìè¥
¢á¥£® à §­ëå ¯¥à¥áâ ­®¢®ª ¯®«ãç ¥âáï ¯à¨ ¤¢®©­®¬ å¥è¨à®¢ ­¨¨;
­¥ 㤨¢¨â¥«ì­®, çâ® ¨ ­ ¯à ªâ¨ª¥ íâ®â ᯮᮡ ¤ ¥â «ãç訥
१ã«ìâ âë.
‹¨­¥©­ ï ¯®á«¥¤®¢ ⥫쭮áâì ¯à®¡
ãáâì h0 : U ! f0; 1; : : :; m ; 1g | "®¡ëç­ ï" å¥è-äã­ªæ¨ï.
”ã­ªæ¨ï, ®¯à¥¤¥«ïîé ï «¨­¥©­ãî ¯®á«¥¤®¢ ⥫쭮áâì ¯à®¡ (linear
probing), § ¤ ñâáï ä®à¬ã«®©
h(k; i) = (h0 (k) + i) mod m:
ˆ­ë¬¨ á«®¢ ¬¨, ¯à¨ à ¡®â¥ á ª«î箬 k ­ 稭 îâ á ï祩ª¨ T [h0(k)],
§ ⥬ ¯¥à¥¡¨à îâ ï祩ª¨ â ¡«¨æë ¯®¤àï¤: T [h0(k) + 1]; T [h0(k) +
2]; : : : (¯®á«¥ T [m ; 1] ¯¥à¥å®¤ïâ ª T [0]). ®áª®«ìªã ¯®á«¥¤®¢ ⥫쭮áâì ¯à®¡ ¯®«­®áâìî ®¯à¥¤¥«ï¥âáï ¯¥à¢®© ï祩ª®©, ॠ«ì­® ¨á¯®«ì§ã¥âáï ¢á¥£® «¨èì m à §«¨ç­ëå ¯®á«¥¤®¢ ⥫쭮á⥩.
Žâªàëâãî ¤à¥á æ¨î á «¨­¥©­®© ¯®á«¥¤®¢ ⥫쭮áâìî ¯à®¡
«¥£ª® ॠ«¨§®¢ âì, ­® ã í⮣® ¬¥â®¤ ¥áâì ®¤¨­ ­¥¤®áâ ⮪: ®­ ¬®¦¥â ¯à¨¢¥á⨠ª ®¡à §®¢ ­¨î ª« áâ¥à®¢, â® ¥áâì ¤«¨­­ëå ¯®á«¥¤®¢ ⥫쭮á⥩ § ­ïâëå ï祥ª, ¨¤ãé¨å ¯®¤àï¤ (¯®- ­£«¨©áª¨ í⮠¥­¨¥ ­ §ë¢ ¥âáï primary clustering). â® 㤫¨­ï¥â ¯®¨áª; ¢ á ¬®¬
¤¥«¥, ¥á«¨ ¢ â ¡«¨æ¥ ¨§ m ï祥ª ¢á¥ ï祩ª¨ á çñâ­ë¬¨ ­®¬¥à ¬¨
§ ­ïâë, ï祩ª¨ á ­¥çñâ­ë¬¨ ­®¬¥à ¬¨ ᢮¡®¤­ë, â® á।­¥¥ ç¨á«® ¯à®¡ ¯à¨ ¯®¨áª¥ í«¥¬¥­â , ®âáãâáâ¢ãî饣® ¢ â ¡«¨æ¥, ¥áâì 1;5;
…᫨, ®¤­ ª®, ⥠¦¥ m=2 § ­ïâëå ï祥ª ¨¤ãâ ¯®¤àï¤, â® á।­¥¥
ç¨á«® ¯à®¡ ¯à¨¬¥à­® à ¢­® m=8 = n=4 (n | ç¨á«® § ­ïâëå ¬¥áâ
¢ â ¡«¨æ¥). ’¥­¤¥­æ¨ï ª ®¡à §®¢ ­¨î ª« áâ¥à®¢ ®¡êïá­ï¥âáï ¯à®áâ®: ¥á«¨ i § ¯®«­¥­­ëå ï祥ª ¨¤ãâ ¯®¤àï¤, ¢¥à®ïâ­®áâì ⮣®, çâ®
¯à¨ ®ç¥à¥¤­®© ¢áâ ¢ª¥ ¢ â ¡«¨æ㠡㤥⠨ᯮ«ì§®¢ ­ ï祩ª , á«¥¤ãîé ï ­¥¯®á।á⢥­­® § ­¨¬¨, ¥áâì (i + 1)=m, ¢ â® ¢à¥¬ï ª ª
¤«ï ᢮¡®¤­®© ï祩ª¨, ¯à¥¤è¥á⢥­­¨æ ª®â®à®© â ª¦¥ ᢮¡®¤­ ,
¢¥à®ïâ­®áâì ¡ëâì ¨á¯®«ì§®¢ ­­®© à ¢­ ¢á¥£® «¨èì 1=m. ‚áñ ¢ë襨§«®¦¥­­®¥ ¯®ª §ë¢ ¥â, çâ® «¨­¥©­ ï ¯®á«¥¤®¢ ⥫쭮áâì ¯à®¡
¤®¢®«ì­® ¤ «¥ª ®â à ¢­®¬¥à­®£® å¥è¨à®¢ ­¨ï.
234
ƒ« ¢ 12 •¥è-â ¡«¨æë
Š¢ ¤à â¨ç­ ï ¯®á«¥¤®¢ ⥫쭮áâì ¯à®¡
”ã­ªæ¨ï, ®¯à¥¤¥«ïîé ï ª¢ ¤à â¨ç­ãî ¯®á«¥¤®¢ ⥫쭮áâì ¯à®¡
(quadratic probing), § ¤ ñâáï ä®à¬ã«®©
h(k; i) = (h0 (k) + c1i + c2i2) mod m;
(12.5)
£¤¥ ¯®-¯à¥¦­¥¬ã h0 | ®¡ëç­ ï å¥è-äã­ªæ¨ï, c1 ¨ c2 6= 0 | ­¥ª®â®àë¥ ª®­áâ ­âë. à®¡ë ­ 稭 îâáï á ï祩ª¨ ­®¬¥à T [h0(k)],
ª ª ¨ ¯à¨ «¨­¥©­®¬ ¬¥â®¤¥, ­® ¤ «ìè¥ ï祩ª¨ ¯à®á¬ âਢ îâáï ­¥
¯®¤àï¤: ­®¬¥à ¯à®¡ã¥¬®© ï祩ª¨ ª¢ ¤à â¨ç­® § ¢¨á¨â ®â ­®¬¥à ¯®¯ë⪨. â®â ¬¥â®¤ à ¡®â ¥â §­ ç¨â¥«ì­® «ãçè¥, 祬 «¨­¥©­ë©,
­® ¥á«¨ ¬ë å®â¨¬, çâ®¡ë ¯à¨ ¯à®á¬®âॠå¥è-â ¡«¨æë ¨á¯®«ì§®¢ «¨áì ¢á¥ ï祩ª¨, §­ 祭¨ï m, c1 ¨ c2 ­¥«ì§ï ¢ë¡¨à âì ª ª ¯®¯ «®;
®¤¨­ ¨§ ᯮᮡ®¢ ¢ë¡®à ®¯¨á ­ ¢ § ¤ ç¥ 12-4. Š ª ¨ ¯à¨ «¨­¥©­®¬
¬¥â®¤¥, ¢áï ¯®á«¥¤®¢ ⥫쭮áâì ¯à®¡ ®¯à¥¤¥«ï¥âáï ᢮¨¬ ¯¥à¢ë¬
ç«¥­®¬, â ª çâ® ®¯ïâì ¯®«ãç ¥âáï ¢á¥£® m à §«¨ç­ëå ¯¥à¥áâ ­®¢®ª.
’¥­¤¥­æ¨¨ ª ®¡à §®¢ ­¨î ª« áâ¥à®¢ ¡®«ìè¥ ­¥â, ­® ­ «®£¨ç­ë©
íä䥪⠯à®ï¢«ï¥âáï ¢ (¡®«¥¥ ¬ï£ª®©) ä®à¬¥ ®¡à §®¢ ­¨ï ¢â®à¨ç­ëå
ª« áâ¥à®¢ (secondary clustering).
„¢®©­®¥ å¥è¨à®¢ ­¨¥
„¢®©­®¥ å¥è¨à®¢ ­¨¥ (double hashing) | ®¤¨­ ¨§ «ãçè¨å ¬¥â®¤®¢ ®âªàë⮩ ¤à¥á 樨. ¥à¥áâ ­®¢ª¨ ¨­¤¥ªá®¢, ¢®§­¨ª î騥 ¯à¨
¤¢®©­®¬ å¥è¨à®¢ ­¨¨, ®¡« ¤ îâ ¬­®£¨¬¨ ᢮©á⢠¬¨, ¯à¨áã騬¨
à ¢­®¬¥à­®¬ã å¥è¨à®¢ ­¨î. à¨ ¤¢®©­®¬ å¥è¨à®¢ ­¨¨ äã­ªæ¨ï h
¨¬¥¥â ¢¨¤
h(k; i) = (h1(k) + ih2(k)) mod m;
£¤¥ h1 ¨ h2 | ®¡ëç­ë¥ å¥è-ä㭪樨. ˆ­ë¬¨ á«®¢ ¬¨, ¯®á«¥¤®¢ ⥫쭮áâì ¯à®¡ ¯à¨ à ¡®â¥ á ª«î箬 k ¯à¥¤áâ ¢«ï¥â ᮡ®© à¨ä¬¥â¨ç¥áªãî ¯à®£à¥áá¨î (¯® ¬®¤ã«î m) á ¯¥à¢ë¬ ç«¥­®¬ h1(k) ¨
è £®¬ h2(k). à¨¬¥à ¤¢®©­®£® å¥è¨à®¢ ­¨ï ¯à¨¢¥¤¥­ ­ à¨á. 12.5.
—â®¡ë ¯®á«¥¤®¢ ⥫쭮áâì ¨á¯à®¡®¢ ­­ëå ¬¥áâ ¯®ªàë« ¢áî â ¡«¨æã, §­ 祭¨¥ h2(k) ¤®«¦­® ¡ëâì ¢§ ¨¬­® ¯à®áâë¬ á m (¥á«¨
­ ¨¡®«ì訩 ®¡é¨© ¤¥«¨â¥«ì h2(k) ¨ m ¥áâì d, â® à¨ä¬¥â¨ç¥áª ï
¯à®£à¥áá¨ï ¯® ¬®¤ã«î m á à §­®áâìî h2(k) § ©¬ñâ ¤®«î 1=d ¢ â ¡«¨æ¥; á¬. £« ¢ã 33). à®á⮩ ᯮᮡ ¤®¡¨âìáï ¢ë¯®«­¥­¨ï í⮣®
ãá«®¢¨ï | ¢ë¡à âì ¢ ª ç¥á⢥ m á⥯¥­ì ¤¢®©ª¨, äã­ªæ¨î h2
¢§ïâì â ªãî, çâ®¡ë ®­ ¯à¨­¨¬ « ⮫쪮 ­¥çñâ­ë¥ §­ 祭¨ï. „à㣮© ¢ ਠ­â: m | ¯à®á⮥ ç¨á«®, §­ 祭¨ï h2 | æ¥«ë¥ ¯®«®¦¨â¥«ì­ë¥ ç¨á« , ¬¥­ì訥 m.  ¯à¨¬¥à, ¤«ï ¯à®á⮣® m ¬®¦­® ¯®«®¦¨âì
h1 (k) = k mod m;
h2 (k) = 1 + (k mod m0);
Žâªàëâ ï ¤à¥á æ¨ï
235
12.5 „®¡ ¢«¥­¨¥ í«¥¬¥­â ¢ â ¡«¨æã á ®âªàë⮩ ¤à¥á 樥© ¯à¨
¤¢®©­®¬ å¥è¨à®¢ ­¨¨. ‚ ­ 襬 á«ãç ¥ m = 13, h1 (k) = k mod 13, h2 (k) =
1 + (k mod 11). …᫨ k = 14, â® ¯®á«¥¤®¢ ⥫쭮áâì ¯à®¡ ¡ã¤¥â â ª ï: 1 ¨ 5
§ ­ïâë, 9 ᢮¡®¤­®, ¯®¬¥é ¥¬ â㤠.
¨áã­®ª
£¤¥ m0 çãâì ¬¥­ìè¥, 祬 m (­ ¯à¨¬¥à, m0 = m ; 1 ¨«¨ m ; 2).
…᫨, ­ ¯à¨¬¥à, m = 701, m0 = 700 ¨ k = 123456, â® h1(k) = 80
¨ h2(k) = 257. ‘â «® ¡ëâì, ¯®á«¥¤®¢ ⥫쭮áâì ¯à®¡ ­ 稭 ¥âáï á
¯®§¨æ¨¨ ­®¬¥à 80 ¨ ¨¤ñâ ¤ «¥¥ á è £®¬ 257, ¯®ª ¢áï â ¡«¨æ ­¥
¡ã¤¥â ¯à®á¬®â७ (¨«¨ ­¥ ¡ã¤¥â ­ ©¤¥­® ­ã¦­®¥ ¬¥áâ®).
‚ ®â«¨ç¨¥ ®â «¨­¥©­®£® ¨ ª¢ ¤à â¨ç­®£® ¬¥â®¤®¢, ¯à¨ ¤¢®©­®¬ å¥è¨à®¢ ­¨¨ ¬®¦­® ¯®«ãç¨âì (¯à¨ ¯à ¢¨«ì­®¬ ¢ë¡®à¥ h1
¨ h2) ­¥ m, (m2) à §«¨ç­ëå ¯¥à¥áâ ­®¢®ª, ¯®áª®«ìªã ª ¦¤®© ¯ ॠ(h1(k); h2(k)) ᮮ⢥âáâ¢ã¥â á¢®ï ¯®á«¥¤®¢ ⥫쭮áâì
¯à®¡. « £®¤ àï í⮬㠯ந§¢®¤¨â¥«ì­®áâì ¤¢®©­®£® å¥è¨à®¢ ­¨ï
¡«¨§ª ª ⮩, çâ® ¯®«ã稫 áì ¡ë ¯à¨ ­ áâ®ï饬 à ¢­®¬¥à­®¬ å¥è¨à®¢ ­¨¨.
€­ «¨§ å¥è¨à®¢ ­¨ï á ®âªàë⮩ ¤à¥á 樥©
’ ª ¦¥, ª ª ¨ ¯à¨ ­ «¨§¥ å¥è¨à®¢ ­¨ï á 楯®çª ¬¨, ¯à¨ ­ «¨§¥ ®âªàë⮩ ¤à¥á 樨 ¬ë ¡ã¤¥¬ ®æ¥­¨¢ âì á⮨¬®áâì ®¯¥à 権
¢ â¥à¬¨­ å ª®íää¨æ¨¥­â § ¯®«­¥­¨ï = n=m (n | ç¨á«® § ¯¨á¥©,
m | à §¬¥à â ¡«¨æë). ®áª®«ìªã ¯à¨ ®âªàë⮩ ¤à¥á 樨 ª ¦¤®©
ï祩ª¥ ᮮ⢥âáâ¢ã¥â ­¥ ¡®«¥¥ ®¤­®© § ¯¨á¨, 6 1.
Œë ¡ã¤¥¬ ¨á室¨âì ¨§ ¯à¥¤¯®«®¦¥­¨ï ® à ¢­®¬¥à­®á⨠å¥è¨à®¢ ­¨ï. ‚ í⮩ ¨¤¥ «¨§¨à®¢ ­­®© á奬¥ ¯à¥¤¯®« £ ¥âáï á«¥¤ãî饥:
¬ë ¢ë¡¨à ¥¬ ª«îç¨ á«ãç ©­ë¬ ®¡à §®¬, ¯à¨çñ¬ ¢á¥ m! ¢®§¬®¦­ëå ¯®á«¥¤®¢ ⥫쭮á⥩ ¯à®¡ à ¢­®¢¥à®ïâ­ë. ®áª®«ìªã íâ ¨¤¥ «¨§¨à®¢ ­­ ï á奬 ¤ «¥ª ®â ॠ«ì­®áâ¨, ¤®ª §ë¢ ¥¬ë¥ ­¨¦¥ १ã«ìâ âë á«¥¤ã¥â à áᬠâਢ âì ­¥ ª ª ¬ ⥬ â¨ç¥áª¨¥ ⥮६ë,
236
ƒ« ¢ 12 •¥è-â ¡«¨æë
®¯¨áë¢ î騥 à ¡®âã ॠ«ì­ëå «£®à¨â¬®¢ ®âªàë⮩ ¤à¥á 樨, ª ª í¢à¨áâ¨ç¥áª¨¥ ®æ¥­ª¨.
 ç­ñ¬ á ⮣®, çâ® ®æ¥­¨¬ ¢à¥¬ï ­ ¯®¨áª í«¥¬¥­â , ®âáãâáâ¢ãî饣® ¢ â ¡«¨æ¥.
’¥®à¥¬ 12.5. Œ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ç¨á« ¯à®¡ ¯à¨ ¯®¨áª¥
¢ â ¡«¨æ¥ á ®âªàë⮩ ¤à¥á 樥© ®âáãâáâ¢ãî饣® ¢ ­¥© í«¥¬¥­â ­¥ ¯à¥¢®á室¨â 1=(1;) (å¥è¨à®¢ ­¨¥ ¯à¥¤¯®« £ ¥âáï à ¢­®¬¥à­ë¬, ç¥à¥§ < 1 ®¡®§­ 祭 ª®íää¨æ¨¥­â § ¯®«­¥­¨ï).
„®ª § ⥫ìá⢮. Œë ¯à¥¤¯®« £ ¥¬, çâ® â ¡«¨æ 䨪á¨à®¢ ­ , ¨áª®¬ë© í«¥¬¥­â ¢ë¡¨à ¥âáï á«ãç ©­®, ¯à¨çñ¬ ¢á¥ ¢®§¬®¦­ë¥ ¯®á«¥¤®¢ ⥫쭮á⨠¯à®¡ à ¢­®¢¥à®ïâ­ë.  á ¨­â¥à¥áã¥â ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ç¨á« ¯®¯ë⮪, ­¥®¡å®¤¨¬ëå ¤«ï ®¡­ à㦥­¨ï
᢮¡®¤­®© ï祩ª¨, â® ¥áâì á㬬 1+
1
X
i=0
ipi:
(12.6)
£¤¥ pi | ¢¥à®ïâ­®áâì ⮣®, çâ® ¬ë ¢áâà¥â¨¬ ஢­® i § ­ïâëå ï祥ª.
Š ¦¤ ï ­®¢ ï ¯à®¡ ¢ë¡¨à ¥âáï à ¢­®¬¥à­® á।¨ ®áâ ¢è¨åáï
­¥ ¨á¯à®¡®¢ ­­ë¬¨ ï祥ª; ¥á«¨ à §à¥è¨âì ¯à®¡®¢ âì ¯®¢â®à­® 㦥
¨á¯à®¡®¢ ­­ë¥ ï祩ª¨, â® ç áâì ¯à®¡ ¯à®¯ ¤ñâ §àï ¨ ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ⮫쪮 㢥«¨ç¨âáï. ® ¤«ï í⮣® ­®¢®£® ¢ ਠ­â ¬ë 㦥 ¢ëç¨á«ï«¨ ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ (à §¤¥« 6.4, £¥®¬¥âà¨ç¥áª®¥ à á¯à¥¤¥«¥­¨¥), ¨ ®­® à ¢­®
1=(1 ; )
(12.7)
¯®áª®«ìªã ¢¥à®ïâ­®áâì ãá¯¥å ¤«ï ª ¦¤®© ¯à®¡ë à ¢­ 1 ; .
…᫨ ª®íää¨æ¨¥­â § ¯®«­¥­¨ï ®â¤¥«ñ­ ®â ¥¤¨­¨æë, ⥮६ 12.5
¯à¥¤áª §ë¢ ¥â, çâ® ¯®¨áª ®âáãâáâ¢ãî饣® í«¥¬¥­â ¡ã¤¥â ¢ á।­¥¬ ¯à®å®¤¨âì § ¢à¥¬ï O(1).  ¯à¨¬¥à, ¥á«¨ â ¡«¨æ § ¯®«­¥­ ­ ¯®«®¢¨­ã, â® á।­¥¥ ç¨á«® ¯à®¡ ¡ã¤¥â ­¥ ¡®«ìè¥ 1=(1 ; 0;5) = 2,
¥á«¨ ­ 90%, â® ­¥ ¡®«ìè¥ 1=(1 ; 0;9) = 10.
ˆ§ ⥮६ë 12.5 ­¥¬¥¤«¥­­® ¯®«ãç ¥âáï ¨ ®æ¥­ª ­ á⮨¬®áâì
®¯¥à 樨 ¤®¡ ¢«¥­¨ï ª â ¡«¨æ¥:
‘«¥¤á⢨¥ 12.6. ‚ ¯à¥¤¯®«®¦¥­¨¨ à ¢­®¬¥à­®£® å¥è¨à®¢ ­¨ï ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ç¨á« ¯à®¡ ¯à¨ ¤®¡ ¢«¥­¨¨ ­®¢®£® í«¥¬¥­â ¢ â ¡«¨æã á ®âªàë⮩ ¤à¥á 樥© ­¥ ¯à¥¢®á室¨â 1=(1 ; ), £¤¥
< 1 | ª®íää¨æ¨¥­â § ¯®«­¥­¨ï.
„®ª § ⥫ìá⢮. à¨ ¤®¡ ¢«¥­¨¨ ¢ â ¡«¨æã ®âáãâáâ¢ãî饣® ¢
­¥© í«¥¬¥­â ¯à®¨á室ïâ ⥠¦¥ ¯à®¡ë, çâ® ¯à¨ ¯®¨áª¥ ®âáãâáâ¢ãî饣® ¢ ¢ ­¥© í«¥¬¥­â .
Žæ¥­¨âì á।­¥¥ ¢à¥¬ï ãᯥ譮£® ¯®¨áª ­¥¬­®£¨¬ á«®¦­¥¥.
Žâªàëâ ï ¤à¥á æ¨ï
237
’¥®à¥¬ 12.7.  áᬮâਬ â ¡«¨æã á ®âªàë⮩ ¤à¥á 樥©, ª®íää¨æ¨¥­â § ¯®«­¥­¨ï ª®â®à®© à ¢¥­ < 1. ãáâì å¥è¨à®¢ ­¨¥ à ¢­®¬¥à­®. ’®£¤ ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ç¨á« ¯à®¡ ¯à¨
ãᯥ譮¬ ¯®¨áª¥ í«¥¬¥­â ¢ â ¡«¨æ¥ ­¥ ¯à¥¢®á室¨â
1
1
ln 1 ; ;
¥á«¨ áç¨â âì, çâ® ª«îç ¤«ï ãᯥ譮£® ¯®¨áª ¢ â ¡«¨æ¥ ¢ë¡¨à ¥âáï á«ãç ©­ë¬ ®¡à §®¬ ¨ ¢á¥ â ª¨¥ ¢ë¡®àë à ¢­®¢¥à®ïâ­ë.
„®ª § ⥫ìá⢮. “â®ç­¨¬, ª ª ¯à®¨§¢®¤¨âáï ãá।­¥­¨¥: á­ ç « ¬ë § ¯®«­ï¥¬ â ¡«¨æã ­¥§ ¢¨á¨¬® ¢ë¡¨à ¥¬ë¬¨ ª«îç ¬¨, ¯à¨çñ¬
¤«ï ª ¦¤®£® ¨§ ­¨å ¢ë¯®«­ï¥âáï ¯à¥¤¯®«®¦¥­¨¥ à ¢­®¬¥à­®£® å¥è¨à®¢ ­¨ï. ‡ ⥬ ¬ë ãá।­ï¥¬ ¯® ¢á¥¬ í«¥¬¥­â ¬ â ¡«¨æë ¢à¥¬ï
¨å ¯®¨áª .
‡ ¬¥â¨¬, çâ® ¯à¨ ãᯥ譮¬ ¯®¨áª¥ ª«îç k ¬ë ¤¥« ¥¬ ⥠¦¥
á ¬ë¥ ¯à®¡ë, ª®â®àë¥ ¯à®¨§¢®¤¨«¨áì ¯à¨ ¯®¬¥é¥­¨¨ ª«îç k ¢
â ¡«¨æã. ’¥¬ á ¬ë¬ á।­¥¥ ç¨á«® ¯à®¡ ¯à¨ ¯®¨áª¥ (ãá।­¥­¨¥ ¯®
í«¥¬¥­â ¬) à ¢­® ®¡é¥¬ã ç¨á«ã ¯à®¡ ¯à¨ ¤®¡ ¢«¥­¨¨, ¤¥«ñ­­®¬ã
­ ç¨á«® í«¥¬¥­â®¢ ¢ â ¡«¨æ¥, ª®â®à®¥ ¬ë ®¡®§­ ç ¥¬ n. Œ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ®¡é¥£® ç¨á« ¯à®¡ ¯à¨ ¤®¡ ¢«¥­¨¨ à ¢­® á㬬¥
¬ ⥬ â¨ç¥áª¨å ®¦¨¤ ­¨© ¤«ï ª ¦¤®£® ®â¤¥«ì­®£® è £ . Š ¬®¬¥­âã ¤®¡ ¢«¥­¨ï (i+1)-£® í«¥¬¥­â ¢ â ¡«¨æ¥ § ¯®«­¥­® i ¯®§¨æ¨©,
ª®íää¨æ¨¥­â § ¯®«­¥­¨ï à ¢¥­ i=m (m | ç¨á«® ¬¥áâ ¢ â ¡«¨æ¥),
¨ ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ­¥ ¡®«ìè¥ 1=(1 ; i=m) = m=(m ; i).
®í⮬ã á㬬 ¬ ⥬ â¨ç¥áª¨å ®¦¨¤ ­¨© ­¥ ¯à¥¢®á室¨â
m + m + m + :::+ m :
m m;1 m;2
m;n+1
â á㬬 à ¢­ m (1=(m ; n + 1) + : : : + 1=(m ; 1) + 1=m) ¨
®æ¥­¨¢ ¥âáï ᢥàåã á ¯®¬®éìî ¨­â¥£à « (3.10):
m
Zm
m;n
1 dt = m ln(m=(m ; n)):
t
‚ᯮ¬¨­ ï, çâ® ®¡é¥¥ ç¨á«® ®¯¥à 権 ­ ¤® ¯®¤¥«¨âì ­ n, ¯®«ãç ¥¬
®æ¥­ªã (m=n) ln(m=(m ; n)) = (1=) ln(1=(1 ; )).
…᫨, ­ ¯à¨¬¥à, â ¡«¨æ § ¯®«­¥­ ­ ¯®«®¢¨­ã, â® á।­¥¥ ç¨á«®
¯à®¡ ¤«ï ãᯥ譮£® ¯®¨áª ­¥ ¯à¥¢®á室¨â 1;387, ¥á«¨ ­ 90%, â®
2;559.
“¯à ¦­¥­¨ï
12.4-1 ‚믮«­¨â¥ ¤®¡ ¢«¥­¨¥ ª«î祩 10; 22; 31; 4; 15; 28; 17; 88; 59
(¢ 㪠§ ­­®¬ ¯®à浪¥) ¢ å¥è-â ¡«¨æã á ®âªàë⮩ ¤à¥á 樥© à §-
238
ƒ« ¢ 12 •¥è-â ¡«¨æë
¬¥à m = 11. „«ï ¢ëç¨á«¥­¨ï ¯®á«¥¤®¢ ⥫쭮á⨠¯à®¡ ¨á¯®«ì§ã¥âáï «¨­¥©­ë© ¬¥â®¤ á h0(k) = k mod m. ‚믮«­¨â¥ â® ¦¥ § ¤ ­¨¥, ¥á«¨ ¨á¯®«ì§ã¥âáï ª¢ ¤à â¨ç­ë© ¬¥â®¤ á ⮩ ¦¥ h0, c1 = 1,
c2 = 3, â ª¦¥ ¤«ï ¤¢®©­®£® å¥è¨à®¢ ­¨ï á h1 = h0 ¨ h2 (k) =
1 + (k mod (m ; 1)).
12.4-2  ¯¨è¨â¥ ¯à®æ¥¤ãàã Hash-Delete ¤«ï 㤠«¥­¨ï í«¥¬¥­â ¨§ â ¡«¨æë á ®âªàë⮩ ¤à¥á 樥©, ॠ«¨§ãîéãî ®¯¨á ­­ãî á奬ã (á® §­ 祭¨¥¬ deleted), ¨ ¯¥à¥¯¨è¨â¥ ᮮ⢥âáâ¢ãî騬 ®¡à §®¬ ¯à®æ¥¤ãàë Hash-Insert ¨ Hash-Search.
12.4-3? ®ª ¦¨â¥, çâ® ¯à¨ ¤¢®©­®¬ å¥è¨à®¢ ­¨¨ (h(k; i) =
(h1 (k) + ih2(k)) mod m) ¯®á«¥¤®¢ ⥫쭮áâì ¯à®¡, ᮮ⢥âáâ¢ãîé ï ª«îçã k, ï¥âáï ¯¥à¥áâ ­®¢ª®© ¬­®¦¥á⢠f0; 1; : : :; m ; 1g
⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ h2(k) ¢§ ¨¬­® ¯à®áâ® á m. (“ª § ­¨¥:
á¬. £« ¢ã 33.)
12.4-4  ©¤¨â¥ ç¨á«¥­­ë¥ §­ 祭¨ï ¢¥àå­¨å ®æ¥­®ª ⥮६ 12.5
¨ 12.7 ¤«ï ¯®¨áª¥ ¯à¨áãâáâ¢ãî饣® ¨ ®âáãâáâ¢ãî饣® í«¥¬¥­â®¢
¤«ï ª®íää¨æ¨¥­â®¢ § ¯®«­¥­¨ï 1=2, 3=4 ¨ 7=8.
12.4-5? à¥¤¯®«®¦¨¬, çâ® ¬ë ¯®¬¥é ¥¬ n § ¯¨á¥© ¢ â ¡«¨æã á ®âªàë⮩ ¤à¥á 樥©; à §¬¥à â ¡«¨æë à ¢¥­ m, å¥è¨à®¢ ­¨¥ à ¢­®¬¥à­®, ª«îç¨ § ¯¨á¥© ¢ë¡¨à îâáï á«ãç ©­ë¬ ®¡à §®¬. Ž¡®§­ 稬
ç¥à¥§ p(n; m) ¢¥à®ïâ­®áâì ⮣®, çâ® ¯à¨ í⮬ ­¥ ¯à®¨§®©¤¥â ª®««¨§¨©. ®ª ¦¨â¥, çâ® p(n; m) 6 e;n(n;1)=2m. (“ª § ­¨¥: á¬. ­¥à ¢¥­
á⢮ (2.7).) â ¢¥«¨ç¨­ ®ç¥­ì ¬ « , ª®£¤ n § ¬¥â­® ¡®«ìè¥ pn.
12.4-6? — áâ¨ç­ë¥ áã¬¬ë £ ମ­¨ç¥áª®£® àï¤ ¬®¦­® ®æ¥­¨âì
â ª:
Hn = ln n + + 2"n ;
(12.8)
£¤¥ = 0;5772156649 : : : | â ª ­ §ë¢ ¥¬ ï ¯®áâ®ï­­ ï ©«¥à (Euler's constant) ¨ 0 < " < 1 (¤®ª § ⥫ìá⢮ á¬. ¢ ª­¨£¥
Š­ãâ [121]). Š ª ¨á¯®«ì§®¢ âì íâ® ¤«ï ®æ¥­ª¨ ªã᪠£ ମ­¨ç¥áª®£® àï¤ ¢ ¤®ª § ⥫ìá⢥ ⥮६ë 12.7?
12.4-7?  ©¤¨â¥ ­¥­ã«¥¢®¥ §­ 祭¨¥ ª®íää¨æ¨¥­â § ¯®«­¥­¨ï ,
¯à¨ ª®â®à®¬ ®æ¥­ª á।­¥£® ç¨á« ¯à®¡ ¯à¨ ¯®¨áª¥ ®âáãâáâ¢ãî饣® í«¥¬¥­â (⥮६ 12.5) ¢¤¢®¥ ¯à¥¢®á室¨â ®æ¥­ªã á।­¥£®
ç¨á« ¯à®¡ ¯à¨ ãᯥ譮¬ ¯®¨áª¥ (⥮६ 12.7).
‡ ¤ ç¨ ª £« ¢¥ 12
239
‡ ¤ ç¨
12-1  ¨¡®«ì襥 ç¨á«® ¯à®¡ ¯à¨ ¤®¡ ¢«¥­¨¨ í«¥¬¥­â  áᬮâਬ å¥è-â ¡«¨æã á ®âªàë⮩ ¤à¥á 樥© à §¬¥à m, ¢
ª®â®àãî ®¤¨­ § ¤à㣨¬ ¯®¬¥é îâáï n ª«î祩, ¯à¨çñ¬ n 6 m=2.
à¥¤¯®«®¦¨¬, çâ® å¥è¨à®¢ ­¨¥ à ¢­®¬¥à­®.
. ®ª ¦¨â¥, çâ® ¤«ï «î¡®£® i = 1; 2; : : :; n ¢¥à®ïâ­®áâì ⮣®, çâ®
¯à¨ ¤®¡ ¢«¥­¨¨ i-£® ª«îç ¢ â ¡«¨æ㠯ந§®è«® ¡®«¥¥ k ¯à®¡, ­¥
¯à¥¢®á室¨â 2;k .
¡. ®ª ¦¨â¥, çâ® ¤«ï «î¡®£® i = 1; 2; : : :; n ¢¥à®ïâ­®áâì ⮣®, çâ®
¯à¨ ¤®¡ ¢«¥­¨¨ i-£® ª«îç ¢ â ¡«¨æ㠯ந§®è«® ¡®«¥¥ 2 lg n ¯à®¡,
­¥ ¯à¥¢®á室¨â 1=n2.
ãáâì X | á«ãç ©­ ï ¢¥«¨ç¨­ , à ¢­ ï ¬ ªá¨¬ «ì­®¬ã ç¨á«ã ¯à®¡
¯à¨ ¤®¡ ¢«¥­¨¨ í«¥¬¥­â®¢ á ­®¬¥à ¬¨ 1; 2; : : :; n.
¢. ®ª ¦¨â¥, çâ® PfX > 2 lg ng 6 1=n.
£. ®ª ¦¨â¥, çâ® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢¥«¨ç¨­ë X (­ ¨¡®«ì襣® ç¨á« ¯à®¡) ¥áâì O(lg n).
12-2 ®¨áª ¢ ­¥¨§¬¥­ïî饬áï ¬­®¦¥á⢥
ãáâì ¬ë à ¡®â ¥¬ á ¬­®¦¥á⢮¬ ¨§ n í«¥¬¥­â®¢, ¢ ª®â®à®¬
ª«îç¨ ï¢«ïîâáï ç¨á« ¬¨, ¥¤¨­á⢥­­ ï ®¯¥à æ¨ï, ª®â®àãî ­ ¤®
¯®¤¤¥à¦¨¢ âì, | íâ® ¯®¨áª (í«¥¬¥­âë ­¥ ¤®¡ ¢«ïîâáï ¨ ­¥ 㤠«ïîâáï). ’ॡã¥âáï ॠ«¨§®¢ âì ¯®¨áª ¬ ªá¨¬ «ì­® íä䥪⨢­® (¤®
⮣®, ª ª ­ ç­ãâ ¯®áâ㯠âì § ¯à®áë ­ ¯®¨áª, ¬­®¦¥á⢮ ¬®¦­®
¯à¥¤¢ à¨â¥«ì­® ®¡à ¡®â âì, ¨ ¢à¥¬ï ­ â ªãî ®¡à ¡®âªã ­¥ ®£à ­¨ç¥­®).
. ®ª ¦¨â¥, çâ® ¯®¨áª ¬®¦­® ॠ«¨§®¢ âì â ª¨¬ ®¡à §®¬, çâ®¡ë ¢
åã¤è¥¬ á«ãç ¥ ®­ § ­¨¬ « ¢à¥¬ï O(lg n), ¤®¯®«­¨â¥«ì­ ï ¯ ¬ïâì (ᢥàå ⮩, ¢ ª®â®à®© åà ­¨âáï á ¬® ¬­®¦¥á⢮) ­¥ ¨á¯®«ì§®¢ « áì.
¡. ãáâì ¬ë à¥è¨«¨ § ¯¨á âì í«¥¬¥­âë ­ 襣® ¬­®¦¥á⢠¢ å¥èâ ¡«¨æã á ®âªàë⮩ ¤à¥á 樥©, á®áâ®ïéãî ¨§ m ï祥ª. à¥¤¯®«®¦¨¬, çâ® å¥è¨à®¢ ­¨¥ à ¢­®¬¥à­®. à¨ ª ª®¬ ¬¨­¨¬ «ì­®¬
®¡êñ¬¥ m ; n ¤®¯®«­¨â¥«ì­®© ¯ ¬ï⨠á।­ïï á⮨¬®áâì ®¯¥à 樨 ¯®¨áª í«¥¬¥­â , ®âáãâáâ¢ãî饣® ¢ ¬­®¦¥á⢥, ¡ã¤¥â ­¥ å㦥,
祬 ¢ ¯ã­ªâ¥ ( )? ‚ ª ç¥á⢥ ®â¢¥â ¯à¨¢¥¤¨â¥ ᨬ¯â®â¨ç¥áªãî
®æ¥­ªã m ; n ç¥à¥§ n.
12-3 „«¨­ë 楯®ç¥ª ¯à¨ å¥è¨à®¢ ­¨¨
 áᬮâਬ å¥è-â ¡«¨æã á n ï祩ª ¬¨, ¢ ª®â®à®© ª®««¨§¨¨ à §à¥è îâáï á ¯®¬®éìî 楯®ç¥ª. •¥è¨à®¢ ­¨¥ à ¢­®¬¥à­®: ª ¦¤ë©
­®¢ë© ª«îç ¨¬¥¥â à ¢­ë¥ è ­áë ¯®¯ áâì ¢® ¢á¥ ï祩ª¨ ­¥§ ¢¨á¨¬®
240
ƒ« ¢ 12 •¥è-â ¡«¨æë
®â ¯à¥¤ë¤ãé¨å. ãáâì M | ¬ ªá¨¬ «ì­ ï ¤«¨­ 楯®ç¥ª ¯®á«¥ ¤®¡ ¢«¥­¨ï n ª«î祩. ‚ è § ¤ ç | ¤®ª § âì, çâ® ¬ ⥬ â¨ç¥áª®¥
®¦¨¤ ­¨¥ M ¥áâì O(lg n= lg lg n).
. ”¨ªá¨à㥬 ­¥ª®â®à®¥ å¥è-§­ 祭¨¥. ãáâì Qk | ¢¥à®ïâ­®áâì
⮣®, ¥¬ã ᮮ⢥âáâ¢ã¥â k à §«¨ç­ëå ª«î祩. ®ª ¦¨â¥, çâ®
Qk = Cnk
¡.
¢.
£.
¤.
k 1
n;k
1
1; n
:
n
ãáâì Pk | ¢¥à®ïâ­®áâì ⮣®, çâ® ¬ ªá¨¬ «ì­ ï ¤«¨­ 楯®çª¨
à ¢­ k. ®ª ¦¨â¥, çâ® Pk 6 nQk .
‚뢥¤¨â¥ ¨§ ä®à¬ã«ë ‘â¨à«¨­£ (2.11), çâ® Qk < ek =kk .
®ª ¦¨â¥, çâ® áãé¥áâ¢ã¥â â ª ï ª®­áâ ­â c > 1, çâ® Qk < 1=n3
¯à¨ k > c lg n= lg lg n. ‡ ª«îç¨â¥ ®âáî¤ , çâ® Pk < 1=n2 ¯à¨ â ª¨å k.
®ª ¦¨â¥, çâ® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢¥«¨ç¨­ë M ­¥ ¯à¥¢®á室¨â
c
lg
n
c
lg
n
P M > lg lg n n + P M 6 lg lg n lgc lglgnn ;
¨ ¢ë¢¥¤¨â¥ ®âáî¤ , çâ® íâ® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¥áâì
O(lg n= lg lg n).
12-4 à¨¬¥à ª¢ ¤à â¨ç­®© ¯®á«¥¤®¢ ⥫쭮á⨠¯à®¡
ãáâì ­ ¬ ­ ¤® ¯®¬¥áâ¨âì § ¯¨áì á ª«î箬 k ¢ å¥è-â ¡«¨æã,
ï祩ª¨ ª®â®à®© ¯à®­ã¬¥à®¢ ­ë ç¨á« ¬¨ 0; 1; : : :; m ; 1. “ ­ á ¥áâì
å¥è-äã­ªæ¨ï h, ®â®¡à ¦ îé ï ¬­®¦¥á⢮ ª«î祩 ¢ ¬­®¦¥á⢮
f0; 1; : : :; m ; 1g. ã¤¥¬ ¤¥©á⢮¢ âì â ª:
1.  室¨¬ i h(k) ¨ ¯®« £ ¥¬ j 0.
2. à®¢¥à塞 ¯®§¨æ¨î ­®¬¥à i. …᫨ ®­ ᢮¡®¤­ , § ­®á¨¬ â㤠§ ¯¨áì ¨ ­ í⮬ ®áâ ­ ¢«¨¢ ¥¬áï.
3. ®« £ ¥¬ j (j + 1) mod m ¨ i (i + j ) mod m ¨ ¢®§¢à é ¥¬áï
ª è £ã 2.
. ®ª ¦¨â¥, çâ® ®¯¨á ­­ë© «£®à¨â¬ | ç áâ­ë© á«ãç © "ª¢ ¤à â¨ç­®£® ¬¥â®¤ " ¤«ï ¯®¤å®¤ïé¨å §­ 祭¨© c1 ¨ c2.
à¥¤¯®«®¦¨¬, çâ® m ï¥âáï á⥯¥­ìî ¤¢®©ª¨.
¡. ®ª ¦¨â¥, çâ® ¢ åã¤è¥¬ á«ãç ¥ ¡ã¤¥â ¯à®á¬®â७ ¢áï â ¡«¨æ .
12-5 k-ã­¨¢¥àá «ì­®¥ å¥è¨à®¢ ­¨¥
ãáâì H | ᥬ¥©á⢮ å¥è-ä㭪権, ®â®¡à ¦ îé¨å ¬­®¦¥á⢮ ¢®§¬®¦­ëå ª«î祩 U ¢ f0; 1; : : :; m ; 1g. ã¤¥¬ £®¢®à¨âì,
çâ® H ï¥âáï k-ã­¨¢¥àá «ì­ë¬, ¥á«¨ ¤«ï «î¡®© ¯®á«¥¤®¢ ⥫쭮á⨠k à §«¨ç­ëå ª«î祩 hx1; : : :; xki á«ãç ©­ ï ¢¥«¨ç¨­ hh(x1); : : :; h(xk)i (£¤¥ h | á«ãç ©­ë© í«¥¬¥­â H) ¯à¨­¨¬ ¥â
¢á¥ mk ᢮¨å ¢®§¬®¦­ëå §­ 祭¨© á à ¢­ë¬¨ ¢¥à®ïâ­®áâﬨ.
‡ ¬¥ç ­¨ï ª £« ¢¥ 12
241
. ®ª ¦¨â¥, çâ® ¢á类¥ 2-ã­¨¢¥àá «ì­®¥ ᥬ¥©á⢮ ã­¨¢¥àá «ì­®.
¡. ®ª ¦¨â¥, ç⮠ᥬ¥©á⢮ H, ®¯¨á ­­®¥ ¢ à §¤¥«¥ 12.3.3, ­¥ ï¥âáï 2-ã­¨¢¥àá «ì­ë¬.
¢.  áè¨à¨¬ ᥬ¥©á⢮ H ¨§ à §¤. 12.3.3 ¨ à áᬮâਬ ¢á¥¢®§¬®¦­ë¥ ä㭪樨 ¢¨¤ ha;b(x) = ha(x) + b mod m;
£¤¥ b | ­¥ª®â®àë© ¢ëç¥â ¯® ¬®¤ã«î m. ®ª ¦¨â¥, çâ® ¯®«ã祭­®¥
ᥬ¥©á⢮ ¡ã¤¥â 2-ã­¨¢¥àá «ì­ë¬.
‡ ¬¥ç ­¨ï
€«£®à¨â¬ë å¥è¨à®¢ ­¨ï ¯à¥ªà á­® ¨§«®¦¥­ë 㠊­ãâ [123] ¨
ƒ®­­¥â [90]. ‘®£« á­® Š­ãâã, å¥è-â ¡«¨æë ¨ ¬¥â®¤ 楯®ç¥ª ¡ë«¨
¨§®¡à¥â¥­ë ‹ã­®¬ (H. P. Luhn) ¢ 1953 £®¤ã. à¨¬¥à­® ¢ â® ¦¥ ¢à¥¬ï
€¬¤ «ì (G. M. Amdahl) ¨§®¡àñ« ®âªàëâãî ¤à¥á æ¨î.
13
„¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª „¥à¥¢ìï ¯®¨áª (search trees) ¯®§¢®«ïî⠢믮«­ïâì á«¥¤ãî騥 ®¯¥à 樨 á ¤¨­ ¬¨ç¥áª¨¬¨ ¬­®¦¥á⢠¬¨: Search (¯®¨áª), Minimum
(¬¨­¨¬ã¬), Maximum (¬ ªá¨¬ã¬), Predecessor (¯à¥¤ë¤ã騩),
Successor (á«¥¤ãî騩), Insert (¢áâ ¢¨âì) ¨ Delete (㤠«¨âì).
’ ª¨¬ ®¡à §®¬, ¤¥à¥¢® ¯®¨áª ¬®¦¥â ¡ëâì ¨á¯®«ì§®¢ ­® ¨ ª ª á«®¢ àì, ¨ ª ª ®ç¥à¥¤ì á ¯à¨®à¨â¥â ¬¨.
‚à¥¬ï ¢ë¯®«­¥­¨ï ®á­®¢­ëå ®¯¥à 権 ¯à®¯®à樮­ «ì­® ¢ëá®â¥
¤¥à¥¢ . …᫨ ¤¢®¨ç­®¥ ¤¥à¥¢® "¯«®â­® § ¯®«­¥­®" (¢á¥ ¥£® ã஢­¨
¨¬¥îâ ¬ ªá¨¬ «ì­® ¢®§¬®¦­®¥ ç¨á«® ¢¥à設), â® ¥£® ¢ëá®â (¨
¢à¥¬ï ¢ë¯®«­¥­¨ï ®¯¥à 権) ¯à®¯®à樮­ «ì­ë «®£ à¨ä¬ã ç¨á« ¢¥à設.  ¯à®â¨¢, ¥á«¨ ¤¥à¥¢® ¯à¥¤áâ ¢«ï¥â ᮡ®© «¨­¥©­ãî 楯®çªã ¨§ n ¢¥à設, íâ® ¢à¥¬ï ¢ëà á⠥⠤® (n). ‚ à §¤¥«¥ 13.4
¬ë 㢨¤¨¬, çâ® ¢ëá®â á«ãç ©­®£® ¤¢®¨ç­®£® ¤¥à¥¢ ¯®¨áª ¥áâì
O(lg n), â ª çâ® ¢ í⮬ á«ãç ¥ ¢à¥¬ï ¢ë¯®«­¥­¨ï ®á­®¢­ëå ®¯¥à 権 ¥áâì (lg n).
Š®­¥ç­®, ¢®§­¨ª î騥 ­ ¯à ªâ¨ª¥ ¤¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª ¬®£ãâ ¡ëâì ¤ «¥ª¨ ®â á«ãç ©­ëå. Ž¤­ ª®, ¯à¨­ï¢ á¯¥æ¨ «ì­ë¥ ¬¥àë
¯® ¡ « ­á¨à®¢ª¥ ¤¥à¥¢ì¥¢, ¬ë ¬®¦¥¬ £ à ­â¨à®¢ âì, çâ® ¢ëá®â ¤¥à¥¢ì¥¢ á n ¢¥à設 ¬¨ ¡ã¤¥â O(log n). ‚ £« ¢¥ 14 à áᬮâ७ ®¤¨­ ¨§
¯®¤å®¤®¢ â ª®£® த (ªà á­®-çñà­ë¥ ¤¥à¥¢ìï). ‚ £« ¢¥ 19 à áᬠâਢ îâáï -¤¥à¥¢ìï, ª®â®àë¥ ®á®¡¥­­® 㤮¡­ë ¤«ï ¤ ­­ëå, åà ­ïé¨åáï ¢® ¢â®à¨ç­®© ¯ ¬ïâ¨ á ¯à®¨§¢®«ì­ë¬ ¤®áâ㯮¬ (­ ¤¨áª¥).
‚ í⮩ £« ¢¥ ¬ë à áᬮâਬ ®á­®¢­ë¥ ®¯¥à 樨 á ¤¢®¨ç­ë¬¨
¤¥à¥¢ìﬨ ¯®¨áª ¨ ¯®ª ¦¥¬, ª ª ­ ¯¥ç â âì í«¥¬¥­âë ¤¥à¥¢ ¢
­¥ã¡ë¢ î饬 ¯®à浪¥, ª ª ¨áª âì § ¤ ­­ë© í«¥¬¥­â, ª ª ­ ©â¨
¬ ªá¨¬ «ì­ë© ¨«¨ ¬¨­¨¬ «ì­ë© í«¥¬¥­â, ª ª ­ ©â¨ í«¥¬¥­â, á«¥¤ãî騩 § ¤ ­­ë¬ ¨ ¯à¥¤è¥áâ¢ãî騩 ¤ ­­®¬ã, ¨, ­ ª®­¥æ, ª ª
¤®¡ ¢¨âì ¨«¨ 㤠«¨âì í«¥¬¥­â.  ¯®¬­¨¬, çâ® ®¯à¥¤¥«¥­¨¥ ¤¥à¥¢ ¨ ®á­®¢­ë¥ ᢮©á⢠¤¥à¥¢ì¥¢ ¯à¨¢®¤ïâáï ¢ £« ¢¥ 5.
—â® â ª®¥ ¤¢®¨ç­®¥ ¤¥à¥¢® ¯®¨áª ?
243
13.1 „¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª . ‹¥¢®¥ ¯®¤¤¥à¥¢® ¯à®¨§¢®«ì­®© ¢¥à設ë x ᮤ¥à¦¨â ª«îç¨, ­¥ ¯à¥¢®á室ï騥 key[x], ¯à ¢®¥ | ­¥ ¬¥­ì訥 key[x].
 §­ë¥ ¤¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª ¬®£ã⠯।áâ ¢«ïâì ®¤­® ¨ â® ¦¥ ¬­®¦¥á⢮.
‚à¥¬ï ¢ë¯®«­¥­¨ï (¢ åã¤è¥¬ á«ãç ¥) ¡®«ì設á⢠®¯¥à 権 ¯à®¯®à樮­ «ì­®
¢ëá®â¥ ¤¥à¥¢ . ( ) „¢®¨ç­®¥ ¤¥à¥¢® ¯®¨áª ¢ëá®âë 2 á 6 ¢¥à設 ¬¨. (¡) Œ¥­¥¥
íä䥪⨢­®¥ ¤¥à¥¢® ¢ëá®âë 4, ᮤ¥à¦ 饥 ⥠¦¥ ª«îç¨.
¨áã­®ª
13.1 —â® â ª®¥ ¤¢®¨ç­®¥ ¤¥à¥¢® ¯®¨áª ?
‚ ¤¢®¨ç­®¬ ¤¥à¥¢¥ ¯®¨áª (binary search tree; ¯à¨¬¥à ¯à¨¢¥¤ñ­ ­ à¨á. 13.1) ª ¦¤ ï ¢¥à設 ¬®¦¥â ¨¬¥âì (¨«¨ ­¥ ¨¬¥âì) «¥¢®£® ¨
¯à ¢®£® ॡñ­ª ; ª ¦¤ ï ¢¥à設 , ªà®¬¥ ª®à­ï, ¨¬¥¥â த¨â¥«ï.
à¨ ¯à¥¤áâ ¢«¥­¨¨ á ¨á¯®«ì§®¢ ­¨¥¬ 㪠§ ⥫¥© ¬ë åà ­¨¬ ¤«ï
ª ¦¤®© ¢¥àè¨­ë ¤¥à¥¢ , ¯®¬¨¬® §­ 祭¨ï ª«îç key ¨ ¤®¯®«­¨â¥«ì­ëå ¤ ­­ëå, â ª¦¥ ¨ 㪠§ ⥫¨ left, right ¨ p («¥¢ë© ॡñ­®ª,
¯à ¢ë© ॡñ­®ª, த¨â¥«ì). …᫨ ॡñ­ª (¨«¨ த¨â¥«ï | ¤«ï
ª®à­ï) ­¥â, ᮮ⢥âáâ¢ãî饥 ¯®«¥ ᮤ¥à¦¨â nil.
Š«îç¨ ¢ ¤¢®¨ç­®¬ ¤¥à¥¢¥ ¯®¨áª åà ­ïâáï á ᮡ«î¤¥­¨¥¬ ᢮©-
á⢠㯮à冷祭­®á⨠(binary-search-tree property):
ãáâì x | ¯à®¨§¢®«ì­ ï ¢¥à設 ¤¢®¨ç­®£® ¤¥à¥¢ ¯®¨áª . …᫨
¢¥à設 y ­ 室¨âáï ¢ «¥¢®¬ ¯®¤¤¥à¥¢¥ ¢¥à設ë x, â® key[y] 6
key[x]. …᫨ y ­ 室¨âáï ¢ ¯à ¢®¬ ¯®¤¤¥à¥¢¥ x, â® key[y ] > key[x].
’ ª, ­ à¨á. 13.1( ) ¢ ª®à­¥ ¤¥à¥¢ åà ­¨âáï ª«îç 5, ª«îç¨ 2, 3 ¨ 5
«¥¢®¬ ¯®¤¤¥à¥¢¥ ª®à­ï ­¥ ¯à¥¢®á室ïâ 5, ª«îç¨ 7 ¨ 8 ¢ ¯à ¢®¬ |
­¥ ¬¥­ìè¥ 5. ’® ¦¥ á ¬®¥ ¢¥à­® ¤«ï ¢á¥å ¢¥à設 ¤¥à¥¢ .  ¯à¨¬¥à,
ª«îç 3 ­ à¨á. 13.1( ) ­¥ ¬¥­ìè¥ ª«îç 2 ¢ «¥¢®¬ ¯®¤¤¥à¥¢¥ ¨ ­¥
¡®«ìè¥ ª«îç 5 ¢ ¯à ¢®¬.
‘¢®©á⢮ 㯮à冷祭­®á⨠¯®§¢®«ï¥â ­ ¯¥ç â âì ¢á¥ ª«îç¨ ¢ ­¥-
ã¡ë¢ î饬 ¯®à浪¥ á ¯®¬®éìî ¯à®á⮣® ४ãàᨢ­®£® «£®à¨â¬ (­ §ë¢ ¥¬®£® ¯®- ­£«¨©áª¨ inorder tree walk). â®â «£®à¨â¬ ¯¥ç ⠥⠪«îç ª®à­ï ¯®¤¤¥à¥¢ ¯®á«¥ ¢á¥å ª«î祩 ¥£® «¥¢®£® ¯®¤¤¥à¥¢ ,
­® ¯¥à¥¤ ª«îç ¬¨ ¯à ¢®£® ¯®¤¤¥à¥¢ . (‡ ¬¥â¨¬ ¢ ᪮¡ª å, çâ® ¯®à冷ª, ¯à¨ ª®â®à®¬ ª®à¥­ì ¯à¥¤è¥áâ¢ã¥â ®¡®¨¬ ¯®¤¤¥à¥¢ìï¬, ­ -
244
ƒ« ¢ 13 „¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª §ë¢ ¥âáï preorder; ¯®à冷ª, ¢ ª®â®à®¬ ª®à¥­ì á«¥¤ã¥â § ­¨¬¨, ­ §ë¢ ¥âáï postorder.)
‚맮¢ Inorder-Tree-Walk (root[T ]) ¯¥ç â ¥â (¢ 㪠§ ­­®¬ ¯®à浪¥) ¢á¥ ª«îç¨, ¢å®¤ï騥 ¢ ¤¥à¥¢® T á ª®à­¥¬ root[T ].
Inorder-Tree-Walk (x)
1 if x =
6 nil
2 then Inorder-Tree-Walk (left[x])
3
­ ¯¥ç â âì key[x]
4
Inorder-Tree-Walk (right[x])
Š ¯à¨¬¥àã, ¤«ï ®¡®¨å ¤¥à¥¢ì¥¢ à¨á. 13.1 ¡ã¤¥â ­ ¯¥ç â ­®
2; 3; 5; 5; 7; 8. ‘¢®©á⢮ 㯮à冷祭­®á⨠£ à ­â¨àã¥â ¯à ¢¨«ì­®áâì «£®à¨â¬ (¨­¤ãªæ¨ï ¯® ¢ëá®â¥ ¯®¤¤¥à¥¢ ). ‚६ï à ¡®âë
­ ¤¥à¥¢¥ á n ¢¥à設 ¬¨ ¥áâì (n): ­ ª ¦¤ãî ¢¥à設ã âà â¨âáï
®£à ­¨ç¥­­®¥ ¢à¥¬ï (¯®¬¨¬® ४ãàᨢ­ëå ¢ë§®¢®¢) ¨ ª ¦¤ ï
¢¥à設 ®¡à ¡ âë¢ ¥âáï ®¤¨­ à §.
“¯à ¦­¥­¨ï
 à¨áã©â¥ ¤¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª ¢ëá®âë 2, 3, 4, 5 ¨ 6
¤«ï ®¤­®£® ¨ ⮣® ¦¥ ¬­®¦¥á⢠ª«î祩 f1; 4; 5; 10; 16; 17; 21g.
13.1-2 Šãç¨ ¨§ à §¤¥« 7.1 â ª¦¥ ¡ë«¨ ¤¢®¨ç­ë¬¨ ¤¥à¥¢ìﬨ,
¨ âॡ®¢ ­¨¥ 㯮à冷祭­®á⨠⠬ ⮦¥ ¡ë«®. ‚ çñ¬ à §­¨æ ¬¥¦¤ã ⥬ âॡ®¢ ­¨¥¬ ¨ ⥯¥à¥è­¨¬? Š ª ¢ë ¤ã¬ ¥â¥, ¬®¦­®
«¨ ­ ¯¥ç â âì í«¥¬¥­âë ¤¢®¨ç­®© ªãç¨ ¢ ­¥ã¡ë¢ î饬 ¯®à浪¥ § ¢à¥¬ï O(n)? Ž¡êï᭨⥠¢ è ®â¢¥â.
13.1-3  ¯¨è¨â¥ ­¥à¥ªãàᨢ­ë© «£®à¨â¬, ¯¥ç â î騩 ª«îç¨ ¢
¤¢®¨ç­®¬ ¤¥à¥¢¥ ¯®¨áª ¢ ­¥ã¡ë¢ î饬 ¯®à浪¥. (“ª § ­¨¥: à®á⮥ à¥è¥­¨¥ ¨á¯®«ì§ã¥â ¢ ª ç¥á⢥ ¤®¯®«­¨â¥«ì­®© áâàãªâãàë
á⥪; ¡®«¥¥ ¨§ïé­®¥ à¥è¥­¨¥ ­¥ âॡã¥â á⥪ , ­® ¯à¥¤¯®« £ ¥â,
çâ® ¬®¦­® ¯à®¢¥àïâì à ¢¥­á⢮ 㪠§ ⥫¥©.)
13.1-4  ¯¨è¨â¥ ४ãàᨢ­ë¥ «£®à¨â¬ë ¤«ï ®¡å®¤ ¤¥à¥¢ì¥¢ ¢
à §«¨ç­ëå ¯®à浪 å (preorder, postorder). Š ª ¨ à ­ìè¥, ¢à¥¬ï à ¡®âë ¤®«¦­® ¡ëâì O(n) (£¤¥ n | ç¨á«® ¢¥à設).
13.1-5 ®ª ¦¨â¥, çâ® «î¡®© «£®à¨â¬ ¯®áâ஥­¨ï ¤¢®¨ç­®£® ¤¥à¥¢ ¯®¨áª , ᮤ¥à¦ 饣® § ¤ ­­ë¥ n í«¥¬¥­â®¢, âॡã¥â (¢ åã¤è¥¬ á«ãç ¥) ¢à¥¬¥­¨ (n lg n). ‚®á¯®«ì§ã©â¥áì ⥬, çâ® á®àâ¨à®¢ª n ç¨á¥« âॡã¥â (n lg n) ¤¥©á⢨©.
13.1-1
®¨áª ¢ ¤¢®¨ç­®¬ ¤¥à¥¢¥
245
¨áã­®ª 13.2 ®¨áª ¢ ¤¢®¨ç­®¬ ¤¥à¥¢¥. ˆé ª«îç 13, ¬ë ¨¤ñ¬ ®â ª®à­ï ¯®
¯ã⨠15 ! 6 ! 7 ! 13. —â®¡ë ­ ©â¨ ¬¨­¨¬ «ì­ë© ª«îç 2, ¬ë ¢áñ ¢à¥¬ï
¨¤ñ¬ ­ «¥¢®; çâ®¡ë ­ ©â¨ ¬ ªá¨¬ «ì­ë© ª«îç 20 | ­ ¯à ¢®. „«ï ¢¥à設ë á
ª«î箬 15 á«¥¤ãî饩 ¡ã¤¥â ¢¥à設 á ª«î箬 17 (íâ® ¬¨­¨¬ «ì­ë© ª«îç ¢
¯à ¢®¬ ¯®¤¤¥à¥¢¥ ¢¥à設ë á ª«î箬 15). “ ¢¥à設ë á ª«î箬 13 ­¥â ¯à ¢®£®
¯®¤¤¥à¥¢ ; ¯®í⮬ã, çâ®¡ë ­ ©â¨ á«¥¤ãîéãî § ­¥© ¢¥à設ã, ¬ë ¯®¤­¨¬ ¥¬áï
¢¢¥àå, ¯®ª ­¥ ¯à®©¤ñ¬ ¯® ॡàã, ¢¥¤ã饬㠢¯à ¢®-¢¢¥àå; ¢ ¤ ­­®¬ á«ãç ¥ á«¥¤ãîé ï ¢¥à設 ¨¬¥¥â ª«îç 15.
13.2 ®¨áª ¢ ¤¢®¨ç­®¬ ¤¥à¥¢¥
‚ í⮬ à §¤¥«¥ ¬ë ¯®ª ¦¥¬, çâ® ¤¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª ¯®§¢®«ïî⠢믮«­ïâì ®¯¥à 樨 Search, Minimum, Maximum,
Successor ¨ Predecessor § ¢à¥¬ï O(h), £¤¥ h | ¢ëá®â ¤¥à¥¢ .
®¨áª
à®æ¥¤ãà ¯®¨áª ¯®«ãç ¥â ­ ¢å®¤ ¨áª®¬ë© ª«îç k ¨ 㪠§ ⥫ì x ­ ª®à¥­ì ¯®¤¤¥à¥¢ , ¢ ª®â®à®¬ ¯à®¨§¢®¤¨âáï ¯®¨áª. Ž­ ¢®§¢à é ¥â 㪠§ â¥«ì ­ ¢¥à設ã á ª«î箬 k (¥á«¨ â ª ï ¥áâì)
¨«¨ á¯¥æ¨ «ì­®¥ §­ 祭¨¥ nil (¥á«¨ â ª®© ¢¥àè¨­ë ­¥â).
Tree-Search (x; k)
1 if x = nil ¨«¨ k = key[x]
2 then return x
3 if k < key[x]
4 then return Tree-Search (left[x]; k)
5 else return Tree-Search (right[x]; k)
‚ ¯à®æ¥áᥠ¯®¨áª ¬ë ¤¢¨£ ¥¬áï ®â ª®à­ï, áà ¢­¨¢ ï ª«îç k á
ª«î箬, åà ­ï騬áï ¢ ⥪ã饩 ¢¥à設¥ x. …᫨ ®­¨ à ¢­ë, ¯®¨áª § ¢¥àè ¥âáï. …᫨ k < key[x], â® ¯®¨áª ¯à®¤®«¦ ¥âáï ¢ «¥¢®¬
¯®¤¤¥à¥¢¥ x (ª«îç k ¬®¦¥â ¡ëâì ⮫쪮 â ¬, ᮣ« á­® ᢮©áâ¢ã
㯮à冷祭­®áâ¨). …᫨ k > key[x], â® ¯®¨áª ¯à®¤®«¦ ¥âáï ¢ ¯à ¢®¬ ¯®¤¤¥à¥¢¥. „«¨­ ¯ã⨠¯®¨áª ­¥ ¯à¥¢®á室¨â ¢ëá®âë ¤¥à¥¢ ,
246
ƒ« ¢ 13 „¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª ¯®íâ®¬ã ¢à¥¬ï ¯®¨áª ¥áâì O(h) (£¤¥ h | ¢ëá®â ¤¥à¥¢ ).
‚®â ¨â¥à ⨢­ ï ¢¥àá¨ï ⮩ ¦¥ ¯à®æ¥¤ãàë (ª®â®à ï, ª ª ¯à ¢¨«®, ¡®«¥¥ íä䥪⨢­ ):
Iterative-Tree-Search (x; k)
1 while x =
6 nil ¨ k =6 key[x]
2
do if k < key[x]
3
then x left[x]
4
else x right[x]
5 return x
Œ¨­¨¬ã¬ ¨ ¬ ªá¨¬ã¬
Œ¨­¨¬ «ì­ë© ª«îç ¢ ¤¥à¥¢¥ ¯®¨áª ¬®¦­® ­ ©â¨, ¯à®©¤ï ¯® 㪠§ â¥«ï¬ left ®â ª®à­ï (¯®ª ­¥ ã¯àñ¬áï ¢ nil), á¬. à¨á. 13.2. à®æ¥¤ãà ¢®§¢à é ¥â 㪠§ â¥«ì ­ ¬¨­¨¬ «ì­ë© í«¥¬¥­â ¯®¤¤¥à¥¢ á
ª®à­¥¬ x.
Tree-Minimum(x)
1 while left[x] =
6 nil
2
do x left[x]
3 return x
‘¢®©á⢮ 㯮à冷祭­®á⨠£ à ­â¨àã¥â ¯à ¢¨«ì­®áâì ¯à®æ¥¤ãàë
Tree-Minimum. …᫨ ã ¢¥à設ë x ­¥â «¥¢®£® ॡñ­ª , â® ¬¨­¨¬ «ì­ë© í«¥¬¥­â ¯®¤¤¥à¥¢ á ª®à­¥¬ x ¥áâì x, â ª ª ª «î¡®© ª«îç
¢ ¯à ¢®¬ ¯®¤¤¥à¥¢¥ ­¥ ¬¥­ìè¥ key[x]. …᫨ ¦¥ «¥¢®¥ ¯®¤¤¥à¥¢® ¢¥à設ë x ­¥ ¯ãáâ®, â® ¬¨­¨¬ «ì­ë© í«¥¬¥­â ¯®¤¤¥à¥¢ á ª®à­¥¬ x
­ 室¨âáï ¢ í⮬ «¥¢®¬ ¯®¤¤¥à¥¢¥ (¯®áª®«ìªã á ¬ x ¨ ¢á¥ í«¥¬¥­âë
¯à ¢®£® ¯®¤¤¥à¥¢ ¡®«ìè¥).
€«£®à¨â¬ Tree-Maximum ᨬ¬¥âà¨ç¥­:
Tree-Maximum(x)
1 while right[x] =
6 nil
2
do x right[x]
3 return x
Ž¡ «£®à¨â¬ âॡãî⠢६¥­¨ O(h), £¤¥ h | ¢ëá®â ¤¥à¥¢ (¯®áª®«ìªã ¤¢¨£ îâáï ¯® ¤¥à¥¢ã ⮫쪮 ¢­¨§).
‘«¥¤ãî騩 ¨ ¯à¥¤ë¤ã騩 í«¥¬¥­âë
Š ª ­ ©â¨ ¢ ¤¢®¨ç­®¬ ¤¥à¥¢¥ í«¥¬¥­â, á«¥¤ãî騩 § ¤ ­­ë¬?
‘¢®©á⢮ 㯮à冷祭­®á⨠¯®§¢®«ï¥â ᤥ« âì íâ®, ¤¢¨£ ïáì ¯® ¤¥à¥¢ã. ‚®â ¯à®æ¥¤ãà , ª®â®à ï ¢®§¢à é ¥â 㪠§ â¥«ì ­ á«¥¤ãî騩
§ x í«¥¬¥­â (¥á«¨ ¢á¥ ª«îç¨ à §«¨ç­ë, ®­ ᮤ¥à¦¨â á«¥¤ãî騩
®¨áª ¢ ¤¢®¨ç­®¬ ¤¥à¥¢¥
247
¯® ¢¥«¨ç¨­¥ ª«îç) ¨«¨ nil, ¥á«¨ í«¥¬¥­â x | ¯®á«¥¤­¨© ¢ ¤¥à¥¢¥.
Tree-Successor(x)
1 if right[x] =
6 nil
2 then return Tree-Minimum(right[x])
3 y p[x]
4 while y =
6 nil and x = right[y]
5
do x y
6
y p[y ]
7 return y
à®æ¥¤ãà Tree-Successor ®â¤¥«ì­® à áᬠâਢ ¥â ¤¢ á«ãç ï. …᫨ ¯à ¢®¥ ¯®¤¤¥à¥¢® ¢¥à設ë x ­¥¯ãáâ®, â® á«¥¤ãî騩
§ x í«¥¬¥­â | ¬¨­¨¬ «ì­ë© í«¥¬¥­â ¢ í⮬ ¯®¤¤¥à¥¢¥ ¨ à ¢¥­ Tree-Minimum(right[x]).  ¯à¨¬¥à, ­ à¨á. 13.2 § ¢¥à設®© á
ª«î箬 15 á«¥¤ã¥â ¢¥à設 á ª«î箬 17.
ãáâì ⥯¥àì ¯à ¢®¥ ¯®¤¤¥à¥¢® ¢¥à設ë x ¯ãáâ®. ’®£¤ ¬ë ¨¤ñ¬
®â x ¢¢¥àå, ¯®ª ­¥ ­ ©¤ñ¬ ¢¥à設ã, ïîéãîáï «¥¢ë¬ áë­®¬ ᢮¥£® த¨â¥«ï (áâப¨ 3{7). â®â த¨â¥«ì (¥á«¨ ®­ ¥áâì) ¨ ¡ã¤¥â
¨áª®¬ë¬ í«¥¬¥­â®¬. [”®à¬ «ì­® £®¢®àï, 横« ¢ áâப å 4{6 á®åà ­ï¥â â ª®¥ ᢮©á⢮: y = p[x]; ¨áª®¬ë© í«¥¬¥­â ­¥¯®á।á⢥­­®
á«¥¤ã¥â § í«¥¬¥­â ¬¨ ¯®¤¤¥à¥¢ á ª®à­¥¬ ¢ x.]
‚६ï à ¡®âë ¯à®æ¥¤ãàë Tree-Successor ­ ¤¥à¥¢¥ ¢ëá®âë h
¥áâì O(h), â ª ª ª ¬ë ¤¢¨£ ¥¬áï «¨¡® ⮫쪮 ¢¢¥àå, «¨¡® ⮫쪮
¢­¨§.
à®æ¥¤ãà Tree-Predecessor ᨬ¬¥âà¨ç­ .
’ ª¨¬ ®¡à §®¬, ¬ë ¤®ª § «¨ á«¥¤ãîéãî ⥮६ã.
’¥®à¥¬ 13.1. Ž¯¥à 樨 Search, Minimum, Maximum, Successor
¨ Predecessor ­ ¤¥à¥¢¥ ¢ëá®âë h ¢ë¯®«­ïîâáï § ¢à¥¬ï O(h).
“¯à ¦­¥­¨ï
13.2-1 à¥¤¯®«®¦¨¬, çâ® ¢ ¤¢®¨ç­®¬ ¤¥à¥¢¥ ¯®¨áª åà ­ïâáï ç¨á« ®â 1 ¤® 1000 ¨ ¬ë å®â¨¬ ­ ©â¨ ç¨á«® 363. Š ª¨¥ ¨§ á«¥¤ãîé¨å
¯®á«¥¤®¢ ⥫쭮á⥩ ­¥ ¬®£ãâ ¡ëâì ¯®á«¥¤®¢ ⥫쭮áâﬨ ¯à®á¬ âਢ ¥¬ëå ¯à¨ í⮬ ª«î祩?
. 2; 252; 401; 398; 330; 344; 397; 363;
¡. 924; 220; 911; 244; 898; 258; 362; 363;
¢. 925; 202; 911; 240; 912; 245; 363;
£. 2; 399; 387; 219; 266; 382; 381; 278; 363;
¤. 935; 278; 347; 621; 299; 392; 358; 363.
ãáâì ¯®¨áª ª«îç ¢ ¤¢®¨ç­®¬ ¤¥à¥¢¥ § ¢¥àè ¥âáï ¢ «¨áâ¥.
 áᬮâਬ âਠ¬­®¦¥á⢠: A (í«¥¬¥­âë á«¥¢ ®â ¯ã⨠¯®¨áª ),
13.2-2
248
ƒ« ¢ 13 „¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª B (í«¥¬¥­âë ­ ¯ãâ¨) ¨ C (á¯à ¢ ®â ¯ãâ¨). à®ä¥áá®à ã⢥ত ¥â,
çâ® ¤«ï «î¡ëå âàñå ª«î祩 a 2 A, b 2 B ¨ c 2 C ¢¥à­® a 6 b 6 c.
®ª ¦¨â¥, çâ® ®­ ­¥¯à ¢, ¨ ¯à¨¢¥¤¨â¥ ª®­âà¯à¨¬¥à ¬¨­¨¬ «ì­®
¢®§¬®¦­®£® à §¬¥à .
13.2-3 „®ª ¦¨â¥ ä®à¬ «ì­® ¯à ¢¨«ì­®áâì ¯à®æ¥¤ãàë Tree-
Successor.
13.2-4 ‚ à §¤¥«¥ 13.1 ¡ë« ¯®áâ஥­ «£®à¨â¬, ¯¥ç â î騩 ¢á¥
ª«îç¨ ¢ ­¥ã¡ë¢ î饬 ¯®à浪¥. ’¥¯¥àì íâ® ¬®¦­® ᤥ« âì ¨­ ç¥:
­ ©â¨ ¬¨­¨¬ «ì­ë© í«¥¬¥­â, ¯®â®¬ n ; 1 à § ¨áª âì á«¥¤ãî騩
í«¥¬¥­â. „®ª ¦¨â¥, çâ® ¢à¥¬ï à ¡®âë â ª®£® «£®à¨â¬ ¥áâì O(n).
13.2-5 „®ª ¦¨â¥, çâ® k ¯®á«¥¤®¢ ⥫ì­ëå ¢ë§®¢®¢ TreeSuccessor ¢ë¯®«­ïîâáï § O(k + h) è £®¢ (h | ¢ëá®â ¤¥à¥¢ )
­¥§ ¢¨á¨¬® ®â ⮣®, á ª ª®© ¢¥àè¨­ë ¬ë ­ 稭 ¥¬.
13.2-6 ãáâì T | ¤¢®¨ç­®¥ ¤¥à¥¢® ¯®¨áª , ¢á¥ ª«îç¨ ¢ ª®â®à®¬
à §«¨ç­ë, x | ¥£® «¨áâ, y | த¨â¥«ì x. ®ª ¦¨â¥, çâ® key[y]
ï¥âáï á®á¥¤­¨¬ á key[x] ª«î箬 (á«¥¤ãî騬 ¨«¨ ¯à¥¤ë¤ã騬
¢ á¬ëá«¥ ¯®à浪 ­ ª«îç å).
13.3 „®¡ ¢«¥­¨¥ ¨ 㤠«¥­¨¥ í«¥¬¥­â â¨ ®¯¥à 樨 ¬¥­ïîâ ¤¥à¥¢®, á®åà ­ïï ᢮©á⢮ 㯮à冷祭­®áâ¨. Š ª ¬ë 㢨¤¨¬, ¤®¡ ¢«¥­¨¥ áà ¢­¨â¥«ì­® ¯à®áâ®; 㤠«¥­¨¥
çãâì á«®¦­¥¥.
„®¡ ¢«¥­¨¥
à®æ¥¤ãà Tree-Insert ¤®¡ ¢«ï¥â § ¤ ­­ë© í«¥¬¥­â ¢ ¯®¤å®¤ï饥 ¬¥áâ® ¤¥à¥¢ T (á®åà ­ïï ᢮©á⢮ 㯮à冷祭­®áâ¨).  à ¬¥â஬ ¯à®æ¥¤ãàë ï¥âáï 㪠§ ⥫ì z ­ ­®¢ãî ¢¥à設ã, ¢
ª®â®àãî ¯®¬¥é¥­ë §­ 祭¨ï key[z] (¤®¡ ¢«ï¥¬®¥ §­ 祭¨¥ ª«îç ),
left[z ] = nil ¨ right[z ] = nil. ‚ 室¥ à ¡®âë ¯à®æ¥¤ãà ¬¥­ï¥â ¤¥à¥¢® T ¨ (¢®§¬®¦­®) ­¥ª®â®àë¥ ¯®«ï ¢¥à設ë z, ¯®á«¥ 祣® ­®¢ ï ¢¥à設 á ¤ ­­ë¬ §­ 祭¨¥¬ ª«îç ®ª §ë¢ ¥âáï ¢áâ ¢«¥­­®©
¢ ¯®¤å®¤ï饥 ¬¥áâ® ¤¥à¥¢ .
„®¡ ¢«¥­¨¥ ¨ 㤠«¥­¨¥ í«¥¬¥­â 249
¨áã­®ª 13.3 „®¡ ¢«¥­¨¥ í«¥¬¥­â á ª«î箬 13. ‘¢¥â«®-á¥àë¥ ¢¥àè¨­ë ­ 室ïâáï ­ ¯ã⨠®â ª®à­ï ¤® ¯®§¨æ¨¨ ­®¢®£® í«¥¬¥­â . ã­ªâ¨à á¢ï§ë¢ ¥â ­®¢ë©
í«¥¬¥­â á® áâ à묨.
Tree-Insert (T; z )
1 y nil
2
3
4
5
6
7
8
9
10
11
12
13
x root[T ]
while x 6= nil
do y x
if key[z ] < key[x]
then x left[x]
else x right[x]
p[z] y
if y = nil
then root[T ] z
else if key[z ] < key[y ]
then left[y ] z
else right[y ] z
 à¨áã­ª¥ 13.3 ¯®ª § ­®, ª ª à ¡®â ¥â ¯à®æ¥¤ãà Tree-Insert.
®¤®¡­® ¯à®æ¥¤ãà ¬ Tree-Search ¨ Iterative-Tree-Search, ®­ ¤¢¨£ ¥âáï ¢­¨§ ¯® ¤¥à¥¢ã, ­ ç ¢ á ¥£® ª®à­ï. à¨ í⮬ ¢ ¢¥à設¥ y
á®åà ­ï¥âáï 㪠§ â¥«ì ­ த¨â¥«ï ¢¥à設ë x (横« ¢ áâப å 3{
7). ‘à ¢­¨¢ ï key[z ] á key[x], ¯à®æ¥¤ãà à¥è ¥â, ªã¤ ¨¤â¨ | ­ «¥¢®
¨«¨ ­ ¯à ¢®. à®æ¥áá § ¢¥àè ¥âáï, ª®£¤ x áâ ­®¢¨âáï à ¢­ë¬ nil.
â®â nil á⮨⠪ ª à § â ¬, ªã¤ ­ ¤® ¯®¬¥áâ¨âì z, çâ® ¨ ¤¥« ¥âáï
¢ áâப å 8{13.
Š ª ¨ ®áâ «ì­ë¥ ®¯¥à 樨, ¤®¡ ¢«¥­¨¥ âॡã¥â ¢à¥¬¥­¨ O(h) ¤«ï
¤¥à¥¢ ¢ëá®âë h.
“¤ «¥­¨¥
 à ¬¥â஬ ¯à®æ¥¤ãàë 㤠«¥­¨ï ï¥âáï 㪠§ â¥«ì ­ 㤠«ï¥¬ãî ¢¥à設ã. à¨ 㤠«¥­¨¨ ¢®§¬®¦­ë âਠá«ãç ï, ¯®ª § ­­ë¥ ­ à¨áã­ª¥ 13.4. …᫨ ã z ­¥â ¤¥â¥©, ¤«ï 㤠«¥­¨ï z ¤®áâ â®ç­® ¯®¬¥áâ¨âì nil ¢ ᮮ⢥âáâ¢ãî饥 ¯®«¥ ¥£® த¨â¥«ï (¢¬¥áâ® z). …᫨
ã z ¥áâì ®¤¨­ ॡñ­®ª, ¬®¦­® "¢ë१ âì" z, ᮥ¤¨­¨¢ ¥£® த¨â¥«ï
250
ƒ« ¢ 13 „¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª ¨áã­®ª 13.4 “¤ «¥­¨¥ ¢¥à設ë z ¨§ ¤¢®¨ç­®£® ¤¥à¥¢ ¯®¨áª . ( ) …᫨ ¢¥à設 z ­¥ ¨¬¥¥â ¤¥â¥©, ¥ñ ¬®¦­® 㤠«¨âì ¡¥§ ¯à®¡«¥¬. (¡) …᫨ ¢¥à設 z ¨¬¥¥â
®¤­®£® ॡñ­ª , ¯®¬¥é ¥¬ ¥£® ­ ¬¥áâ® ¢¥à設ë z . (¢) …᫨ ã ¢¥à設ë z ¤¢®¥
¤¥â¥©, ¬ë ᢮¤¨¬ ¤¥«® ª ¯à¥¤ë¤ã饬ã á«ãç î, 㤠«ïï ¢¬¥áâ® ­¥ñ ¢¥à設ã y á
­¥¯®á।á⢥­­® á«¥¤ãî騬 §­ 祭¨¥¬ ª«îç (ã í⮩ ¢¥à設ë ॡñ­®ª ®¤¨­)
¨ ¯®¬¥é ï ª«îç key[y] (¨ á¢ï§ ­­ë¥ á ­¨¬ ¤®¯®«­¨â¥«ì­ë¥ ¤ ­­ë¥) ­ ¬¥áâ®
¢¥à設ë z .
­ ¯àï¬ãî á ¥£® ॡñ­ª®¬. …᫨ ¦¥ ¤¥â¥© ¤¢®¥, âॡãîâáï ­¥ª®â®àë¥ ¯à¨£®â®¢«¥­¨ï: ¬ë ­ 室¨¬ á«¥¤ãî騩 (¢ á¬ëá«¥ ¯®à浪 ­ ª«îç å) § z í«¥¬¥­â y; ã ­¥£® ­¥â «¥¢®£® ॡñ­ª (ã¯à. 13.3-4).
’¥¯¥àì ¬®¦­® ᪮¯¨à®¢ âì ª«îç ¨ ¤®¯®«­¨â¥«ì­ë¥ ¤ ­­ë¥ ¨§ ¢¥à設ë y ¢ ¢¥à設ã z, á ¬ã ¢¥à設ã y 㤠«¨âì ®¯¨á ­­ë¬ ¢ëè¥
ᯮᮡ®¬.
à¨¬¥à­® â ª ¨ ¤¥©áâ¢ã¥â ¯à®æ¥¤ãà Tree-Delete (å®âï à áᬠâਢ ¥â í⨠âਠá«ãç ï ¢ ­¥áª®«ìª® ¤à㣮¬ ¯®à浪¥).
„®¡ ¢«¥­¨¥ ¨ 㤠«¥­¨¥ í«¥¬¥­â 251
Tree-Delete (T; z )
1 if left[z ] = nil ¨«¨ right[z ] = nil
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
then y z
else y Tree-Successor(z )
if left[y ] 6= nil
then x left[y ]
else x right[y ]
if x 6= nil
then p[x] p[y ]
if p[y ] = nil
then root[T ] x
else if y = left[p[y ]]
then left[p[y ]] x
else right[p[y ]] x
if y 6= z
then key[z ] key[y ]
. ª®¯¨à㥬 ¤®¯®«­¨â¥«ì­ë¥ ¤ ­­ë¥, á¢ï§ ­­ë¥ á y
return y
‚ áâப å 1{3 ®¯à¥¤¥«ï¥âáï ¢¥à設 y, ª®â®àãî ¬ë ¯®â®¬ ¢ë०¥¬ ¨§ ¤¥à¥¢ . â® «¨¡® á ¬ ¢¥à設 z (¥á«¨ ã z ­¥ ¡®«¥¥ ®¤­®£®
ॡñ­ª ), «¨¡® á«¥¤ãî騩 § z í«¥¬¥­â (¥á«¨ ã z ¤¢®¥ ¤¥â¥©). ‡ ⥬
¢ áâப å 4{6 ¯¥à¥¬¥­­ ï x áâ ­®¢¨âáï 㪠§ ⥫¥¬ ­ áãé¥áâ¢ãî饣® ॡñ­ª ¢¥à設ë y, ¨«¨ à ¢­®© nil, ¥á«¨ ã y ­¥â ¤¥â¥©. ‚¥à設 y ¢ë१ ¥âáï ¨§ ¤¥à¥¢ ¢ áâப å 7{13 (¬¥­ïîâáï 㪠§ ⥫¨ ¢
¢¥à設 å p[y] ¨ x). à¨ í⮬ ®â¤¥«ì­® à áᬠâਢ îâáï £à ­¨ç­ë¥
á«ãç ¨, ª®£¤ x = nil ¨ ª®£¤ y ï¥âáï ª®à­¥¬ ¤¥à¥¢ .  ª®­¥æ,
¢ áâப å 14{16, ¥á«¨ ¢ë१ ­­ ï ¢¥à設 y ®â«¨ç­ ®â z, ª«îç (¨
¤®¯®«­¨â¥«ì­ë¥ ¤ ­­ë¥) ¢¥à設ë y ¯¥à¥¬¥é îâáï ¢ z (¢¥¤ì ­ ¬
­ ¤® ¡ë«® 㤠«¨âì z, ­¥ y).  ª®­¥æ, ¯à®æ¥¤ãà ¢®§¢à é ¥â 㪠§ ⥫ì y (íâ® ¯®§¢®«¨â ¢ë§ë¢ î饩 ¯à®æ¥¤ãॠ¢¯®á«¥¤á⢨¨ ®á¢®¡®¤¨âì ¯ ¬ïâì, § ­ïâãî ¢¥à設®© y). ‚à¥¬ï ¢ë¯®«­¥­¨ï ¥áâì O(h)
­ ¤¥à¥¢¥ ¢ëá®âë h.
ˆâ ª, ¬ë ¤®ª § «¨ á«¥¤ãîéãî ⥮६ã.
’¥®à¥¬ 13.2. Ž¯¥à 樨 Insert ¨ Delete ¬®£ãâ ¡ëâì ¢ë¯®«­¥­ë
§ ¢à¥¬ï O(h), £¤¥ h | ¢ëá®â ¤¥à¥¢ .
“¯à ¦­¥­¨ï
 ¯¨è¨â¥ ४ãàᨢ­ë© ¢ ਠ­â ¯à®æ¥¤ãàë Tree-Insert.
13.3-2  稭 ï á ¯ãá⮣® ¤¥à¥¢ , ¡ã¤¥¬ ¤®¡ ¢«ïâì í«¥¬¥­âë á à §«¨ç­ë¬¨ ª«îç ¬¨ ®¤¨­ § ¤à㣨¬. …᫨ ¯®á«¥ í⮣® ¬ë ¯à®¢®¤¨¬
¯®¨áª í«¥¬¥­â á ª«î箬 x, â® ç¨á«® áà ¢­¥­¨© ­ ¥¤¨­¨æã ¡®«ìè¥
ç¨á« áà ¢­¥­¨©, ¢ë¯®«­¥­­ëå ¯à¨ ¤®¡ ¢«¥­¨¨ í⮣® í«¥¬¥­â . ®13.3-1
252
ƒ« ¢ 13 „¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª 祬ã?
13.3-3  ¡®à ¨§ n ç¨á¥« ¬®¦­® ®âá®àâ¨à®¢ âì, á­ ç « ¤®¡ ¢¨¢
¨å ®¤¨­ § ¤à㣨¬ ¢ ¤¢®¨ç­®¥ ¤¥à¥¢® ¯®¨áª (á ¯®¬®éìî ¯à®æ¥¤ãàë Tree-Insert), ¯®â®¬ ®¡®©â¨ ¤¥à¥¢® á ¯®¬®éìî ¯à®æ¥¤ãàë
Inorder-Tree-Walk.  ©¤¨â¥ ¢à¥¬ï à ¡®âë â ª®£® «£®à¨â¬ ¢
åã¤è¥¬ ¨ ¢ «ãç襬 á«ãç ¥.
13.3-4 ®ª ¦¨â¥, çâ®, ¥á«¨ ¢¥à設 ¤¢®¨ç­®£® ¤¥à¥¢ ¯®¨áª ¨¬¥¥â ¤¢®¨å ¤¥â¥©, â® á«¥¤ãîé ï § ­¥© ¢¥à設 ­¥ ¨¬¥¥â «¥¢®£®
ॡñ­ª , ¯à¥¤è¥áâ¢ãîé ï ¥© ¢¥à設 | ¯à ¢®£®.
13.3-5 à¥¤¯®«®¦¨¬, ç⮠㪠§ â¥«ì ­ ¢¥à設ã y åà ­¨âáï ¢
ª ª®©-â® ¢­¥è­¥© áâàãªâãॠ¤ ­­ëå ¨ çâ® ¯à¥¤è¥áâ¢ãîé ï y ¢¥à設 ¤¥à¥¢ 㤠«ï¥âáï á ¯®¬®éìî ¯à®æ¥¤ãàë Tree-Delete. Š ª¨¥ ¯à¨ í⮬ ¬®£ãâ ¢®§­¨ª­ãâì ¯à®¡«¥¬ë? Š ª ¬®¦­® ¨§¬¥­¨âì
Tree-Delete, ç⮡ë íâ¨å ¯à®¡«¥¬ ¨§¡¥¦ âì?
13.3-6 Š®¬¬ãâ¨àãîâ «¨ ®¯¥à 樨 㤠«¥­¨ï ¤¢ãå ¢¥à設? „à㣨¬¨ á«®¢ ¬¨, ¯®«ã稬 «¨ ¬ë ®¤¨­ ª®¢ë¥ ¤¥à¥¢ìï, ¥á«¨ ¢ ®¤­®¬
á«ãç ¥ 㤠«¨¬ á­ ç « x, ¯®â®¬ y, ¢ ¤à㣮¬ | ­ ®¡®à®â? Ž¡êï᭨⥠᢮© ®â¢¥â.
13.3-7 …᫨ ã z ¤¢®¥ ¤¥â¥©, ¬ë ¬®¦¥¬ ¨á¯®«ì§®¢ âì ¢ TreeDelete ­¥ á«¥¤ãî騩 § z í«¥¬¥­â, ¯à¥¤ë¤ã騩. Œ®¦­® ­ ¤¥ïâìáï, çâ® á¯à ¢¥¤«¨¢ë© ¯®¤å®¤, ª®â®àë© ¢ ¯®«®¢¨­¥ á«ãç ¥¢
¢ë¡¨à ¥â ¯à¥¤ë¤ã騩, ¢ ¯®«®¢¨­¥ | á«¥¤ãî騩 í«¥¬¥­â, ¡ã¤¥â ¯à¨¢®¤¨âì ª «ãçè¥ á¡ « ­á¨à®¢ ­­®¬ã ¤¥à¥¢ã. Š ª ¨§¬¥­¨âì
⥪áâ ¯à®æ¥¤ãàë, ç⮡ë ॠ«¨§®¢ âì â ª®© ¯®¤å®¤?
? 13.4 ‘«ãç ©­ë¥ ¤¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª Š ª ¬ë ¢¨¤¥«¨, ®á­®¢­ë¥ ®¯¥à 樨 á ¤¢®¨ç­ë¬¨ ¤¥à¥¢ìﬨ ¯®¨áª âॡãî⠢६¥­¨ O(h), £¤¥ h | ¢ëá®â ¤¥à¥¢ . ®í⮬㠢 ¦­®
¯®­ïâì, ª ª®¢ ¢ëá®â "⨯¨ç­®£®" ¤¥à¥¢ . „«ï í⮣® ­¥®¡å®¤¨¬®
¯à¨­ïâì ª ª¨¥-â® áâ â¨áâ¨ç¥áª¨¥ ¯à¥¤¯®«®¦¥­¨ï ® à á¯à¥¤¥«¥­¨¨
ª«î祩 ¨ ¯®á«¥¤®¢ ⥫쭮á⨠¢ë¯®«­ï¥¬ëå ®¯¥à 権.
Š ᮦ «¥­¨î, ¢ ®¡é¥¬ á«ãç ¥ á¨âã æ¨ï âà㤭 ¤«ï ­ «¨§ , ¨ ¬ë
¡ã¤¥¬ à áᬠâਢ âì «¨èì ¤¥à¥¢ìï, ¯®«ã祭­ë¥ ¤®¡ ¢«¥­¨¥¬ ¢¥à設 (¡¥§ 㤠«¥­¨©). Ž¯à¥¤¥«¨¬ á«ãç ©­®¥ ¤¢®¨ç­®¥ ¤¥à¥¢® (randomly
built search tree) ¨§ n à §«¨ç­ëå ª«î祩 ª ª ¤¥à¥¢®, ¯®«ãç î饥áï ¨§ ¯ãá⮣® ¤¥à¥¢ ¤®¡ ¢«¥­¨¥¬ íâ¨å ª«î祩 ¢ á«ãç ©­®¬ ¯®à浪¥ (¢á¥ n! ¯¥à¥áâ ­®¢®ª áç¨â ¥¬ à ¢­®¢¥à®ïâ­ë¬¨). (Š ª ¢¨¤­®
¨§ ã¯à. 13.4-2, íâ® ­¥ ®§­ ç ¥â, çâ® ¢á¥ ¤¢®¨ç­ë¥ ¤¥à¥¢ìï à ¢­®¢¥à®ïâ­ë, ¯®áª®«ìªã à §­ë¥ ¯®à浪¨ ¤®¡ ¢«¥­¨ï ¬®£ã⠯ਢ®¤¨âì ª
13.4 ‘«ãç ©­ë¥ ¤¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª 253
®¤­®¬ã ¨ ⮬㠦¥ ¤¥à¥¢ã.) ‚ í⮬ à §¤¥«¥ ¬ë ¤®ª ¦¥¬, çâ® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢ëá®âë á«ãç ©­®£® ¤¥à¥¢ ¨§ n ª«î祩
¥áâì O(lg n).
®á¬®âਬ, ª ª á¢ï§ ­ áâàãªâãà ¤¥à¥¢ á ¯®à浪®¬ ¤®¡ ¢«¥­¨ï
ª«î祩.
‹¥¬¬ 13.3. ãáâì T | ¤¥à¥¢®, ¯®«ãç î饥áï ¯®á«¥ ¤®¡ ¢«¥­¨ï
n à §«¨ç­ëå ª«î祩 k1; k2; : : :; kn (¢ 㪠§ ­­®¬ ¯®à浪¥) ª ¨§­ ç «ì­® ¯ãá⮬㠤¥à¥¢ã. ’®£¤ ki ï¥âáï ¯à¥¤ª®¬ kj ¢ T ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ i < j , ¨ ¯à¨ í⮬
ki = minfkl : 1 6 l 6 i ¨ kl > kj g
(ª«îç ki ¡®«ìè¥ kj ¨ ¨å ­¥ à §¤¥«ï¥â ­¨ ®¤¨­ ª«îç á।¨ k1; : : :; ki)
¨«¨
ki = maxfkl : 1 6 l 6 i ¨ kl < kj g
(ª«îç ki ¬¥­ìè¥ kj ¨ ¨å ­¥ à §¤¥«ï¥â ­¨ ®¤¨­ ª«îç á।¨
k1; : : : ; ki)
„®ª § ⥫ìá⢮. ): à¥¤¯®«®¦¨¬, çâ® ki ï¥âáï ¯à¥¤ª®¬ kj .
Žç¥¢¨¤­®, i < j (¯®â®¬®ª ¯®ï¢«ï¥âáï ¢ ¤¥à¥¢¥ ¯®§¦¥ ¯à¥¤ª ).  áᬮâਬ ¤¥à¥¢® Ti, ª®â®à®¥ ¯®«ãç ¥âáï ¯®á«¥ ¤®¡ ¢«¥­¨ï ª«î祩
k1; k2; : : :; ki. ãâì ¢ Ti ®â ª®à­ï ¤® ki â®â ¦¥, çâ® ¨ ¯ãâì ¢ T ®â ª®à­ï
¤® ki. ’ ª¨¬ ®¡à §®¬, ¥á«¨ ¡ë ª«îç kj ¡ë« ¤®¡ ¢«¥­ ¢ Ti, ®­ áâ «
¡ë ¯à ¢ë¬ ¨«¨ «¥¢ë¬ ॡñ­ª®¬ ki. ‘«¥¤®¢ ⥫쭮 (á¬. ã¯à. 13.2-6),
ki ï¥âáï «¨¡® ­ ¨¬¥­ì訬 á।¨ â¥å ª«î祩 ¨§ k1; k2; : : :; ki, ª®â®àë¥ ¡®«ìè¥ kj , «¨¡® ­ ¨¡®«ì訬 á।¨ ª«î祩 ¨§ ⮣® ¦¥ ­ ¡®à , ¬¥­ìè¨å kj .
(: à¥¤¯®«®¦¨¬, çâ® ki ï¥âáï ­ ¨¬¥­ì訬 á।¨ â¥å ª«î祩
k1; k2; : : :; ki, ª®â®àë¥ ¡®«ìè¥ kj . („à㣮© á«ãç © ᨬ¬¥âà¨ç¥­.)
—â® ¡ã¤¥â ¯à®¨á室¨âì ¯à¨ ¯®¬¥é¥­¨¨ ª«îç kj ¢ ¤¥à¥¢®? ‘à ¢­¥­¨¥ kj á ª«îç ¬¨ ­ ¯ã⨠®â ª®à­ï ª ki ¤ áâ ⥠¦¥ १ã«ìâ âë,
çâ® ¨ ¤«ï ki. ‘«¥¤®¢ ⥫쭮, ¬ë ¯à®©¤ñ¬ ¯ãâì ®â ª®à­ï ¤® ki, â ª
çâ® kj áâ ­¥â ¯®â®¬ª®¬ ki.
‹¥¬¬ ¤®ª § ­ .
’¥¯¥àì ¬®¦­® ¯®­ïâì, ª ª § ¢¨á¨â £«ã¡¨­ ª ¦¤®£® ª«îç ®â
¯¥à¥áâ ­®¢ª¨ ­ ¢å®¤¥.
‘«¥¤á⢨¥ 13.4. ãáâì T | ¤¥à¥¢®, ¯®«ã祭­®¥ ¨§ ¯ãá⮣® ¤®¡ ¢«¥­¨¥¬ n à §«¨ç­ëå ª«î祩 k1; k2; : : :; kn (¢ 㪠§ ­­®¬ ¯®à浪¥). „«ï
ª ¦¤®£® ª«îç kj (¯à¨ ¢á¥å 1 6 j 6 n) à áᬮâਬ ¬­®¦¥á⢠Gj = fki : 1 6 i < j ¨ kl > ki > kj ¯à¨ ¢á¥å l < i, ¤«ï ª®â®àëå kl > kj g
¨
Lj = fki : 1 6 i < j ¨ kl < ki < kj ¯à¨ ¢á¥å l < i, ¤«ï ª®â®àëå kl < kj g:
254
ƒ« ¢ 13 „¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª ’®£¤ ª«îç¨ ­ ¯ã⨠¨§ ª®à­ï ¢ kj | ¢ â®ç­®á⨠Gj [ Lj , £«ã¡¨­ kj ¢ ¤¥à¥¢¥ T à ¢­ d(kj ; T ) = jGj j + jLj j:
 à¨áã­ª¥ 13.5 ¨§®¡à ¦¥­ë ¬­®¦¥á⢠Gj ¨ Lj . ˆå ¯®áâ஥­¨¥
¬®¦­® ®¡êïá­¨âì â ª. ‘ç¨â ï ¤«ï ­ £«ï¤­®á⨠ª«îç¨ ç¨á« ¬¨,
¡ã¤¥¬ ®â¬¥ç âì ¨å ­ ç¨á«®¢®© ®á¨: á­ ç « k1, ¯®â®¬ k2 ¨ â ª
¤ «¥¥ ¢¯«®âì ¤® kj . ‚ ª ¦¤ë© ¬®¬¥­â ­ ®á¨ ®â¬¥ç¥­® ­¥áª®«ìª®
â®ç¥ª k1; : : :; kt (£¤¥ 1 6 t 6 j ; 1). ®á¬®âਬ, ª ª ï ¨§ íâ¨å â®ç¥ª
¡ã¤¥â ¡«¨¦ ©è¥© á¯à ¢ ª ¡ã¤ã饬㠯®«®¦¥­¨î ª«îç kj . Œ­®¦¥á⢮ ¢á¥å â ª¨å ¡«¨¦ ©è¨å â®ç¥ª (¤«ï ¢á¥å ¬®¬¥­â®¢ ¢à¥¬¥­¨
t = 1; 2; : : : ; j ; 1) ¨ ¥áâì Gj . «¨¦ ©è¨¥ á«¥¢ â®çª¨ ®¡à §ãîâ
¬­®¦¥á⢮ Lj .
 è 楫ì | ®æ¥­¨âì ᢥàåã ª®«¨ç¥á⢮ í«¥¬¥­â®¢ ¢ Gj ¨ Lj ,
¯®áª®«ìªã á㬬 íâ¨å ª®«¨ç¥áâ¢ à ¢­ £«ã¡¨­¥ ª«îç kj . ”¨ªá¨à㥬 ­¥ª®â®à®¥ j . —¨á«® í«¥¬¥­â®¢ ¢ Gj ¡ã¤¥â á«ãç ©­®© ¢¥«¨ç¨­®©, § ¢¨áï饩 ®â ¯®à浪 ª«î祩 ­ ¢å®¤¥ (¨¬¥¥â §­ 祭¨¥ «¨èì
¯®à冷ª ­ ª«îç å k1; : : :; kj ). Œë å®â¨¬ ®æ¥­¨âì íâ® ç¨á«® ᢥàåã
(¤®ª § âì, çâ® ¢¥à®ïâ­®áâì ᮡëâ¨ï "íâ® ç¨á«® ¢¥«¨ª®" ¬ « ).
‘«¥¤ãî騩 ä ªâ ¨§ ⥮ਨ ¢¥à®ïâ­®á⥩ ¨£à ¥â 業âà «ì­ãî
à®«ì ¯à¨ í⮩ ®æ¥­ª¥.
‹¥¬¬ 13.5. ãáâì k1; k2; : : :; kn ¥áâì á«ãç ©­ ï ¯¥à¥áâ ­®¢ª n à §«¨ç­ëå ç¨á¥«. „«ï ª ¦¤®£® i ®â 1 ¤® n à áᬮâਬ ¬¨­¨¬ «ì­ë© í«¥¬¥­â ¢ ¬­®¦¥á⢥ fk1; k2; : : :; kig. Œ­®¦¥á⢮ ¢á¥å
â ª¨å í«¥¬¥­â®¢ ­ §®¢ñ¬ S :
S = fki : 1 6 i 6 n ¨ kl > ki ¤«ï ¢á¥å l < ig:
(13.1)
’®£¤ PfjS j > ( + 1)Hng 6 1=n2, £¤¥ Hn | n-ï ç áâ¨ç­ ï á㬬 £ ମ­¨ç¥áª®£® àï¤ , 4;32 | ª®à¥­ì ãà ¢­¥­¨ï (ln ;1) = 2.
„®ª § ⥫ìá⢮. ã¤¥¬ á«¥¤¨âì § ⥬, ª ª ¬¥­ï¥âáï ¬­®¦¥á⢮
fk1; : : :; kig á à®á⮬ i.  i-¬ è £¥ ª ­¥¬ã ¤®¡ ¢«ï¥âáï í«¥¬¥­â ki,
¯à¨çñ¬ ®­ á à ¢­ë¬¨ ¢¥à®ïâ­®áâﬨ ¬®¦¥â ®ª § âìáï ¯¥à¢ë¬,
¢â®àë¬,: : : , i-¬ ¯® ¢¥«¨ç¨­¥ (ª ¦¤®© ¨§ íâ¨å ¢®§¬®¦­®á⥩ ᮮ⢥âáâ¢ã¥â à ¢­ ï ¤®«ï ¢å®¤­ëå ¯¥à¥áâ ­®¢®ª). ’ ª¨¬ ®¡à §®¬, ¢¥à®ïâ­®áâì 㢥«¨ç¥­¨ï ¬­®¦¥á⢠S ­ i-¬ è £¥ à ¢­ 1=i ¯à¨ «î¡®¬ ¯®à浪¥ á।¨ ª«î祩 k1; : : :; ki;1, â ª çâ® ¤«ï à §­ëå i íâ¨
ᮡëâ¨ï ­¥§ ¢¨á¨¬ë.
Œë ¯à¨å®¤¨¬ ª á¨âã 樨, ®¯¨á ­­®© ¢ ⥮६¥ 6.6: ¨¬¥¥âáï ¯®á«¥¤®¢ ⥫쭮áâì ­¥§ ¢¨á¨¬ëå ¨á¯ëâ ­¨©, ¢¥à®ïâ­®áâì ãá¯¥å ¢ i¬ ¨á¯ëâ ­¨¨ à ¢­ 1=i.  ¬ ­ ¤® ®æ¥­¨âì ç¨á«® ãᯥ客.
Œ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ í⮣® ç¨á« à ¢­® 1+1=2+ : : : +1=i =
Hi = ln i + O(1), á¬. ä®à¬ã«ã (3.5) ¨ § ¤ çã 6-2.  ¬ ­ ¤® ®æ¥­¨âì
¢¥à®ïâ­®áâì ⮣®, çâ® ç¨á«® ãᯥ客 ¡®«ìè¥ á¢®¥£® ¬ ⥬ â¨ç¥áª®£® ®¦¨¤ ­¨ï ¢ + 1 à §.
13.4 ‘«ãç ©­ë¥ ¤¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª 255
â® ¤¥« ¥âáï á ¯®¬®éìî ⥮६ë 6.6.  ¯®¬­¨¬, çâ® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ jS j ¥áâì = Hn > ln n, ¨ ¯® ⥮६¥ 6.6 ¬ë
¨¬¥¥¬
PfjS j > ( + 1)Hn g = P fjS j ; > Hn g 6
eHn Hn =
6 H
n
(1
;
ln
= e )Hn 6
6 e;(ln ;1) ln n =
= n;(ln ;1) =
= 1=n2
ᮣ« á­® ®¯à¥¤¥«¥­¨î ç¨á« .
®á«¥ â ª®© ¯®¤£®â®¢ª¨ ¢¥à­ñ¬áï ª ¤¥à¥¢ìï¬ ¯®¨áª .
’¥®à¥¬ 13.6. ‘।­ïï ¢ëá®â á«ãç ©­®£® ¤¢®¨ç­®£® ¤¥à¥¢ ¯®¨áª , ¯®áâ஥­­®£® ¯® n à §«¨ç­ë¬ ª«îç ¬, ¥áâì O(lg n).
„®ª § ⥫ìá⢮. ãáâì k1; k2; : : :; kn | á«ãç ©­ ï ¯¥à¥áâ ­®¢ª ¤ ­­ëå n ª«î祩, T | ¤¥à¥¢®, ¯®«ã祭­®¥ ¯®á«¥¤®¢ ⥫ì­ë¬ ¤®¡ ¢«¥­¨¥¬ íâ¨å ª«î祩 ª ¯ãá⮬ã. „«ï 䨪á¨à®¢ ­­®£® ­®¬¥à j ¨
¤«ï ¯à®¨§¢®«ì­®£® ç¨á« t à áᬮâਬ ¢¥à®ïâ­®áâì ⮣®, çâ® £«ã¡¨­ d(kj ; T ) ª«îç kj ­¥ ¬¥­ìè¥ t. ‘®£« á­® á«¥¤á⢨î 13.4, ¢ í⮬
á«ãç ¥ å®âï ¡ë ®¤­® ¨§ ¬­®¦¥á⢠Gj ¨ Lj ¤®«¦­® ¨¬¥âì à §¬¥à ­¥
¬¥­¥¥ t=2. ’ ª¨¬ ®¡à §®¬,
Pfd(kj ; T ) > tg 6 PfjGj j > t=2g + PfjLj j > t=2g:
(13.2)
‚­ ç «¥ à áᬮâਬ PfjGj j > t=2g. Žæ¥­¨¬ ãá«®¢­ãî ¢¥à®ïâ­®áâì
í⮣® ᮡëâ¨ï ¯à¨ 䨪á¨à®¢ ­­®¬ ¬­®¦¥á⢥ U = ft : 1 6 t 6 j ;
1 ¨ kt > kj g (â® ¥áâì ª®£¤ ¨§¢¥áâ­®, ª ª¨¥ ¨§ í«¥¬¥­â®¢ k1 ; : : :; kj ;1
¡®«ìè¥ kj ). Œë ­ 室¨¬áï ¢ á¨âã 樨 «¥¬¬ë 13.5 (¢á¥ ¯¥à¥áâ ­®¢ª¨
í«¥¬¥­â®¢ á ¨­¤¥ªá ¬¨ ¨§ U à ¢­®¢¥à®ïâ­ë), ¨ ¯®í⮬ã ãá«®¢­ ï
¢¥à®ïâ­®áâì ᮡëâ¨ï jGj j > t=2 ¯à¨ ¤ ­­®¬ U à ¢­ ¢¥à®ïâ­®áâ¨
⮣®, çâ® ¢ á«ãç ©­®© ¯¥à¥áâ ­®¢ª¥ ¨§ u = jU j í«¥¬¥­â®¢ ¥áâì ¯®
ªà ©­¥© ¬¥à¥ t=2 í«¥¬¥­â®¢, ¬¥­ìè¨å ¢á¥å ¯à¥¤ë¤ãé¨å. ‘ à®á⮬ u
íâ ¢¥à®ïâ­®áâì ⮫쪮 à áâñâ, â ª çâ® ¢á¥ ãá«®¢­ë¥ ¢¥à®ïâ­®áâ¨
­¥ ¯à¥¢®á室ïâ PfjS j > t=2g, £¤¥ S ®¯à¥¤¥«¥­® ª ª ¢ «¥¬¬¥ 13.5.
®í⮬㠨 ¯®«­ ï ¢¥à®ïâ­®áâì ᮡëâ¨ï fjGj j > t=2g ­¥ ¯à¥¢®á室¨â
PfjS j > t=2g.
€­ «®£¨ç­ë¬ ®¡à §®¬
PfjLj j > t=2g 6 PfjS j > t=2g
¨, ᮣ« á­® ­¥à ¢¥­áâ¢ã (13.2),
Pfd(kj ; T ) > tg 6 2PfjS j > t=2g:
256
ƒ« ¢ 13 „¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª ‚§ï¢ ⥯¥àì t = 2( + 1)Hn, £¤¥ Hn = 1 + 1=2 + : : : + 1=n ( 4;32
| ª®à¥­ì ãà ¢­¥­¨ï (ln ; 1) = 2) ¨ ¯à¨¬¥­¨¢ «¥¬¬ã 13.5, ¬ë
§ ª«îç ¥¬, çâ®
Pfd(kj ; T ) > 2( + 1)Hn g 6 2PfjS j > ( + 1)Hn g 6 2=n2 :
‚ᥣ® ¢¥à設 ¢ ¤¥à¥¢¥ ­¥ ¡®«¥¥ n, ¯®í⮬㠢¥à®ïâ­®áâì ⮣®, çâ®
ª ª ï-â® ¢¥à設 ¡ã¤¥â ¨¬¥âì £«ã¡¨­ã 2( + 1)Hn ¨«¨ ¡®«ìè¥, ­¥
¡®«¥¥ 祬 ¢ n à § ¯à¥¢®á室¨â â ªãî ¦¥ ¢¥à®ïâ­®áâì ¤«ï ®¤­®©
¢¥à設ë, ¨ ¯®â®¬ã ­¥ ¯à¥¢®á室¨â 2=n. ˆâ ª, á ¢¥à®ïâ­®áâìî ¯®
¬¥­ì襩 ¬¥à¥ 1 ; 2=n ¢ëá®â á«ãç ©­®£® ¤¥à¥¢ ­¥ ¯à¥¢®á室¨â
2( + 1)Hn , ¨ ¢ «î¡®¬ á«ãç ¥ ®­ ­¥ ¡®«ìè¥ n. ’ ª¨¬ ®¡à §®¬,
¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ­¥ ¯à¥¢®á室¨â (2( + 1)Hn)(1 ; 2=n) +
n(2=n) = O(lg n).
“¯à ¦­¥­¨ï
à¨¢¥¤¨â¥ ¯à¨¬¥à ¤¥à¥¢ ¯®¨áª , ¢ ª®â®à®¬ á।­ïï (¯®
¢á¥¬ ¢¥à設 ¬) £«ã¡¨­ ¢¥àè¨­ë ¥áâì (lg n), ­® ¢ëá®â ¤¥à¥¢ ¥áâì !(lg n).  ᪮«ìª® ¢¥«¨ª ¬®¦¥â ¡ëâì ¢ëá®â ¤¥à¥¢ , ¥á«¨
á।­ïï £«ã¡¨­ ¢¥àè¨­ë ¥áâì (lg n)?
13.4-2 ®ª ¦¨â¥, çâ® ¯à¨ ­ 襬 ¯®­¨¬ ­¨¨ á«ãç ©­®£® ¤¢®¨ç­®£® ¤¥à¥¢ ¯®¨áª ­¥ ¢á¥ 㯮à冷祭­ë¥ ¤¥à¥¢ìï á ¤ ­­ë¬¨
n ª«îç ¬¨ à ¢­®¢¥à®ïâ­ë. (“ª § ­¨¥:  áᬮâà¨â¥ á«ãç © n = 3.)
13.4-3? „«ï ¤ ­­®© ª®­áâ ­âë r > 1 㪠¦¨â¥ ª®­áâ ­âã t, ¤«ï ª®â®à®© ¢¥à®ïâ­®áâì ᮡëâ¨ï "¢ëá®â á«ãç ©­®£® ¤¢®¨ç­®£® ¤¥à¥¢ ¯®¨áª ­¥ ¬¥­ìè¥ tHn " ¬¥­ìè¥ 1=nr .
13.4-4?  áᬮâਬ «£®à¨â¬ Randomized-Quicksort, ¯à¨¬¥­ñ­­ë© ª ¯®á«¥¤®¢ ⥫쭮á⨠¨§ n ç¨á¥«. „®ª ¦¨â¥, çâ® ¤«ï
«î¡®© ª®­áâ ­âë k > 0 áãé¥áâ¢ã¥â â ª ï ª®­áâ ­â c, çâ® á
¢¥à®ïâ­®áâìî ­¥ ¬¥­¥¥ 1 ; c=nk «£®à¨â¬ § ¢¥àè ¥â à ¡®âã § ¢à¥¬ï cn lg n.
13.4-1
‡ ¤ ç¨
13-1 „¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª ¨ à ¢­ë¥ ª«îç¨
 ¢­ë¥ ª«îç¨ | ¨áâ®ç­¨ª ¯à®¡«¥¬ ¯à¨ à ¡®â¥ á ¤¥à¥¢ìﬨ ¯®¨áª .
Š ª®¢ ᨬ¯â®â¨ª ¢à¥¬¥­¨ à ¡®âë ¯à®æ¥¤ãàë Tree-Insert
¯à¨ ¤®¡ ¢«¥­¨¨ n ®¤¨­ ª®¢ëå ª«î祩 ¢ ¨§­ ç «ì­® ¯ãá⮥ ¤¥à¥¢®?
à¨ç¨­ âãâ ¢ ⮬, çâ® ¯à¨ ¢ë¡®à¥ ¢ áâப å 5{7 ¨ 11{13 ¬ë ¢ á«ãç ¥ à ¢¥­á⢠¢á¥£¤ ¤¢¨£ ¥¬áï ­ ¯à ¢® ¯® ¤¥à¥¢ã. ã¤¥¬ à áᬠ-
‡ ¤ ç¨ ª £« ¢¥ 13
257
âਢ âì á«ãç © à ¢¥­á⢠®â¤¥«ì­®. Žæ¥­¨â¥ ᨬ¯â®â¨ªã ¢à¥¬¥­¨
¤®¡ ¢«¥­¨ï n à ¢­ëå ª«î祩 ¢ ¯ãá⮥ ¤¥à¥¢® ¯à¨ ¨á¯®«ì§®¢ ­¨¨
âàñå à §«¨ç­ëå ¯®¤å®¤®¢:
¡ •à ­¨¬ ¢ ¢¥à設¥ x ä« £ b[x], ¨ ¢ë¡¨à ¥¬ «¥¢®£® ¨«¨ ¯à ¢®£®
ॡñ­ª ¢ § ¢¨á¨¬®á⨠®â §­ 祭¨ï b[x]. à¨ í⮬ ä« £ ¬¥­ï¥âáï
¯à¨ ª ¦¤®¬ ¯®á¥é¥­¨¨ ¢¥à設ë, â ª çâ® ­ ¯à ¢«¥­¨ï ç¥à¥¤ãîâáï.
¢ •à ­¨¬ í«¥¬¥­âë á à ¢­ë¬¨ ª«îç ¬¨ ¢ ®¤­®© ¢¥à設¥ (á ¯®¬®éìî ᯨ᪠) ¨ ¤®¡ ¢«ï¥¬ í«¥¬¥­â á 㦥 ¢áâà¥ç ¢è¨¬áï ª«î箬
¢ íâ®â ᯨ᮪.
£  ¯à ¢«¥­¨¥ ¤¢¨¦¥­¨ï ¢ë¡¨à ¥¬ á«ãç ©­®. (Š ª®¢® ¡ã¤¥â ¢à¥¬ï
¢ åã¤è¥¬ á«ãç ¥? —â® ¢ë ¬®¦¥â¥ ᪠§ âì ® ¬ ⥬ â¨ç¥áª®¬ ®¦¨¤ ­¨¨?)
13-2 –¨äà®¢ë¥ ¤¥à¥¢ìï
 áᬮâਬ ¤¢¥ áâப¨ a = a0a1 : : :ap ¨ b = b0b1 : : :bq , á®áâ ¢«¥­­ë¥ ¨§ ᨬ¢®«®¢ ­¥ª®â®à®£® (㯮à冷祭­®£®) «ä ¢¨â .
ƒ®¢®àïâ, çâ® áâப a «¥ªá¨ª®£à ä¨ç¥áª¨ ¬¥­ìè¥ áâப¨ b (a is
lexicographically less than b), ¥á«¨ ¢ë¯®«­ï¥âáï ®¤­® ¨§ ¤¢ãå ãá«®¢¨©:
1. ‘ãé¥áâ¢ã¥â ç¨á«® j ¨§ 0:: min(p; q ), ¯à¨ ª®â®à®¬ ai = bi ¤«ï ¢á¥å
i = 0; 1; : : :; j ; 1 ¨ aj < bj .
2. p < q ¨ ai = bi ¤«ï ¢á¥å i = 0; 1; : : :; p.
 ¯à¨¬¥à, 10100 < 10110 ᮣ« á­® ¯à ¢¨«ã 1 (¯à¨ j = 3), 10100 <
101000 ᮣ« á­® ¯à ¢¨«ã 2. ’ ª®© ¯®à冷ª ¯à¨¬¥­ï¥âáï ¢ á«®¢ àïå.
‘â஥­¨¥ æ¨ä஢®£® ¤¥à¥¢ (radix tree) ¢¨¤­® ¨§ ¯à¨¬¥à ­ à¨á. 13.6, £¤¥ ¯®ª § ­® ¤¥à¥¢®, åà ­ï饥 ¡¨â®¢ë¥ áâப¨ 1011, 10,
011, 100 ¨ 0. à¨ ¯®¨áª¥ áâப¨ a = a0 a1 : : :ap ¬ë ­ i-¬ è £¥ ¨¤ñ¬
­ «¥¢® ¯à¨ ai = 0 ¨ ­ ¯à ¢® ¯à¨ ai = 1. ãáâì í«¥¬¥­â ¬¨ ¬­®¦¥á⢠S ïîâáï ¯®¯ à­® à §«¨ç­ë¥ ¡¨â®¢ë¥ áâப¨ á㬬 à­®©
¤«¨­ë n. ®ª ¦¨â¥, ª ª á ¯®¬®éìî æ¨ä஢®£® ¤¥à¥¢ ®âá®àâ¨à®¢ âì S ¢ «¥ªá¨ª®£à ä¨ç¥áª®¬ ¯®à浪¥ § (n) ¤¥©á⢨©. ( ¯à¨¬¥à,
¤«ï ¬­®¦¥á⢠à¨á. 13.6 १ã«ìâ ⮬ á®àâ¨à®¢ª¨ ¡ã¤¥â ¯®á«¥¤®¢ ⥫쭮áâì 0; 011; 10; 100; 1011.)
13-3 ‘।­ïï £«ã¡¨­ ¢¥àè¨­ë ¢ á«ãç ©­®¬ ¤¢®¨ç­®¬ ¤¥à¥¢¥
‚ í⮩ § ¤ ç¥ ¬ë ¤®ª ¦¥¬, çâ® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ á।­¥© £«ã¡¨­ë ¢¥àè¨­ë ¢ á«ãç ©­®¬ ¤¢®¨ç­®¬ ¤¥à¥¢¥ á n ¢¥à設 ¬¨ ¥áâì O(lg n). •®âï íâ®â १ã«ìâ â á« ¡¥¥, 祬 १ã«ìâ â ⥮६ë 13.6, ¤®ª § ⥫ìá⢮ ãáâ ­ ¢«¨¢ ¥â ¨­â¥à¥á­ë¥ ­ «®£¨¨
¬¥¦¤ã ¤¢®¨ç­ë¬¨ ¤¥à¥¢ìﬨ ¯®¨áª ¨ ¯à®æ¥¤ãன RandomizedQuicksort ¨§ à §¤¥« 8.3.
 áᬮâਬ (áà. £« ¢ã 5, ã¯à. 5.5-6) á㬬㠣«ã¡¨­ d(x; T ) ¢á¥å
¢¥à設 x ¤¥à¥¢ T , ª®â®àãî ¬ë ¡ã¤¥¬ ®¡®§­ ç âì P (T ).
258
ƒ« ¢ 13 „¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª ‘।­ïï £«ã¡¨­ ¢¥àè¨­ë ¢ ¤¥à¥¢¥ T ¥áâì
1 X d(x; T ) = 1 P (T ):
n x 2T
n
’ ª¨¬ ®¡à §®¬, ­ ¤® ¯®ª § âì, çâ® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥
P (T ) ¥áâì O(n lg n).
¡ Ž¡®§­ 稬 ç¥à¥§ TL ¨ TR «¥¢®¥ ¨ ¯à ¢®¥ ¯®¤¤¥à¥¢ìï ¤¥à¥¢ T .
“¡¥¤¨â¥áì, çâ® ¥á«¨ T ᮤ¥à¦¨â n ¢¥à設, â®
P (T ) = P (TL) + P (TR) + n ; 1:
¢ Ž¡®§­ 稬 ç¥à¥§ P (n) ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ¢­ãâ७­¥©
áã¬¬ë ¤«¨­ ¤«ï á«ãç ©­®£® ¤¢®¨ç­®£® ¤¥à¥¢ ¯®¨áª á n ¢¥à設 ¬¨. ®ª ¦¨â¥, çâ®
nX
;1
1
P (n) = n (P (i) + P (n ; i ; 1) + n ; 1):
£ ®ª ¦¨â¥, çâ®
i=0
nX
;1
2
P (n) = n P (k) + (n):
k=1
¤ ‚ᯮ¬¨­ ï à áá㦤¥­¨¥ ¨§ à §¤¥« 8.4.2 (®æ¥­ª ¬ ⥬ â¨ç¥áª®£® ®¦¨¤ ­¨ï ¢à¥¬¥­¨ ¡ëáâன á®àâ¨à®¢ª¨), ¯®ª ¦¨â¥, çâ®
P (n) = O(n lg n).
‚ ª ¦¤®¬ ४ãàᨢ­®¬ ¢ë§®¢¥ ¡ëáâன á®àâ¨à®¢ª¨ ¬ë á«ãç ©­ë¬ ®¡à §®¬ ¢ë¡¨à ¥¬ £à ­¨ç­ë© í«¥¬¥­â. ®¤®¡­® í⮬ã, ª ¦¤ ï
¢¥à設 ¤¥à¥¢ ¯®¨áª ï¥âáï £à ­¨æ¥© ¬¥¦¤ã «¥¢ë¬ ¨ ¯à ¢ë¬
᢮¨¬ ¯®¤¤¥à¥¢®¬.
¥ Ž¯¨è¨â¥ ॠ«¨§ æ¨î «£®à¨â¬ ¡ëáâன á®àâ¨à®¢ª¨, ¯à¨ ª®â®à®¬ ¢ ¯à®æ¥áᥠá®àâ¨à®¢ª¨ í«¥¬¥­â®¢ k1; : : :; kn ¢ë¯®«­ïîâáï ¢
â®ç­®á⨠⥠¦¥ áà ¢­¥­¨ï, çâ® ¨ ¯à¨ ¤®¡ ¢«¥­¨¨ ¨å ¢ (¨§­ ç «ì­®
¯ãá⮥) ¤¥à¥¢®. (®à冷ª áà ¢­¥­¨© ¬®¦¥â ¡ëâì ¤à㣨¬.)
13-4 Š®«¨ç¥á⢮ à §­ëå ¤¢®¨ç­ëå ¤¥à¥¢ì¥¢
Ž¡®§­ 稬 ç¥à¥§ bn ª®«¨ç¥á⢮ à §«¨ç­ëå ¤¢®¨ç­ëå ¤¥à¥¢ì¥¢
á n ¢¥à設 ¬¨. ‚ í⮩ § ¤ ç¥ âॡã¥âáï ¢ë¢¥á⨠ä®à¬ã«ã ¤«ï bn
¨ ®æ¥­¨âì ᪮à®áâì à®áâ ç¨á« bn.
®ª ¦¨â¥, çâ® b0 = 1 ¨ çâ®
bn =
¯à¨ n > 1.
nX
;1
k=0
bk bn;1;k
‡ ¬¥ç ­¨ï ª £« ¢¥ 13
259
¡ ãáâì B (x) | ¯à®¨§¢®¤ïé ï äã­ªæ¨ï
B(x) =
1
X
n=0
bn xn
(®¯à¥¤¥«¥­¨¥ ¯à®¨§¢®¤ïé¨å ä㭪権 ¤ ­® ¢ § ¤ ç¥ 4-6). ®ª ¦¨â¥, çâ® B(x) = xB(x)2 + 1 ¨, â ª¨¬ ®¡à §®¬,
p
B(x) = 21x (1 ; 1 ; 4x):
ï¤ ’¥©«®à (Taylor expansion) ä㭪樨 f (x) ¢ â®çª¥ x = a ®¯à¥¤¥-
«ï¥âáï ä®à¬ã«®©
f (x) =
1
X
f (k) (a) (x ; a)k
k=0 k!
£¤¥ f (k)(a) | k-ï ¯à®¨§¢®¤­ ï f ¢ â®çª¥ a.
¢ ®ª ¦¨â¥, çâ®
bn = n +1 1 C2nn
p
à §«®¦¨¢
¢
àï¤
’¥©«®à äã­ªæ¨î
1 ; 4x ¢ â®çª¥ 0. (ï¤ ¤«ï
p
1 + h = (1 + h)1=2 ¬®¦­® ¯®«ãç¨âì â ª¦¥ ª ª ®¡®¡é¥­¨¥ ¡¨­®¬ ìîâ®­ , ¥á«¨ ¤«ï ­¥æ¥«ëå n ¨ 楫ëå ­¥®âà¨æ ⥫ì­ëå k ¯®«®¦¨âì Cnk = n(n ; 1) : : : (n ; k + 1)=k!.)
—¨á«® bn ­ §ë¢ ¥âáï n-¬ ç¨á«®¬ Š â « ­ (Catalan number).
£ ®ª ¦¨â¥, çâ®
4n (1 + O(1=n)):
bn = pn
3 =2
‡ ¬¥ç ­¨ï
®¤à®¡­®¥ ®¡á㦤¥­¨¥ ¤¢®¨ç­ëå ¤¥à¥¢ì¥¢ ¯®¨áª ¨ ¬­®£¨å ­ «®£¨ç­ëå áâàãªâãà ¤ ­­ëå ¬®¦­® ­ ©â¨ 㠊­ãâ [123]. ‚¨¤¨¬®,
¤¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª ¡ë«¨ ­¥§ ¢¨á¨¬® ¯à¨¤ã¬ ­ë ¬­®£¨¬¨
«î¤ì¬¨ ­¥§ ¤®«£® ¤® 1960 £®¤ .
260
ƒ« ¢ 13 „¢®¨ç­ë¥ ¤¥à¥¢ìï ¯®¨áª ª«îç¨ 21 9 4 25 7 12 3 10 19 29 17 6 26 18
G0j
21
25
19 29
21
19
Gj
L0j
9 4
7 12 3 10
9
12
Lj
(¡)
¨áã­®ª 13.5 Œ­®¦¥á⢠Gj ¨ Lj , á®áâ ¢«ïî騥 ¬­®¦¥á⢮ ª«î祩 ­ ¯ã⨠ª
ª«îçã kj = 17. ( ) —¥à­ë¥ ¢¥à設ë ᮤ¥à¦ â ª«îç¨ ¨§ Gj , ¡¥«ë¥ ¨§ Lj , ®áâ «ì­ë¥ ¢¥à設ë | á¥àë¥. ‚뤥«¥­ ¯ãâì ª ª«îçã kj . Š«îç¨ «¥¢¥¥
¯ã­ªâ¨à­®©
«¨­¨¨ ¬¥­ìè¥ kj , ª«îç¨ ¯à ¢¥¥ | ¡®«ìè¥. (¡) Œ­®¦¥á⢮ G0j = f21; 25; 19; 29g
á®á⮨⠨§ ª«î祩, ¤®¡ ¢«¥­­ëå à ­ìè¥ ª«îç 17 ¨ ¡®«ìè¨å 17. Œ­®¦¥á⢮
Gj = f21; 19g ᮤ¥à¦¨â ª«îç¨, ¡ë¢è¨¥ ¡«¨¦ ©è¨¬¨ á¯à ¢ ª ª«îçã 17, â® ¥áâì
0j . Š«îç 21 ¡ë« ¤®¡ ¢«¥­
¡ë¢è¨¥ ¬¨­¨¬ «ì­ë¬¨
¢
㦥
¯®ï¢¨¢è¥©áï
ç áâ¨
G
¯¥à¢ë¬ ª G0j ¨ ¯®¯ « ¢ Gj ; ª«îç 25 ­¥ ¯®¯ « (®­ ¡®«ìè¥ â¥ªã饣® ¬¨­¨¬ã¬ ,
à ¢­®£® 21). Š«îç 19 ¯®¯ ¤ ¥â
¢ Gj , ¯®â®¬ã çâ® ®­ ¬¥­ìè¥ 21, 29 | ­¥â, â ª
ª ª 29 > 19. Œ­®¦¥á⢠L0j ¨ Lj áâà®ïâáï ­ «®£¨ç­ë¬ ®¡à §®¬.
‡ ¬¥ç ­¨ï ª £« ¢¥ 13
261
¨áã­®ª 13.6 –¨ä஢®¥ ¤¥à¥¢® åà ­¨â áâப¨ 1011, 10, 011, 100 ¨ 0. Š ¦¤®©
¢¥à設¥ ᮮ⢥âáâ¢ã¥â ª«îç | áâப , ª®â®àãî ¬®¦­® ¯à®ç¥áâì, ¨¤ï ¨§ ª®à­ï
¢ íâã ¢¥à設ã, ¯®í⮬ã í⨠ª«îç¨ ­¥ ­ ¤® åà ­¨âì á¯¥æ¨ «ì­® (­ à¨áã­ª¥
®­¨ ¯®ª § ­ë ¤«ï ­ £«ï¤­®áâ¨). ’ñ¬­ë¥ ¢¥àè¨­ë ­¥ ᮮ⢥âáâ¢ãîâ ª«îç ¬,
ïîâáï ¯à®¬¥¦ãâ®ç­ë¬¨ ¤«ï ¤àã£¨å ¢¥à設.
14
Šà á­®-çñà­ë¥ ¤¥à¥¢ìï
‚ £« ¢¥ 13 ¬ë ¯®ª § «¨, çâ® ®á­®¢­ë¥ ®¯¥à 樨 á ¤¢®¨ç­ë¬ ¤¥à¥¢®¬ ¯®¨áª ¢ëá®âë h ¬®£ãâ ¡ëâì ¢ë¯®«­¥­ë § O(h) ¤¥©á⢨©.
„¥à¥¢ìï íä䥪⨢­ë, ¥á«¨ ¨å ¢ëá®â ¬ « | ­® ¬ « ï ¢ëá®â ­¥
£ à ­â¨àã¥âáï, ¨ ¢ åã¤è¥¬ á«ãç ¥ ¤¥à¥¢ìï ­¥ ¡®«¥¥ íä䥪⨢­ë,
祬 ᯨ᪨. Šà á­®-çñà­ë¥ ¤¥à¥¢ìï | ®¤¨­ ¨§ ⨯®¢ "á¡ « ­á¨à®¢ ­­ëå" ¤¥à¥¢ì¥¢ ¯®¨áª , ¢ ª®â®àëå ¯à¥¤ãᬮâà¥­ë ®¯¥à 樨
¡ « ­á¨à®¢ª¨, £ à ­â¨àãî騥, çâ® ¢ëá®â ¤¥à¥¢ ­¥ ¯à¥¢§®©¤ñâ
O(lg n).
14.1 ‘¢®©á⢠ªà á­®-çñà­ëå ¤¥à¥¢ì¥¢
Šà á­®-çñà­®¥ ¤¥à¥¢® (red-black tree) | íâ® ¤¢®¨ç­®¥ ¤¥à¥¢® ¯®¨áª , ¢¥àè¨­ë ª®â®à®£® à §¤¥«¥­ë ­ ªà á­ë¥ (red) ¨ çñà­ë¥
(black). ’ ª¨¬ ®¡à §®¬, ª ¦¤ ï ¢¥à設 åà ­¨â ®¤¨­ ¤®¯®«­¨â¥«ì­ë© ¡¨â | ¥ñ 梥â.
à¨ í⮬ ¤®«¦­ë ¢ë¯®«­ïâìáï ®¯à¥¤¥«ñ­­ë¥ âॡ®¢ ­¨ï, ª®â®àë¥ £ à ­â¨àãîâ, çâ® £«ã¡¨­ë «î¡ëå ¤¢ãå «¨áâ쥢 ®â«¨ç îâáï
­¥ ¡®«¥¥ 祬 ¢ ¤¢ à § , ¯®í⮬㠤¥à¥¢® ¬®¦­® ­ §¢ âì á¡ « ­á¨à®-
¢ ­­ë¬ (balanced).
Š ¦¤ ï ¢¥à設 ªà á­®-çñà­®£® ¤¥à¥¢ ¨¬¥¥â ¯®«ï color (梥â),
key (ª«îç), left («¥¢ë© ॡñ­®ª), right (¯à ¢ë© ॡñ­®ª) ¨ p (த¨â¥«ì). …᫨ ã ¢¥àè¨­ë ®âáãâáâ¢ã¥â ॡñ­®ª ¨«¨ த¨â¥«ì, ᮮ⢥âáâ¢ãî饥 ¯®«¥ ᮤ¥à¦¨â nil. „«ï 㤮¡á⢠¬ë ¡ã¤¥¬ áç¨â âì, çâ®
§­ 祭¨ï nil, åà ­ï騥áï ¢ ¯®«ïå left ¨ right, ïîâáï áá뫪 ¬¨
­ ¤®¯®«­¨â¥«ì­ë¥ (䨪⨢­ë¥) «¨áâìï ¤¥à¥¢ . ‚ â ª®¬ ¯®¯®«­¥­­®¬ ¤¥à¥¢¥ ª ¦¤ ï áâ à ï ¢¥à設 (ᮤ¥à¦ é ï ª«îç) ¨¬¥¥â ¤¢ãå
¤¥â¥©.
„¢®¨ç­®¥ ¤¥à¥¢® ¯®¨áª ­ §ë¢ ¥âáï ªà á­®-çñà­ë¬ ¤¥à¥¢®¬, ¥á«¨
®­® ®¡« ¤ ¥â á«¥¤ãî騬¨ ᢮©á⢠¬¨ (¡ã¤¥¬ ­ §ë¢ âì ¨å RB᢮©á⢠¬¨, ¯®- ­£«¨©áª¨ red-black properties):
1. Š ¦¤ ï ¢¥à設 | «¨¡® ªà á­ ï, «¨¡® çñà­ ï.
2. Š ¦¤ë© «¨áâ (nil) | çñà­ë©.
‘¢®©á⢠ªà á­®-çñà­ëå ¤¥à¥¢ì¥¢
263
¨áã­®ª 14.1 Šà á­®-çñà­®¥ ¤¥à¥¢®. —ñà­ë¥ ¢¥àè¨­ë ¯®ª § ­ë ª ª âñ¬­ë¥,
ªà á­ë¥ | ª ª á¥àë¥. Š ¦¤ ï ¢¥à設 «¨¡® ªà á­ ï, «¨¡® ç¥à­ ï. ‚ᥠnil«¨áâìï çñà­ë¥. „¥â¨ ªà á­®© ¢¥à設ë | çñà­ë¥. „«ï ª ¦¤®© ¢¥àè¨­ë ¢á¥
¯ã⨠®â ­¥ñ ¢­¨§ ª «¨áâìï¬ á®¤¥à¦¨â ®¤¨­ ª®¢®¥ ª®«¨ç¥á⢮ çñà­ëå ¢¥à設.
Žª®«® ª ¦¤®© ¢¥à設ë (ªà®¬¥ «¨áâ쥢) § ¯¨á ­ ¥ñ çñà­ ï ¢ëá®â . —ñà­ ï
¢ëá®â «¨áâ쥢 à ¢­ 0.
3. …᫨ ¢¥à設 ªà á­ ï, ®¡ ¥ñ ॡñ­ª çñà­ë¥.
4. ‚ᥠ¯ãâ¨, ¨¤ã騥 ¢­¨§ ®â ª®à­ï ª «¨áâìï¬, ᮤ¥à¦ â ®¤¨­ ª®¢®¥
ª®«¨ç¥á⢮ çñà­ëå ¢¥à設.
à¨¬¥à ªà á­®-çñà­®£® ¤¥à¥¢ ¯®ª § ­ ­ à¨áã­ª¥ 14.1.
 áᬮâਬ ¯à®¨§¢®«ì­ãî ¢¥à設ã x ªà á­®-çñà­®£® ¤¥à¥¢ ¨
¯ãâ¨, ¢¥¤ã騥 ¢­¨§ ®â ­¥ñ ª «¨áâìï¬. ‚ᥠ®­¨ ᮤ¥à¦ â ®¤­® ¨ â®
¦¥ ç¨á«® çñà­ëå ¢¥à設 (¤®¡ ¢¨¬ ª ­¨¬ ¯ãâì ¨§ ª®à­ï ¢ x ¨ ¯à¨¬¥­¨¬ ᢮©á⢮ 4). —¨á«® çñà­ëå ¢¥à設 ¢ «î¡®¬ ¨§ ­¨å (á ¬ã
¢¥à設ã x ¬ë ­¥ áç¨â ¥¬) ¡ã¤¥¬ ­ §ë¢ âì çñà­®© ¢ëá®â®© (blackheight) ¢¥à設ë x ¨ ®¡®§­ ç âì bh(x). —ñà­®© ¢ëá®â®© ¤¥à¥¢ ¡ã¤¥¬ áç¨â âì çñà­ãî ¢ëá®âã ¥£® ª®à­ï.
‘«¥¤ãîé ï «¥¬¬ ¯®ª §ë¢ ¥â, çâ® ªà á­®-çñà­ë¥ ¤¥à¥¢ìï å®à®è¨ ª ª ¤¥à¥¢ìï ¯®¨áª .
‹¥¬¬ 14.1. Šà á­®-çñà­®¥ ¤¥à¥¢® á n ¢­ãâ७­¨¬¨ ¢¥à設 ¬¨
(â. ¥. ­¥ áç¨â ï nil-«¨áâ쥢) ¨¬¥¥â ¢ëá®âã ­¥ ¡®«ìè¥ 2 lg(n +1).
„®ª § ⥫ìá⢮. ‘­ ç « ¯®ª ¦¥¬, çâ® ¯®¤¤¥à¥¢® á ª®à­¥¬ ¢ x
ᮤ¥à¦¨â ¯® ¬¥­ì襩 ¬¥à¥ 2bh(x) ; 1 ¢­ãâ७­¨å ¢¥à設. „®ª § ⥫ìá⢮ ¯à®¢¥¤ñ¬ ¨­¤ãªæ¨¥© ®â «¨áâ쥢 ª ª®à­î. „«ï «¨áâ쥢
çñà­ ï ¢ëá®â à ¢­ 0, ¨ ¯®¤¤¥à¥¢® ¢ á ¬®¬ ¤¥«¥ ᮤ¥à¦¨â ­¥ ¬¥­¥¥
2bh(x) ; 1 = 20 ; 1 = 0 ¢­ãâ७­¨å ¢¥à設. ãáâì ⥯¥àì ¢¥à設 x
­¥ ï¥âáï «¨á⮬ ¨ ¨¬¥¥â çñà­ãî ¢ëá®âã k. ’®£¤ ®¡ ¥ñ ॡñ­ª ¨¬¥îâ çñà­ãî ¢ëá®âã ­¥ ¬¥­ìè¥ k ; 1 (ªà á­ë© ॡñ­®ª ¡ã¤¥â
¨¬¥âì ¢ëá®âã k, çñà­ë© | k ; 1). ® ¯à¥¤¯®«®¦¥­¨î ¨­¤ãªæ¨¨
«¥¢®¥ ¨ ¯à ¢®¥ ¯®¤¤¥à¥¢ìï ¢¥à設ë x ᮤ¥à¦ â ­¥ ¬¥­¥¥ 2k;1 ; 1
¢¥à設, ¨ ¯®â®¬ã ¯®¤¤¥à¥¢® á ª®à­¥¬ ¢ x ᮤ¥à¦¨â ¯® ¬¥­ì襩
¬¥à¥ 2k;1 ; 1 + 2k;1 ; 1 + 1 = 2k ; 1 ¢­ãâ७­¨å ¢¥à設.
—â®¡ë § ¢¥àè¨âì ¤®ª § ⥫ìá⢮ «¥¬¬ë, ®¡®§­ 稬 ¢ëá®âã ¤¥à¥¢ ç¥à¥§ h. ‘®£« á­® ᢮©áâ¢ã 3, ¯® ¬¥­ì襩 ¬¥à¥ ¯®«®¢¨­ã
264
ƒ« ¢ 14 Šà á­®-çñà­ë¥ ¤¥à¥¢ìï
¢á¥å ¢¥à設 ­ ¯ã⨠®â ª®à­ï ª «¨áâã, ­¥ áç¨â ï ª®à¥­ì, á®áâ ¢«ïîâ çñà­ë¥ ¢¥à設ë. ‘«¥¤®¢ ⥫쭮, çñà­ ï ¢ëá®â ¤¥à¥¢ ­¥
¬¥­ìè¥ h=2. ’®£¤ n > 2h=2 ; 1:
¥à¥­®áï 1 ­ «¥¢® ¨ ¯¥à¥©¤ï ª «®£ à¨ä¬ ¬, ¯®«ãç ¥¬ lg(n + 1) >
h=2, ¨«¨ h 6 2 lg(n + 1). ‹¥¬¬ ¤®ª § ­ .
’¥¬ á ¬ë¬ ¤«ï ªà á­®-çñà­ëå ¤¥à¥¢ì¥¢ ®¯¥à 樨 Search,
Minimum, Maximum, Successor ¨ Predecessor ¢ë¯®«­ïîâáï
§ ¢à¥¬ï O(lg n), â ª ª ª ¢à¥¬ï ¨å ¢ë¯®«­¥­¨ï ¥áâì O(h) ¤«ï
¤¥à¥¢ ¢ëá®âë h, ªà á­®-çñà­®¥ ¤¥à¥¢® á n ¢¥à設 ¬¨ ¨¬¥¥â
¢ëá®âã O(lg n).
‘«®¦­¥¥ ®¡á⮨⠤¥«® á ¯à®æ¥¤ãà ¬¨ Tree-Insert ¨ TreeDelete ¨§ £« ¢ë 13: ¯à®¡«¥¬ ¢ ⮬, çâ® ®­¨ ¬®£ã⠨ᯮàâ¨âì
áâàãªâãàã ªà á­®-çñà­®£® ¤¥à¥¢ , ­ àã訢 RB-᢮©á⢠. ®í⮬ã
í⨠¯à®æ¥¤ãàë ¯à¨¤ñâáï ¬®¤¨ä¨æ¨à®¢ âì. Œë 㢨¤¨¬ ¢ à §¤¥« å 14.3 ¨ 14.4, ª ª ¬®¦­® ॠ«¨§®¢ âì ¤®¡ ¢«¥­¨¥ ¨ 㤠«¥­¨¥ í«¥¬¥­â®¢ § ¢à¥¬ï O(lg n) á á®åà ­¥­¨¥¬ RB-᢮©áâ¢.
“¯à ¦­¥­¨ï
 à¨áã©â¥ ¯®«­®¥ ¤¢®¨ç­®¥ ¤¥à¥¢® ¯®¨áª ¢ëá®âë 3 á
ª«îç ¬¨ f1; 2; : : :; 15g. „®¡ ¢ì⥠nil-«¨áâìï ¨ ¯®ªà áì⥠¢¥à設ë
â६ï ᯮᮡ ¬¨ â ª, çâ®¡ë ¯®«ã稢訥áï ªà á­®-çñà­ë¥ ¤¥à¥¢ìï
¨¬¥«¨ çñà­ãî ¢ëá®âã 2, 3 ¨ 4.
14.1-2 à¥¤¯®«®¦¨¬, çâ® ª®à¥­ì ªà á­®-çñà­®£® ¤¥à¥¢ ªà á­ë©.
…᫨ ¬ë ¯®ªà ᨬ ¥£® ¢ çñà­ë© 梥â, ®áâ ­¥âáï «¨ ¤¥à¥¢® ªà á­®çñà­ë¬?
14.1-3 ®ª ¦¨â¥, çâ® á ¬ë© ¤«¨­­ë© ¯ãâì ¢­¨§ ®â ¢¥à設ë x ª
«¨áâã ­¥ ¡®«¥¥ 祬 ¢¤¢®¥ ¤«¨­­¥¥ á ¬®£® ª®à®âª®£® â ª®£® ¯ãâ¨.
14.1-4 Š ª®¥ ­ ¨¡®«ì襥 ¨ ­ ¨¬¥­ì襥 ª®«¨ç¥á⢮ ¢­ãâ७­¨å
¢¥à設 ¬®¦¥â ¡ëâì ¢ ªà á­®-çñà­®¬ ¤¥à¥¢¥ çñà­®© ¢ëá®âë k?
14.1-5 Ž¯¨è¨â¥ ªà á­®-çñà­®¥ ¤¥à¥¢®, ᮤ¥à¦ 饥 n ª«î祩, á
­ ¨¡®«ì訬 ¢®§¬®¦­ë¬ ®â­®è¥­¨¥¬ ç¨á« ªà á­ëå ¢­ãâ७­¨å
¢¥à設 ª ç¨á«ã çñà­ëå ¢­ãâ७­¨å ¢¥à設. —¥¬ã à ¢­® íâ® ®â­®è¥­¨¥? „«ï ª ª®£® ¤¥à¥¢ íâ® ®â­®è¥­¨¥ ¡ã¤¥â ­ ¨¬¥­ì訬, ¨
祬ã à ¢­® íâ® ®â­®è¥­¨¥?
14.1-1
‚à 饭¨ï
265
Ž¯¥à 樨 ¢à 饭¨ï ­ ¤¢®¨ç­®¬ ¤¥à¥¢¥ ¯®¨áª . Ž¯¥à æ¨ï
«¥¢®¥ ¤¥à¥¢® ¢ ¯à ¢®¥, ¬¥­ïï ­¥áª®«ìª® 㪠§ ⥫¥©.
à ¢®¥ ¤¥à¥¢® ¬®¦­® ¯¥à¥¢¥á⨠¢ «¥¢®¥ ®¡à â­®© ®¯¥à 樥© Left-Rotate. ‚¥à設ë x ¨ y ¬®£ãâ ­ 室¨âìáï ¢ «î¡®¬ ¬¥á⥠¤¥à¥¢ . ãª¢ë , ¨ ®¡®§­ ç îâ
¯®¤¤¥à¥¢ìï. ‚ ®¡®¨å ¤¥à¥¢ìïå ¢ë¯®«­¥­® ®¤­® ¨ â® ¦¥ ᢮©á⢮ 㯮à冷祭­®áâ¨: ª«îç¨ ¨§ ¯à¥¤è¥áâ¢ãîâ key[x], ª®â®àë© ¯à¥¤è¥áâ¢ã¥â ª«îç ¬ ¨§ ,
ª®â®àë¥ ¯à¥¤è¥áâ¢ãîâ key[y], ª®â®àë© ¯à¥¤è¥áâ¢ã¥â ª«îç ¬ ¨§ .
¨áã­®ª
14.2
Right-Rotate ¯à¥®¡à §ã¥â
14.2 ‚à 饭¨ï
Ž¯¥à 樨 Tree-Insert ¨ Tree-Delete ¢ë¯®«­ïîâáï ­ ªà á­®çñà­®¬ ¤¥à¥¢¥ § ¢à¥¬ï O(lg n), ­® ®­¨ ¨§¬¥­ïîâ ¤¥à¥¢®, ¨ १ã«ìâ â ¬®¦¥â ­¥ ®¡« ¤ âì RB-᢮©á⢠¬¨, ®¯¨á ­­ë¬¨ ¢ à §¤¥«¥ 14.1.
—â®¡ë ¢®ááâ ­®¢¨âì í⨠᢮©á⢠, ­ ¤® ¯¥à¥ªà á¨âì ­¥ª®â®àë¥
¢¥àè¨­ë ¨ ¨§¬¥­¨âì áâàãªâãàã ¤¥à¥¢ .
Œë ¡ã¤¥¬ ¬¥­ïâì áâàãªâãàã á ¯®¬®éìî ¢à 饭¨© (rotations).
‚à 饭¨¥ ¯à¥¤áâ ¢«ï¥â ᮡ®© «®ª «ì­ãî ®¯¥à æ¨î (¬¥­ï¥âáï ­¥áª®«ìª® 㪠§ ⥫¥©) ¨ á®åà ­ï¥â ᢮©á⢮ 㯮à冷祭­®áâ¨.  à¨áã­ª¥ 14.2 ¯®ª § ­ë ¤¢ ¢§ ¨¬­® ®¡à â­ëå ¢à 饭¨ï: «¥¢®¥ ¨ ¯à ¢®¥. ‹¥¢®¥ ¢à 饭¨¥ ¢®§¬®¦­® ¢ «î¡®© ¢¥à設¥ x, ¯à ¢ë© ॡñ­®ª
ª®â®à®© (­ §®¢ñ¬ ¥£® y) ­¥ ï¥âáï «¨á⮬ (nil). ®á«¥ ¢à 饭¨ï y
®ª §ë¢ ¥âáï ª®à­¥¬ ¯®¤¤¥à¥¢ , x | «¥¢ë¬ ॡñ­ª®¬ y, ¡ë¢è¨©
«¥¢ë© ॡñ­®ª y | ¯à ¢ë¬ ॡñ­ª®¬ x.
‚ ¯à®æ¥¤ãॠLeft-Rotate ¯à¥¤¯®« £ ¥âáï, çâ® right[x] =
6 nil.
Left-Rotate(T; x)
1 y right[x]
.  室¨¬ y .
2 right[x] left[y ] . ‹¥¢®¥ ¯®¤¤¥à¥¢® y áâ ­®¢¨âáï
¯à ¢ë¬ ¯®¤¤¥à¥¢®¬ x.
3 if left[y ] =
6 nil
4
then p[left[y ]] x
5 p[y ] p[x]
. „¥« ¥¬ த¨â¥«ï x த¨â¥«¥¬ y .
6 if p[x] = nil
7
then root[T ] y
8
else if x = left[p[x]]
9
then left[p[x]] y
10
else right[p[x]] y
11 left[y ] x
. „¥« ¥¬ x «¥¢ë¬ ॡñ­ª®¬ y .
12 p[x] y
 à¨áã­ª¥ 14.3 ¯®ª § ­® ¤¥©á⢨¥ ¯à®æ¥¤ãàë Left-Rotate. à®-
266
ƒ« ¢ 14 Šà á­®-çñà­ë¥ ¤¥à¥¢ìï
¨áã­®ª 14.3 à¨¬¥à ¤¥©áâ¢¨ï ¯à®æ¥¤ãàë Left-Rotate. „®¯®«­¨â¥«ì­ë¥ nil«¨áâìï ­¥ ¯®ª § ­ë. ®à冷ª ª«î祩 ¢ ­ ç «ì­®¬ ¨ ª®­¥ç­®¬ ¤¥à¥¢ìïå ®¤¨­ ¨
â®â ¦¥.
楤ãà Right-Rotate ­ «®£¨ç­ . Ž¡¥ ®­¨ à ¡®â îâ § ¢à¥¬ï
O(1) ¨ ¬¥­ïîâ ⮫쪮 㪠§ ⥫¨. Žáâ «ì­ë¥ ¯®«ï ¢¥à設 ®áâ îâáï ­¥¨§¬¥­­ë¬¨.
“¯à ¦­¥­¨ï
 à¨áã©â¥ ¤¥à¥¢®, ª®â®à®¥ ¯®«ãç¨âáï, ¥á«¨ á ¯®¬®éìî ¯à®æ¥¤ãàë Tree-Insert ¤®¡ ¢¨âì ª«îç 36 ª ¤¥à¥¢ã à¨á. 14.1. …᫨
ᤥ« âì ¤®¡ ¢«¥­­ãî ¢¥à設㠪à á­®©, ¡ã¤¥â «¨ ¯®«ã祭­®¥ ¤¥à¥¢® ®¡« ¤ âì RB-᢮©á⢠¬¨? € ¥á«¨ ᤥ« âì ¥ñ çñà­®©?
14.2-2  ¯¨è¨â¥ ¯à®æ¥¤ãàã Right-Rotate.
14.2-3 “¡¥¤¨â¥áì, çâ® ¢à 饭¨ï á®åà ­ïîâ ᢮©á⢮ 㯮à冷祭­®áâ¨.
14.2-4 ãáâì a, b ¨ c | ¯à®¨§¢®«ì­ë¥ ¢¥àè¨­ë ¢ ¯®¤¤¥à¥¢ìïå ,
¨ ­ à¨á. 14.2 (á¯à ¢ ). Š ª ¨§¬¥­¨âáï £«ã¡¨­ a, b ¨ c ¯à¨
¢ë¯®«­¥­¨¨ «¥¢®£® ¢à 饭¨ï?
14.2-5 ®ª ¦¨â¥, çâ® ¯à®¨§¢®«ì­®¥ ¤¢®¨ç­®¥ ¤¥à¥¢® ¯®¨áª á n ¢¥à設 ¬¨ ¬®¦¥â ¡ëâì ¯à¥®¡à §®¢ ­® ¢ «î¡®¥ ¤à㣮¥ ¤¥à¥¢® á
⥬ ¦¥ ç¨á«®¬ ¢¥à設 (¨ ⥬¨ ¦¥ ª«îç ¬¨) á ¯®¬®éìî O(n) ¢à 饭¨©. (“ª § ­¨¥: ‘­ ç « ¯®ª ¦¨â¥, çâ® n ; 1 ¯à ¢ëå ¢à 饭¨©
¤®áâ â®ç­®, çâ®¡ë ¯à¥®¡à §®¢ âì «î¡®¥ ¤¥à¥¢® ¢ ¨¤ãéãî ¢¯à ¢®
楯®çªã.)
14.2-1
„®¡ ¢«¥­¨¥ ¢¥à設ë
267
14.3 „®¡ ¢«¥­¨¥ ¢¥à設ë
„®¡ ¢«¥­¨¥ ¢¥àè¨­ë ¢ ªà á­®-çñà­®¥ ¤¥à¥¢® ¯à®¢®¤¨âáï § ¢à¥¬ï
O(lg n). ‘­ ç « ¬ë ¯à¨¬¥­ï¥¬ ¯à®æ¥¤ãàã Tree-Insert, ª ª ¤¥« «®áì ¤«ï ¤¢®¨ç­ëå ¤¥à¥¢ì¥¢ ¯®¨áª , ¨ ªà ᨬ ­®¢ãî ¢¥à設㠢
ªà á­ë© 梥â. ®á«¥ í⮣® ­ ¤® ¢®ááâ ­®¢¨âì RB-᢮©á⢠, ¤«ï
祣® ¯à¨å®¤¨âáï ¯¥à¥ªà á¨âì ­¥ª®â®àë¥ ¢¥àè¨­ë ¨ ¯à®¨§¢¥áâ¨
¢à 饭¨ï. à¨ í⮬ ¢®§¬®¦­ë à §«¨ç­ë¥ á¨âã 樨, á ª®â®à묨
­ ¤® ªªãà â­® à §®¡à âìáï.
RB-Insert (T; x)
1 Tree-Insert (T; x)
2 color[x] red
3 while x =
6 root[T ] ¨ color[p[x]] = red
4
do if p[x] = left[p[p[x]]]
5
then y right[p[p[x]]]
6
if color[y ] = red
7
then color[p[x]] black
. ‘«ãç © 1
8
color[y ] black
. ‘«ãç © 1
9
color[p[p[x]]] red
. ‘«ãç © 1
10
x p[p[x]]
. ‘«ãç © 1
11
else if x = right[p[x]]
12
then x p[x]
. ‘«ãç © 2
13
Left-Rotate(T; x) . ‘«ãç © 2
14
color[p[x]] black
. ‘«ãç © 3
15
color[p[p[x]]] red
. ‘«ãç © 3
16
Right-Rotate(T; p[p[x]]) . ‘«ãç © 3
17
else ( ­ «®£¨ç­ë© ⥪áâ á
§ ¬¥­®© left $ right)
18 color[root[T ]] black
 à¨áã­ª¥ 14.4 ¯®ª § ­ ¯à¨¬¥à ¯à¨¬¥­¥­¨ï ¯à®æ¥¤ãàë RB-Insert.
à®æ¥¤ãà RB-Insert ¯à®é¥, 祬 ª ¦¥âáï ­ ¯¥à¢ë© ¢§£«ï¤.
®á«¥ ¢ë¯®«­¥­¨ï áâப 1{2 ¢ë¯®«­ïîâáï ¢á¥ RB-᢮©á⢠, ªà®¬¥
®¤­®£®: ªà á­ ï ¢¥à設 x ¬®¦¥â ¨¬¥âì ªà á­®£® த¨â¥«ï.
(á¬. à¨á. 14.4 ). ‚ ®áâ «ì­®¬ ¢áñ ¢ ¯®à浪¥ | ¤à㣨¥ ᢮©á⢠"­¥ § ¬¥ç îâ" ¤®¡ ¢«¥­¨ï ªà á­®© ¢¥à設ë (®â¬¥â¨¬, çâ® ­®¢ ï
ªà á­ ï ¢¥à設 ¨¬¥¥â ¤¢ãå çñà­ëå nil-¤¥â¥©).
’ ª ï á¨âã æ¨ï (¢ë¯®«­¥­ë ¢á¥ RB-᢮©á⢠, § ¨áª«î祭¨¥¬
⮣®, çâ® ªà á­ ï ¢¥à設 x ¬®¦¥â ¨¬¥âì ªà á­®£® த¨â¥«ï) ¡ã¤¥â
á®åà ­ïâìáï ¯®á«¥ «î¡®£® ç¨á« ¨â¥à 権 横« .  ª ¦¤®¬ è £¥
¢¥à設 x ¯®¤­¨¬ ¥âáï ¢¢¥àå ¯® ¤¥à¥¢ã (¥á«¨ ⮫쪮 ­¥ 㤠«®áì
ãáâà ­¨âì ­ àã襭¨ï ¯®«­®áâìî; ¢ í⮬ á«ãç ¥ ¬ë ¢ë室¨¬ ¨§
横« ).
268
ƒ« ¢ 14 Šà á­®-çñà­ë¥ ¤¥à¥¢ìï
¨áã­®ª 14.4  ¡®â ¯à®æ¥¤ãàë RB-Insert. ( ) „®¡ ¢«¥­ ¢¥à設 x; ¯à¨
í⮬ ­ àã訫®áì ᢮©á⢮ 3: x ¨ ¥£® த¨â¥«ì ªà á­ë¥. ‚¥à設 y (ª®â®àãî
¬®¦­® ­ §¢ âì "¤ï¤¥©" ¢¥à設ë x) ªà á­ ï, ¯®í⮬㠨¬¥¥â ¬¥áâ® á«ãç © 1.
®á«¥ ¯¥à¥ªà 訢 ­¨ï ¢¥à設 ¯®«ãç ¥âáï ¤¥à¥¢® (¡). ®¢ ï ¢¥à設 x ¨ ¥ñ
த¨â¥«ì ªà á­ë¥, ­® ¤ï¤ï y çñà­ë©. ’ ª ª ª x | ¯à ¢ë© ॡñ­®ª, ¨¬¥¥â ¬¥áâ® á«ãç © 2. à®¨§¢®¤¨âáï «¥¢®¥ ¢à 饭¨¥, ª®â®à®¥ ¤ ¥â ¤¥à¥¢® (¢). ’¥¯¥àì
㦥 x ï¥âáï «¥¢ë¬ ॡñ­ª®¬, ¨ íâ® | á«ãç © 3. ®á«¥ ¯à ¢®£® ¢à 饭¨ï
¯®«ãç ¥¬ ª®à४⭮¥ ªà á­®-çñà­®¥ ¤¥à¥¢® (£).
„®¡ ¢«¥­¨¥ ¢¥à設ë
269
¨áã­®ª 14.5 ‘«ãç © 1.  àã襭® ᢮©á⢮ 3: x ¨ ¥£® த¨â¥«ì | ªà á­ë¥.
 è¨ ¤¥©áâ¢¨ï ­¥ § ¢¨áïâ ®â ⮣®, ï¥âáï «¨ x ¯à ¢ë¬ ( ) ¨«¨ «¥¢ë¬ (¡)
áë­®¬. ‚ᥠ¯®¤¤¥à¥¢ìï , , , ¨ " ¨¬¥îâ çñà­ë© ª®à¥­ì ¨ ®¤¨­ ª®¢ãî çñà­ãî
¢ëá®âã. à®æ¥¤ãà ¬¥­ï¥â 梥⠢¥à設ë p[p[x]] ¨ ¥ñ ¤¥â¥©. –¨ª« ¯à®¤®«¦ ¥âáï
¯®á«¥ ¯à¨á¢ ¨¢ ­¨ï x p[p[x]]; ᢮©á⢮ 3 ¬®¦¥â ¡ëâì ­ àã襭® ⮫쪮 ¬¥¦¤ã
ªà á­®© ¢¥à設®© p[p[x]] ¨ ¥ñ த¨â¥«¥¬ (¥á«¨ ®­ ⮦¥ ªà á­ë©).
‚­ãâਠ横« à áᬠâਢ îâáï è¥áâì á«ãç ¥¢, ­® âਠ¨§ ­¨å
ᨬ¬¥âà¨ç­ë âàñ¬ ¤à㣨¬, à §«¨ç¨ï «¨èì ¢ ⮬, ï¥âáï «¨ த¨â¥«ì ¢¥à設ë x «¥¢ë¬ ¨«¨ ¯à ¢ë¬ ॡñ­ª®¬ ᢮¥£® த¨â¥«ï.
â¨ á«ãç ¨ à §¤¥«ïîâáï ¢ áâப¥ 4. Œë ¢ë¯¨á «¨ äà £¬¥­â ¯à®æ¥¤ãàë ¤«ï á«ãç ï, ª®£¤ p[x] | «¥¢ë© ॡñ­®ª ᢮¥£® த¨â¥«ï.
(‘¨¬¬¥âà¨ç­ë¥ á«ãç ¨ ®â­®áïâáï ª áâப¥ 17.)
Œë ¡ã¤¥¬ ¯à¥¤¯®« £ âì, çâ® ¢® ¢á¥å à áᬠâਢ ¥¬ëå ­ ¬¨
ªà á­®-çñà­ëå ¤¥à¥¢ìïå ª®à¥­ì çñà­ë© (¨ ¯®¤¤¥à¦¨¢ âì í⮠᢮©á⢮ | ¤«ï í⮣® ¨á¯®«ì§ã¥âáï áâப 18). ®í⮬㠢 áâப¥ 4 ªà á­ ï ¢¥à設 p[x] ­¥ ¬®¦¥â ¡ëâì ª®à­¥¬ (p[p[x]] áãé¥áâ¢ã¥â).
Ž¯¥à 樨 ¢­ãâਠ横« ­ 稭 îâáï á ­ 宦¤¥­¨ï ¢¥à設ë y,
ª®â®à ï ï¥âáï "¤ï¤¥©" ¢¥à設ë x (¨¬¥¥â ⮣® ¦¥ த¨â¥«ï, çâ®
¨ ¢¥à設 p[x]). …᫨ ¢¥à設 y ªà á­ ï, ¨¬¥¥â ¬¥áâ® á«ãç © 1,
¥á«¨ çñà­ ï | â® ®¤¨­ ¨§ á«ãç ¥¢ 2 ¨ 3. ‚® ¢á¥å á«ãç ïå ¢¥à設 p[p[x]] çñà­ ï, â ª ª ª ¯ à x{p[x] ¡ë« ¥¤¨­á⢥­­ë¬ ­ àã襭¨¥¬
RB-᢮©áâ¢.
‘«ãç © 1 (áâப¨ 7{10) ¯®ª § ­ ­ à¨á. 14.5. â ç áâì ⥪á⠨ᯮ«­ï¥âáï, ¥á«¨ ¨ p[x], ¨ y ªà á­ë¥. à¨ í⮬ ¢¥à設 p[p[x]]
| çñà­ ï. ¥à¥ªà ᨬ p[x] ¨ y ¢ çñà­ë© 梥â, p[p[x]] | ¢ ªà á­ë©. à¨ í⮬ ç¨á«® çñà­ëå ¢¥à設 ­ «î¡®¬ ¯ã⨠¨§ ª®à­ï ª
«¨áâìï¬ ®áâ ­¥âáï ¯à¥¦­¨¬.  àã襭¨¥ RB-᢮©á⢠¢®§¬®¦­® ¢
¥¤¨­á⢥­­®¬ ¬¥á⥠­®¢®£® ¤¥à¥¢ : ã p[p[x]] ¬®¦¥â ¡ëâì ªà á­ë© த¨â¥«ì. ®í⮬㠭 ¤® ¯à®¤®«¦¨âì ¢ë¯®«­¥­¨¥ 横« , ¯à¨á¢®¨¢ x
§­ 祭¨¥ p[p[x]].
‚ á«ãç ïå 2 ¨ 3 ¢¥à設 y çñà­ ï. â¨ ¤¢ á«ãç ï à §«¨ç îâáï
⥬, ª ª¨¬ ॡñ­ª®¬ x ¯à¨å®¤¨âáï ᢮¥¬ã த¨â¥«î | «¥¢ë¬ ¨«¨
270
ƒ« ¢ 14 Šà á­®-çñà­ë¥ ¤¥à¥¢ìï
¨áã­®ª 14.6 ‘«ãç ¨ 2 ¨ 3 ¢ ¯à®æ¥¤ãॠRB-Insert. Š ª ¨ ¤«ï á«ãç ï 1, ­ àã襭® ᢮©á⢮ 3 ªà á­®-çñà­ëå ¤¥à¥¢ì¥¢, â ª ª ª ¢¥à設 x ¨ ¥ñ த¨â¥«ì p[x]
| ªà á­ë¥. Š®à­¨ ¤¥à¥¢ì¥¢ , , ¨ | çñà­ë¥; í⨠¤¥à¥¢ìï ¨¬¥îâ ®¤¨­ ª®¢ãî çñà­ãî ¢ëá®âã. Ž¡ ¢à 饭¨ï, ¯®ª § ­­ë¥ ­ à¨áã­ª¥, ­¥ ¬¥­ïîâ ç¨á«®
çñà­ëå ¢¥à設 ­ ¯ã⨠®â ª®à­ï ª «¨áâìï¬. ®á«¥ í⮣® ¬ë ¢ë室¨¬ ¨§ 横« :
RB-᢮©á⢠¢ë¯®«­¥­ë ¢áî¤ã.
¯à ¢ë¬. …᫨ ¯à ¢ë¬, ¨á¯®«­ïîâáï áâப¨ 12{13 (á«ãç © 2). ‚
í⮬ á«ãç ¥ ¢ë¯®«­ï¥âáï «¥¢®¥ ¢à 饭¨¥, ª®â®à®¥ ᢮¤¨â á«ãç © 2
ª á«ãç î 3. ª®£¤ x ï¥âáï «¥¢ë¬ ॡñ­ª®¬ (à¨á. 14.6), ’ ª ª ª
¨ x, ¨ p[x] ªà á­ë¥, ¯®á«¥ ¢à 饭¨ï ª®«¨ç¥á⢠çñà­ëå ¢¥à設 ­ ¯ãâïå ®áâ îâáï ¯à¥¦­¨¬¨.
ˆâ ª, ®áâ «®áì à áᬮâà¥âì á«ãç © 3: ªà á­ ï ¢¥à設 x ï¥âáï «¥¢ë¬ ॡñ­ª®¬ ªà á­®© ¢¥à設ë p[x], ª®â®à ï ï¥âáï «¥¢ë¬ ॡñ­ª®¬ çñà­®© ¢¥à設ë p[p[x]], ¯à ¢ë¬ ॡñ­ª®¬ ª®â®à®©
ï¥âáï çñà­ ï ¢¥à設 y. ‚ í⮬ á«ãç ¥ ¤®áâ â®ç­® ¯à®¨§¢¥áâ¨
¯à ¢®¥ ¢à 饭¨¥ ¨ ¯¥à¥ªà á¨âì ¤¢¥ ¢¥à設ë, ç⮡ë ãáâà ­¨âì ­ àã襭¨¥ RB-᢮©áâ¢. –¨ª« ¡®«ìè¥ ­¥ ¢ë¯®«­ï¥âáï, â ª ª ª ¢¥à設 p[x] ⥯¥àì çñà­ ï.
Š ª®¢® ¢à¥¬ï ¢ë¯®«­¥­¨ï ¯à®æ¥¤ãàë RB-Insert? ‚ëá®â ªà á­®-çñà­®£® ¤¥à¥¢ ¥áâì O(lg n), ¥á«¨ ¢ ¤¥à¥¢¥ n ¢¥à設, ¯®í⮬㠢맮¢ Tree-Insert âॡã¥â ¢à¥¬¥­¨ O(lg n). –¨ª« ¯®¢â®àï¥âáï, ⮫쪮 ¥á«¨ ¬ë ¢áâà¥ç ¥¬ á«ãç © 1, ¨ ¯à¨ í⮬ x ᤢ¨£ ¥âáï
¢¢¥àå ¯® ¤¥à¥¢ã. ’ ª¨¬ ®¡à §®¬, 横« ¯®¢â®àï¥âáï O(lg n) à §, ¨
®¡é¥¥ ¢à¥¬ï à ¡®âë ¥áâì O(lg n). ˆ­â¥à¥á­®, çâ® ¯à¨ í⮬ ¢ë¯®«­ï¥âáï ­¥ ¡®«¥¥ ¤¢ãå ¢à 饭¨© (¯®á«¥ ª®â®àëå ¬ë ¢ë室¨¬ ¨§
横« ).
“¯à ¦­¥­¨ï
‚ áâப¥ 2 ¯à®æ¥¤ãàë RB-Insert ¬ë ªà ᨬ ­®¢ãî ¢¥à設ã x ¢ ªà á­ë© 梥â. …᫨ ¡ë ¬ë ¯®ªà ᨫ¨ ¥ñ ¢ ç¥à­ë© 梥â,
᢮©á⢮ 3 ­¥ ¡ë«® ¡ë ­ àã襭®. ®ç¥¬ã ¦¥ ¬ë í⮣® ­¥ ᤥ« «¨?
14.3-2 ‚ áâப¥ 18 ¬ë ªà ᨬ ª®à¥­ì ¤¥à¥¢ ¢ çñà­ë© 梥â. ‡ 祬
íâ® ¤¥« ¥âáï?
14.3-3  à¨áã©â¥ ªà á­®-çñà­ë¥ ¤¥à¥¢ìï, ª®â®à®¥ ¯®«ãç îâáï
¯à¨ ¯®á«¥¤®¢ ⥫쭮¬ ¤®¡ ¢«¥­¨¨ ª ¯ãá⮬㠤¥à¥¢ã ª«î祩
14.3-1
“¤ «¥­¨¥
271
41; 38; 31; 12; 19; 8.
ãáâì çñà­ ï ¢ëá®â ª ¦¤®£® ¨§ ¯®¤¤¥à¥¢ì¥¢ , , , , " ­ à¨áã­ª å 14.5 ¨ 14.6 à ¢­ k.  ©¤¨â¥ çñà­ë¥ ¢ëá®âë ¢á¥å ¢¥à設
­ íâ¨å à¨áã­ª å ¨ ¯à®¢¥àìâ¥, ç⮠᢮©á⢮ 4 ¤¥©á⢨⥫쭮 ­¥
­ àãè ¥âáï.
14.3-5  áᬮâਬ ªà á­®-çñà­®¥ ¤¥à¥¢®, ¯®«ã祭­®¥ ¤®¡ ¢«¥­¨¥¬ n ¢¥à設 ª ¯ãá⮬㠤¥à¥¢ã. “¡¥¤¨â¥áì, çâ® ¯à¨ n > 1 ¢ ¤¥à¥¢¥
¥áâì å®âï ¡ë ®¤­ ªà á­ ï ¢¥à設 .
14.3-6 Š ª íä䥪⨢­® ॠ«¨§®¢ âì ¯à®æ¥¤ãàã RB-Insert, ¥á«¨
¢ ¢¥à設 å ­¥ åà ­ïâáï 㪠§ ⥫¨ ­ த¨â¥«¥©?
14.3-4
14.4 “¤ «¥­¨¥
Š ª ¨ ¤à㣨¥ ®¯¥à 樨, 㤠«¥­¨¥ ¢¥àè¨­ë ¨§ ªà á­®-çñà­®£® ¤¥à¥¢ âॡã¥â ¢à¥¬¥­¨ O(lg n). “¤ «¥­¨¥ ¢¥àè¨­ë ­¥áª®«ìª® á«®¦­¥¥ ¢áâ ¢ª¨.
—⮡ë ã¯à®áâ¨âì ®¡à ¡®âªã £à ­¨ç­ëå ãá«®¢¨©, ¬ë ¨á¯®«ì§ã¥¬
䨪⨢­ë© í«¥¬¥­â (¯®- ­£«¨©áª¨ ­ §ë¢ ¥¬ë© sentinel) ¢¬¥áâ® nil
(á¬. c. ??). „«ï ªà á­®-çñà­®£® ¤¥à¥¢ T 䨪⨢­ë© í«¥¬¥­â nil[T ]
¨¬¥¥â ⥠¦¥ ¯®«ï, çâ® ¨ ®¡ëç­ ï ¢¥à設 ¤¥à¥¢ . …£® 梥â çñà­ë©, ®áâ «ì­ë¬ ¯®«ï¬ (p, left, right ¨ key ) ¬®£ãâ ¡ëâì ¯à¨á¢®¥­ë
«î¡ë¥ §­ 祭¨ï. Œë áç¨â ¥¬, çâ® ¢ ªà á­®-çñà­®¬ ¤¥à¥¢¥ ¢á¥ 㪠§ ⥫¨ nil § ¬¥­¥­ë 㪠§ ⥫ﬨ ­ nil[T ].
« £®¤ àï 䨪⨢­ë¬ í«¥¬¥­â ¬ ¬ë ¬®¦¥¬ áç¨â âì nil-«¨áâ,
ïî騩áï ॡñ­ª®¬ ¢¥à設ë x, ®¡ëç­®© ¢¥à設®©, த¨â¥«ì ª®â®à®© ¥áâì x. ‚ ¯à¨­æ¨¯¥ ¬®¦­® ¡ë«® ¡ë § ¢¥á⨠¯® ®¤­®© 䨪⨢­®© ¢¥à設¥ ¤«ï ª ¦¤®£® «¨áâ , ­® íâ® ¡ë«® ¡ë ­ ¯à á­®© ¯®â¥à¥© ¯ ¬ïâ¨. —â®¡ë ¨§¡¥¦ âì í⮣®, ¬ë ¨á¯®«ì§ã¥¬ ®¤¨­ í«¥¬¥­â
nil[T ], ¯à¥¤áâ ¢«ïî騩 ¢á¥ «¨áâë. Ž¤­ ª®, ª®£¤ ¬ë å®â¨¬ à ¡®â âì á «¨á⮬ | ॡñ­ª®¬ ¢¥à設ë x, ­ ¤® ­¥ § ¡ëâì ¢ë¯®«­¨âì
¯à¨á¢ ¨¢ ­¨¥ p[nil[T ]] x.
à®æ¥¤ãà RB-Delete á«¥¤ã¥â á奬¥ ¯à®æ¥¤ãàë Tree-Delete
¨§ à §¤¥« 13.3. ‚ë१ ¢ ¢¥à設ã, ®­ ¢ë§ë¢ ¥â ¢á¯®¬®£ ⥫ì­ãî
¯à®æ¥¤ãàã RB-Delete-Fixup, ª®â®à ï ¬¥­ï¥â 梥⠨ ¯à®¨§¢®¤¨â
¢à 饭¨ï, çâ®¡ë ¢®ááâ ­®¢¨âì RB-᢮©á⢠.
272
ƒ« ¢ 14 Šà á­®-çñà­ë¥ ¤¥à¥¢ìï
RB-Delete (T; z )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if left[z ] = nil[T ] ¨«¨ right[z ] = nil[T ]
then y z
else y Tree-Successor(z )
if left[y ] 6= nil[T ]
then x left[y ]
else x right[y ]
p[x] p[y]
if p[y ] = nil[T ]
then root[T ] x
else if y = left[p[y ]]
then left[p[y ]] x
else right[p[y ]] x
if y =
6 z
then key[z ] key[y ]
. Š®¯¨à㥬 ¤®¯®«­¨â¥«ì­ë¥ ¤ ­­ë¥ ¨§ ¢¥à設ë y .
if color[y ] = black
then RB-Delete-Fixup (T; x)
return y
…áâì âà¨ à §«¨ç¨ï ¬¥¦¤ã ¯à®æ¥¤ãà ¬¨ RB-Delete ¨ TreeDelete. ‚®-¯¥à¢ëå, ¢¬¥áâ® nil ¢áî¤ã á⮨â 㪠§ â¥«ì ­ 䨪⨢­ë© í«¥¬¥­â nil[T ]. ‚®-¢â®àëå, ¯à®¢¥àª x =
6 nil ¢ áâப¥ 7
¯à®æ¥¤ãàë Tree-Delete 㤠«¥­ , ¨ ¯à¨á¢ ¨¢ ­¨¥ p[x] p[y] ¢ë¯®«­ï¥âáï ¢ «î¡®¬ á«ãç ¥. …᫨ x ¥áâì 䨪⨢­ë© í«¥¬¥­â nil[T ],
â® ¥£® 㪠§ â¥«ì ­ த¨â¥«ï áâ ­®¢¨âáï à ¢­ë¬ த¨â¥«î 㤠«ï¥¬®£® í«¥¬¥­â y. ‚-âà¥âì¨å, ¢ áâப å 16{17 ¢ë§ë¢ ¥âáï ¯à®æ¥¤ãà RB-Delete-Fixup, ¥á«¨ 㤠«ï¥¬ ï ¢¥à設 y | çñà­ ï. à¨ 㤠«¥­¨¨ ªà á­®© ¢¥à設ë RB-᢮©á⢠­¥ ­ àãè îâáï (çñà­ë¥ ¢ëá®âë ­¥ ¬¥­ïîâáï, ¨ ªà á­ë¥ ¢¥àè¨­ë ­¥ ¬®£ãâ áâ âì á®á¥¤­¨¬¨).
¥à¥¤ ¢ ¥¬ ï ¯à®æ¥¤ãॠRB-Delete-Fixup ¢¥à設 x ï¢«ï« áì
¥¤¨­á⢥­­ë¬ ॡñ­ª®¬ ¢¥à設ë y, ¥á«¨ ã y ¡ë« ॡñ­®ª (­¥ ïî騩áï «¨á⮬), ¨«¨ 䨪⨢­ë¬ í«¥¬¥­â®¬ nil[T ], ¥á«¨ ¢¥à設 y
­¥ ¨¬¥« ¤¥â¥©. ‚ ¯®á«¥¤­¥¬ á«ãç ¥ ¯à¨á¢ ¨¢ ­¨¥ ¢ áâப¥ 7 £ à ­â¨àã¥â, çâ® p[x] 㪠§ë¢ ¥â ­ ¡ë¢è¥£® த¨â¥«ï y | ¢­¥ § ¢¨á¨¬®á⨠®â ⮣®, ï¥âáï «¨ x ­ áâ®ï饩 ¢¥à設®© ¨«¨ 䨪⨢­ë¬
í«¥¬¥­â®¬.
®á¬®âਬ, ª ª ¯à®æ¥¤ãà RB-Delete-Fixup ¢®ááâ ­ ¢«¨¢ ¥â
RB-᢮©á⢠¤¥à¥¢ .
“¤ «¥­¨¥
273
RB-Delete-Fixup (T; x)
1 while x 6= root[T ] ¨ color[x] = black
2
do if x = left[p[x]]
3
then w right[p[x]]
4
if color[w] = red
5
then color[w] black
6
color[p[x]] red
7
Left-Rotate(T; p[x])
8
w right[p[x]]
9
if color[left[w]] = black ¨
color[right[w]] = black
10
then color[w] red
11
x p[x]
12
else if color[right[w]] = black
13
then color[left[w]] black
14
color[w] red
15
Right-Rotate(T; w)
16
w right[p[x]]
17
color[w] color[p[x]]
18
color[p[x]] black
19
color[right[w]] black
20
Left-Rotate(T; p[x])
21
x root[T ]
22
else (ᨬ¬¥âà¨ç­ë© äà £¬¥­â á
§ ¬¥­®© left $ right)
23 color[x] black
. ‘«ãç © 1
. ‘«ãç © 1
. ‘«ãç © 1
. ‘«ãç © 1
. ‘«ãç © 2
. ‘«ãç © 2
. ‘«ãç © 3
. ‘«ãç © 3
. ‘«ãç © 3
. ‘«ãç © 3
. ‘«ãç © 4
. ‘«ãç © 4
. ‘«ãç © 4
. ‘«ãç © 4
. ‘«ãç © 4
…᫨ 㤠«ñ­­ ï ¯à®æ¥¤ãன RB-Delete ¢¥à設 y ¡ë« çñà­®©,
â® «î¡®© ¯ãâì, ç¥à¥§ ­¥ñ ¯à®å®¤¨¢è¨©, ⥯¥àì ᮤ¥à¦¨â ­ ®¤­ã
çñà­ãî ¢¥à設㠬¥­ìè¥. ’ ª¨¬ ®¡à §®¬, ᢮©á⢮ 4 ­ àã訫®áì.
Œë ¬®¦¥¬ ª®¬¯¥­á¨à®¢ âì íâ® § áçñâ ¢¥à設ë x (§ ­ï¢è¥© ¬¥áâ® ¢¥à設ë y). …᫨ x | ªà á­ ï, ᤥ« ¥¬ ¥ñ çñà­®© (§ ®¤­® ¬ë
¨§¡¥£ ¥¬ ®¯ á­®á⨠¯®«ãç¨âì ªà á­ãî ¢¥à設ã á ªà á­ë¬ த¨â¥«¥¬). …᫨ x | çñà­ ï, ®¡ê¬ ¥ñ "¤¢ ¦¤ë çñà­®©" ¨ ¡ã¤¥¬ áç¨â âì § ¤¢¥ ¯à¨ ¯®¤áçñ⥠ç¨á« çñà­ëå ¢¥à設 ­ ¯ã⨠®â ª®à­ï ª
«¨áâìï¬. Š®­¥ç­®, â ª®© ¢ë室 ¬®¦¥â ¡ëâì «¨èì ¢à¥¬¥­­ë¬, ¯®áª®«ìªã ®¯à¥¤¥«¥­¨¥ ªà á­®-çñà­ëå ¤¥à¥¢ì¥¢ ­¥ ¯à¥¤ãᬠâਢ ¥â
¤¢ ¦¤ë çñà­ëå ¢¥à設, ¨ ¬ë ¤®«¦­ë ¯®á⥯¥­­® ®â â ª®© ¢¥àè¨­ë ¨§¡ ¢¨âìáï.
à®æ¥¤ãà RB-Delete-Fixup(T; x) ¯à¨¬¥­ï¥âáï ª ¤¥à¥¢ã, ª®â®à®¥ ®¡« ¤ ¥â ᢮©á⢠¬¨ ªà á­®-çñà­®£® ¤¥à¥¢ , ¥á«¨ ãç¥áâì ¤®¯®«­¨â¥«ì­ãî ¥¤¨­¨æã ç¥à­®âë ¢ ¢¥à設¥ x, ¨ ¯à¥¢à é ¥â ¥£®
¢ ­ áâ®ï饥 ªà á­®-çñà­®¥ ¤¥à¥¢®. ‚ 横«¥ (áâப¨ 1{22) ¤¥à¥¢®
¬¥­ï¥âáï, ¨ §­ 祭¨¥ ¯¥à¥¬¥­­®© x ⮦¥ ¬¥­ï¥âáï (¢ë¤¥«¥­­ ï ¢¥à設 ¬®¦¥â ᤢ¨£ âìáï ¢¢¥àå ¯® ¤¥à¥¢ã), ­® áä®à¬ã«¨à®¢ ­­®¥
274
ƒ« ¢ 14 Šà á­®-çñà­ë¥ ¤¥à¥¢ìï
᢮©á⢮ ®áâ ñâáï ¢¥à­ë¬.
–¨ª« § ¢¥àè ¥âáï, ¥á«¨ (1) x 㪠§ë¢ ¥â ­ ªà á­ãî ¢¥à設ã
(⮣¤ ¬ë ¢ áâப¥ 23 ªà ᨬ ¥ñ ¢ çñà­ë© 梥â) ¨«¨ ¥á«¨ (2) x 㪠§ë¢ ¥â ­ ª®à¥­ì (⮣¤ «¨è­ïï ç¥à­®â ¬®¦¥â ¡ëâì ¯à®á⮠㤠«¥­ ¨§ ¤¥à¥¢ ). Œ®¦¥â ®ª § âìáï â ª¦¥, çâ® (3) ¢­ãâਠ⥫ 横« 㤠ñâáï ¢ë¯®«­¨âì ­¥áª®«ìª® ¢à 饭¨© ¨ ¯¥à¥ªà á¨âì ­¥áª®«ìª®
¢¥à設, ¯®á«¥ 祣® ¤¢ ¦¤ë çñà­ ï ¢¥à設 ¨á祧­¥â. ‚ í⮬ á«ãç ¥ ¯à¨á¢ ¨¢ ­¨¥ x root[T ] ¯®§¢®«ï¥â ¢ë©â¨ ¨§ 横« .
‚­ãâਠ横« x 㪠§ë¢ ¥â ­ ¤¢ ¦¤ë çñà­ãî ¢¥à設ã, ­¥ ïîéãîáï ª®à­¥¬. ‚ áâப¥ 2 ¬ë ®¯à¥¤¥«ï¥¬, ª ª¨¬ ॡñ­ª®¬ ï¥âáï x | «¥¢ë¬ ¨«¨ ¯à ¢ë¬. (®¤à®¡­® ¢ë¯¨á ­ ç áâì ¯à®æ¥¤ãàë ¤«ï ¯¥à¢®£® á«ãç ï, ¢â®à®© á«ãç © ᨬ¬¥âà¨ç¥­ ¨ áªàëâ ¢
áâப¥ 22.) ¥à¥¬¥­­ ï w (áâப 3) 㪠§ë¢ ¥â ­ ¢â®à®£® ॡñ­ª ¢¥à設ë p[x] ("¡à â " ¢¥à設ë x). ’ ª ª ª ¢¥à設 x | ¤¢ ¦¤ë çñà­ ï, w ­¥ ¬®¦¥â ¡ëâì à ¢­® nil[T ], ¯®áª®«ìªã ¢ í⮬ á«ãç ¥
¢¤®«ì ®¤­®£® ¯ã⨠®â p[x] ¢­¨§ (ç¥à¥§ w) ¡ë«® ¡ë ¬¥­ìè¥ ç¥à­ëå
¢¥à設, 祬 ¢¤®«ì ¤à㣮£® (ç¥à¥§ x).
—¥âëॠ¢®§¬®¦­ëå á«ãç ï ¯®ª § ­ë ­ à¨á. 14.7. à¥¦¤¥ 祬
à §¡¨à âìáï á ­¨¬¨ ¤¥â «ì­®, ¯®á¬®âਬ, ª ª ¯à®¢¥à¨âì, çâ® ¯à¥®¡à §®¢ ­¨ï ­¥ ­ àãè îâ ᢮©á⢮ 4. „®áâ â®ç­® ã¡¥¤¨âìáï, çâ®
ª®«¨ç¥á⢮ çñà­ëå ¢¥à設 ®â ª®à­ï ¯®ª § ­­®£® ¯®¤¤¥à¥¢ ¤®
ª ¦¤®£® ¨§ ¯®¤¤¥à¥¢ì¥¢ ; ; : : :; ­¥ ¨§¬¥­¨«®áì.  ¯à¨¬¥à, ­ à¨á. 14.7 , ¨««îáâà¨àãî饬 á«ãç © 1, ª®«¨ç¥á⢮ çñà­ëå ¢¥à設
®â ª®à­ï ¤® ª ¦¤®£® ¨§ ¯®¤¤¥à¥¢ì¥¢ ¨ à ¢­® 3 ª ª ¤®, â ª ¨ ¯®á«¥ ¯à¥®¡à §®¢ ­¨ï. ( ¯®¬­¨¬, çâ® ¢¥à設 x áç¨â ¥âáï § ¤¢¥.)
€­ «®£¨ç­®, ª®«¨ç¥á⢮ çñà­ëå ¢¥à設 ®â ª®à­ï ¤® , , " ¨ ,
à ¢­® 2 ¤® ¨ ¯®á«¥ ¯à¥®¡à §®¢ ­¨ï.  à¨á. 14.7¡ ¢¥à設 B ¬®¦¥â
¡ëâì ¨ çñà­®©, ¨ ªà á­®©. …᫨ ®­ ªà á­ ï, â® ç¨á«® çñà­ëå ¢¥à設 ®â ª®à­ï ¤® (¤® ¨ ¯®á«¥ ¯à¥®¡à §®¢ ­¨ï) à ¢­® 2, ¥á«¨ çñà­ ï
| â® 3. Žáâ «ì­ë¥ á«ãç ¨ ¯à®¢¥àïîâáï ­ «®£¨ç­® (ã¯à. 14.4-5).
ˆâ ª, à áᬮâਬ ¢á¥ á«ãç ¨ ¯® ¯®à浪ã. ‘«ãç © 1 (áâப¨ 5{8
¯à®æ¥¤ãàë RB-Delete-Fixup, à¨á. 14.7 ) ¨¬¥¥â ¬¥áâ®, ª®£¤ ¢¥à設 w, ¡à â x, ªà á­ ï (¢ í⮬ á«ãç ¥ ¨å த¨â¥«ì, p[x], çñà­ë©).
’ ª ª ª ®¡ ॡñ­ª ¢¥à設ë w çñà­ë¥, ¬ë ¬®¦¥¬ ¯®¬¥­ïâì 梥â w ¨ p[x] ¨ ¯à®¨§¢¥á⨠«¥¢®¥ ¢à 饭¨¥ ¢®ªà㣠p[x], ­¥ ­ àãè ï RB᢮©áâ¢. ‚¥à設 x ®áâ ñâáï ¤¢ ¦¤ë çñà­®©, ¥ñ ­®¢ë© ¡à â |
çñà­ë©, â ª çâ® ¬ë ᢥ«¨ ¤¥«® ª ®¤­®¬ã ¨§ á«ãç ¥¢ 2, 3 ¨«¨ 4.
…᫨ ¢¥à設 w çñà­ ï, ¨¬¥¥â ¬¥áâ® ®¤¨­ ¨§ á«ãç ¥¢ 2{4. Ž­¨
à §«¨ç îâáï ¬¥¦¤ã ᮡ®© 梥⮬ ¤¥â¥© ¢¥à設ë w. ‚ á«ãç ¥ 2
(áâப¨ 10{11, à¨á. 14.7¡) ®¡ ॡñ­ª ¢¥à設ë w çñà­ë¥. ’ ª ª ª
¢¥à設 w ⮦¥ çñà­ ï, ¬ë ¬®¦¥¬ á­ïâì çñà­ãî ®ªà áªã á x («¨è­îî) ¨ á w (ᤥ« ¢ ¥ñ ªà á­®©), ¨ ¤®¡ ¢¨âì ç¥à­®âã த¨â¥«î, p[x].
®á«¥ í⮣® ¯à®¤®«¦¨¬ ¢ë¯®«­¥­¨¥ 横« . ‡ ¬¥â¨¬, çâ® ¥á«¨ ¬ë
¯®¯ «¨ ¢ á«ãç © 2 ¨§ á«ãç ï 1, â® ¢¥à設 p[x] | ªà á­ ï, ¯®í⮬ã
横« áà §ã ¦¥ § ¢¥àè¨âáï (¤®¡ ¢¨¢ çñà­®£® ª ªà á­®© ¢¥à設¥, ¬ë
ªà ᨬ ¥ñ ¢ ®¡ëç­ë© çñà­ë© 梥â).
“¤ «¥­¨¥
275
‚ á«ãç ¥ 3 (áâப¨ 13{16, à¨á. 14.7¢) ¢¥à設 w çñà­ ï, ¥ñ «¥¢ë© ॡñ­®ª | ªà á­ë©, ¯à ¢ë© | çñà­ë©. Œë ¬®¦¥¬ ¯®¬¥­ïâì
梥â w ¨ ¥ñ «¥¢®£® ॡñ­ª ¨ ¯®â®¬ ¯à¨¬¥­¨âì ¯à ¢®¥ ¢à 饭¨¥
â ª, çâ® RB-᢮©á⢠¡ã¤ãâ á®åà ­¥­ë. ®¢ë¬ ¡à ⮬ ¢¥à設ë x
⥯¥àì ¡ã¤¥â çñà­ ï ¢¥à設 á ªà á­ë¬ ¯à ¢ë¬ ॡñ­ª®¬, ¨ ¬ë
ᢥ«¨ á«ãç © 3 ª á«ãç î 4.
 ª®­¥æ, ¢ á«ãç ¥ 4 (áâப¨ 17{21, à¨á. 17.4£) ¢¥à設 w (¡à â
¢¥à設ë x) ï¥âáï çñà­®©, ¥ñ ¯à ¢ë© ॡñ­®ª | ªà á­ë©. Œ¥­ïï ­¥ª®â®àë¥ æ¢¥â ¨ ¯à®¨§¢®¤ï «¥¢®¥ ¢à 饭¨¥ ¢®ªà㣠p[x], ¬ë
¬®¦¥¬ 㤠«¨âì ¨§«¨è­îî ç¥à­®âã ã x, ­¥ ­ àãè ï RB-᢮©áâ¢.
à¨á¢ ¨¢ ­¨¥ x root[T ] ¢ë¢®¤¨â ­ á ¨§ 横« .
Š ª®¢® ¢à¥¬ï ¢ë¯®«­¥­¨ï ¯à®æ¥¤ãàë RB-Delete? ‚ëá®â ªà á­®-çñà­®£® ¤¥à¥¢ á n ¢¥à設 ¬¨ ¥áâì O(lg n), ¯®í⮬㠢६ï
¨á¯®«­¥­¨ï RB-Delete ¡¥§ ãçñâ RB-Delete-Fixup ¥áâì O(lg n).
‘ª®«ìª® ¢à¥¬¥­¨ âॡã¥â 横« ¢ ¯à®æ¥¤ãॠRB-Delete-Fixup?
Š ª ⮫쪮 ®¡­ à㦨¢ ¥âáï á«ãç © 1, 3 ¨«¨ 4, ¬ë ¢ë室¨¬ ¨§
横« (¯à¨ í⮬ ¢ë¯®«­ï¥âáï O(1) ®¯¥à 権 ¨ á ¬®¥ ¡®«ì襥 âà¨
¢à 饭¨ï). „® í⮣® ¢®§¬®¦­® ­¥áª®«ìª® ¯®¢â®à¥­¨© á«ãç ï 2, ­®
¯à¨ ª ¦¤®¬ ¯®¢â®à¥­¨¨ 㪠§ ⥫ì x ¯¥à¥¬¥é ¥âáï ¢¢¥àå ¯® ¤¥à¥¢ã
¨ ­¨ª ª¨¥ ¢à 饭¨ï ­¥ ¯à®¨§¢®¤ïâáï, â ª çâ® ç¨á«® â ª¨å è £®¢
¥áâì O(lg n). ’ ª¨¬ ®¡à §®¬, ¯à®æ¥¤ãà RB-Delete-Fixup âॡã¥â
¢à¥¬¥­¨ O(lg n), ¨ ®¡é¥¥ ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë RB-Delete
â ª¦¥ ¥áâì O(lg n) (®â¬¥â¨¬ ¥éñ à §, çâ® ¯à¨ í⮬ ¯à®¨§¢®¤¨âáï
­¥ ¡®«¥¥ âàñå ¢à 饭¨©).
“¯à ¦­¥­¨ï
“¡¥¤¨â¥áì, çâ® ¯®á«¥ ¢ë¯®«­¥­¨ï ¯à®æ¥¤ãàë RB-Delete
ª®à¥­ì ¤¥à¥¢ ®áâ ñâáï çñà­ë¬, ¥á«¨ ®­ â ª®¢ë¬ ¡ë«.
14.4-2 ‚ ã¯à. 14.3-3 ¯®áâ஥­® ªà á­®-çñà­®¥ ¤¥à¥¢®, ª®â®à®¥ ¯®«ãç ¥âáï ¤®¡ ¢«¥­¨¥¬ ª«î祩 41; 38; 31; 12; 19; 8 ¢ ¯ãá⮥ ¤¥à¥¢®.
 à¨áã©â¥ ¤¥à¥¢ìï, ª®â®àë¥ ¯®«ãç âáï ¨§ ­¥£® ¯à¨ ¯®á«¥¤®¢ ⥫쭮¬ 㤠«¥­¨¨ ª«î祩 8; 12; 19; 31; 38; 41.
14.4-3 ‚ ª ª¨å áâப å ¯à®æ¥¤ãàë RB-Delete-Fixup ¬ë ¬®¦¥¬
ç¨â âì ¨«¨ ¨§¬¥­ïâì 䨪⨢­ë© í«¥¬¥­â nil[T ]?
14.4-4 “¯à®áâ¨â¥ ¯à®æ¥¤ãàã Left-Rotate, ¨á¯®«ì§ãï 䨪⨢­ë© í«¥¬¥­â ¤«ï ¯à¥¤áâ ¢«¥­¨ï nil ¨ ¥éñ ®¤¨­ 䨪⨢­ë© í«¥¬¥­â,
ᮤ¥à¦ 騩 㪠§ â¥«ì ­ ª®à¥­ì ¤¥à¥¢ .
14.4-5 „«ï ª ¦¤®£® ¨§ á«ãç ¥¢ ­ à¨áã­ª¥ 14.7 ¯®¤áç¨â ©â¥ ª®«¨ç¥á⢮ çñà­ëå ¢¥à設 ®â ª®à­ï ¯®¤¤¥à¥¢ ­ à¨áã­ª¥ ¤® ª ¦¤®£®
¨§ ¯®¤¤¥à¥¢ì¥¢ ; ; : : :; ¨ ã¡¥¤¨â¥áì, çâ® ®­® ­¥ ¬¥­ï¥âáï ¯à¨ ¯à¥®¡à §®¢ ­¨ïå. ˆá¯®«ì§ã©â¥ ®¡®§­ 祭¨¥ count(c) ¤«ï "á⥯¥­¨ ç¥à14.4-1
276
ƒ« ¢ 14 Šà á­®-çñà­ë¥ ¤¥à¥¢ìï
—¥âëॠá«ãç ï, ¢®§¬®¦­ëå ¢ ®á­®¢­®¬ 横«¥ ¯à®æ¥¤ãàë RB—ñà­ë¥ ¢¥àè¨­ë ¯®ª § ­ë ª ª çñà­ë¥, ªà á­ë¥ ¯®ª § ­ë
âñ¬­®-á¥à묨. ‘¢¥â«®-á¥àë¥ ¢¥àè¨­ë ­ 0 à¨áã­ª¥ ¬®£ãâ ¡ëâì ¨ ªà á­ë¬¨, ¨
çñà­ë¬¨. (ˆå 梥⠮¡®§­ ç îâáï c ¨ c .) ãª¢ë ; ;: : : ; ®¡®§­ ç î⠯ந§¢®«ì­ë¥ ¯®¤¤¥à¥¢ìï. ‚ ª ¦¤®¬ á«ãç ¥ ª®­ä¨£ãà æ¨ï á«¥¢ ¯à¥®¡à §ã¥âáï ¢
ª®­ä¨£ãà æ¨î á¯à ¢ ¯¥à¥ªà 訢 ­¨¥¬ ¢¥à設 ¨/¨«¨ ¢à 饭¨ï¬¨. ‚¥à設 ,
­ ª®â®àãî 㪠§ë¢ ¥â x, ¤¢ ¦¤ë çñà­ ï. …¤¨­á⢥­­ë© á«ãç ©, ª®£¤ ¢ë¯®«­¥­¨¥ 横« ¯à®¤®«¦ ¥âáï | á«ãç © 2. ( ) ‘«ãç © 1 ᢮¤¨âáï ª á«ãç î 2, 3
¨«¨ 4, ¥á«¨ ¯®¬¥­ïâì ¬¥áâ ¬¨ 梥⠢¥à設 B ¨ D ¨ ¯à®¨§¢¥á⨠«¥¢®¥ ¢à 饭¨¥. (¡) ‚ á«ãç ¥ 2 "¨§¡ë⮪ ç¥à­®âë" ¢ ¢¥à設¥ x ¯¥à¥¬¥é ¥âáï ¢¢¥àå ¯®
¤¥à¥¢ã, ª®£¤ ¬ë ¤¥« ¥¬ D ªà á­®© ¨ ãáâ ­ ¢«¨¢ ¥¬ 㪠§ ⥫ì x ¢ B . …᫨ ¬ë
¯®¯ «¨ ¢ á«ãç © 2 ¨§ á«ãç ï 1, ⮠横« § ¢¥àè ¥âáï, â ª ª ª ¢¥à設 B ¡ë« ªà á­®©. (¢) ‘«ãç © 3 ᢮¤¨âáï ª á«ãç î 4, ¥á«¨ ¯®¬¥­ïâì ¬¥áâ ¬¨ 梥⠢¥à設 C ¨ D ¨ ¢ë¯®«­¨âì ¯à ¢®¥ ¢à 饭¨¥. (£) ‚ á«ãç ¥ 4 ¬®¦­® ¯¥à¥ªà á¨âì
­¥ª®â®àë¥ ¢¥àè¨­ë ¨ ¢ë¯®«­¨âì «¥¢®¥ ¢à 饭¨¥ (­¥ ­ àã訢 RB-᢮©á⢠)
â ª, çâ® «¨è­¨© çñà­ë© 梥⠨á祧 ¥â, ¨ 横« ¬®¦­® § ¢¥àè¨âì.
¨áã­®ª
14.7
Delete-Fixup.
‡ ¤ ç¨ ª £« ¢¥ 14
277
­®âë" ¢¥à設ë 梥â c, áç¨â ï count(c) à ¢­ë¬ 0 ¤«ï ªà á­®©
¢¥àè¨­ë ¨ 1 ¤«ï çñà­®©.
14.4-6 à¥¤¯®«®¦¨¬, çâ® ¢¥à設 ¢áâ ¢«¥­ ¢ ªà á­®-çñà­®¥ ¤¥à¥¢®, ¯®â®¬ áà §ã ¦¥ 㤠«¥­ . ã¤¥â «¨ ¯®«ã稢襥áï ¤¥à¥¢®
ᮢ¯ ¤ âì á ¨á室­ë¬? ®ç¥¬ã?
‡ ¤ ç¨
14-1 „¨­ ¬¨ç¥áª¨¥ ¬­®¦¥á⢠á á®åà ­¥­¨¥¬ ¯à¥¤ë¤ãé¨å ¢¥àᨩ
ˆ­®£¤ ¯®«¥§­® á®åà ­ïâì ¯à¥¤ë¤ã騥 ¢¥àᨨ ¬¥­ïî饣®áï ¬­®¦¥á⢠. (’ ª¨¥ áâàãªâãàë ¤ ­­ëå ­ §ë¢ îâáï ¯®- ­£«¨©áª¨
persistent data structures.) Œ®¦­®, ª®­¥ç­®, ª®¯¨à®¢ âì ¬­®¦¥á⢮
ª ¦¤ë© à §, ª®£¤ ®­® ¨§¬¥­ï¥âáï. ® â ª®© ¯®¤å®¤ âॡã¥â ¬­®£®
¯ ¬ï⨠¨ ¢à¥¬¥­¨ | ¨ ¥áâì ᯮᮡë, ¯®§¢®«ïî騥 ᤥ« âì íâ® ¡®«¥¥ íä䥪⨢­®.
Œë å®â¨¬ ¯à¥¤ãᬮâà¥âì ¢®§¬®¦­®áâì åà ­¥­¨ï ¯à¥¤ë¤ãé¨å
¢¥àᨩ ¤«ï ¬­®¦¥á⢠S á ®¯¥à æ¨ï¬¨ Insert, Delete ¨ Search.
Œë áç¨â ¥¬, çâ® ¬­®¦¥á⢮ S ॠ«¨§®¢ ­® á ¯®¬®éìî ¤¢®¨ç­ëå
¤¥à¥¢ì¥¢ ¯®¨áª , ª ª ¯®ª § ­® ­ à¨á. 14.8 . „«ï ª ¦¤®© ¢¥àᨨ
¬­®¦¥á⢠¬ë åà ­¨¬ ᢮© ®â¤¥«ì­ë© ª®à¥­ì. —â®¡ë ¤®¡ ¢¨âì
ª«îç 5, ¬ë ᮧ¤ ñ¬ ­®¢ãî ¢¥à設ã á í⨬ ª«î箬. â ¢¥à設 áâ ­®¢¨âáï «¥¢ë¬ ॡñ­ª®¬ ­®¢®© ¢¥à設ë á ª«î箬 7, â ª ª ª
áãé¥áâ¢ãîéãî ¢¥à設㠬¥­ïâì ­¥«ì§ï. ®¤®¡­ë¬ ®¡à §®¬ ­®¢ ï
¢¥à設 á ª«î箬 7 áâ ­®¢¨âáï «¥¢ë¬ ॡñ­ª®¬ ­®¢®© ¢¥à設ë
á ª«î箬 8, ¯à ¢ë© ॡñ­®ª ª®â®à®© | áãé¥áâ¢ãîé ï ¢¥à設 á
ª«î箬 10. ‚ á¢®î ®ç¥à¥¤ì, ­®¢ ï ¢¥à設 á ª«î箬 8 áâ ­®¢¨âáï
¯à ¢ë¬ ॡñ­ª®¬ ­®¢®£® ª®à­ï r0 á ª«î箬 4, «¥¢ë© ॡñ­®ª ª®â®à®£® | áãé¥áâ¢ãîé ï ¢¥à設 á ª«î箬 3. ’ ª¨¬ ®¡à §®¬, ¬ë
ª®¯¨à㥬 «¨èì ç áâì ¤¥à¥¢ , ¢ ®áâ «ì­®¬ ¨á¯®«ì§ã¥¬ áâ ஥, ª ª
íâ® ¯®ª § ­® ­ à¨á. 14.8¡.
Œë ¯à¥¤¯®« £ ¥¬, çâ® ¢¥àè¨­ë ¤¥à¥¢ ᮤ¥à¦ â ¯®«ï key, left ¨
right, ­® ­¥ ᮤ¥à¦ â ¯®«ï p, 㪠§ë¢ î饣® ­ த¨â¥«ï. (‘¬. â ª¦¥
ã¯à. 14.3-6.)
®ª ¦¨â¥, ª ª¨¥ ¢¥à設ë åà ­¨¬®£® â ª¨¬ ®¡à §®¬ ¤¥à¥¢ ¤®«¦­ë ¡ëâì ¨§¬¥­¥­ë (ᮧ¤ ­ë) ¢ ®¡é¥¬ á«ãç ¥ ¯à¨ ¤®¡ ¢«¥­¨¨ ¨«¨ 㤠«¥­¨¨ í«¥¬¥­â .
¡  ¯¨è¨â¥ ¯à®æ¥¤ãàã Persistent-Tree-Insert, ª®â®à ï ¤®¡ ¢«ï¥â ª«îç k ¢ ¤¥à¥¢® T .
¢ …᫨ ¢ëá®â ¤¥à¥¢ à ¢­ h, ᪮«ìª® ¢à¥¬¥­¨ ¨ ¯ ¬ï⨠âॡã¥â
­ ¯¨á ­­ ï ¢ ¬¨ ¯à®æ¥¤ãà ? (Š®«¨ç¥á⢮ ¯ ¬ï⨠¬®¦­® ¨§¬¥àïâì
ª®«¨ç¥á⢮¬ ­®¢ëå ¢¥à設.)
£ ãáâì ¬ë ¨á¯®«ì§ã¥¬ ¨ ¯®«ï p ¢ ¢¥à設 å ¤¥à¥¢ . ‚ í⮬ á«ãç ¥ ¯à®æ¥¤ãà Persistent-Tree-Insert ¤®«¦­ ¡ã¤¥â ¢ë¯®«­¨âì
278
ƒ« ¢ 14 Šà á­®-çñà­ë¥ ¤¥à¥¢ìï
¨áã­®ª 14.8 ( ) „¢®¨ç­®¥ ¤¥à¥¢® ¯®¨áª á ª«îç ¬¨ 2; 3; 4; 7; 8; 10. (¡) „¥à¥¢®
á á®åà ­¥­¨¥¬ ¯à¥¤ë¤ãé¨å ¢¥àᨩ ¯®á«¥ ¤®¡ ¢«¥­¨ï ª«îç 5. ’¥ªãé ï ¢¥àá¨ï á®á⮨⠨§ ¢¥à設, ¤®áâ㯭ëå ¨§ ⥪ã饣® ª®à­ï r0 , ¯à¥¤ë¤ãé ï ¢¥àá¨ï
ᮤ¥à¦¨â ¢¥à設ë, ¤®áâã¯­ë¥ ¨§ áâ ண® ª®à­ï r. ’ñ¬­®-á¥àë¥ ¢¥àè¨­ë ¤®¡ ¢«¥­ë ¯à¨ ¤®¡ ¢«¥­¨¨ ª«îç 5.
¤®¯®«­¨â¥«ì­ë¥ ¤¥©á⢨ï. ®ª ¦¨â¥, çâ® ¢ í⮬ á«ãç ¥ ¢à¥¬ï à ¡®âë ¨ ®¡êñ¬ ­¥®¡å®¤¨¬®© ¯ ¬ï⨠¡ã¤ãâ (n), £¤¥ n | ª®«¨ç¥á⢮
¢¥à設 ¢ ¤¥à¥¢¥.
¤ ®ª ¦¨â¥, ª ª ¬®¦­® ¨á¯®«ì§®¢ âì ªà á­®-çñà­ë¥ ¤¥à¥¢ìï,
çâ®¡ë £ à ­â¨à®¢ âì, çâ® ¤®¡ ¢«¥­¨¥ ¨ 㤠«¥­¨¥ í«¥¬¥­â ¤«ï
¬­®¦¥á⢠á åà ­¥­¨¥¬ ¯à¥¤ë¤ãé¨å ¢¥àᨩ ¡ã¤ãâ âॡ®¢ âì
¢à¥¬¥­¨ O(lg n) ¢ åã¤è¥¬ á«ãç ¥.
14-2 Ž¯¥à æ¨ï ®¡ê¥¤¨­¥­¨ï ªà á­®-çñà­ëå ¤¥à¥¢ì¥¢
Ž¯¥à æ¨ï ®¡ê¥¤¨­¥­¨ï (join) ¯à¨¬¥­ï¥âáï ª ¤¢ã¬ ¤¨­ ¬¨ç¥áª¨¬
¬­®¦¥á⢠¬ S1 ¨ S2 ¨ í«¥¬¥­âã x, ¯à¨çñ¬ § à ­¥¥ ¨§¢¥áâ­®, çâ®
key[x1] 6 key[x] 6 key[x2 ] ¤«ï «î¡ëå x1 2 S1 ¨ x2 2 S2 . …ñ १ã«ìâ ⮬ ï¥âáï ¬­®¦¥á⢮ S = S1 [ fxg [ S2. ‚ í⮩ § ¤ ç¥ ¬ë ¯®ª ¦¥¬, ª ª ॠ«¨§®¢ âì ®¯¥à æ¨î ®¡ê¥¤¨­¥­¨ï ¤«ï ªà á­®-çñà­ëå
¤¥à¥¢ì¥¢.
Œë ¡ã¤¥¬ åà ­¨âì çñà­ãî ¢ëá®âã ªà á­®-çñà­®£® ¤¥à¥¢ T ¢ á¯¥æ¨ «ì­®© ¯¥à¥¬¥­­®© bh[T ]. “¡¥¤¨â¥áì, çâ® íâ® §­ 祭¨¥ ¬®¦­®
¯®¤¤¥à¦¨¢ âì, ­¥ à §¬¥é ï ­¨ª ª®© ¤®¯®«­¨â¥«ì­®© ¨­ä®à¬ 樨
¢ ¢¥à設 å ¤¥à¥¢ ¨ ­¥ ãåã¤è ï ᨬ¯â®â¨ªã ¢à¥¬¥­¨ à ¡®âë
¯à®æ¥¤ãà RB-Insert ¨ RB-Delete. ®ª ¦¨â¥, çâ®, á¯ã᪠ïáì
¯® ¤¥à¥¢ã, ¬®¦­® ¢ëç¨á«¨âì çñà­ãî ¢ëá®âã ª ¦¤®© ¢¥àè¨­ë § ¢à¥¬ï O(1) ¢ à áçñ⥠­ ª ¦¤ãî ¯à®á¬®â७­ãî ¢¥à設ã.
Œë å®â¨¬ ॠ«¨§®¢ âì ®¯¥à æ¨î RB-Join(T1; x; T2), ª®â®à ï ¨§
¤¢ãå ¤¥à¥¢ì¥¢ T1 ¨ T2 ä®à¬¨àã¥â ­®¢®¥ ªà á­®-çñà­®¥ ¤¥à¥¢® T =
T1 [ fxg [ T2 (áâ àë¥ ¤¥à¥¢ìï ¯à¨ í⮬ à §àãè îâáï). ãáâì n |
®¡é¥¥ ª®«¨ç¥á⢮ ¢¥à設 ¢ T1 ¨ T2.
‡ ¬¥ç ­¨ï ª £« ¢¥ 14
279
¡ ‘ç¨â ï, çâ® bh[T1] > bh[T2], ®¯¨è¨â¥ «£®à¨â¬ á® ¢à¥¬¥­¥¬ à ¡®âë O(lg n), ­ 室ï騩 á।¨ çñà­ëå ¢¥à設 ¤¥à¥¢ T1, ¨¬¥îé¨å çñà­ãî ¢ëá®âã bh[T2], ¢¥à設ã y á ­ ¨¡®«ì訬 ª«î箬.
¢ ãáâì Ty | ¯®¤¤¥à¥¢® á ª®à­¥¬ y . ®ª ¦¨â¥, ª ª § ¬¥­¨âì Ty ­ Ty [ fxg [ T2 § ¢à¥¬ï O(1) ¡¥§ ¯®â¥à¨ ᢮©á⢠㯮à冷祭­®áâ¨.
£ ‚ ª ª®© 梥⠭ ¤® ¯®ªà á¨âì x, ç⮡ë á®åà ­¨âì RB-᢮©á⢠1,
2 ¨ 4? Ž¡êïá­¨â¥, ª ª ¢®ááâ ­®¢¨âì ᢮©á⢮ 3 § ¢à¥¬ï O(lg n).
¤ “¡¥¤¨â¥áì, çâ® ¢à¥¬ï ¢ë¯®«­¥­¨ï ¯à®æ¥¤ãàë RB-Join ¥áâì
O(lg n).
‡ ¬¥ç ­¨ï
ˆ¤¥ï ¡ « ­á¨à®¢ª¨ ¤¢®¨ç­ëå ¤¥à¥¢ì¥¢ ¯®¨áª ¯à¨­ ¤«¥¦¨â
ƒ. Œ. €¤¥«ìá®­ã-‚¥«ì᪮¬ã ¨ …. Œ. ‹ ­¤¨áã [2], ¯à¥¤«®¦¨¢è¨¬ ¢
1962 £®¤ã ª« áá á¡ « ­á¨à®¢ ­­ëå ¤¥à¥¢ì¥¢, ­ §ë¢ ¥¬ëå ⥯¥àì
€‚‹-¤¥à¥¢ìﬨ.  « ­á ¯®¤¤¥à¦¨¢ ¥âáï á ¯®¬®éìî ¢à 饭¨©; ¤«ï
¥£® ¢®ááâ ­®¢«¥­¨ï ¯®á«¥ ¤®¡ ¢«¥­¨ï ¨«¨ 㤠«¥­¨ï ¢¥àè¨­ë ¬®¦¥â
¯®âॡ®¢ âìáï (lg n) ¢à 饭¨© (¤«ï ¤¥à¥¢ á n ¢¥à設 ¬¨). …éñ
®¤¨­ ª« áá ¤¥à¥¢ì¥¢ ¯®¨áª , ­ §ë¢ ¥¬ëå 2-3-¤¥à¥¢ìﬨ, ¡ë« ¯à¥¤«®¦¥­ •®¯ªà®ä⮬ (J. E. Hopcroft, ­¥ ®¯ã¡«¨ª®¢ ­®) ¢ 1970 £®¤ã.
‡¤¥áì ¡ « ­á ¯®¤¤¥à¦¨¢ ¥âáï § áçñâ ¨§¬¥­¥­¨ï á⥯¥­¥© ¢¥à設.
Ž¡®¡é¥­¨¥ 2-3-¤¥à¥¢ì¥¢, ­ §ë¢ ¥¬®¥ -¤¥à¥¢ìﬨ, ¯à¥¤«®¦¨«¨
 ©¥à ¨ Œ ªŠà¥©â [18]; -¤¥à¥¢ìï ®¡á㦤 îâáï ¢ £« ¢¥ 19.
Šà á­®-çñà­ë¥ ¤¥à¥¢ìï ¯à¥¤«®¦¨«  ©¥à [17], ­ §¢ ¢ ¨å "ᨬ¬¥âà¨ç­ë¬¨ ¤¢®¨ç­ë¬¨ -¤¥à¥¢ìﬨ". ƒ¨¡ á ¨ ‘¥¤¦¢¨ª [93] ¯®¤à®¡­® ¨§ã稫¨ ¨å ᢮©á⢠¨ ¯à¥¤«®¦¨«¨ ¨á¯®«ì§®¢ âì ¤«ï ­ £«ï¤­®á⨠ªà á­ë© ¨ çñà­ë© 梥â .
ˆ§ ¬­®£¨å ¤àã£¨å ¢ ਠ権 ­ ⥬ã á¡ « ­á¨à®¢ ­­ëå ¤¥à¥¢ì¥¢
­ ¨¡®«¥¥ «î¡®¯ëâ­ë, ¢¨¤¨¬®, "à áè¨àïî騥áï ¤¥à¥¢ìï" (splay
trees), ª®â®àë¥ ¯à¨¤ã¬ «¨ ‘«¥ â®à ¨ ’ àìï­ [177]. â¨ ¤¥à¥¢ìï
ïîâáï " á ¬®à¥£ã«¨àãî騬¨áï". (•®à®è¥¥ ®¯¨á ­¨¥ à áè¨àïîé¨åáï ¤¥à¥¢ì¥¢ ¤ « ’ àìï­ [188].)  áè¨àïî騥áï ¤¥à¥¢ìï ¯®¤¤¥à¦¨¢ îâ ¡ « ­á ¡¥§ ¨á¯®«ì§®¢ ­¨ï ¤®¯®«­¨â¥«ì­ëå ¯®«¥© (⨯ 梥â ). ‚¬¥áâ® í⮣® "à áè¨àïî騥 ®¯¥à 樨" (splay operations),
¢ª«îç î騥 ¢à 饭¨ï, ¢ë¯®«­ïîâáï ¯à¨ ª ¦¤®¬ ®¡à 饭¨¨ ª
¤¥à¥¢ã. “çñâ­ ï á⮨¬®áâì (amortized cost, £«. 18) ¢ à áçñ⥠­ ®¤­ã ®¯¥à æ¨î á ¤¥à¥¢®¬ ¤«ï à áè¨àïîé¨åáï ¤¥à¥¢ì¥¢ á®áâ ¢«ï¥â
O(lg n).
15
®¯®«­¥­¨¥ áâàãªâãà ¤ ­­ëå
„ «¥ª® ­¥ ¢® ¢á¥å á¨âã æ¨ïå ¬®¦­® ®¡®©â¨áì «¨èì ª« áá¨ç¥áª¨¬¨
áâàãªâãà ¬¨ ¤ ­­ëå (¤¢®¨ç­ë¬¨ ¤¥à¥¢ìﬨ ¯®¨áª , ¤¢ãáâ®à®­­¥
á¢ï§ ­­ë¬¨ ᯨ᪠¬¨, å¥è-â ¡«¨æ ¬¨ ¨ â. ¯.) Ž¤­ ª® ।ª® âॡã¥âáï ¯à¨¤ã¬ âì çâ®-⮠ᮢᥬ ­®¢®¥: ¢ ¡®«ì設á⢥ á«ãç ¥¢ ¤®áâ â®ç­® à áè¨à¨âì ª ªãî-«¨¡® ¨§ ª« áá¨ç¥áª¨å áâàãªâãà ¤ ­­ëå,
åà ­ï ¢¬¥áâ¥ á ¥ñ ®¡ê¥ªâ ¬¨ ¤®¯®«­¨â¥«ì­ãî ¨­ä®à¬ æ¨î. ä䥪⨢­®¥ ®¡­®¢«¥­¨¥ í⮩ ¨­ä®à¬ 樨 ¯à¨ ¢ë¯®«­¥­¨¨ ®¯¥à 権
¨­®£¤ âॡã¥â ­¥¬ «®© ¨§®¡à¥â ⥫쭮áâ¨.
‚ ª ç¥á⢥ ¯à¨¬¥à ¢ í⮬ à §¤¥«¥ à áᬠâਢ îâáï ªà á­®çñà­ë¥ ¤¥à¥¢ìï. •à ­ï ¢ ¢¥à設 å ¤®¯®«­¨â¥«ì­ãî ¨­ä®à¬ æ¨î,
¬ë ᬮ¦¥¬ ¡ëáâà® ­ 室¨âì i-© ¯® ¯®à浪ã í«¥¬¥­â, â ª¦¥ ¢ë¯®«­ïâì ®¡à â­®¥ ¤¥©á⢨¥: ­ 室¨âì ¯®à浪®¢ë© ­®¬¥à ¤ ­­®£®
í«¥¬¥­â ¬­®¦¥á⢠(à §¤. 15.1). ‚ à §¤¥«¥ 15.2 ®¡á㦤 ¥âáï ®¡é ï á奬 à ¡®âë á ¤®¯®«­¨â¥«ì­®© ¨­ä®à¬ 樥© ¨ ¤®ª §ë¢ ¥âáï
⥮६ , ª®â®à ï ®¡«¥£ç ¥â ¯®¯®«­¥­¨¥ ¤«ï ªà á­®-çñà­ëå ¤¥à¥¢ì¥¢. ‚ à §¤¥«¥ 15.3 íâ ¦¥ ⥮६ ¨á¯®«ì§ã¥âáï ¤«ï ¯®áâ஥­¨ï
áâàãªâãàë ¤ ­­ëå, åà ­ï饩 ¤¨­ ¬¨ç¥áª®¥ ¬­®¦¥á⢮ ¯à®¬¥¦ã⪮¢ (­ ç¨á«®¢®© ¯àאַ©) ¨ ¯®§¢®«ïî饩 ¡ëáâà® ­ 室¨âì í«¥¬¥­â
¬­®¦¥á⢠, ¯¥à¥ªàë¢ î騩áï á § ¤ ­­ë¬ ¯à®¬¥¦ã⪮¬.
15.1 „¨­ ¬¨ç¥áª¨¥ ¯®à浪®¢ë¥ áâ â¨á⨪¨
®à浪®¢ë¥ áâ â¨á⨪¨ 㦥 ®¡á㦤 «¨áì ¢ £« ¢¥ 10, £¤¥ ¬ë ¨áª «¨ i-© ¯® ¯®à浪ã í«¥¬¥­â ¬­®¦¥á⢠¨§ n í«¥¬¥­â®¢, çâ® âॡ®¢ «® O(n) ®¯¥à 権 (¥á«¨ ¬­®¦¥á⢮ ¯à¥¤¢ à¨â¥«ì­® ­¥ 㯮à冷祭®). ‚ ¤ ­­®¬ à §¤¥«¥ ¬ë ¯®ª ¦¥¬, ª ª á ¯®¬®éìî ¯®¯®«­¥­­ëå
ªà á­®-çñà­ëå ¤¥à¥¢ì¥¢ ­ ©â¨ i-© í«¥¬¥­â § O(log n) ®¯¥à 権.
Šà®¬¥ ⮣®, § â® ¦¥ ¢à¥¬ï ¬®¦­® ¡ã¤¥â ­ ©â¨ ¯®à浪®¢ë© ­®¬¥à
§ ¤ ­­®£® í«¥¬¥­â .
®¤å®¤ïé ï áâàãªâãà ¤ ­­ëå ¯®ª § ­ ­ à¨á. 15.1. ®à浪®¢ë¬
¤¥à¥¢®¬ (order-statistic tree) ¬ë ­ §ë¢ ¥¬ ªà á­®-çñà­®¥ ¤¥à¥¢® T ,
ª ¦¤ ï ¢¥à設 x ª®â®à®£®, ¯®¬¨¬® ®¡ëç­ëå ¯®«¥© key[x], color[x],
p[x], left[x] ¨ right[x] ¨¬¥¥â ¯®«¥ size[x]. ‚ ­ñ¬ åà ­¨âáï à §¬¥à (ª®-
„¨­ ¬¨ç¥áª¨¥ ¯®à浪®¢ë¥ áâ â¨á⨪¨
281
«¨ç¥á⢮ ¢¥à設, ­¥ áç¨â ï nil-«¨áâ쥢) ¯®¤¤¥à¥¢ á ª®à­¥¬ ¢ x
(áç¨â ï ¨ á ¬ã ¢¥à設ã x). ‘ç¨â ï, çâ® ¢ ¯®«¥ size[nil] § ¯¨á ­ 0,
¬®¦­® ­ ¯¨á âì â ª®¥ ᮮ⭮襭¨¥:
size[x] = size[left[x]] + size[right[x]] + 1:
(à¨ ॠ«¨§ 樨 ¬®¦­® ¨á¯®«ì§®¢ âì 䨪⨢­ë© í«¥¬¥­â nil[T ],
ª ª ¢ à §¤¥«¥ 14.4, ¬®¦­® ª ¦¤ë© à § ¯à®¢¥àïâì, ­¥ à ¢¥­ «¨ 㪠§ â¥«ì §­ 祭¨î nil, ¨ ¯®¤áâ ¢«ïâì 0 ¢¬¥áâ® §­ 祭¨ï ¯®«ï size.)
®¨áª i-£® ¯® ¢¥«¨ç¨­¥ í«¥¬¥­â Œë ¤®«¦­ë 㬥âì ®¡­®¢«ïâì ¤®¯®«­¨â¥«ì­ãî ¨­ä®à¬ æ¨î
(¯®«ï size ) ¯à¨ ¤®¡ ¢«¥­¨¨ ¨ 㤠«¥­¨¨ í«¥¬¥­â®¢. ® á­ ç « ®¡êïá­¨¬, ª ª ¥î ¯®«ì§®¢ âìáï.  ç­ñ¬ á ¯®¨áª i-£® í«¥¬¥­â .
¥ªãàᨢ­ ï ¯à®æ¥¤ãà OS-Select(x; i) ¢®§¢à é ¥â 㪠§ ⥫ì
­ i-© í«¥¬¥­â ¯®¤¤¥à¥¢ á ª®à­¥¬ x.  ©â¨ i-© í«¥¬¥­â ¢® ¢áñ¬
¤¥à¥¢¥ T ¬®¦­® á ¯®¬®éìî ¢ë§®¢ OS-Select(root[T ]; i).
OS-Select(x; i)
1 r size[left[x]]+1
2 if i = r
3 then return x
4 elseif i < r
5 then return OS-Select(left[x]; i)
6 else return OS-Select(right[x]; i ; r)
â®â «£®à¨â¬ ¨á¯®«ì§ã¥â âã ¦¥ ¨¤¥î, çâ® ¨ «£®à¨â¬ë ¯®¨áª £« ¢ë 10. ‚ ¯®¤¤¥à¥¢¥ á ª®à­¥¬ x á­ ç « ¨¤ãâ size[left[x]] ¢¥à設
«¥¢®£® ¯®¤¤¥à¥¢ , ¬¥­ìè¨å x, § ⥬ á ¬ ¢¥à設 x (ª®â®à ï ï¥âáï (size[left[x]] + 1)-© ¯® áçñâã), ¨ § ⥬ ¢¥àè¨­ë ¯à ¢®£® ¯®¤¤¥à¥¢ x.
à®æ¥¤ãà ­ 稭 ¥â á ¢ëç¨á«¥­¨ï ¯®à浪®¢®£® ­®¬¥à r ¢¥à設ë x (áâப 1). …᫨ i = r (áâப 2), â® x ¨ ¥áâì i-© í«¥¬¥­â,
¨ ¬ë ¢®§¢à é ¥¬ ¥£® (áâப 3). …᫨ i < r, â® ¨áª®¬ë© í«¥¬¥­â
­ 室¨âáï ¢ «¥¢®¬ ¯®¤¤¥à¥¢¥ ¢¥à設ë x, ¨ ¯à®£à ¬¬ ४ãàᨢ­®
¢ë§ë¢ ¥â ᥡï (áâப 5). …᫨ ¦¥ i > r, â® ¨áª®¬ë© í«¥¬¥­â ­ 室¨âáï ¢ ¯à ¢®¬ ¯®¤¤¥à¥¢¥ ¢¥à設ë x, ­® ¥£® ¯®à浪®¢ë© ­®¬¥à
¢­ãâਠí⮣® ¯®¤¤¥à¥¢ ¡ã¤¥â 㦥 ­¥ i, i ; r. â®â í«¥¬¥­â ¢ë¤ ñâáï ¯à¨ à¥ªãàᨢ­®¬ ¢ë§®¢¥ ¢ áâப¥ 6.
®ª ¦¥¬, ª ª ¯à®æ¥¤ãà OS-Select ¨é¥â 17-© í«¥¬¥­â ¤¥à¥¢ ,
¨§®¡à ¦ñ­­®£® ­ à¨á. 15.1. Œë ­ 稭 ¥¬ á ª®à­ï (á ª«î箬 26),
¯à¨ í⮬ i = 17.  §¬¥à «¥¢®£® ¯®¤¤¥à¥¢ ª®à­ï à ¢¥­ 12, ¯®í⮬ã
¯®à浪®¢ë© ­®¬¥à ª®à­ï à ¢¥­ 13, ¨ ¨áª®¬ ï ¢¥à設 ­ 室¨âáï ¢
¯à ¢®¬ ¯®¤¤¥à¥¢¥, ¨¬¥ï â ¬ ¯®à浪®¢ë© ­®¬¥à 17 ; 13 = 4. ˆé¥¬
4-© í«¥¬¥­â ¯®¤¤¥à¥¢ á ª®à­¥¬ 41. ‹¥¢®¥ ¯®¤¤¥à¥¢® ¢¥à設ë 41
¨¬¥¥â à §¬¥à 5, â. ¥. ¯®à浪®¢ë© ­®¬¥à ¢¥à設ë 41 à ¢¥­ 6. ˆé¥¬
282
ƒ« ¢ 15 ®¯®«­¥­¨¥ áâàãªâãà ¤ ­­ëå
¨áã­®ª 15.1 ®à浪®¢®¥ ¤¥à¥¢®. Šà á­ë¥ ¢¥àè¨­ë ¨§®¡à ¦¥­ë ª ª ᢥ⫮á¥àë¥, çñà­ë¥ | ª ª âñ¬­ë¥. ®¬¨¬® ®¡ëç­ëå ¯®«¥© ªà á­®-çñà­®£® ¤¥à¥¢ ,
ã ª ¦¤®© ¢¥à設ë x ¥áâì ¯®«¥ size[x], £¤¥ åà ­¨âáï à §¬¥à ¯®¤¤¥à¥¢ á ª®à­¥¬
¢ x.
4-© í«¥¬¥­â ¯®¤¤¥à¥¢ á ª®à­¥¬ 30. ‚ í⮬ ¤¥à¥¢¥ ª®à¥­ì ¨¬¥¥â ¯®à浪®¢ë© ­®¬¥à 2, ¯®í⮬㠨饬 (4 ; 2) = 2-© í«¥¬¥­â ¯à ¢®£®
¯®¤¤¥à¥¢ . ‚ í⮬ ¤¥à¥¢¥ ª®à¥­ì 38 ®ª § «áï ¢â®àë¬ ¯® ¯®à浪ã
(à §¬¥à «¥¢®£® ¯®¤¤¥à¥¢ à ¢¥­ 1), ¯®íâ®¬ã ¬ë ¢®§¢à é ¥¬ 㪠§ â¥«ì ­ ¢¥à設ã 38.
à¨ ª ¦¤®¬ ४ãàᨢ­®¬ ¢ë§®¢¥ ¯à®æ¥¤ãàë ¬ë á¯ã᪠¥¬áï ¯®
¤¥à¥¢ã ­ ®¤¨­ ã஢¥­ì, ¯®í⮬㠢६ï à ¡®âë ¢ åã¤è¥¬ á«ãç ¥
¯à®¯®à樮­ «ì­® ¢ëá®â¥. ‚ëá®â ªà á­®-çñà­®£® ¤¥à¥¢ á n ¢¥à設 ¬¨ à ¢­ O(log n), â ª çâ® ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë OS-Select
­ n-í«¥¬¥­â­®¬ ¬­®¦¥á⢥ ¥áâì O(log n).
Ž¯à¥¤¥«¥­¨¥ ¯®à浪®¢®£® ­®¬¥à í«¥¬¥­â à®æ¥¤ãà OS-Rank ¯®«ãç ¥â 㪠§ â¥«ì ­ í«¥¬¥­â x ¯®à浪®¢®£® ¤¥à¥¢ T ¨ ­ 室¨â ¯®à浪®¢ë© ­®¬¥à (rank) í«¥¬¥­â ¢ ¤¥à¥¢¥.
OS-Rank(T; x)
1 r size[left[x]] + 1
2 y x
3 while y =
6 root[T ]
4
do if y = right[p[y ]]
5
then r r + size[left[p[y ]]] + 1
6
y p[y ]
7 return r
®à浪®¢ë© ­®¬¥à í«¥¬¥­â x ­ ¥¤¨­¨æã ¡®«ìè¥ ª®«¨ç¥áâ¢ í«¥¬¥­â®¢, ¬¥­ìè¨å x. –¨ª« ¢ áâப å 3{6 ¨¬¥¥â â ª®© ¨­¢ ਠ­â:
r ¥áâì ¯®à浪®¢ë© ­®¬¥à ¢¥à設ë x ¢ ¯®¤¤¥à¥¢¥ á ª®à­¥¬ y. ¥à¥¤
¯¥à¢ë¬ ¢ë¯®«­¥­¨¥¬ 横« íâ® â ª: r ¥áâì ¯®à浪®¢ë© ­®¬¥à x ¢
¤¥à¥¢¥ á ª®à­¥¬ ¢ x (áâப 1), y = x (áâப 2). Š ª ­ ¤® ¨§¬¥­¨âì r ¯à¨ ¯¥à¥å®¤¥ ®â ¢¥à設ë y ª ¥ñ த¨â¥«î p[y]? …᫨ y |
«¥¢ë© ॡñ­®ª ¢¥à設ë p[y], â® ¢¥à設 x ¨¬¥¥â ®¤¨­ ¨ â®â ¦¥
„¨­ ¬¨ç¥áª¨¥ ¯®à浪®¢ë¥ áâ â¨á⨪¨
283
¯®à浪®¢ë© ­®¬¥à ¢ ¯®¤¤¥à¥¢ìïå á ª®à­ï¬¨ ¢ y ¨ p[y]. …᫨ ¦¥ y
| ¯à ¢ë© ॡñ­®ª, ¯à¨ ¯¥à¥å®¤¥ ®â y ª p[y ] ª ¯®à浪®¢®¬ã ­®¬¥àã
¢¥à設ë x ¯à¨¡ ¢¨âáï size[left[p[y]]] í«¥¬¥­â®¢ «¥¢®£® ¯®¤¤¥à¥¢ ¨
á ¬ ¢¥à設 p[y]. ‚ áâப¥ 5 ¬ë ã竨 íâã ¤®¡ ¢ªã.
à¨ ¢ë室¥ ¨§ 横« y = root[T ], r | ¯®à浪®¢ë© ­®¬¥à x ¢®
¢áñ¬ ¤¥à¥¢¥.
„«ï ¯à¨¬¥à ¯®á¬®âਬ, ª ª íâ ¯à®æ¥¤ãà ®¯à¥¤¥«¨â ¯®à浪®¢ë© ­®¬¥à ¢¥à設ë á ª«î箬 38 ¢ ¤¥à¥¢¥, ¨§®¡à ¦ñ­­®¬ ­ à¨á. 15.1. ‚ â ¡«¨æ¥ ¯®ª § ­ ª«îç ¢¥à設ë y ¨ ç¨á«® r ¢ ­ ç «¥
ª ¦¤®£® 横« .
˜ £ key[x] r
1
38
2
2
30
4
3
41
4
4
26 17
‚®§¢à é ¥âáï §­ 祭¨¥ 17.
‘ ª ¦¤ë¬ è £®¬ £«ã¡¨­ ¢¥à設ë y 㬥­ìè ¥âáï ­ ¥¤¨­¨æã,
¨ ª ¦¤ë© è £ âॡã¥â ¢à¥¬¥­¨ O(1), ¯®í⮬㠢६ï à ¡®âë ¯à®æ¥¤ãàë OS-Rank ­ n-í«¥¬¥­â­®¬ ¬­®¦¥á⢥ ¥áâì O(log n).
Ž¡­®¢«¥­¨¥ ¨­ä®à¬ 樨 ® à §¬¥à å ¯®¤¤¥à¥¢ì¥¢
‘ ¯®¬®éìî ¯®«¥© size ¬ë ­ ã稫¨áì ¡ëáâà® ¢ëç¨á«ïâì ¯®à浪®¢ë© ­®¬¥à í«¥¬¥­â , â ª¦¥ ­ 室¨âì i-© í«¥¬¥­â ¤¥à¥¢ . ’¥¯¥àì
­ ¤® ¯®­ïâì, ª ª ®¡­®¢«ïâì íâ® ¯®«¥ ¯à¨ ¤®¡ ¢«¥­¨¨ ¨ 㤠«¥­¨¨
í«¥¬¥­â ¨§ ªà á­®-çñà­®£® ¤¥à¥¢ . Žª §ë¢ ¥âáï, íâ® ¬®¦­® ᤥ« âì, ­¥ ãåã¤è¨¢ ᨬ¯â®â¨ç¥áªãî ®æ¥­ªã ¢à¥¬¥­¨ à ¡®âë ¯à®æ¥¤ãà ¤®¡ ¢«¥­¨ï ¨ 㤠«¥­¨ï í«¥¬¥­â .
Š ª ¬ë ¢¨¤¥«¨ ¢ à §¤¥«¥ 14.3, ¤®¡ ¢«¥­¨¥ í«¥¬¥­â ¢ ªà á­®çñà­®¥ ¤¥à¥¢® á®á⮨⠨§ ¤¢ãå ç á⥩: á­ ç « ¬ë ¤®¡ ¢«ï¥¬ ­®¢ãî
¢¥à設ã, ¤¥« ï ¥ñ ॡñ­ª®¬ 㦥 áãé¥áâ¢ãî饩, § ⥬ ¯à®¨§¢®¤¨¬ ­¥ª®â®àë¥ ¢à 饭¨ï ¨ ¯¥à¥ªà 訢 ­¨ï (¥á«¨ íâ® ­¥®¡å®¤¨¬®)
 ¯¥à¢®¬ íâ ¯¥ ¬ë ¤«ï ª ¦¤®© ¯à®©¤¥­­®© ¢¥à設ë x (­ ¯ãâ¨
®â ª®à­ï ¤® ¬¥áâ ¤®¡ ¢«¥­¨ï ¢¥à設ë) 㢥«¨ç¨¬ ­ ¥¤¨­¨æã §­ 祭¨¥ size[x]. ‚ ¯®«¥ size ¤®¡ ¢«¥­­®© ¢¥àè¨­ë § ¯¨è¥¬ ç¨á«® 1.
à¨ í⮬ ¬ë ¯à®å®¤¨¬ ¯ãâì ¤«¨­®© O(log n) ¨ ¤®¯®«­¨â¥«ì­® âà ⨬ ¢à¥¬ï O(log n), ¯®á«¥ 祣® ¢á¥ ¯®«ï size ¯à ¢¨«ì­ë.
à¨ ¢à 饭¨¨ ¨§¬¥­ïîâáï à §¬¥àë ⮫쪮 ¤¢ãå ¯®¤¤¥à¥¢ì¥¢: ¨å
¢¥à設 ¬¨ ïîâáï ª®­æë ॡà , ¢®ªà㣠ª®â®à®£® ¯à®¨á室¨«®
¢à 饭¨¥. ®í⮬㠪 ⥪áâã ¯à®æ¥¤ãàë Left-Rotate(T; x) (à §¤¥« 14.2) ¤®áâ â®ç­® ¤®¡ ¢¨âì áâப¨
13 size[y ] size[x]
14 size[x] size[left[x]] + size[right[x]] + 1
284
ƒ« ¢ 15 ®¯®«­¥­¨¥ áâàãªâãà ¤ ­­ëå
15.2 Ž¡­®¢«¥­¨¥ ¯®«ï size ¯à¨ ¢à 饭¨ïå ¢®ªà㣠ॡà (x; y ). â®
¯®«¥ ­¥®¡å®¤¨¬® ®¡­®¢¨âì ⮫쪮 ã ¢¥à設 x ¨ y. „«ï ⮣®, ç⮡ë 㧭 âì ­®¢®¥
§­ 祭¨¥, ¤®áâ â®ç­® ®¡« ¤ âì ¨­ä®à¬ 樥©, åà ­ï饩áï ¢ x, y ¨ ¢ ª®à­ïå
¯®¤¤¥à¥¢ì¥¢, ¨§®¡à ¦¥­­ëå ¢ ¢¨¤¥ âà¥ã£®«ì­¨ª®¢.
¨áã­®ª
 à¨á. 15.2 ¯®ª § ­®, ª ª ¬¥­ï¥âáï ¯®«¥ size. €­ «®£¨ç­ë¥ ¨§¬¥­¥­¨ï ¢­¥áñ¬ ¨ ¢ ¯à®æ¥¤ãàã Right-Rotate.
’ ª ª ª ¯à¨ ¤®¡ ¢«¥­¨¨ í«¥¬¥­â ¢ ªà á­®-çñà­®¥ ¤¥à¥¢® ¢ë¯®«­ï¥âáï ­¥ ¡®«ìè¥ ¤¢ãå ¢à 饭¨©, â® ª®à४æ¨ï ¯®«ï size ¯®á«¥ ¢à 饭¨© âॡã¥â O(1) ®¯¥à 権 ( ¯¥à¥ªà 訢 ­¨¥ ¢®®¡é¥ ­¥ ¢«¨ï¥â
­ à §¬¥àë). ’ ª¨¬ ®¡à §®¬, ¤®¡ ¢«¥­¨¥ í«¥¬¥­â ¢ ¯®à浪®¢®¥ ¤¥à¥¢® ¨§ n ¢¥à設 âॡã¥â ¢à¥¬¥­¨ O(log n), ª ª ¨ ¤«ï ®¡ëç­®£®
ªà á­®-çñà­®£® ¤¥à¥¢ .
“¤ «¥­¨¥ í«¥¬¥­â ¨§ ªà á­®-çñà­®£® ¤¥à¥¢ â ª¦¥ á®á⮨⠨§
¤¢ãå ç á⥩ | á­ ç « ¬ë 㤠«ï¥¬ ¢¥à設ã y, § ⥬ ¤¥« ¥¬
(á ¬®¥ ¡®«ì襥) âਠ¢à 饭¨ï (á¬. à §¤. 14.4). ®á«¥ ¢ë¯®«­¥­¨ï
¯¥à¢®© ç áâ¨, ¬ë 㬥­ì訬 ­ ¥¤¨­¨æã ¯®«ï size ã ¢á¥å ¢¥à設
­ ¯ã⨠¨§ y ª ª®à­î. „«¨­ í⮣® ¯ã⨠O(log n), ¯®í⮬㠤®¯®«­¨â¥«ì­® ­ ¬ ¯®âॡã¥âáï ¢à¥¬ï O(log n). —â® ¯à®¨á室¨â á ¢à 饭¨ï¬¨, ¬ë 㦥 ¢¨¤¥«¨. ’ ª¨¬ ®¡à §®¬, ®¡­®¢«¥­¨¥ ¯®«ï size, ­¥
ãåã¤è ¥â ( ᨬ¯â®â¨ç¥áª¨) ¢à¥¬ï, ­¥®¡å®¤¨¬®¥ ¤«ï 㤠«¥­¨ï ¨ ¤®¡ ¢«¥­¨ï í«¥¬¥­â .
“¯à ¦­¥­¨ï
ãáâì T | ¤¥à¥¢® ­ à¨á. 15.1. ®ª ¦¨â¥, ª ª à ¡®â ¥â
¯à®æ¥¤ãà OS-Select(T; 10).
15.1-2 ãáâì T | ¤¥à¥¢® ­ à¨á. 15.1. ®ª ¦¨â¥, ª ª à ¡®â ¥â
¯à®æ¥¤ãà OS-Rank(T; x), £¤¥ x | ¢¥à設 á ª«î箬 35.
15.1-3 ¥à¥¯¨è¨â¥ ¯à®æ¥¤ãàã OS-Select, ­¥ ¨á¯®«ì§ãï ४ãàᨨ.
15.1-4 ¥ «¨§ã©â¥ ४ãàᨢ­ãî ¯à®æ¥¤ãàã OS-Key-Rank(T; k),
ª®â®à ï ¯®«ãç ¥â ­ ¢å®¤¥ ¯®à浪®¢®¥ ¤¥à¥¢® T á ¯®¯ à­® à §«¨ç­ë¬¨ ª«îç ¬¨, â ª¦¥ ª«îç k, ¨ ¢®§¢à é ¥â ¯®à浪®¢ë© ­®¬¥à
ª«îç k ¢ í⮬ ¤¥à¥¢¥.
15.1-5 „ ­ ¢¥à設 x ¯®à浪®¢®£® ¤¥à¥¢ ¨§ n ¢¥à設 ¨ ­ âãà «ì­®¥ ç¨á«® i. Š ª ­ ©â¨ i-© ¯® ¯®à浪ã í«¥¬¥­â, áç¨â ï ®â ¢¥à15.1-1
Ž¡é ï á奬 à ¡®âë á ¤®¯®«­¨â¥«ì­®© ¨­ä®à¬ 樥©
285
設ë x, § ¢à¥¬ï O(log n)?
15.1-6 ‡ ¬¥â¨¬, çâ® ¯à®æ¥¤ãàë OS-Select ¨ OS-Rank ¨á¯®«ì§ãîâ ¯®«¥ size ⮫쪮 ¤«ï ⮣®, ç⮡ë 㧭 âì ¯®à浪®¢ë© ­®¬¥à
¢¥à設ë x ¢ ¯®¤¤¥à¥¢¥ á ª®à­¥¬ x. à¥¤¯®«®¦¨¬, çâ® ¬ë åà ­¨¬
¢ ¢¥à設¥ ¢¬¥áâ® ¯®«ï size íâ®â ¯®à浪®¢ë© ­®¬¥à. Š ª ®¡­®¢«ïâì
íâã ¨­ä®à¬ æ¨î ¯à¨ ¤®¡ ¢«¥­¨¨ ¨ 㤠«¥­¨¨ í«¥¬¥­â ? ( ¯®¬­¨¬,
çâ® ¤®¡ ¢«¥­¨¥ ¨ 㤠«¥­¨¥ ᮯ஢®¦¤ îâáï ¢à 饭¨ï¬¨.)
15.1-7 Š ª, ¨á¯®«ì§ãï ¯®à浪®¢ë¥ ¤¥à¥¢ìï, ¯®áç¨â âì ç¨á«® ¨­¢¥àᨩ (á¬. § ¤ çã 1-3) ¢ ¬ áᨢ¥ à §¬¥à n § ¢à¥¬ï O(n log n)?
15.1-8?  áᬮâਬ n å®à¤ ®ªà㦭®áâ¨, § ¤ ­­ëå ᢮¨¬¨ ª®­æ ¬¨
(áç¨â ¥¬, çâ® ¢á¥ 2n ª®­æ¥¢ëå â®ç¥ª à §«¨ç­ë). à¨¤ã¬ ©â¥ «£®à¨â¬, ª®â®àë© § ¢à¥¬ï O(n lg n) ®¯à¥¤¥«ï¥â, ᪮«ìª® ¯ à å®à¤
¯¥à¥á¥ª îâáï ¢­ãâਠªà㣠. ( ¯à¨¬¥à, ¥á«¨ ¢á¥ å®à¤ë | ¤¨ ¬¥âàë, â® ®â¢¥â®¬ ¡ã¤¥â Cn2.)
15.2 Ž¡é ï á奬 à ¡®âë á ¤®¯®«­¨â¥«ì­®© ¨­ä®à¬ 樥©
‘¨âã æ¨ï, ª®£¤ âॡã¥âáï ¯®¯®«­¨âì ª ªãî-«¨¡® áâ ­¤ àâ­ãî áâàãªâãàã ¤ ­­ëå ¤®¯®«­¨â¥«ì­®© ¨­ä®à¬ 樥©, ¤®¢®«ì­® ⨯¨ç­ . Œë ¢áâà¥â¨¬áï á ­¥© á­®¢ ¢ á«¥¤ãî饬 à §¤¥«¥. € ¢ í⮬
à §¤¥«¥ ¬ë ¤®ª ¦¥¬ ®¡éãî ⥮६ã, ®¡«¥£ç îéãî íâ®â ¯à®æ¥áá ¢
á«ãç ¥ ªà á­®-çñà­ëå ¤¥à¥¢ì¥¢.
®¯®«­¥­¨¥ áâàãªâãàë ¤ ­­ëå ¤¥«¨âáï ­ ç¥âëà¥ è £ :
1. ¢ë¡¨à ¥¬ ¡ §®¢ãî áâàãªâãàã ¤ ­­ëå;
2. à¥è ¥¬, ª ªãî ¤®¯®«­¨â¥«ì­ãî ¨­ä®à¬ æ¨î ¬ë ¡ã¤¥¬ åà ­¨âì
(¨ ®¡­®¢«ïâì);
3. ¯à®¢¥à塞, çâ® íâã ¨­ä®à¬ æ¨î 㤠ñâáï ®¡­®¢«ïâì ¯à¨ ¢ë¯®«­¥­¨¨ ®¯¥à 権, ¤®¯ãá⨬ëå ¤«ï ¢ë¡à ­­®© áâàãªâãàë ¤ ­­ëå;
4. ॠ«¨§ã¥¬ ­®¢ë¥ ®¯¥à 樨.
Š®­¥ç­®, í⨠¯à ¢¨« | ¢á¥£® «¨èì ®¡é ï á奬 , ¨ ¢ ª®­ªà¥â­®©
á¨âã 樨 ­ ¤® ¯à®ï¢«ïâì à §ã¬­ãî £¨¡ª®áâì, ­® á奬 íâ ¬®¦¥â
¡ëâì ¯®«¥§­®©.
„ ¢ ©â¥ ¯®á¬®âਬ ­ ª®­áâàãªæ¨¨ à §¤¥« 15.1 á â®çª¨ §à¥­¨ï
íâ¨å ¯à ¢¨«.
 è £¥ 1 ¬ë ¢ë¡à «¨ ªà á­®-çñà­ë¥ ¤¥à¥¢ìï ¢ ª ç¥á⢥ ¡ §®¢®©
áâàãªâãàë.
 è £¥ 2 ¬ë à¥è¨«¨ ¤®¡ ¢¨âì ª ª ¦¤®© ¢¥à設¥ ¯®«¥ size.
‘¬ëá« åà ­¥­¨ï ¤®¯®«­¨â¥«ì­®© ¨­ä®à¬ 樨 á®á⮨⠢ ⮬, çâ®
®­ ¯®§¢®«ï¥â ¢ë¯®«­ïâì ­¥ª®â®àë¥ ®¯¥à 樨 ¡ëáâ॥. ¥§ ¯®«ï
size ¬ë ­¥ ᬮ£«¨ ¡ë ¢ë¯®«­¨âì ®¯¥à 樨 OS-Select ¨ OS-Rank
§ ¢à¥¬ï O(log n). (¥áª®«ìª® ¨­®© ¢ ਠ­â ¢ë¡®à ¤®¯®«­¨â¥«ì­®©
286
ƒ« ¢ 15 ®¯®«­¥­¨¥ áâàãªâãà ¤ ­­ëå
¨­ä®à¬ 樨 ¤ ­ ¢ ã¯à. 15.2-1.)
 è £¥ 3 ¬ë ã¡¥¤¨«¨áì, çâ® ®¡­®¢«¥­¨¥ ¯®«¥© size ¯à¨ ¤®¡ ¢«¥­¨¨ ¨ 㤠«¥­¨¨ í«¥¬¥­â®¢ ¬®¦­® ¢ë¯®«­¨âì ¡¥§ ãåã¤è¥­¨ï ᨬ¯â®â¨ª¨ ¤«ï ¢à¥¬¥­¨ ¤®¡ ¢«¥­¨ï ¨ 㤠«¥­¨ï. ‚ í⮬ á¬ëá«¥ ­ è
¢ë¡®à 㤠祭: ¥á«¨ ¡ë, ᪠¦¥¬, ¬ë à¥è¨«¨ åà ­¨âì ¤«ï ª ¦¤®©
¢¥àè¨­ë ¥ñ ¯®à浪®¢ë© ­®¬¥à, â® ¯à®æ¥¤ãàë OS-Select ¨ OSRank à ¡®â «¨ ¡ë ¡ëáâà®, ­® ¤®¡ ¢«¥­¨¥ ­®¢®£® í«¥¬¥­â ¯®¢«¥ª«® ¡ë § ᮡ®© ¨§¬¥­¥­¨¥ ¤®¯®«­¨â¥«ì­®© ¨­ä®à¬ 樨 ¢® ¬­®£¨å
¢¥à設 å ¤¥à¥¢ (¢® ¢á¥å, ¥á«¨ ¤®¡ ¢«¥­­ë© í«¥¬¥­â ¬¨­¨¬ «¥­).
 è ¢ë¡®à (¯®«¥ size ) ¤ ñâ 㤠ç­ë© ª®¬¯à®¬¨áá ¬¥¦¤ã «ñ£ª®áâìî
¨á¯®«ì§®¢ ­¨ï ¨ ®¡­®¢«¥­¨ï.
 è £¥ 4 ¬ë ॠ«¨§®¢ «¨ ¯à®æ¥¤ãàë OS-Select ¨ OS-Rank,
¨§-§ ª®â®àëå ¬ë, ᮡá⢥­­®, ¨ § ⥢ «¨ ¢áñ íâ® ¤¥«®.
‚¯à®ç¥¬, ¢ ¤à㣨å á¨âã æ¨ïå (ã¯à. 15.2-1) ¤®¯®«­¨â¥«ì­ ï ¨­ä®à¬ æ¨ï ¨á¯®«ì§ã¥âáï ­¥ ¤«ï ॠ«¨§ 樨 ­®¢ëå ®¯¥à 権, ¤«ï
ã᪮७¨ï 㦥 ¨¬¥îé¨åáï.
„®¯®«­¨â¥«ì­ ï ¨­ä®à¬ æ¨ï ¤«ï ªà á­®-çñà­ëå ¤¥à¥¢ì¥¢
‘«¥¤ãîé ï ⥮६ ¯®ª §ë¢ ¥â, çâ® ¤«ï ªà á­®-çñà­ëå ¤¥à¥¢ì¥¢ ¨­ä®à¬ æ¨î ®¯à¥¤¥«ñ­­®£® ¢¨¤ ¬®¦­® ®¡­®¢«ïâì, ­¥ § ¬¥¤«ïï ( ᨬ¯â®â¨ç¥áª¨) ®¯¥à 樨 ¤®¡ ¢«¥­¨ï ¨ 㤠«¥­¨ï. …ñ ¤®ª § ⥫ìá⢮ ¢® ¬­®£®¬ ¯®¢â®àï¥â à áá㦤¥­¨ï ¨§ à §¤¥« 15.1.
’¥®à¥¬ 15.1 (®¯®«­¥­¨¥ ªà á­®-çñà­®£® ¤¥à¥¢ ).  áᬮâਬ ¤®¯®«­¨â¥«ì­ë© âਡãâ f , ®¯à¥¤¥«ñ­­ë© ¤«ï ¢¥à設 ªà á­®çñà­ëå ¤¥à¥¢ì¥¢. à¥¤¯®«®¦¨¬, çâ® ¤«ï ¢á类© ¢¥à設ë x
§­ 祭¨¥ f [x] ¯®«­®áâìî § ¤ ñâáï ®áâ «ì­®© ¨­ä®à¬ 樥©, åà ­ï饩áï ¢ ¢¥à設 å x, left[x] ¨ right[x] (¢ ⮬ ç¨á«¥ §­ 祭¨ï¬¨
f [left[x]] ¨ f [right[x]]), ¨ ¥£® ¢ëç¨á«¥­¨¥ ¯® í⨬ ¤ ­­ë¬ âॡã¥â
¢à¥¬¥­¨ O(1). ’®£¤ ¯®«ï f ¬®¦­® ®¡­®¢«ïâì ¯à¨ ¤®¡ ¢«¥­¨¨
¨ 㤠«¥­¨¨ í«¥¬¥­â ¨§ ¤¥à¥¢ , ­¥ ãåã¤è ï ( ᨬ¯â®â¨ç¥áª¨)
¢à¥¬ï ¢ë¯®«­¥­¨ï ¤®¡ ¢«¥­¨ï ¨ 㤠«¥­¨ï.
„®ª § ⥫ìá⢮. ˆ¤¥ï ¤®ª § ⥫ìá⢠á®á⮨⠢ ⮬, çâ® ¨§¬¥­¥­¨¥ ¯®«ï f ¢ ­¥ª®â®à®© ¢¥à設¥ x ¯®¢«¥çñâ § ᮡ®© ¨§¬¥­¥­¨ï
¯®«ï f ⮫쪮 ¢ ¢¥à設 å, à ᯮ«®¦¥­­ëå ­ ¯ã⨠¨§ ª®à­ï ¢ x.
‚ á ¬®¬ ¤¥«¥, ¨§¬¥­¥­¨¥ f [x] ¯®¢«¥çñâ § ᮡ®© ¨§¬¥­¥­¨¥ f [p[x]],
çâ® ¢ á¢®î ®ç¥à¥¤ì ¨§¬¥­¨â f [p[p[x]]] ¨ â. ¤., ­® ¤à㣨¥ ¢¥à設ë
®áâ ­ãâáï ­¥âà®­ãâ묨. Žâ f [root[T ]] ­¥ § ¢¨á¨â §­ 祭¨¥ ¯®«ï f
¢ ¤àã£¨å ¢¥à設 å, ¨ ¯à®æ¥áá ¨§¬¥­¥­¨© ®áâ ­®¢¨âáï. ’ ª ª ª ¢ëá®â ¤¥à¥¢ à ¢­ O(log n), â® ¯®á«¥ ¨§¬¥­¥­¨ï ¯®«ï f [x] ¤«ï ª ª®©â® ®¤­®© ¢¥à設ë x ¬ë ᬮ¦¥¬ ®¡­®¢¨âì ¢á¥ ­¥®¡å®¤¨¬ë¥ ¯®«ï § ¢à¥¬ï O(log n).
„®¡ ¢«¥­¨¥ í«¥¬¥­â x ¢ ¤¥à¥¢® T ¤¥« ¥âáï ¢ ¤¢ íâ ¯ (á¬.
à §¤. 14.3).  ¯¥à¢®¬ íâ ¯¥ ¢¥à設ã x ¤®¡ ¢«ïîâ ¢ ª ç¥á⢥
ॡñ­ª 㦥 áãé¥áâ¢ãî饩 ¢¥à設ë p[x]. ‡­ 祭¨¥ f [x] ¢ëç¨á«ï-
Ž¡é ï á奬 à ¡®âë á ¤®¯®«­¨â¥«ì­®© ¨­ä®à¬ 樥©
287
¥âáï § ¢à¥¬ï O(1), â ª ª ª ­®¢ ï ¢¥à設 | «¨áâ (â®ç­¥¥, ¥ñ
¤¥â¨ | nil-«¨áâìï). „ «¥¥ ¯à®¨á室¨â O(lg n) ¨§¬¥­¥­¨© ¯®«¥© ­ ¯ã⨠ª ª®à­î. ˆâ ª, ¯¥à¢ë© íâ ¯ § ­¨¬ ¥â ¢à¥¬ï O(log n).  ¢â®à®¬ íâ ¯¥ ¬ë ¢ë¯®«­ï¥¬ ¢à 饭¨ï (á ¬®¥ ¡®«ì襥 ¤¢ ); ¯®á«¥ ª ¦¤®£® ¯®âॡã¥âáï O(lg n) ®¯¥à 権 ¤«ï à á¯à®áâà ­¥­¨ï ¨§¬¥­¥­¨© ¢¢¥àå ¯® ¤¥à¥¢ã.
“¤ «¥­¨¥ â ª¦¥ ¯à®¢®¤¨âáï ¢ ¤¢ íâ ¯ (á¬. à §¤. 14.4).  ¯¥à¢®¬ íâ ¯¥ ¨§¬¥­¥­¨ï ¢®§­¨ª îâ, ¥á«¨ 㤠«ï¥¬ ï ¢¥à設 § ¬¥­ï¥âáï ¥ñ ¯®á«¥¤®¢ ⥫¥¬, â ª¦¥ ª®£¤ ¬ë ¢ë¡à áë¢ ¥¬ 㤠«ï¥¬ãî
¢¥à設㠨«¨ ¥ñ ¯®á«¥¤®¢ ⥫ï. ˆ ¢ ⮬ ¨ ¢ ¤à㣮¬ á«ãç ¥ ¬ë ¨§¬¥­ï¥¬ ¯®«¥ f ã ®¤­®© ¢¥à設ë, ¯®í⮬㠮¡­®¢«¥­¨¥ ¢á¥å ¯®«¥©
§ ©¬¥â ¢à¥¬ï O(log n).  ¢â®à®¬ íâ ¯¥ ¬ë ¤¥« ¥¬ á ¬®¥ ¡®«ì襥
âਠ¢à 饭¨ï, ª ¦¤®¥ ¨§ ª®â®àëå âॡã¥â ¢à¥¬¥­¨ O(log n) ¤«ï
®¡­®¢«¥­¨ï ¯®«¥© ­ ¯ã⨠ª ª®à­î.
‚® ¬­®£¨å á«ãç ïå (¢ ç áâ­®áâ¨, ¤«ï ¯®«ï size ) ¯à¨ ¢à 饭¨ïå
¢á¥ ¯®«ï ¬®¦­® ®¡­®¢¨âì § ¢à¥¬ï O(1), ­¥ O(log n). ’ ª ï á¨âã æ¨ï ¢®§­¨ª ¥â ¢ ã¯à. 15.2-4.
“¯à ¦­¥­¨ï
®¯®«­¨âì ¯®à浪®¢®¥ ¤¥à¥¢® (­¥ ãåã¤è¨¢ ᨬ¯â®â¨ç¥áª¨ ¢à¥¬ï ®¯¥à 権) â ª, çâ®¡ë ¬¨­¨¬ «ì­ë© ¨ ¬ ªá¨¬ «ì­ë©
í«¥¬¥­âë, â ª¦¥ ¯à¥¤è¥á⢥­­¨ª ¨ ¯®á«¥¤®¢ â¥«ì ¤ ­­®£® í«¥¬¥­â ®âë᪨¢ «¨áì ¡ë § ¢à¥¬ï O(1).
15.2-2 ã¤¥¬ åà ­¨âì ¢ ª ¦¤®© ¢¥à設¥ ªà á­®-çñà­®£® ¤¥à¥¢ ¥ñ
çñà­ãî ¢ëá®âã. ‚®§¬®¦­® «¨ ®¡­®¢«ïâì íâ® ¯®«¥ ¯à¨ ¤®¡ ¢«¥­¨¨ ¨
㤠«¥­¨¨ í«¥¬¥­â ¨§ ¤¥à¥¢ , ­¥ ãåã¤è¨¢ ( ᨬ¯â®â¨ç¥áª¨) ¢à¥¬ï
à ¡®âë íâ¨å ®¯¥à 権?
15.2-3 ã¤¥¬ åà ­¨âì ¢ ¢¥à設¥ ¥ñ £«ã¡¨­ã. ‚®§¬®¦­® «¨ ®¡­®¢«ïâì íâ® ¯®«¥ ¯à¨ ¤®¡ ¢«¥­¨¨ ¨ 㤠«¥­¨¨ í«¥¬¥­â ¨§ ¤¥à¥¢ , ­¥
ãåã¤è¨¢ ( ᨬ¯â®â¨ç¥áª¨) ¢à¥¬ï à ¡®âë íâ¨å ®¯¥à 権?
15.2-4? ãáâì | áá®æ¨ ⨢­ ï ¡¨­ à­ ï ®¯¥à æ¨ï ­ ­¥ª®â®à®¬ ¬­®¦¥á⢥ M , ¨ ¯ãáâì ¢ ª ¦¤®© ¢¥à設¥ ªà á­®-çñà­®£® ¤¥à¥¢ åà ­¨âáï ­¥ª®â®àë© í«¥¬¥­â a ¬­®¦¥á⢠M (᢮© ¢ ª ¦¤®© ¢¥à設¥). ãáâì ⥯¥àì ¬ë å®â¨¬ åà ­¨âì ¢ ª ¦¤®© ¢¥à設¥ x ¯®«¥
f [x] = a[x1] a[x2] : : : a[xm ], £¤¥ x1; x2; : : :; xm | ¢á¥ ¢¥à設ë
¯®¤¤¥à¥¢ á ª®à­¥¬ x (¢ ¯®à浪¥ ¢®§à áâ ­¨ï ª«î祩). ®ª § âì,
çâ® ¯®«¥ f ¯à¨ ¢à 饭¨ïå ¬®¦­® ®¡­®¢«ïâì § ¢à¥¬ï O(1). à®¢¥á⨠­ «®£¨ç­®¥ à áá㦤¥­¨¥ ¤«ï ¯®«ï size.
15.2-5? Œë å®â¨¬ ॠ«¨§®¢ âì ¤«ï ªà á­®-çñà­ëå ¤¥à¥¢ì¥¢ ®¯¥à æ¨î RB-Enumerate(x; a; b), ª®â®à ï ¢ë¤ ñâ ᯨ᮪ ¢á¥å ¢¥à設
¢ ¯®¤¤¥à¥¢¥ á ª®à­¥¬ x, ¤«ï ª®â®àëå ª«îç k ­ 室¨âáï ¢ ¯à®¬¥15.2-1
288
ƒ« ¢ 15 ®¯®«­¥­¨¥ áâàãªâãà ¤ ­­ëå
¦ã⪥ a 6 k 6 b. Š ª ᤥ« âì íâ® § ¢à¥¬ï (m + log n), £¤¥ n |
ª®«¨ç¥á⢮ ¢¥à設 ¢ ¤¥à¥¢¥, m | ç¨á«® ¢ë¤ ¢ ¥¬ëå ª«î祩?
(“ª § ­¨¥. „®áâ â®ç­® ¯®«¥©, ¨¬¥îé¨åáï ¢ ªà á­®-çñà­ëå ¤¥à¥¢ìïå; ­®¢ë¥ ¯®«ï ­¥ ­ã¦­ë.)
15.3 „¥à¥¢ìï ¯à®¬¥¦ã⪮¢
‚ í⮬ à §¤¥«¥ ¬ë ¨á¯®«ì§ã¥¬ ªà á­®-çñà­ë¥ ¤¥à¥¢ìï ¤«ï åà ­¥­¨ï ¬¥­ïî饣®áï ¬­®¦¥á⢠¯à®¬¥¦ã⪮¢. Žâ१ª®¬ (closed
interval) [t1 ; t2] ­ §ë¢ ¥âáï ¬­®¦¥á⢮ ¢¥é¥á⢥­­ëå ç¨á¥« t, ¤«ï
ª®â®àëå t1 6 t 6 t2 . (à¥¤¯®« £ ¥âáï, çâ® t1 6 t2 .) ®«ã¨­â¥à¢ «
(half-open interval) ¨ ¨­â¥à¢ « (open interval) ¯®«ãç îâáï ¨§ ®â१ª ¢ëª¨¤ë¢ ­¨¥¬ ®¤­®£® ¨«¨ ¤¢ãå ª®­æ®¢ ᮮ⢥âá⢥­­®. ‚
í⮬ à §¤¥«¥ ¬ë ¨¬¥¥¬ ¤¥«® ⮫쪮 á ®â१ª ¬¨, ­® ¢á¥ १ã«ìâ âë
«¥£ª® à á¯à®áâà ­ïîâáï ­ ¨­â¥à¢ «ë ¨ ¯®«ã¨­â¥à¢ «ë.
à¥¤áâ ¢¨¬ ᥡ¥ ¡ §ã ¤ ­­ëå, ¢ ª®â®à®© åà ­¨âáï ¨­ä®à¬ æ¨ï
® ¯à®âï¦ñ­­ëå ¯® ¢à¥¬¥­¨ ᮡëâ¨ïå: ¤«ï ª ¦¤®£® ᮡëâ¨ï åà ­¨âáï ¯à®¬¥¦ã⮪ ¢à¥¬¥­¨, ª®â®à®¥ ®­® § ­¨¬ ¥â.  áᬠâਢ ¥¬ ï ¢ í⮬ à §¤¥«¥ áâàãªâãà ¤ ­­ëå ¯®§¢®«ï¥â ¯® «î¡®¬ã ¯à®¬¥¦ãâªã ­ ©â¨ ¢á¥ ᮡëâ¨ï, ª®â®àë¥ ¯¥à¥á¥ª îâáï á í⨬ ¯à®¬¥¦ã⪮¬, ¯à¨çñ¬ ¤¥« ¥â íâ® ¤®áâ â®ç­® ¡ëáâà®.
Œë áç¨â ¥¬, çâ® ®â१®ª [t1; t2] ¯à¥¤áâ ¢«ï¥â ᮡ®© § ¯¨áì i, á®áâ®ïéãî ¨§ ¤¢ãå ¯®«¥©: low[i] = t1 («¥¢ë© ª®­¥æ (low endpoint)) ¨
high[i] = t2 (¯à ¢ë© ª®­¥æ (high endpoint)). ã¤¥¬ £®¢®à¨âì, çâ® ®â१ª¨ i ¨ i0 ¯¥à¥ªàë¢ îâáï (overlap), ¥á«¨ low[i] 6 high[i0] ¨ low[i0] 6
high[i]; ¨­ë¬¨ á«®¢ ¬¨, ¥á«¨ i \ i0 =
6 ;. (Ž¡à â¨â¥ ¢­¨¬ ­¨¥, çâ®
®â१ª¨, ¨¬¥î騥 ®¡é¨© ª®­¥æ, áç¨â îâáï ¯¥à¥ªàë¢ î騬¨áï.)
‚ᥣ® ¢®§¬®¦­® âਠ¢ ਠ­â ¢§ ¨¬­®£® à ᯮ«®¦¥­¨ï ®â१ª®¢
i ¨ i0 (à¨á. 15.3):
1. ®â१ª¨ i ¨ i0 ¯¥à¥ªàë¢ îâáï,
2. high[i] < low[i0],
3. high[i0] < low[i].
„¥à¥¢®¬ ¯à®¬¥¦ã⪮¢ (interval tree) ­ §®¢ñ¬ ªà á­®-çñà­®¥ ¤¥à¥¢®,
ª ¦¤ ï ¢¥à設 x ª®â®à®£® åà ­¨â ®â१®ª int[x]. „¥à¥¢® ¯à®¬¥¦ã⪮¢ ¯®§¢®«ï¥â ॠ«¨§®¢ âì á«¥¤ãî騥 ®¯¥à 樨:
Interval-Insert (T; x) ¤®¡ ¢«ï¥â ª ¤¥à¥¢ã T í«¥¬¥­â x (ᮤ¥à¦ 騩 ­¥ª®â®àë© ®â१®ª int[x]);
Interval-Delete (T; x) 㤠«ï¥â ¨§ ¤¥à¥¢ T í«¥¬¥­â x;
Interval-Search(T; i) ¢®§¢à é ¥â 㪠§ â¥«ì ­ í«¥¬¥­â x ¤¥à¥¢ T , ¤«ï ª®â®à®£® ®â१ª¨ i ¨ int[x] ¯¥à¥ªàë¢ îâáï (¨ ¢®§¢à é ¥â
nil, ¥á«¨ â ª®£® í«¥¬¥­â ¢ ¤¥à¥¢¥ ­¥â).
à¨¬¥à ¤¥à¥¢ ¯à®¬¥¦ã⪮¢ ¯®ª § ­ ­ à¨á.15.4. ‘«¥¤ãï á奬¥ à §¤¥« 15.2, ¬ë ॠ«¨§ã¥¬ â ªãî áâàãªâãàã ¤ ­­ëå ¨ ®¯¥à 樨 ­ „¥à¥¢ìï ¯à®¬¥¦ã⪮¢
289
¨áã­®ª 15.3 ’ਠ¢ ਠ­â ¢§ ¨¬­®£® à ᯮ«®¦¥­¨ï ®â१ª®¢ i ¨ i0 . ( ) Žâ१ª¨ i ¨ i0 0 ¯¥à¥ªàë¢ îâáï
. ‚®§¬®¦­® ç¥âëॠ¢ ਠ­â ; ¢® ¢á¥å ç¥âëàñå
low[i] 6 high[i ] ¨ low[i0 ] 6 high[i]. (¡) high[i] < low[i0 ]. (¢) high[i0 ] < low[i].
­¥©.
˜ £ 1:  §®¢ ï áâàãªâãà ¤ ­­ëå
Œë 㦥 ¢ë¡à «¨ ¡ §®¢ãî áâàãªâãàã: ªà á­®-çñà­®¥ ¤¥à¥¢®, ª ¦¤ ï ¢¥à設 x ª®â®à®£® ᮤ¥à¦¨â ®â१®ª int[x]. Š«î箬 ¢¥à設ë ï¥âáï «¥¢ë© ª®­¥æ ®â१ª low[int[x]]; ®¡å®¤ ¤¥à¥¢ ¢ ¯®à浪¥ "«¥¢®¥ ¯®¤¤¥à¥¢® | ª®à¥­ì | ¯à ¢®¥ ¯®¤¤¥à¥¢®" ¯¥à¥ç¨á«ï¥â ¢¥àè¨­ë ¢ ¯®à浪¥ ¢®§à áâ ­¨ï ª«î祩.
˜ £ 2: „®¯®«­¨â¥«ì­ ï ¨­ä®à¬ æ¨ï
Š ¦¤ ï ¢¥à設 , ¯®¬¨¬® ®â१ª , ᮤ¥à¦¨â ¯®«¥ max[x], ¢ ª®â®à®¬ åà ­¨âáï ¬ ªá¨¬ «ì­ë© ¨§ ¯à ¢ëå ª®­æ®¢ ®â१ª®¢, ᮤ¥à¦ é¨åáï ¢ ¯®¤¤¥à¥¢¥ á ª®à­¥¬ x.
˜ £ 3: Ž¡­®¢«¥­¨¥ ¤®¯®«­¨â¥«ì­®© ¨­ä®à¬ 樨
à®¢¥à¨¬, çâ® ¤®¯®«­¨â¥«ì­ãî ¨­ä®à¬ æ¨î ¬®¦­® ®¡­®¢«ïâì
¯à¨ ¤®¡ ¢«¥­¨¨ ¨ 㤠«¥­¨¨ í«¥¬¥­â ¡¥§ ( ᨬ¯â®â¨ç¥áª®£®) ãåã¤è¥­¨ï ¢à¥¬¥­¨ à ¡®âë íâ¨å ®¯¥à 権. ‚ á ¬®¬ ¤¥«¥,
max[x] = max(high[int[x]]; max[left[x]]; max[right[x]]);
¨ ®áâ ñâáï «¨èì á®á« âìáï ­ ⥮६ã 15.1. Œ®¦­® ®â¬¥â¨âì
â ª¦¥, çâ® ¯à¨ ¢à 饭¨ïå ¯®«¥ max ¬®¦­® ®¡­®¢«ïâì § ¢à¥¬ï
O(1) (ã¯à. 15.2-4 ¨ 15.3-1).
˜ £ 4: ®¢ë¥ ®¯¥à 樨
à®æ¥¤ãà Interval-Search(T; i) ­ 室¨â ¢ ¤¥à¥¢¥ T ®â१®ª,
¯¥à¥ªàë¢ î騩áï á i. …᫨ â ª®£® ®â१ª ­¥â, ®­ ¢®§¢à é ¥â
290
ƒ« ¢ 15 ®¯®«­¥­¨¥ áâàãªâãà ¤ ­­ëå
¨áã­®ª 15.4 „¥à¥¢® ¯à®¬¥¦ã⪮¢. ( )  ¡®à ¨§ 10 ®â१ª®¢ (¢ëè¥ â®â, ã ª®â®à®£® «¥¢ë© ª®­¥æ ¡®«ìè¥). (¡) „¥à¥¢® ¯à®¬¥¦ã⪮¢, åà ­ï饥 í⨠®â१ª¨.
à¨ í⮬ ᢮©á⢮ 㯮à冷祭­®á⨠¤¥à¥¢ ¢ë¯®«­ï¥âáï ¤«ï «¥¢ëå ª®­æ®¢.
§­ 祭¨¥ nil.
Interval-Search (T; i)
1 x root[T ]
2 while x 6= nil ¨ int[x] ­¥ ¯¥à¥ªàë¢ ¥âáï á i
3
do if left[x] 6= nil ¨ max[left[x]] > low[i]
4
then x left[x]
5
else x right[x]
6 return x
Œë ¨é¥¬ ®â१®ª, ¯à®å®¤ï ¤¥à¥¢® ®â ª®à­ï ª «¨áâã. à®æ¥¤ãà ®áâ ­ ¢«¨¢ ¥âáï, ¥á«¨ ®â१®ª ­ ©¤¥­ ¨«¨ ¥á«¨ §­ 祭¨¥ ¯¥à¥¬¥­­®© x áâ «® à ¢­ë¬ nil. Š ¦¤ ï ¨â¥à æ¨ï 横« âॡã¥â O(1) è £®¢, ¯®í⮬㠢६ï à ¡®âë ¯à®æ¥¤ãàë ¯à®¯®à樮­ «ì­® ¢ëá®â¥ ¤¥à¥¢ (¨ à ¢­® O(log n) ¤«ï ¤¥à¥¢ ¨§ n ¢¥à設).
„«ï ¯à¨¬¥à ¯®á¬®âਬ, ª ª ¯à®æ¥¤ãà ¨é¥â ¢ ¤¥à¥¢¥ ­ à¨á. 15.4 ®â१®ª, ¯¥à¥ªàë¢ î騩áï á ®â१ª®¬ i = [22; 25]. Œë
­ 稭 ¥¬ á ª®à­ï (x = root[T ]), ª®â®àë© åà ­¨â ®â१®ª [16; 21], ­¥
¯¥à¥ªàë¢ î騩áï á i. ’ ª ª ª max[left[x]] = 23, çâ® ¡®«ìè¥, 祬
„¥à¥¢ìï ¯à®¬¥¦ã⪮¢
291
low[i] = 22, â® ¬ë ¯¥à¥å®¤¨¬ ª «¥¢®¬ã ॡñ­ªã ª®à­ï (x left[x]).
â®â ॡñ­®ª åà ­¨â ®â१®ª [8; 9], â ª¦¥ ­¥ ¯¥à¥ªàë¢ î騩áï
á i.  íâ®â à § max[left[x]] = 10 ¬¥­ìè¥ low[i] = 22, ¯®í⮬㠬ë
¯¥à¥å®¤¨¬ ª ¯à ¢®¬ã ॡñ­ªã ¢¥à設ë x. ’ ¬ ­ 室¨âáï ®â१®ª
[15; 23], ¯¥à¥ªàë¢ î騩áï á i, ¨ ¯®¨áª § ¢¥àè ¥âáï.
 áᬮâਬ ¯à¨¬¥à ¡¥§à¥§ã«ìâ â­®£® ¯®¨áª ¢ ⮬ ¦¥ ¤¥à¥¢¥ |
¡ã¤¥¬ ¨áª âì ®â१®ª, ¯¥à¥ªàë¢ î騩áï á i = [11; 14]. ‘­®¢ ­ 稭 ¥¬ á ª®à­ï. Š®à¥­ì åà ­¨â ®â१®ª [16; 21], ­¥ ¯¥à¥ªàë¢ î騩áï
á i. ’ ª ª ª max[left[x]] = 23 ¡®«ìè¥ low[i] = 11, ¯¥à¥å®¤¨¬ ª «¥¢®¬ã
ॡñ­ªã. ’¥¯¥àì ¢ x åà ­¨âáï ®â१®ª [8; 9]. Ž­ ­¥ ¯¥à¥ªàë¢ ¥âáï á i,
¨ max[left[x]] = 10 ¬¥­ìè¥ low[i] = 11, ¯®í⮬㠨¤ñ¬ ­ ¯à ¢®. (‘«¥¢ ¨áª®¬®£® ®â१ª ¡ëâì ­¥ ¬®¦¥â). ‚ x ⥯¥àì åà ­¨âáï [15; 23], á i
íâ®â ®â१®ª ­¥ ¯¥à¥ªàë¢ ¥âáï, left[x] = nil, ¯®í⮬㠨¤ñ¬ ­ ¯à ¢®
¨ ¢®§¢à é ¥¬ §­ 祭¨¥ nil.
Š®à४⭮áâì ¯à®æ¥¤ãàë Interval-Search ãáâ ­ ¢«¨¢ ¥â ⥮६ 15.2, ª®â®à ï ã⢥ত ¥â, çâ® ¥á«¨ ®â१ª¨ int[x] ¨ i ­¥ ¯¥à¥ªàë¢ îâáï, â® ¤ «ì­¥©è¨© ¯®¨áª ¨¤ñâ ¢ ¯à ¢¨«ì­®¬ ­ ¯à ¢«¥­¨¨
(¥á«¨ ­ã¦­ë¥ ®â१ª¨ ¢®®¡é¥ ¥áâì ¢ ¤¥à¥¢¥, â® ®­¨ ¥áâì ¨ ¢ ¢ë¡¨à ¥¬®© ç á⨠¤¥à¥¢ ). ®í⮬㠭 ¬ ¤®áâ â®ç­® ¯à®á¬®âà¥âì ¢á¥£®
®¤¨­ ¯ãâì. (Ž¡à â¨â¥ ¢­¨¬ ­¨¥, çâ® á«®¢ "¯à ¢¨«ì­®¥ ­ ¯à ¢«¥­¨¥" ­¥ ®§­ ç îâ, çâ® ¢ ¤à㣮¬ ­ ¯à ¢«¥­¨¨ ¨áª®¬ëå ®â१ª®¢ ­¥â:
¬ë ã⢥ত ¥¬ «¨èì, çâ® ¥á«¨ ®­¨ ¥áâì ¢®®¡é¥, â® ¥áâì ¨ ¢ "¯à ¢¨«ì­®¬" ­ ¯à ¢«¥­¨¨!)
’¥®à¥¬ 15.2. ãáâì x | ¯à®¨§¢®«ì­ ï ¢¥à設 ¤¥à¥¢ , i | ®â१®ª, ­¥ ¯¥à¥ªàë¢ î騩áï á int[x], ¨ ¬ë ¢ë¯®«­ï¥¬ áâப¨ 3{5
¯à®æ¥¤ãàë Interval-Search(T; i). ’®£¤ :
1. …᫨ ¢ë¯®«­ï¥âáï áâப 4, â® «¨¡® ¯®¤¤¥à¥¢® á ª®à­¥¬ left[x]
(«¥¢®¥ ¯®¤¤¥à¥¢®) ᮤ¥à¦¨â ®â१®ª, ¯¥à¥ªàë¢ î騩áï á i, «¨¡®
¯®¤¤¥à¥¢® á ª®à­¥¬ right[x] (¯à ¢®¥ ¯®¤¤¥à¥¢®) ­¥ ᮤ¥à¦¨â ®â१ª , ¯¥à¥ªàë¢ î饣®áï á i.
2. …᫨ ¢ë¯®«­ï¥âáï áâப 5, â® «¥¢®¥ ¯®¤¤¥à¥¢® ­¥ ᮤ¥à¦¨â
®â१ª , ¯¥à¥ªàë¢ î饣®áï á i.
„®ª § ⥫ìá⢮.  ç­ñ¬ á ¡®«¥¥ ¯à®á⮣® á«ãç ï 2. ‘âப 5 ¢ë¯®«­ï¥âáï, ¥á«¨ ­¥ ¢ë¯®«­¥­® ãá«®¢¨¥ ¢ áâப¥ 3, â® ¥áâì ¥á«¨
left[x] = nil ¨«¨ max[left[x]] < low[i]. ‚ ¯¥à¢®¬ á«ãç ¥ «¥¢®¥ ¯®¤¤¥à¥¢® ¯ãáâ®, ¯®í⮬㠭¥ ᮤ¥à¦¨â ®â१ª , ¯¥à¥ªàë¢ î饣®áï á i.
à¥¤¯®«®¦¨¬, çâ® left[x] =
6 nil ¨ max[left[x]] < low[i].  áᬮâਬ
¯à®¨§¢®«ì­ë© ®â१®ª i0 ¨§ «¥¢®£® ¯®¤¤¥à¥¢ (á¬. à¨á. 15.5 ). ’ ª
ª ª max[left[x]] | ­ ¨¡®«ì訩 ¯à ¢ë© ª®­¥æ â ª¨å ®â१ª®¢, â®
high[i0] 6 max[left[i]] < low[i];
¯®í⮬㠮â१®ª i0 楫¨ª®¬ «¥¦¨â «¥¢¥¥ ®â१ª i. ‘«ãç © 2 à áᬮâ७.
292
ƒ« ¢ 15 ®¯®«­¥­¨¥ áâàãªâãà ¤ ­­ëå
¨áã­®ª 15.5 Žâ१ª¨ ¢ ¤®ª § ⥫ìá⢥ ⥮६ë 15.2. ã­ªâ¨à®¬ ¯®ª § ­® §­ 祭¨¥ max[left[x]]. ( ) ‘«ãç © 2: ¬ë ¨¤¥¬ ­ ¯à ¢®. ¨ª ª®© ¨­â¥à¢ « i0 ­¥ ¯¥à¥ªàë¢ ¥âáï
á i. (¡) ‘«ãç © 01: ¬ë ¨¤¥¬ ­ «¥¢®. ‚롥६ ¢ «¥¢®¬
¯®¤¤¥à¥¢¥
®â१®ª i0 , ¤«ï ª®â®à®£®
high[i ] = max[left[x]] > low[i]. ’®£¤ «¨¡® i0 ¯¥à¥ªàë¢ ¥âáï á i, «¨¡®
i0 «¥¦¨â 楫¨ª®¬ á¯à ¢ ®â i, ¨ i ­¥0 ¯¥à¥ªàë¢ ¥âáï
­¨ á ª ª¨¬
00
®â१ª®¬ i ¨§ ¯à ¢®£® ¯®¤¤¥à¥¢ , ¯®â®¬ã çâ® low[i ] 6 low[i00 ].
 áᬮâਬ ⥯¥àì á«ãç © 1. à¥¤¯®«®¦¨¬, çâ® ¢ «¥¢®¬ ¯®¤¤¥à¥¢¥ ­¥â ®â१ª®¢, ¯¥à¥ªàë¢ îé¨åáï á i. ’®£¤ ­ã¦­® ¤®ª § âì,
çâ® â ª¨å ®â१ª®¢ ­¥â ¨ ¢ ¯à ¢®¬. ’ ª ª ª ¢ë¯®«­ï¥âáï áâப 4,
â® ãá«®¢¨¥ ¢ áâப¥ 3 ¢ë¯®«­¥­®, ¨ max[left[x]] > low[i]. ®í⮬㠢
«¥¢®¬ ¯®¤¤¥à¥¢¥ ­ ©¤ñâáï ®â१®ª i0, ¤«ï ª®â®à®£®
high[i0] = max[left[i0]] > low[i]
(á¬. à¨á. 15.5¡). ® ®â१ª¨ i ¨ i0 ­¥ ¯¥à¥ªàë¢ îâáï (¯® ¯à¥¤¯®«®¦¥­¨î | ¬ë áç¨â ¥¬, çâ® ¢ «¥¢®¬ ¯®¤¤¥à¥¢¥ ­¥â ®â१ª®¢, ¯¥à¥ªàë¢ îé¨åáï á i). â® ®§­ ç ¥â, çâ® ®â१®ª i0 «¥¦¨â 楫¨ª®¬ á¯à ¢ ®â i (楫¨ª®¬ á«¥¢ ®­ «¥¦ âì ­¥ ¬®¦¥â), â® ¥áâì high[i] < low[i0].
‚ ¤¥à¥¢¥ T ¢ë¯®«­¥­® ᢮©á⢮ 㯮à冷祭­®á⨠«¥¢ëå ª®­æ®¢, ¯®í⮬㠨 ¢á¥ ®â१ª¨ ¯à ¢®£® ¯®¤¤¥à¥¢ «¥¦ â 楫¨ª®¬ á¯à ¢ ®â i:
¤«ï ¯à®¨§¢®«ì­®£® ®â१ª i00 ¨§ ¯à ¢®£® ¯®¤¤¥à¥¢ ¢ë¯®«­¥­®
high[i] < low[i0] 6 low[i00 ]:
“¯à ¦­¥­¨ï
 ¯¨è¨â¥ ¯à®æ¥¤ãàã Left-Rotate ¤«ï ¤¥à¥¢ ¯à®¬¥¦ã⪮¢, ª®â®à ï ®¡­®¢«ï¥â ¯®«ï max § ¢à¥¬ï O(1).
15.3-2 ¥à¥¯¨è¨â¥ ¯à®æ¥¤ãàã Interval-Search ¤«ï á«ãç ï, ª®£¤ ¢ ¤¥à¥¢¥ ¯à®¬¥¦ã⪮¢ åà ­ïâáï ­¥ ®â१ª¨, ¨­â¥à¢ «ë (â®
¥áâì ­ á ¨­â¥à¥áãîâ ¯¥à¥ªàëâ¨ï ­¥­ã«¥¢®© ¤«¨­ë).
15.3-3 ®áâன⥠«£®à¨â¬, ª®â®àë© ¯® § ¤ ­­®¬ã ®â१ªã ¢®§¢à é ¥â ¯¥à¥ªàë¢ î騩áï á ­¨¬ ®â१®ª á ¬¨­¨¬ «ì­ë¬ «¥¢ë¬
ª®­æ®¬ (¨«¨ ª®­áâ ­âã nil, ¥á«¨ â ª¨å ®â१ª®¢ ­¥â).
15.3-4  ¯¨è¨â¥ ¯à®£à ¬¬ã, ª®â®à ï ¯® § ¤ ­­®¬ã ®â१ªã i
¨ ¤¥à¥¢ã ¯à®¬¥¦ã⪮¢ T ¢®§¢à é ¥â ᯨ᮪ ¢á¥å ®â१ª®¢ ¤¥15.3-1
‡ ¤ ç¨ ª £« ¢¥ 15
293
ॢ T , ¯¥à¥ªàë¢ îé¨åáï á i. ‚६ï à ¡®âë ¤®«¦­® ¡ëâì
O(min(n; k log n)), £¤¥ k | ç¨á«® í«¥¬¥­â®¢ ¢®§¢à é ¥¬®£® ᯨ᪠.
(„®¯®«­¨â¥«ì­ë© ¢®¯à®á: ª ª ᤥ« âì íâ®, ­¥ ¬¥­ïï ¤¥à¥¢ ?)
15.3-5 Š ª¨¥ ­ ¤® ¢­¥á⨠¨§¬¥­¥­¨ï ¢ ®¯à¥¤¥«¥­¨¥ ¤¥à¥¢ ¯à®¬¥¦ã⪮¢, çâ®¡ë ¤®¯®«­¨â¥«ì­® ॠ«¨§®¢ âì ¯à®æ¥¤ãàã Interval-Search-Exactly(T; i), ª®â®à ï «¨¡® ¢®§¢à é ¥â ¢¥à設ã x ¤¥à¥¢ T , ¤«ï ª®â®à®© low[int[x]] = low[i] ¨
high[int[x]] = high[i], «¨¡® ¢ë¤ ñâ ª®­áâ ­âã nil, ¥á«¨ â ª¨å ¢¥à設 ­¥â (¨é¥â ®â१®ª, à ¢­ë© i, ­¥ ¯à®áâ® ¯¥à¥ªàë¢ î騩áï
á i.) ‚६ï à ¡®âë ¯à®æ¥¤ãàë Interval-Search-Exactly, â ª¦¥
¢á¥å ¯à¥¦­¨å ¯à®æ¥¤ãà ¯à®¬¥¦ã⪮¢ ¤®«¦­® ®áâ ¢ âìáï à ¢­ë¬
O(log n).
15.3-6  áᬮâਬ ¬­®¦¥á⢮ Q ­ âãà «ì­ëå ç¨á¥«. Ž¯à¥¤¥«¨¬
Min-Gap ª ª à ááâ®ï­¨¥ ¬¥¦¤ã ¤¢ã¬ï ¡«¨¦ ©è¨¬¨ ç¨á« ¬¨ ¢ Q.
 ¯à¨¬¥à, ¥á«¨ Q = f1; 5; 9; 15; 18; 22g, â® Min-Gap(Q) à ¢­® 18 ;
15 = 3. ¥ «¨§ã©â¥ áâàãªâãàã ¤ ­­ëå, íä䥪⨢­® ॠ«¨§ãîéãî
¤®¡ ¢«¥­¨¥, 㤠«¥­¨¥ ¨ ¯®¨áª í«¥¬¥­â , â ª¦¥ ®¯¥à æ¨î MinGap. Š ª®¢® ¢à¥¬ï à ¡®âë íâ¨å ®¯¥à 権?
15.3-7? à¨ à §à ¡®âª¥ ¨­â¥£à «ì­ëå á奬 ¨­ä®à¬ æ¨ï ç áâ®
¯à¥¤áâ ¢«ï¥âáï ¢ ¢¨¤¥ ᯨ᪠¯àאַ㣮«ì­¨ª®¢. ãáâì ¤ ­ë n ¯àאַ㣮«ì­¨ª®¢ á® áâ®à®­ ¬¨, ¯ à ««¥«ì­ë¬¨ ®áï¬ ª®®à¤¨­ â. Š ¦¤ë© ¯àאַ㣮«ì­¨ª § ¤ ñâáï ç¥âëàì¬ï ç¨á« ¬¨: ª®®à¤¨­ â ¬¨
«¥¢®£® ­¨¦­¥£® ¨ ¯à ¢®£® ¢¥àå­¥£® 㣫®¢.  ¯¨á âì ¯à®£à ¬¬ã,
ª®â®à ï § ¢à¥¬ï O(n log n) ¢ëïá­ï¥â, ¥áâì «¨ á।¨ íâ¨å ¯àאַ㣮«ì­¨ª®¢ ¤¢ ¯¥à¥ªàë¢ îé¨åáï (­® ­¥ âॡã¥âáï ­ ©â¨ ¢á¥ ¯¥à¥ªàë¢ î騥áï ¯àאַ㣮«ì­¨ª¨). Ž¡à â¨â¥ ¢­¨¬ ­¨¥, çâ® £à ­¨æë
¯¥à¥ªàë¢ îé¨åáï ¯àאַ㣮«ì­¨ª®¢ ¬®£ãâ ­¥ ¯¥à¥á¥ª âìáï, ¥á«¨
®¤¨­ «¥¦¨â ¢­ãâਠ¤à㣮£®. (“ª § ­¨¥. „¢¨£ ¥¬ £®à¨§®­â «ì­ãî
¯àï¬ãî á­¨§ã ¢¢¥àå ¨ ᬮâਬ, ª ª ¬¥­ï¥âáï ¥ñ ¯¥à¥á¥ç¥­¨¥ á ¯àאַ㣮«ì­¨ª ¬¨.)
‡ ¤ ç¨
15-1 ’®çª ¬ ªá¨¬ «ì­®© ªà â­®áâ¨
Œë å®â¨¬ á«¥¤¨âì § â®çª®© ¬ ªá¨¬ «ì­®© ªà â­®á⨠(point of
maximum overlap) ¬­®¦¥á⢠¯à®¬¥¦ã⪮¢ | â®çª®©, ª®â®à ï ¯à¨­ ¤«¥¦¨â ¬ ªá¨¬ «ì­®¬ã ç¨á«ã ¯à®¬¥¦ã⪮¢ ¨§ í⮣® ¬­®¦¥á⢠.
Š ª ­ ¬ ®¡­®¢«ïâì ¨­ä®à¬ æ¨î ®¡ í⮩ â®çª¥ ¯à¨ ¤®¡ ¢«¥­¨¨ ¨
㤠«¥­¨¨ í«¥¬¥­â ?
294
ƒ« ¢ 15 ®¯®«­¥­¨¥ áâàãªâãà ¤ ­­ëå
15-2 „¥â᪠ï áç¨â «ª ‡ ¤ ç ® ¤¥â᪮© áç¨â «ª¥ (Josephus problem) á®á⮨⠢ á«¥¤ãî-
饬. ”¨ªá¨à㥬 ¤¢ ç¨á« m ¨ n (m 6 n). ‚­ ç «¥ n ¤¥â¥© áâ®ïâ
¯® ªàã£ã.  ç ¢ á ª®£®-â®, ¬ë áç¨â ¥¬ "¯¥à¢ë©, ¢â®à®©, âà¥_ ⮫쪮 ¤®å®¤¨¬ ¤® m-£®, ®­ ¢ë室¨â ¨§ ªà㣠, ¨ áçñâ
⨩..."Š ª
¯à®¤®«¦ ¥âáï ¤ «ìè¥ ¯® ªàã£ã 㦥 ¡¥§ ­¥£® (­ 稭 ï á ¥¤¨­¨æë).
’ ª ¯à®¤®«¦ ¥âáï, ¯®ª ­¥ ®áâ ­¥âáï ஢­® ®¤¨­ 祫®¢¥ª.  á ¡ã¤¥â ¨­â¥à¥á®¢ âì § ¢¨áïé ï ®â n ¨ m ¯®á«¥¤®¢ ⥫쭮áâì ((n; m)Josephus permutation), ¢ ª®â®à®© ¤¥â¨ ¢ë室ïâ ¨§ ªà㣠.  ¯à¨¬¥à, ¯à¨ n = 7 ¨ m = 3 ¨áª®¬ ï ¯®á«¥¤®¢ ⥫쭮áâì ¢ë£«ï¤¨â â ª:
h3; 6; 2; 7; 5; 1; 4i.
‡ 䨪á¨à㥬 m.  ¯¨è¨â¥ ¯à®£à ¬¬ã, ª®â®à ï ¯® ¤ ­­®¬ã n
¤ ñâ íâã ¯®á«¥¤®¢ ⥫쭮áâì § ¢à¥¬ï O(n).
¡  ¯¨è¨â¥ ¯à®£à ¬¬ã, ª®â®à ï ¯® ¯à®¨§¢®«ì­ë¬ n ¨ m ¤ ñ⠨᪮¬ãî ¯®á«¥¤®¢ ⥫쭮áâì § ¢à¥¬ï O(n log n).
‡ ¬¥ç ­¨ï
Ž¯¨á ­¨ï ­¥ª®â®àëå ¢¨¤®¢ ¤¥à¥¢ì¥¢ ¯à®¬¥¦ã⪮¢ ¬®¦­® ­ ©â¨
¢ à¥¯ à â ¨ ˜ ¬®á [160].  ¨¡®«ì訩 ⥮à¥â¨ç¥áª¨© ¨­â¥à¥á ¯à¥¤áâ ¢«ï¥â §¤¥áì १ã«ìâ â, ª ª®â®à®¬ã ­¥§ ¢¨á¨¬®
¯à¨è«¨ ¤¥«ìá¡àã­­¥à (H. Edelsbrunner, 1980) ¨ Œ ªŠà¥©â
(E. M. McCreight, 1981).  §à ¡®â ­­ ï ¨¬¨ áâàãªâãà ¤ ­­ëå
åà ­¨â n ®â१ª®¢ ¨ ¯®§¢®«ï¥â ¯¥à¥ç¨á«¨âì ⥠¨§ ­¨å, ª®â®àë¥
¯¥à¥ªàë¢ îâáï á § ¤ ­­ë¬ ®â१ª®¬, § ¢à¥¬ï O(k + log n), £¤¥ k
| ª®«¨ç¥á⢮ â ª¨å ®â१ª®¢.
IV
Œ¥â®¤ë ¯®áâ஥­¨ï ¨ ­ «¨§ «£®à¨â¬®¢
‚¢¥¤¥­¨¥
â ç áâì ¯®á¢ï饭 âàñ¬ ¢ ¦­ë¬ ¬¥â®¤ ¬ ¯®áâ஥­¨ï ¨ ­ «¨§ íä䥪⨢­ëå «£®à¨â¬®¢: ¤¨­ ¬¨ç¥áª®¬ã ¯à®£à ¬¬¨à®¢ ­¨î
(£« ¢ 16), ¦ ¤­ë¬ «£®à¨â¬ ¬ (£« ¢ 17) ¨ ¬®à⨧ 樮­­®¬ã
­ «¨§ã (£« ¢ 18). â¨ ¬¥â®¤ë, ¢®§¬®¦­®, çãâì á«®¦­¥¥ à §®¡à ­­ëå à ­¥¥ ("à §¤¥«ï© ¨ ¢« áâ¢ã©", ¨á¯®«ì§®¢ ­¨¥ á«ãç ©­ëå ç¨á¥«, à¥è¥­¨¥ ४ãà७â­ëå ᮮ⭮襭¨©), ­® ­¥ ¬¥­¥¥ ¢ ¦­ë.
„¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥ ®¡ëç­® ¯à¨¬¥­ï¥âáï ª § ¤ ç ¬, ¢ ª®â®àëå ¨áª®¬ë© ®â¢¥â á®á⮨⠨§ ç á⥩, ª ¦¤ ï ¨§ ª®â®àëå ¢ á¢®î ®ç¥à¥¤ì ¤ ñâ ®¯â¨¬ «ì­®¥ à¥è¥­¨¥ ­¥ª®â®à®© ¯®¤§ ¤ ç¨. „¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥ ¯®«¥§­®, ¥á«¨ ­ à §­ëå
¯ãâïå ¬­®£®ªà â­® ¢áâà¥ç îâáï ®¤­¨ ¨ ⥠¦¥ ¯®¤§ ¤ ç¨; ®á­®¢­®©
â¥å­¨ç¥áª¨© ¯à¨ñ¬ | § ¯®¬¨­ âì à¥è¥­¨ï ¢áâà¥ç îé¨åáï ¯®¤§ ¤ ç ­ á«ãç ©, ¥á«¨ â ¦¥ ¯®¤§ ¤ ç ¢áâà¥â¨âáï ¢­®¢ì.
† ¤­ë¥ «£®à¨â¬ë, ª ª ¨ ¤¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥,
¯à¨¬¥­ïîâáï ¢ â¥å á«ãç ïå, ª®£¤ ¨áª®¬ë© ®¡ê¥ªâ áâநâáï ¯® ç áâï¬. † ¤­ë© «£®à¨â¬ ¤¥« ¥â ­ ª ¦¤®¬ è £¥ "«®ª «ì­® ®¯â¨¬ «ì­ë©" ¢ë¡®à. à®á⮩ ¯à¨¬¥à: áâ à ïáì ­ ¡à âì ¤ ­­ãî á㬬ã
¤¥­¥£ ¬¨­¨¬ «ì­ë¬ ç¨á«®¬ ¬®­¥â, ¬®¦­® ¯®á«¥¤®¢ ⥫쭮 ¡à âì
¬®­¥âë ­ ¨¡®«ì襣® ¢®§¬®¦­®£® ¤®á⮨­á⢠(­¥ ¯à¥¢®á室ï饣®
⮩ á㬬ë, ª®â®àãî ®áâ «®áì ­ ¡à âì).
† ¤­ë© «£®à¨â¬ ®¡ëç­® à ¡®â ¥â £®à §¤® ¡ëáâ॥, 祬 «£®à¨â¬, ®á­®¢ ­­ë© ­ ¤¨­ ¬¨ç¥áª®¬ ¯à®£à ¬¬¨à®¢ ­¨¨. Ž¤­ ª®
¦ ¤­ë© «£®à¨â¬ ¢®¢á¥ ­¥ ¢á¥£¤ ¤ ñâ ®¯â¨¬ «ì­®¥ à¥è¥­¨¥. ‚®
¬­®£¨å § ¤ ç å ¯à¨¬¥­¨¬®áâì ¦ ¤­ëå «£®à¨â¬®¢ 㤠ñâáï ¤®ª § âì á ¯®¬®éìî â ª ­ §ë¢ ¥¬ëå ¬ âந¤®¢, ® ª®â®àëå à á᪠§ ­®
¢ £« ¢¥ 17.
€¬®à⨧ 樮­­ë© ­ «¨§ | íâ® á।á⢮ ­ «¨§ «£®à¨â¬®¢,
¯à®¨§¢®¤ïé¨å ¯®á«¥¤®¢ ⥫쭮áâì ®¤­®â¨¯­ëå ®¯¥à 権. ‚¬¥áâ®
⮣®, çâ®¡ë ®æ¥­¨¢ âì ¢à¥¬ï à ¡®âë ¤«ï ª ¦¤®© ¨§ íâ¨å ®¯¥à 権 ¯® ®â¤¥«ì­®áâ¨, ¬®à⨧ 樮­­ë© ­ «¨§ ®æ¥­¨¢ ¥â á।­¥¥
298
— áâì IV Œ¥â®¤ë ¯®áâ஥­¨ï ¨ ­ «¨§ «£®à¨â¬®¢
¢à¥¬ï à ¡®âë ¢ à áçñ⥠­ ®¤­ã ®¯¥à æ¨î.  §­¨æ ¬®¦¥â ®ª § âìáï áãé¥á⢥­­®©, ¥á«¨ ¤®«£® ¢ë¯®«­ï¥¬ë¥ ®¯¥à 樨 ­¥ ¬®£ãâ
¨¤â¨ ¯®¤àï¤.  á ¬®¬ ¤¥«¥ ¬®à⨧ 樮­­ë© ­ «¨§ | ­¥ ⮫쪮
á।á⢮ ­ «¨§ «£®à¨â¬®¢, ­® ¥é¥ ¨ ¯®¤å®¤ ª à §à ¡®âª¥ «£®à¨â¬®¢: ¢¥¤ì à §à ¡®âª «£®à¨â¬ ¨ ­ «¨§ ᪮à®á⨠¥£® à ¡®âë
â¥á­® á¢ï§ ­ë. ‚ £« ¢¥ 18 ¬ë à á᪠§ë¢ ¥¬ ® âàñå ¬¥â®¤ å ¬®à⨧ 樮­­®£® ­ «¨§ «£®à¨â¬®¢.
16
„¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥
®¤®¡­® ¬¥â®¤ã "à §¤¥«ï© ¨ ¢« áâ¢ã©", ¤¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥ à¥è ¥â § ¤ çã, à §¡¨¢ ï ¥ñ ­ ¯®¤§ ¤ ç¨ ¨ ®¡ê¥¤¨­ïï
¨å à¥è¥­¨ï. Š ª ¬ë ¢¨¤¥«¨ ¢ £« ¢¥ 1, «£®à¨â¬ë ⨯ "à §¤¥«ï©
¨ ¢« áâ¢ã©" ¤¥«ïâ § ¤ çã ­ ­¥§ ¢¨á¨¬ë¥ ¯®¤§ ¤ ç¨, í⨠¯®¤§ ¤ ç¨ | ­ ¡®«¥¥ ¬¥«ª¨¥ ¯®¤§ ¤ ç¨ ¨ â ª ¤ «¥¥, § ⥬ ᮡ¨à îâ
à¥è¥­¨¥ ®á­®¢­®© § ¤ ç¨ "á­¨§ã ¢¢¥àå". „¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥ ¯à¨¬¥­¨¬® ⮣¤ , ª®£¤ ¯®¤§ ¤ ç¨ ­¥ ïîâáï ­¥§ ¢¨á¨¬ë¬¨, ¨­ë¬¨ á«®¢ ¬¨, ª®£¤ ã ¯®¤§ ¤ ç ¥áâì ®¡é¨¥ "¯®¤¯®¤§ ¤ ç¨". ‚ í⮬ á«ãç ¥ «£®à¨â¬ ⨯ "à §¤¥«ï© ¨ ¢« áâ¢ã©" ¡ã¤¥â ¤¥« âì «¨è­îî à ¡®âã, à¥è ï ®¤­¨ ¨ ⥠¦¥ ¯®¤¯®¤§ ¤ ç¨ ¯®
­¥áª®«ìªã à §. €«£®à¨â¬, ®á­®¢ ­­ë© ­ ¤¨­ ¬¨ç¥áª®¬ ¯à®£à ¬¬¨à®¢ ­¨¨, à¥è ¥â ª ¦¤ãî ¨§ ¯®¤§ ¤ ç ¥¤¨­®¦¤ë ¨ § ¯®¬¨­ ¥â
®â¢¥âë ¢ á¯¥æ¨ «ì­®© â ¡«¨æ¥. â® ¯®§¢®«ï¥â ­¥ ¢ëç¨á«ïâì § ­®¢®
®â¢¥â ª 㦥 ¢áâà¥ç ¢è¥©áï ¯®¤§ ¤ ç¥.
‚ ⨯¨ç­®¬ á«ãç ¥ ¤¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥ ¯à¨¬¥­ï¥âáï ª § ¤ ç ¬ ®¯â¨¬¨§ 樨 (optimization problems). “ â ª®© § ¤ ç¨
¬®¦¥â ¡ëâì ¬­®£® ¢®§¬®¦­ëå à¥è¥­¨©; ¨å "ª ç¥á⢮" ®¯à¥¤¥«ï¥âáï §­ 祭¨¥¬ ª ª®£®-â® ¯ à ¬¥âà , ¨ âॡã¥âáï ¢ë¡à âì ®¯â¨¬ «ì­®¥ à¥è¥­¨¥, ¯à¨ ª®â®à®¬ §­ 祭¨¥ ¯ à ¬¥âà ¡ã¤¥â ¬¨­¨¬ «ì­ë¬ ¨«¨ ¬ ªá¨¬ «ì­ë¬ (¢ § ¢¨á¨¬®á⨠®â ¯®áâ ­®¢ª¨ § ¤ ç¨). ‚®®¡é¥ £®¢®àï, ®¯â¨¬ã¬ ¬®¦¥â ¤®á⨣ âìáï ¤«ï ­¥áª®«ìª¨å
à §­ëå à¥è¥­¨©.
Š ª áâநâáï «£®à¨â¬, ®á­®¢ ­­ë© ­ ¤¨­ ¬¨ç¥áª®¬ ¯à®£à ¬¬¨à®¢ ­¨¨?  ¤®:
1. ®¯¨á âì áâàãªâãàã ®¯â¨¬ «ì­ëå à¥è¥­¨©,
2. ¢ë¯¨á âì ४ãà७⭮¥ ᮮ⭮襭¨¥, á¢ï§ë¢ î饥 ®¯â¨¬ «ì­ë¥
§­ 祭¨ï ¯ à ¬¥âà ¤«ï ¯®¤§ ¤ ç,
3. ¤¢¨£ ïáì á­¨§ã ¢¢¥àå, ¢ëç¨á«¨âì ®¯â¨¬ «ì­®¥ §­ 祭¨¥ ¯ à ¬¥âà ,
4. ¯®«ì§ãïáì ¯®«ã祭­®© ¨­ä®à¬ 樥©, ¯®áâநâì ®¯â¨¬ «ì­®¥ à¥è¥­¨¥.
Žá­®¢­ãî ç áâì à ¡®âë á®áâ ¢«ïîâ è £¨ 1{3. …᫨ ­ á ¨­â¥à¥áã¥â ⮫쪮 ®¯â¨¬ «ì­®¥ §­ 祭¨¥ ¯ à ¬¥âà , è £ 4 ­¥ ­ã¦¥­. …᫨
300
ƒ« ¢ 16 „¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥
¦¥ è £ 4 ­¥®¡å®¤¨¬, ¤«ï ¯®áâ஥­¨ï ®¯â¨¬ «ì­®£® à¥è¥­¨ï ¨­®£¤ ¯à¨å®¤¨âáï ¯®«ãç âì ¨ åà ­¨âì ¤®¯®«­¨â¥«ì­ãî ¨­ä®à¬ æ¨î
¢ ¯à®æ¥áᥠ¢ë¯®«­¥­¨ï è £ 3.
‚ í⮩ £« ¢¥ ¬ë à¥è¨¬ ­¥áª®«ìª® ®¯â¨¬¨§ 樮­­ëå § ¤ ç á ¯®¬®éìî ¤¨­ ¬¨ç¥áª®£® ¯à®£à ¬¬¨à®¢ ­¨ï. ‚ à §¤¥«¥ 16.1 ¬ë ¢ëïá­¨¬, ª ª ­ ©â¨ ¯à®¨§¢¥¤¥­¨¥ ­¥áª®«ìª¨å ¬ âà¨æ, ᤥ« ¢ ª ª ¬®¦­®
¬¥­ìè¥ ã¬­®¦¥­¨©. ‚ à §¤¥«¥ 16.2 ¬ë ®¡á㤨¬, ª ª¨¥ ᢮©á⢠§ ¤ ç¨ ¤¥« îâ ¢®§¬®¦­ë¬ ¯à¨¬¥­¥­¨¥ ¤¨­ ¬¨ç¥áª®£® ¯à®£à ¬¬¨à®¢ ­¨ï. ®á«¥ í⮣® ¬ë à á᪠¦¥¬ (¢ à §¤¥«¥ 16.3), ª ª ­ ©â¨
­ ¨¡®«ìèãî ®¡éãî ¯®¤¯®á«¥¤®¢ ⥫쭮áâì ¤¢ãå ¯®á«¥¤®¢ ⥫쭮á⥩.  ª®­¥æ, ¢ à §¤¥«¥ 16.4 ¬ë ¢®á¯®«ì§ã¥¬áï ¤¨­ ¬¨ç¥áª¨¬ ¯à®£à ¬¬¨à®¢ ­¨¥¬ ¤«ï ­ 宦¤¥­¨ï ®¯â¨¬ «ì­®© âਠ­£ã«ï樨 ¢ë¯ãª«®£® ¬­®£®ã£®«ì­¨ª . (“¤¨¢¨â¥«ì­ë¬ ®¡à §®¬ íâ § ¤ ç ®ª §ë¢ ¥âáï ¯®å®¦¥© ­ § ¤ çã ® ¯¥à¥¬­®¦¥­¨¨ ­¥áª®«ìª¨å ¬ âà¨æ.)
16.1 ¥à¥¬­®¦¥­¨¥ ­¥áª®«ìª¨å ¬ âà¨æ
Œë å®â¨¬ ­ ©â¨ ¯à®¨§¢¥¤¥­¨¥
A1A2 : : :An
(16.1)
¯®á«¥¤®¢ ⥫쭮á⨠n ¬ âà¨æ hA1; A2; : : :; Ani. Œë ¡ã¤¥¬ ¯®«ì§®¢ âìáï áâ ­¤ àâ­ë¬ «£®à¨â¬®¬ ¯¥à¥¬­®¦¥­¨ï ¤¢ãå ¬ âà¨æ
¢ ª ç¥á⢥ ¯®¤¯à®£à ¬¬ë. ® ¯à¥¦¤¥ ­ ¤® à ááâ ¢¨âì ᪮¡ª¨
¢ (16.1), ç⮡ë 㪠§ âì ¯®à冷ª 㬭®¦¥­¨©. ã¤¥¬ £®¢®à¨âì, çâ®
¢ ¯à®¨§¢¥¤¥­¨¨ ¬ âà¨æ ¯®«­®áâìî à ááâ ¢«¥­ë ᪮¡ª¨ (product is
fully parenthesized), ¥á«¨ íâ® ¯à®¨§¢¥¤¥­¨¥ «¨¡® á®á⮨⠨§ ®¤­®©¥¤¨­á⢥­­®© ¬ âà¨æë, «¨¡® ï¥âáï § ª«î祭­ë¬ ¢ ᪮¡ª¨ ¯à®¨§¢¥¤¥­¨¥¬ ¤¢ãå ¯à®¨§¢¥¤¥­¨© á ¯®«­®áâìî à ááâ ¢«¥­­ë¬¨ ᪮¡ª ¬¨. ®áª®«ìªã 㬭®¦¥­¨¥ ¬ âà¨æ áá®æ¨ ⨢­®, ª®­¥ç­ë© १ã«ìâ â ¢ëç¨á«¥­¨© ­¥ § ¢¨á¨â ®â à ááâ ­®¢ª¨ ᪮¡®ª.  ¯à¨¬¥à,
¢ ¯à®¨§¢¥¤¥­¨¨ A1A2A3A4 ¬®¦­® ¯®«­®áâìî à ááâ ¢¨âì ᪮¡ª¨ ¯ïâìî à §­ë¬¨ ᯮᮡ ¬¨:
(A1(A2 (A3A4 ))); (A1((A2A3 )A4 )); ((A1A2 )(A3A4 ));
((A1(A2 A3 ))A4); (((A1A2 )A3)A4 );
¢® ¢á¥å á«ãç ïå ®â¢¥â ¡ã¤¥â ®¤¨­ ¨ â®â ¦¥.
¥ ¢«¨ïï ­ ®â¢¥â, ᯮᮡ à ááâ ­®¢ª¨ ᪮¡®ª ¬®¦¥â ᨫ쭮 ¯®¢«¨ïâì ­ á⮨¬®áâì ¯¥à¥¬­®¦¥­¨ï ¬ âà¨æ. ®á¬®âਬ á­ ç « ,
᪮«ìª® ®¯¥à 権 âॡã¥â ¯¥à¥¬­®¦¥­¨¥ ¤¢ãå ¬ âà¨æ. ‚®â áâ ­¤ àâ­ë© «£®à¨â¬ (rows ¨ columns ®¡®§­ ç îâ ª®«¨ç¥á⢮ áâப ¨
á⮫¡æ®¢ ¬ âà¨æë ᮮ⢥âá⢥­­®):
¥à¥¬­®¦¥­¨¥ ­¥áª®«ìª¨å ¬ âà¨æ
301
Matrix-Multiply(A; B )
1 if columns[A] 6= rows[B ]
2 then error "㬭®¦¨âì ­¥«ì§ï"
3 else for i 1 to rows[A]
4
do for j 1 to columns[B ]
5
do C [i; j ] 0
6
for k 1 to columns[A]
7
do C [i; j ] C [i; j ] + A[i; k] B [k; j ]
8
return C
Œ âà¨æë A ¨ B ¬®¦­® ¯¥à¥¬­®¦ âì, ⮫쪮 ¥á«¨ ç¨á«® á⮫¡æ®¢
ã A à ¢­® ç¨á«ã áâப ã B. …᫨ A | íâ® p q-¬ âà¨æ , B | íâ®
q r-¬ âà¨æ , â® ¨å ¯à®¨§¢¥¤¥­¨¥ C ï¥âáï p r-¬ âà¨æ¥©. à¨
¢ë¯®«­¥­¨¨ í⮣® «£®à¨â¬ ¤¥« ¥âáï pqr 㬭®¦¥­¨© (áâப 7) ¨
¯à¨¬¥à­® á⮫쪮 ¦¥ á«®¦¥­¨©. „«ï ¯à®áâ®âë ¬ë ¡ã¤¥¬ ãç¨âë¢ âì
⮫쪮 㬭®¦¥­¨ï. [‚ £« ¢¥ 31 ¯à¨¢¥¤ñ­ «£®à¨â¬ ˜âà áᥭ , âॡãî騩 ¬¥­ì襣® ç¨á« 㬭®¦¥­¨©. ‚ í⮩ £« ¢¥ ¬ë ¯à¨­¨¬ ¥¬
ª ª ¤ ­­®áâì ¯à®á⥩訩 ᯮᮡ 㬭®¦¥­¨ï ¬ âà¨æ ¨ ¨é¥¬ ®¯â¨¬ã¬ § áçñâ à ááâ ­®¢ª¨ ᪮¡®ª.]
—⮡ë 㢨¤¥âì, ª ª à ááâ ­®¢ª ᪮¡®ª ¬®¦¥â ¢«¨ïâì ­ á⮨¬®áâì, à áᬮâਬ ¯®á«¥¤®¢ ⥫쭮áâì ¨§ âà¥å ¬ âà¨æ hA1; A2; A3i
à §¬¥à®¢ 10 100, 100 5 ¨ 5 50 ᮮ⢥âá⢥­­®. à¨ ¢ëç¨á«¥­¨¨ ((A1A2)A3) ­ã¦­® 10 100 5 = 5000 㬭®¦¥­¨©, ç⮡ë
­ ©â¨ 10 5-¬ âà¨æã A1A2, § ⥬ 10 5 50 = 2500 㬭®¦¥­¨©,
ç⮡ë 㬭®¦¨âì íâã ¬ âà¨æã ­ A3. ‚ᥣ® 7500 㬭®¦¥­¨©. à¨
à ááâ ­®¢ª¥ ᪮¡®ª (A1(A2A3)) ¬ë ¤¥« ¥¬ 100 5 50 = 25 000
㬭®¦¥­¨© ¤«ï ­ 宦¤¥­¨ï 100 50-¬ âà¨æë A2A3, ¯«îá ¥éñ
10 100 50 = 50 000 㬭®¦¥­¨© (㬭®¦¥­¨¥ A1 ­ A2 A3), ¨â®£®
75 000 㬭®¦¥­¨©. ’¥¬ á ¬ë¬, ¯¥à¢ë© ᯮᮡ à ááâ ­®¢ª¨ ᪮¡®ª
¢ 10 à § ¢ë£®¤­¥¥.
‡ ¤ ç ®¡ 㬭®¦¥­¨¨ ¯®á«¥¤®¢ ⥫쭮á⨠¬ âà¨æ (matrix-chain
multiplication problem) ¬®¦¥â ¡ëâì áä®à¬ã«¨à®¢ ­ á«¥¤ãî騬
®¡à §®¬: ¤ ­ ¯®á«¥¤®¢ ⥫쭮áâì ¨§ n ¬ âà¨æ hA1; A2; : : :; Ani
§ ¤ ­­ëå à §¬¥à®¢ (¬ âà¨æ Ai ¨¬¥¥â à §¬¥à pi;1 pi); âॡã¥âáï ­ ©â¨ â ªãî (¯®«­ãî) à ááâ ­®¢ªã ᪮¡®ª ¢ ¯à®¨§¢¥¤¥­¨¨
A1A2 : : :An , çâ®¡ë ¢ëç¨á«¥­¨¥ ¯à®¨§¢¥¤¥­¨ï âॡ®¢ «® ­ ¨¬¥­ì襣® ç¨á« 㬭®¦¥­¨©.
Š®«¨ç¥á⢮ à ááâ ­®¢®ª ᪮¡®ª
à¥¦¤¥ 祬 ¯à¨¬¥­ïâì ¤¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥ ª § ¤ ç¥ ®¡ 㬭®¦¥­¨¨ ¯®á«¥¤®¢ ⥫쭮á⨠¬ âà¨æ, á⮨â ã¡¥¤¨âìáï,
çâ® ¯à®á⮩ ¯¥à¥¡®à ¢á¥å ¢®§¬®¦­ëå à ááâ ­®¢®ª ᪮¡®ª ­¥ ¤ áâ
íä䥪⨢­®£® «£®à¨â¬ . Ž¡®§­ 稬 ᨬ¢®«®¬ P (n) ª®«¨ç¥á⢮
¯®«­ëå à ááâ ­®¢®ª ᪮¡®ª ¢ ¯à®¨§¢¥¤¥­¨¨ n ¬ âà¨æ. ®á«¥¤­¥¥
302
ƒ« ¢ 16 „¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥
㬭®¦¥­¨¥ ¬®¦¥â ¯à®¨á室¨âì ­ £à ­¨æ¥ ¬¥¦¤ã k-© ¨ (k + 1)-©
¬ âà¨æ ¬¨. „® í⮣® ¬ë ®â¤¥«ì­® ¢ëç¨á«ï¥¬ ¯à®¨§¢¥¤¥­¨¥ ¯¥à¢ëå k ¨ ®áâ «ì­ëå n ; k ¬ âà¨æ. ®í⮬ã
8
<
1;
¥á«¨ n = 1,
;1
P (n) = : nP
P (k)P (n ; k); ¥á«¨ n > 2.
k=1
‚ § ¤ ç¥ 13-4 ¬ë ¯à®á¨«¨ ¢ á ¤®ª § âì, çâ® í⮠ᮮ⭮襭¨¥ § ¤ ñâ
¯®á«¥¤®¢ ⥫쭮áâì ç¨á¥« Š â « ­ P (n) = C (n ; 1);
£¤¥
C (n) = n +1 1 C2nn = (4n=n3=2):
‘â «® ¡ëâì, ç¨á«® à¥è¥­¨© íªá¯®­¥­æ¨ «ì­® § ¢¨á¨â ®â n, â ª çâ®
¯®«­ë© ¯¥à¥¡®à ­¥íä䥪⨢¥­. [„à㣮© ᯮᮡ ¯®­ïâì, çâ® ç¨á«®
¢ ਠ­â®¢ íªá¯®­¥­æ¨ «ì­®: à §®¡ìñ¬ ¬ âà¨æë ­ £àã¯¯ë ¯® âà¨;
¯à®¨§¢¥¤¥­¨¥ ¤«ï ª ¦¤®© £àã¯¯ë ¬®¦­® ¢ëç¨á«¨âì ¤¢ã¬ï ᯮᮡ ¬¨, â ª çâ® ¤«ï 3n ¬ âà¨æ ¥áâì ­¥ ¬¥­¥¥ 2n ¢ ਠ­â®¢.]
˜ £ 1: áâ஥­¨¥ ®¯â¨¬ «ì­®© à ááâ ­®¢ª¨ ᪮¡®ª
…᫨ ¬ë ᮡ¨à ¥¬áï ¢®á¯®«ì§®¢ âìáï ¤¨­ ¬¨ç¥áª¨¬ ¯à®£à ¬¬¨à®¢ ­¨¥¬, â® ¤«ï ­ ç « ¤®«¦­ë ®¯¨á âì áâ஥­¨¥ ®¯â¨¬ «ì­ëå
à¥è¥­¨©. „«ï § ¤ ç¨ ®¡ 㬭®¦¥­¨¨ ¯®á«¥¤®¢ ⥫쭮á⨠¬ âà¨æ íâ®
¢ë£«ï¤¨â á«¥¤ãî騬 ®¡à §®¬. Ž¡®§­ 稬 ¤«ï 㤮¡á⢠ç¥à¥§ Ai::j
¬ âà¨æã, ïîéãîáï ¯à®¨§¢¥¤¥­¨¥¬ AiAi+1 : : :Aj . Ž¯â¨¬ «ì­ ï
à ááâ ­®¢ª ᪮¡®ª ¢ ¯à®¨§¢¥¤¥­¨¨ A1A2 : : :An à §àë¢ ¥â ¯®á«¥¤®¢ ⥫쭮áâì ¬¥¦¤ã Ak ¨ Ak+1 ¤«ï ­¥ª®â®à®£® k, 㤮¢«¥â¢®àïî饣®
­¥à ¢¥­áâ¢ã 1 6 k < n. ˆ­ë¬¨ á«®¢ ¬¨, ¯à¨ ¢ëç¨á«¥­¨¨ ¯à®¨§¢¥¤¥­¨ï, ¤¨ªâ㥬®¬ í⮩ à ááâ ­®¢ª®© ᪮¡®ª, ¬ë á­ ç « ¢ëç¨á«ï¥¬
¯à®¨§¢¥¤¥­¨ï A1::k ¨ Ak+1::n , § ⥬ ¯¥à¥¬­®¦ ¥¬ ¨å ¨ ¯®«ãç ¥¬
®ª®­ç ⥫ì­ë© ®â¢¥â A1::n. ‘â «® ¡ëâì, á⮨¬®áâì í⮩ ®¯â¨¬ «ì­®© à ááâ ­®¢ª¨ à ¢­ á⮨¬®á⨠¢ëç¨á«¥­¨ï ¬ âà¨æë A1::k , ¯«îá
á⮨¬®áâì ¢ëç¨á«¥­¨ï ¬ âà¨æë Ak+1::n, ¯«îá á⮨¬®áâì ¯¥à¥¬­®¦¥­¨ï íâ¨å ¤¢ãå ¬ âà¨æ.
—¥¬ ¬¥­ìè¥ ã¬­®¦¥­¨© ­ ¬ ¯®âॡã¥âáï ¤«ï ¢ëç¨á«¥­¨ï A1::k
¨ Ak+1::n , ⥬ ¬¥­ìè¥ ¡ã¤¥â ®¡é¥¥ ç¨á«® 㬭®¦¥­¨©. ‘â «® ¡ëâì,
®¯â¨¬ «ì­®¥ à¥è¥­¨¥ § ¤ ç¨ ® ¯¥à¥¬­®¦¥­¨¨ ¯®á«¥¤®¢ ⥫쭮áâ¨
¬ âà¨æ ᮤ¥à¦¨â ®¯â¨¬ «ì­ë¥ à¥è¥­¨ï § ¤ ç ® ¯¥à¥¬­®¦¥­¨¨ ¥ñ
ç á⥩. Š ª ¬ë 㢨¤¨¬ ¢ à §¤¥«¥ 16.2, íâ® ¨ ¯®§¢®«ï¥â ¯à¨¬¥­¨âì
¤¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥.
¥à¥¬­®¦¥­¨¥ ­¥áª®«ìª¨å ¬ âà¨æ
303
˜ £ 2: ४ãà७⭮¥ ᮮ⭮襭¨¥
’¥¯¥àì ­ ¤® ¢ëà §¨âì á⮨¬®áâì ®¯â¨¬ «ì­®£® à¥è¥­¨ï § ¤ ç¨
ç¥à¥§ á⮨¬®á⨠®¯â¨¬ «ì­ëå à¥è¥­¨© ¥ñ ¯®¤§ ¤ ç. ’ ª¨¬¨ ¯®¤§ ¤ ç ¬¨ ¡ã¤ãâ § ¤ ç¨ ®¡ ®¯â¨¬ «ì­®© à ááâ ­®¢ª¥ ᪮¡®ª ¢ ¯à®¨§¢¥¤¥­¨ïå Ai::j = AiAi+1 : : :Aj ¤«ï 1 6 i 6 j 6 n. Ž¡®§­ 稬 ç¥à¥§
m[i; j ] ¬¨­¨¬ «ì­®¥ ª®«¨ç¥á⢮ 㬭®¦¥­¨©, ­¥®¡å®¤¨¬®¥ ¤«ï ¢ëç¨á«¥­¨ï ¬ âà¨æë Ai::j ; ¢ ç áâ­®áâ¨, á⮨¬®áâì ¢ëç¨á«¥­¨ï ¢á¥£®
¯à®¨§¢¥¤¥­¨ï A1::n ¥áâì m[1; n].
—¨á« m[i; j ] ¬®¦­® ¢ëç¨á«¨âì â ª. …᫨ i = j , â® ¯®á«¥¤®¢ ⥫쭮áâì á®á⮨⠨§ ®¤­®© ¬ âà¨æë Ai::i = Ai ¨ 㬭®¦¥­¨ï ¢®®¡é¥ ­¥
­ã¦­ë. ‘â «® ¡ëâì, m[i; i] = 0 ¤«ï i = 1; 2; : : :; n. —â®¡ë ¯®áç¨â âì m[i; j ] ¤«ï i < j , ¬ë ¢®á¯®«ì§ã¥¬áï ¨­ä®à¬ 樥© ® áâ஥­¨¨
®¯â¨¬ «ì­®£® à¥è¥­¨ï, ¯®«ã祭­®© ­ è £¥ 1. ãáâì ¯à¨ ®¯â¨¬ «ì­®© à ááâ ­®¢ª¥ ᪮¡®ª ¢ ¯à®¨§¢¥¤¥­¨¨ AiAi+1 : : :Aj ¯®á«¥¤­¨¬ ¨¤¥â 㬭®¦¥­¨¥ Ai : : :Ak ­ Ak+1 : : :Aj , £¤¥ i 6 k < j . ’®£¤ m[i; j ] à ¢­® á㬬¥ ¬¨­¨¬ «ì­ëå á⮨¬®á⥩ ¢ëç¨á«¥­¨ï ¯à®¨§¢¥¤¥­¨© Ai::k ¨ Ak+1::j ¯«îá á⮨¬®áâì ¯¥à¥¬­®¦¥­¨ï íâ¨å ¤¢ãå ¬ âà¨æ. ®áª®«ìªã ¤«ï ¢ëç¨á«¥­¨ï ¯à®¨§¢¥¤¥­¨ï Ai::k Ak+1::j âॡã¥âáï pi;1pk pj 㬭®¦¥­¨©,
m[i; j ] = m[i; k] + m[k + 1; j ] + pi;1 pk pj :
‚ í⮬ ᮮ⭮襭¨¨ ¯®¤à §ã¬¥¢ ¥âáï, çâ® ®¯â¨¬ «ì­®¥ §­ 祭¨¥ k ­ ¬ ¨§¢¥áâ­®; ­ ¤¥«¥ íâ® ­¥ â ª. Ž¤­ ª® ç¨á«® k ¬®¦¥â
¯à¨­¨¬ âì ¢á¥£® «¨èì j ; i à §«¨ç­ëå §­ 祭¨©: i; i + 1; : : :; j ; 1.
®áª®«ìªã ®¤­® ¨§ ­¨å ®¯â¨¬ «ì­®, ¤®áâ â®ç­® ¯¥à¥¡à âì í⨠§­ 祭¨ï k ¨ ¢ë¡à âì ­ ¨«ãç襥. ®«ãç ¥¬ ४ãà७â­ãî ä®à¬ã«ã:
(
0
¯à¨ i = j ,
m[i; j ] = min fm[i; k] + m[k + 1; j ] + pi;1 pk pj g ¯à¨ i < j .
i6k<j
(16.2)
—¨á« m[i; j ] | á⮨¬®á⨠®¯â¨¬ «ì­ëå à¥è¥­¨© ¯®¤§ ¤ ç.
—â®¡ë ¯à®á«¥¤¨âì § ⥬, ª ª ¯®«ãç ¥âáï ®¯â¨¬ «ì­®¥ à¥è¥­¨¥,
®¡®§­ 稬 ç¥à¥§ s[i; j ] ®¯â¨¬ «ì­®¥ ¬¥áâ® ¯®á«¥¤­¥£® 㬭®¦¥­¨ï,
â® ¥áâì â ª®¥ k, çâ® ¯à¨ ®¯â¨¬ «ì­®¬ ¢ëç¨á«¥­¨¨ ¯à®¨§¢¥¤¥­¨ï
AiAi+1 : : :Aj ¯®á«¥¤­¨¬ ¨¤¥â 㬭®¦¥­¨¥ Ai : : :Ak ­ Ak+1 : : :Aj .
ˆ­ë¬¨ á«®¢ ¬¨, s[i; j ] à ¢­® ç¨á«ã k, ¤«ï ª®â®à®£® m[i; j ] = m[i; k]+
m[k + 1; j ] + pi;1pk pj .
˜ £ 3: ¢ëç¨á«¥­¨¥ ®¯â¨¬ «ì­®© á⮨¬®áâ¨
®«ì§ãïáì ᮮ⭮襭¨ï¬¨ (16.2), ⥯¥àì «¥£ª® ­ ¯¨á âì ४ãàᨢ­ë© «£®à¨â¬, ®¯à¥¤¥«ïî騩 ¬¨­¨¬ «ì­ãî á⮨¬®áâì ¢ëç¨á«¥­¨ï ¯à®¨§¢¥¤¥­¨ï A1A2 : : :An (â. ¥. ç¨á«® m[1; n]). Ž¤­ ª® ¢à¥¬ï
304
ƒ« ¢ 16 „¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥
à ¡®âë â ª®£® «£®à¨â¬ íªá¯®­¥­æ¨ «ì­® § ¢¨á¨â ®â n, â ª çâ®
íâ®â «£®à¨â¬ ­¥ «ãçè¥ ¯®«­®£® ¯¥à¥¡®à .  áâ®ï騩 ¢ë¨£àëè
¢® ¢à¥¬¥­¨ ¬ë ¯®«ã稬, ¥á«¨ ¢®á¯®«ì§ã¥¬áï ⥬, çâ® ¯®¤§ ¤ ç ®â­®á¨â¥«ì­® ­¥¬­®£®: ¯® ®¤­®© § ¤ ç¥ ¤«ï ª ¦¤®© ¯ àë (i; j ), ¤«ï
ª®â®à®© 1 6 i 6 j 6 n, ¢á¥£® Cn2 + n = (n2). ªá¯®­¥­æ¨ «ì­®¥ ¢à¥¬ï à ¡®âë ¢®§­¨ª ¥â ¯®â®¬ã, ç⮠४ãàᨢ­ë© «£®à¨â¬
à¥è ¥â ª ¦¤ãî ¨§ ¯®¤§ ¤ ç ¯® ¬­®£ã à §, ­ à §­ëå ¢¥â¢ïå ¤¥à¥¢ ४ãàᨨ. ’ ª®¥ "¯¥à¥ªàë⨥ ¯®¤§ ¤ ç" | å à ªâ¥à­ë© ¯à¨§­ ª
§ ¤ ç, à¥è ¥¬ëå ¬¥â®¤®¬ ¤¨­ ¬¨ç¥áª®£® ¯à®£à ¬¬¨à®¢ ­¨ï.
‚¬¥á⮠४ãàᨨ ¬ë ¢ëç¨á«¨¬ ®¯â¨¬ «ì­ãî á⮨¬®áâì "á­¨§ã
¢¢¥àå". ‚ ­¨¦¥á«¥¤ãî饩 ¯à®£à ¬¬¥ ¯à¥¤¯®« £ ¥âáï, çâ® ¬ âà¨æ Ai ¨¬¥¥â à §¬¥à pi;1 pi ¯à¨ i = 1; 2; : : :; n.  ¢å®¤ ¯®¤ ñâáï ¯®á«¥¤®¢ ⥫쭮áâì p = hp0; p1; : : :; pni, £¤¥ length[p] = n + 1. à®£à ¬¬ ¨á¯®«ì§ã¥â ¢á¯®¬®£ ⥫ì­ë¥ â ¡«¨æë m[1 : :n; 1 : :n] (¤«ï åà ­¥­¨ï
á⮨¬®á⥩ m[i; j ]) ¨ s[1 : :n; 1 : :n] (¢ ­¥© ®â¬¥ç ¥âáï, ¯à¨ ª ª®¬ k
¤®á⨣ ¥âáï ®¯â¨¬ «ì­ ï á⮨¬®áâì ¯à¨ ¢ëç¨á«¥­¨¨ m[i; j ]).
Matrix-Chain-Order(p)
1 n length[p] ; 1
2 for i 1 to n
3
do m[i; i] 0
4 for l 2 to n
5
do for i 1 to n ; l + 1
6
do j i + l ; 1
7
m[i; j ] 1
8
for k i to j ; 1
9
do q m[i; k] + m[k + 1; j ] + pi;1 pk pj
10
if q < m[i; j ]
11
then m[i; j ] q
12
s[i; j ] k
13 return m, s
‡ ¯®«­ïï â ¡«¨æã m, íâ®â «£®à¨â¬ ¯®á«¥¤®¢ ⥫쭮 à¥è ¥â § ¤ ç¨ ®¡ ®¯â¨¬ «ì­®© à ááâ ­®¢ª¥ ᪮¡®ª ¤«ï ®¤­®£®, ¤¢ãå, : : : ,
n ᮬ­®¦¨â¥«¥©. ‚ á ¬®¬ ¤¥«¥, ᮮ⭮襭¨¥ (16.2) ¯®ª §ë¢ ¥â, çâ®
ç¨á«® m[i; j ] | á⮨¬®áâì ¯¥à¥¬­®¦¥­¨ï j ; i + 1 ¬ âà¨æ | § ¢¨á¨â ⮫쪮 ®â á⮨¬®á⥩ ¬¥­ì襣® (祬 j ; i + 1) ç¨á« ¬ âà¨æ.
ˆ¬¥­­®, ¤«ï k = i; i + 1; : : :; j ; 1 ¯®«ãç ¥âáï, çâ® Ai::k | ¯à®¨§¢¥¤¥­¨¥ k ; i + 1 < j ; i + 1 ¬ âà¨æ, Ak+1::j | ¯à®¨§¢¥¤¥­¨¥
j ; k < j ; i + 1 ¬ âà¨æ.
‘­ ç « (¢ áâப å 2{3) «£®à¨â¬ ¢ë¯®«­ï¥â ¯à¨á¢ ¨¢ ­¨ï
m[i; i] 0 ¤«ï i = 1; 2; : : :; n: á⮨¬®áâì ¯¥à¥¬­®¦¥­¨ï ¯®á«¥¤®¢ ⥫쭮á⨠¨§ ®¤­®© ¬ âà¨æë à ¢­ ­ã«î. à¨ ¯¥à¢®¬ ¨á¯®«­¥­¨¨
横« (áâப¨ 4{12) ¢ëç¨á«ïîâáï (á ¯®¬®éìî ᮮ⭮襭¨© (16.2))
§­ 祭¨ï m[i; i + 1] ¤«ï i = 1; 2; : : :; n ; 1 | íâ® ¬¨­¨¬ «ì­ë¥ á⮨¬®á⨠¤«ï ¯®á«¥¤®¢ ⥫쭮á⥩ ¤«¨­ë 2. à¨ ¢â®à®¬ ¯à®å®¤¥ ¢ëç¨-
¥à¥¬­®¦¥­¨¥ ­¥áª®«ìª¨å ¬ âà¨æ
305
¨áã­®ª 16.1 ’ ¡«¨æë m ¨ s, ¢ëç¨á«ï¥¬ë¥ ¯à®æ¥¤ãன Matrix-Chain-Order
¤«ï n = 6 ¨ ¬ âà¨æ á«¥¤ãî饣® à §¬¥à :
¬ âà¨æ à §¬¥à
A1
30 35
A2
35 15
A3
15 5
A4
5 10
A5
10 20
A6
20 25
’ ¡«¨æë ¯®¢ñà­ãâë â ª, çâ® £« ¢­ ï ¤¨ £®­ «ì £®à¨§®­â «ì­ . ‚ â ¡«¨æ¥ m
¨á¯®«ì§ãîâáï ⮫쪮 ª«¥âª¨, «¥¦ 騥 ­¥ ­¨¦¥ £« ¢­®© ¤¨ £®­ «¨, ¢ â ¡«¨æ¥ s
| ⮫쪮 ª«¥âª¨, «¥¦ 騥 áâண® ¢ëè¥. Œ¨­¨¬ «ì­®¥ ª®«¨ç¥á⢮ 㬭®¦¥­¨©,
­¥®¡å®¤¨¬®¥ ¤«ï ¯¥à¥¬­®¦¥­¨ï ¢á¥å è¥á⨠¬ âà¨æ, à ¢­® m[1; 6] = 15 125.  àë
ª«¥â®ç¥ª, § èâà¨å®¢ ­­ëå ®¤¨­ ª®¢®© ᢥ⫮© èâà¨å®¢ª®©, ᮢ¬¥áâ­® ¢å®¤ïâ
¢ ¯à ¢ãî ç áâì ä®à¬ã«ë ¢ ¯à®æ¥áᥠ¢ëç¨á«¥­¨ï m[2; 5] (áâப 9 ¯à®æ¥¤ãàë
Matrix-Chain-Order
8 ):
>
< m[2; 2] + m[3; 5] + p1 p2 p5 = 0 + 2500 + 35 15 20 = 13000;
m[2; 5] = min > m[2; 3] + m[4; 5] + p1 p3 p5 = 2625 + 1000 + 35 5 20 = 7125;
: m[2; 4] + m[5; 5] + p1 p4 p5 = 4375 + 0 + 35 10 20 = 11375:
á«ïîâáï m[i; i +2] ¤«ï i = 1; 2; : : :; n ; 2 | ¬¨­¨¬ «ì­ë¥ á⮨¬®áâ¨
¯¥à¥¬­®¦¥­¨ï ¯®á«¥¤®¢ ⥫쭮á⥩ ¤«¨­ë 3, ¨ â ª ¤ «¥¥.  ª ¦¤®¬ è £¥ §­ 祭¨¥ m[i; j ], ¢ëç¨á«ï¥¬®¥ ¢ áâப å 9{12, § ¢¨á¨â
⮫쪮 ®â ¢ëç¨á«¥­­ëå à ­¥¥ §­ 祭¨© m[i; k] ¨ m[k + 1; j ].
 à¨á. 16.1 ¯®ª § ­®, ª ª íâ® ¯à®¨á室¨â ¯à¨ n = 6. ®áª®«ìªã
¬ë ®¯à¥¤¥«ï¥¬ m[i; j ] ⮫쪮 ¤«ï i 6 j , ¨á¯®«ì§ã¥âáï ç áâì â ¡«¨æë, «¥¦ é ï ­ ¤ £« ¢­®© ¤¨ £®­ «ìî.  à¨áã­ª¥ â ¡«¨æë ¯®¢ñà­ãâë (£« ¢­ ï ¤¨ £®­ «ì £®à¨§®­â «ì­ ). ‚­¨§ã ¢ë¯¨á ­ ¯®á«¥¤®¢ ⥫쭮áâì ¬ âà¨æ. —¨á«® m[i; j ] | ¬¨­¨¬ «ì­ ï á⮨¬®áâì
¯¥à¥¬­®¦¥­¨ï ¯®¤¯®á«¥¤®¢ ⥫쭮á⨠AiAi+1 : : :Aj | ­ 室¨âáï ­ ¯¥à¥á¥ç¥­¨¨ ¤¨ £®­ «¥©, ¨¤ãé¨å ¢¯à ¢®-¢¢¥àå ®â ¬ âà¨æë Ai ¨
¢«¥¢®-¢¢¥àå ®â ¬ âà¨æë Aj . ‚ ª ¦¤®¬ £®à¨§®­â «ì­®¬ àï¤ã á®¡à ­ë á⮨¬®á⨠¯¥à¥¬­®¦¥­¨ï ¯®¤¯®á«¥¤®¢ ⥫쭮á⥩ 䨪á¨à®¢ ­­®© ¤«¨­ë. „«ï § ¯®«­¥­¨ï ª«¥âª¨ m[i; j ] ­ã¦­® §­ âì ¯à®¨§¢¥¤¥­¨ï pi;1pk pj ¤«ï k = i; i + 1; : : :; j ; 1 ¨ ᮤ¥à¦¨¬®¥ ª«¥â®ª,
«¥¦ é¨å á«¥¢ -¢­¨§ã ¨ á¯à ¢ -¢­¨§ã ®â m[i; j ].
306
ƒ« ¢ 16 „¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥
à®áâ ï ®æ¥­ª ¯®ª §ë¢ ¥â, çâ® ¢à¥¬ï à ¡®âë «£®à¨â¬ Matrix-Chain-Order ¥áâì O(n3 ). ‚ á ¬®¬ ¤¥«¥, ç¨á«® ¢«®¦¥­­ëå
横«®¢ à ¢­® âàñ¬, ¨ ª ¦¤ë© ¨§ ¨­¤¥ªá®¢ l, i ¨ k ¯à¨­¨¬ ¥â
­¥ ¡®«¥¥ n §­ 祭¨©. ‚ ã¯à ¦­¥­¨¨ 16.1-3 ¬ë ¯à¥¤«®¦¨¬ ¢ ¬
¯®ª § âì, çâ® ¢à¥¬ï à ¡®âë í⮣® «£®à¨â¬ ¥áâì (n3). Ž¡êñ¬
¯ ¬ïâ¨, ­¥®¡å®¤¨¬ë© ¤«ï åà ­¥­¨ï â ¡«¨æ m ¨ s, ¥áâì (n2). ’¥¬
á ¬ë¬ íâ®â «£®à¨â¬ §­ ç¨â¥«ì­® íä䥪⨢­¥¥, 祬 âॡãî騩
íªá¯®­¥­æ¨ «ì­®£® ¢à¥¬¥­¨ ¯¥à¥¡®à ¢á¥å à ááâ ­®¢®ª.
˜ £ 4: ¯®áâ஥­¨¥ ®¯â¨¬ «ì­®£® à¥è¥­¨ï
€«£®à¨â¬ Matrix-Chain-Order ­ 室¨â ¬¨­¨¬ «ì­®¥ ç¨á«®
㬭®¦¥­¨©, ­¥®¡å®¤¨¬®¥ ¤«ï ¯¥à¥¬­®¦¥­¨ï ¯®á«¥¤®¢ ⥫쭮áâ¨
¬ âà¨æ. Žáâ «®áì ­ ©â¨ à ááâ ­®¢ªã ᪮¡®ª, ¯à¨¢®¤ïéãî ª â ª®¬ã
ç¨á«ã 㬭®¦¥­¨©.
„«ï í⮣® ¬ë ¨á¯®«ì§ã¥¬ â ¡«¨æã s[1 : :n; 1 : :n]. ‚ ª«¥âª¥ s[i; j ]
§ ¯¨á ­® ¬¥áâ® ¯®á«¥¤­¥£® 㬭®¦¥­¨ï ¯à¨ ®¯â¨¬ «ì­®© à ááâ ­®¢ª¥ ᪮¡®ª; ¤à㣨¬¨ á«®¢ ¬¨, ¯à¨ ®¯â¨¬ «ì­®¬ ᯮᮡ¥
¢ëç¨á«¥­¨ï A1::n ¯®á«¥¤­¨¬ ¨¤ñâ 㬭®¦¥­¨¥ A1::s[1;n] ­ As[1;n]+1::n.
à¥¤è¥áâ¢ãî騥 㬭®¦¥­¨ï ¬®¦­® ­ ©â¨ ४ãàᨢ­®: §­ 祭¨¥ s[1; s[1; n]] ®¯à¥¤¥«ï¥â ¯®á«¥¤­¥¥ 㬭®¦¥­¨¥ ¯à¨ ­ 宦¤¥­¨¨ A1::s[1;n], s[s[1; n] + 1; n] ®¯à¥¤¥«ï¥â ¯®á«¥¤­¥¥ 㬭®¦¥­¨¥ ¯à¨
¢ëç¨á«¥­¨¨ As[1;n]+1::n . à¨¢¥¤ñ­­ ï ­¨¦¥ ४ãàᨢ­ ï ¯à®æ¥¤ãà ¢ëç¨á«ï¥â ¯à®¨§¢¥¤¥­¨¥ Ai::j , ¨¬¥ï á«¥¤ãî騥 ¤ ­­ë¥: ¯®á«¥¤®¢ ⥫쭮áâì ¬ âà¨æ A = hA1; A2; : : :; Ani, â ¡«¨æã s, ­ ©¤¥­­ãî
¯à®æ¥¤ãன Matrix-Chain-Order, â ª¦¥ ¨­¤¥ªáë i ¨ j . à®¨§¢¥¤¥­¨¥ A1A2 : : :An à ¢­® Matrix-Chain-Multiply(A; s; 1; n).
Matrix-Chain-Multiply(A; s; i; j )
1 if j > i
2 then X Matrix-Chain-Multiply(A; s; i; s[i; j ])
3
Y Matrix-Chain-Multiply(A; s; s[i; j ] + 1; j )
4
return Matrix-Multiply(X; Y )
5 else return Ai
‚ ¯à¨¬¥à¥ ­ à¨á. 16.1 ¢ë§®¢ Matrix-Chain-Multiply(A; s; 1; 6)
¢ëç¨á«¨â ¯à®¨§¢¥¤¥­¨¥ è¥á⨠¬ âà¨æ ¢ ᮮ⢥âá⢨¨ á à ááâ ­®¢ª®© ᪮¡®ª
((A1(A2 A3 ))((A4A5 )A6 )):
(16.3)
[’¥å­¨ç¥áª®¥ § ¬¥ç ­¨¥: á«¥¤ã¥â ¯®§ ¡®â¨âìáï, çâ®¡ë ¯à¨ ¯¥à¥¤ ç¥
¬ áᨢ s ¢ ¯à®æ¥¤ãàã ­¥ ¯à®¨á室¨«® ª®¯¨à®¢ ­¨ï.]
Š®£¤ ¯à¨¬¥­¨¬® ¤¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥
307
“¯à ¦­¥­¨ï
 ©¤¨â¥ ®¯â¨¬ «ì­ãî à ááâ ­®¢ªã ¢ § ¤ ç¥ ® ¯¥à¥¬­®¦¥­¨¨ ¬ âà¨æ, ¥á«¨ p = h5; 10; 3; 12; 5; 50; 6i.
16.1-2  §à ¡®â ©â¥ «£®à¨â¬ Print-Optimal-Parens, ¯¥ç â î騩 ®¯â¨¬ «ì­ãî à ááâ ­®¢ªã ᪮¡®ª. (’ ¡«¨æ s 㦥 ¢ëç¨á«¥­ «£®à¨â¬®¬ Matrix-Chain-Order.)
16.1-3 ãáâì R(i; j ) ®¡®§­ ç ¥â ª®«¨ç¥á⢮ ®¡à 饭¨© «£®à¨â¬ Matrix-Chain-Order ª í«¥¬¥­âã m[i; j ] â ¡«¨æë m á 楫ìî ¢ëç¨á«¥­¨ï ¤à㣨å í«¥¬¥­â®¢ â ¡«¨æë [áâப 9]. ®ª ¦¨â¥, çâ® ®¡é¥¥
ª®«¨ç¥á⢮ â ª¨å ®¡à 饭¨© à ¢­®
16.1-1
n X
n
X
i=1 j =1
3
R(i; j ) = n 3; n :
P
(“ª § ­¨¥. ‚ ¬ ¬®¦¥â ¯à¨£®¤¨âìáï ä®à¬ã« ni=1 i2 = n(n+1)(2n+
1)=6.)
®ª ¦¨â¥, çâ® ¯®«­ ï à ááâ ­®¢ª ᪮¡®ª ¢ ¯à®¨§¢¥¤¥­¨¨
n ¬­®¦¨â¥«¥© ¨á¯®«ì§ã¥â ஢­® n ; 1 ¯ à ᪮¡®ª.
16.1-4
16.2 Š®£¤ ¯à¨¬¥­¨¬® ¤¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥
‚ í⮬ à §¤¥«¥ ¬ë 㪠¦¥¬ ¤¢ ¯à¨§­ ª , å à ªâ¥à­ëå ¤«ï § ¤ ç,
à¥è ¥¬ëå ¬¥â®¤®¬ ¤¨­ ¬¨ç¥áª®£® ¯à®£à ¬¬¨à®¢ ­¨ï.
Ž¯â¨¬ «ì­®áâì ¤«ï ¯®¤§ ¤ ç
à¨ à¥è¥­¨¨ ®¯â¨¬¨§ 樮­­®© § ¤ ç¨ á ¯®¬®éìî ¤¨­ ¬¨ç¥áª®£®
¯à®£à ¬¬¨à®¢ ­¨ï ­¥®¡å®¤¨¬® á­ ç « ®¯¨á âì áâàãªâãàã ®¯â¨¬ «ì­®£® à¥è¥­¨ï. ã¤¥¬ £®¢®à¨âì, çâ® § ¤ ç ®¡« ¤ ¥â ᢮©á⢮¬
®¯â¨¬ «ì­®á⨠¤«ï § ¤ ç (has optimal substructure), ¥á«¨ ®¯â¨¬ «ì­®¥ à¥è¥­¨¥ § ¤ ç¨ á®¤¥à¦¨â ®¯â¨¬ «ì­ë¥ à¥è¥­¨ï ¥ñ ¯®¤§ ¤ ç.
…᫨ § ¤ ç ®¡« ¤ ¥â í⨬ ᢮©á⢮¬, â® ¤¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥ ¬®¦¥â ®ª § âìáï ¯®«¥§­ë¬ ¤«ï ¥ñ à¥è¥­¨ï (a ¢®§¬®¦­®,
¯à¨¬¥­¨¬ ¨ ¦ ¤­ë© «£®à¨â¬ | á¬. £« ¢ã 17).
‚ à §¤¥«¥ 16.1 ¬ë ¢¨¤¥«¨, çâ® § ¤ ç ¯¥à¥¬­®¦¥­¨ï ¬ âà¨æ ®¡« ¤ ¥â ᢮©á⢮¬ ®¯â¨¬ «ì­®á⨠¤«ï ¯®¤§ ¤ ç: ª ¦¤ ï ᪮¡ª ¢ ®¯â¨¬ «ì­®¬ ¯à®¨§¢¥¤¥­¨¨ 㪠§ë¢ ¥â ®¯â¨¬ «ì­ë© ᯮᮡ ¯¥à¥¬­®¦¥­¨ï ¢å®¤ïé¨å ¢ ­¥ñ ¬ âà¨æ. —⮡ë ã¡¥¤¨âìáï, çâ® § ¤ ç ®¡« ¤ ¥â
í⨬ ᢮©á⢮¬, ­ ¤® (ª ª ¢ à §¤¥«¥ 16.1) ¯®ª § âì, çâ®, ã«ãçè ï
à¥è¥­¨¥ ¯®¤§ ¤ ç¨, ¬ë ã«ãç訬 ¨ à¥è¥­¨¥ ¨á室­®© § ¤ ç¨.
308
ƒ« ¢ 16 „¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥
Š ª ⮫쪮 ᢮©á⢮ ®¯â¨¬ «ì­®á⨠¤«ï ¯®¤§ ¤ ç ãáâ ­®¢«¥­®,
®¡ëç­® áâ ­®¢¨âáï ïá­®, á ª ª¨¬ ¨¬¥­­® ¬­®¦¥á⢮¬ ¯®¤§ ¤ ç ¡ã¤¥â ¨¬¥âì ¤¥«® «£®à¨â¬.  ¯à¨¬¥à, ¤«ï § ¤ ç¨ ® ¯¥à¥¬­®¦¥­¨¨
¯®á«¥¤®¢ ⥫쭮á⨠¬ âà¨æ ¯®¤§ ¤ ç ¬¨ ¡ã¤ãâ § ¤ ç¨ ® ¯¥à¥¬­®¦¥­¨¨ ªã᪮¢ í⮩ ¯®á«¥¤®¢ ⥫쭮áâ¨.
¥à¥ªàë¢ î騥áï ¯®¤§ ¤ ç¨
‚â®à®© ᢮©á⢮ § ¤ ç, ­¥®¡å®¤¨¬®¥ ¤«ï ¨á¯®«ì§®¢ ­¨ï ¤¨­ ¬¨ç¥áª®£® ¯à®£à ¬¬¨à®¢ ­¨ï, | ¬ «®áâì ¬­®¦¥á⢠¯®¤§ ¤ ç. « £®¤ àï í⮬㠯ਠ४ãàᨢ­®¬ à¥è¥­¨¨ § ¤ ç¨ ¬ë ¢áñ ¢à¥¬ï ¢ë室¨¬
­ ®¤­¨ ¨ ⥠¦¥ ¯®¤§ ¤ ç¨. ‚ â ª®¬ á«ãç ¥ £®¢®àïâ, çâ® ã ®¯â¨¬¨§ 樮­­®© § ¤ ç¨ ¨¬¥îâáï ¯¥à¥ªàë¢ î騥áï ¯®¤§ ¤ ç¨ (overlapping
subproblems). ‚ ⨯¨ç­ëå á«ãç ïå ª®«¨ç¥á⢮ ¯®¤§ ¤ ç ¯®«¨­®¬¨ «ì­® § ¢¨á¨â ®â à §¬¥à ¨á室­ëå ¤ ­­ëå.
‚ § ¤ ç å, à¥è ¥¬ëå ¬¥â®¤®¬ "à §¤¥«ï© ¨ ¢« áâ¢ã©", â ª ­¥ ¡ë¢ ¥â: ¤«ï ­¨å ४ãàᨢ­ë© «£®à¨â¬, ª ª ¯à ¢¨«®, ­ ª ¦¤®¬ è £¥
¯®à®¦¤ ¥â ᮢ¥à襭­® ­®¢ë¥ ¯®¤§ ¤ ç¨. €«£®à¨â¬ë, ®á­®¢ ­­ë¥
­ ¤¨­ ¬¨ç¥áª®¬ ¯à®£à ¬¬¨à®¢ ­¨¨, ¨á¯®«ì§ãîâ ¯¥à¥ªàë⨥ ¯®¤§ ¤ ç á«¥¤ãî騬 ®¡à §®¬: ª ¦¤ ï ¨§ ¯®¤§ ¤ ç à¥è ¥âáï ⮫쪮
®¤¨­ à §, ¨ ®â¢¥â § ­®á¨âáï ¢ á¯¥æ¨ «ì­ãî â ¡«¨æã; ª®£¤ íâ ¦¥
¯®¤§ ¤ ç ¢áâà¥ç ¥âáï á­®¢ , ¯à®£à ¬¬ ­¥ âà â¨â ¢à¥¬ï ­ ¥ñ à¥è¥­¨¥, ¡¥àñâ £®â®¢ë© ®â¢¥â ¨§ â ¡«¨æë.
‚¥à­ñ¬áï ¤«ï ¯à¨¬¥à ª § ¤ ç¥ ® ¯¥à¥¬­®¦¥­¨¨ ¯®á«¥¤®¢ ⥫쭮á⨠¬ âà¨æ. ˆ§ à¨áã­ª 16.1 ¢¨¤­®, çâ® à¥è¥­¨¥ ª ¦¤®© ¨§ ¯®¤§ ¤ ç, § ¯¨á ­­®¥ ¢ ¤ ­­®© ª«¥â®çª¥ â ¡«¨æë, ¬­®£®ªà â­® ¨á¯®«ì§ã¥âáï ¯à®æ¥¤ãன Matrix-Chain-Order ¯à¨ à¥è¥­¨¨ ¯®¤§ ¤ ç
¨§ à ᯮ«®¦¥­­ëå ¢ëè¥ ª«¥â®ç¥ª.  ¯à¨¬¥à, m[3; 4] ¨á¯®«ì§ã¥âáï
ç¥âë०¤ë: ¯à¨ ¢ëç¨á«¥­¨¨ m[2; 4], m[1; 4], m[3; 5] ¨ m[3; 6]. ë«®
¡ë ªà ©­¥ ­¥íä䥪⨢­® ¢ëç¨á«ïâì m[3; 4] ¢á直© à § § ­®¢®. ‚ á ¬®¬ ¤¥«¥, à áᬮâਬ á«¥¤ãî騩 (­¥íä䥪⨢­ë©) ४ãàᨢ­ë©
«£®à¨â¬, ®á­®¢ ­­ë© ­¥¯®á।á⢥­­® ­ ᮮ⭮襭¨ïå (16.2) ¨
¢ëç¨á«ïî騩 m[i; j ] | ¬¨­¨¬ «ì­®¥ ª®«¨ç¥á⢮ 㬭®¦¥­¨©, ­¥®¡å®¤¨¬®¥ ¤«ï ¢ëç¨á«¥­¨ï Ai::j = Ai Ai+1 : : :Aj :
Recursive-Matrix-Chain(p; i; j )
1 if i = j
2 then return 0
3 m[i; j ] 1
4 for k i to j ; 1
5
do q Recursive-Matrix-Chain(p; i; k) +
+ Recursive-Matrix-Chain(p; k + 1; j ) + pi;1 pk pj
6
if q < m[i; j ]
7
then m[i; j ] q
8 return m[i; j ]
Š®£¤ ¯à¨¬¥­¨¬® ¤¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥
309
¨áã­®ª 16.2 „¥à¥¢® ४ãàᨨ ¤«ï Recursive-Matrix-Chain (p; 1; 4). ‚ ª ¦¤®©
¢¥à設¥ § ¯¨á ­ë §­ 祭¨ï i ¨ j . ‡ èâà¨å®¢ ­ë "«¨è­¨¥" ¢¥à設ë (¢ëç¨á«¥­¨ï ¢ ª®â®àëå ¯®¢â®àïîâ 㦥 ¯à®¤¥« ­­ë¥).
 à¨á. 16.2 ¨§®¡à ¦¥­® ¤¥à¥¢® ४ãàᨨ ¤«ï Recursive-MatrixChain(p; 1; 4). ‚ ª ¦¤®© ¢¥à設¥ § ¯¨á ­ë §­ 祭¨ï i ¨ j . Ž¡à â¨â¥
¢­¨¬ ­¨¥, çâ® ­¥ª®â®àë¥ ¯ àë (i; j ) ¢áâà¥ç îâáï ¬­®£®ªà â­®.
‹¥£ª® ¢¨¤¥âì, çâ® ¢à¥¬ï à ¡®âë Recursive-Matrix-Chain(p; 1; n)
§ ¢¨á¨â ®â n ¯® ¬¥­ì襩 ¬¥à¥ íªá¯®­¥­æ¨ «ì­®. ‚ á ¬®¬ ¤¥«¥, ®¡®§­ 稬 ¥£® T (n) ¨ ¯à¨¬¥¬, çâ® ¢à¥¬ï ¨á¯®«­¥­¨ï áâப 1{2, â ª¦¥ 6{7, à ¢­® ¥¤¨­¨æ¥. ’®£¤ :
T (1) > 1;
T (n) > 1 +
n;1
X
k=1
(T (k) + T (n ; k) + 1);
¥á«¨ n > 1.
‚ á㬬¥ ¯® k ª ¦¤®¥ T (i) (¯à¨ i = 1; 2; : : :; n ; 1) ¢áâà¥ç ¥âáï ¤¢ ¦¤ë, ¨ ¥éñ ¥áâì n ; 1 ¥¤¨­¨æ. ‘â «® ¡ëâì,
T (n) > 2
n;1
X
i=1
T (i) + n:
(16.4)
„®ª ¦¥¬ ¯® ¨­¤ãªæ¨¨, çâ® T (n) > 2n;1 ¤«ï ¢á¥å n > 1. à¨ n = 1
­¥à ¢¥­á⢮ ¢ë¯®«­¥­®, â ª ª ª T (1) > 1 = 20. ˜ £ ¨­¤ãªæ¨¨:
T (n) > 2
nX
;1
2i;1 + n = 2
n;2
X
2i + n =
i=1
i=0
n
;
1
= 2(2 ; 1) + n = 2n ; 2 + n > 2n;1 :
Œë ¢¨¤¨¬, çâ® «£®à¨â¬ Recursive-Matrix-Chain âॡã¥â íªá¯®­¥­æ¨ «ì­®£® ¢à¥¬¥­¨. à¨ç¨­ ¢ ⮬, çâ® íâ®â «£®à¨â¬ ¬­®£®ªà â­® ¢áâà¥ç ¥â ®¤¨­ ª®¢ë¥ ¯®¤§ ¤ ç¨ ¨ ª ¦¤ë© à § à¥è ¥â
¨å § ­®¢®.  §«¨ç­ëå ¯®¤§ ¤ ç ¢á¥£® «¨èì (n2), ¨ ¬ áá ¢à¥¬¥­¨
â¥àï¥âáï ­ «¨è­îî à ¡®âã. Œ¥â®¤ ¤¨­ ¬¨ç¥áª®£® ¯à®£à ¬¬¨à®¢ ­¨ï ¯®§¢®«ï¥â í⮩ «¨è­¥© à ¡®âë ¨§¡¥¦ âì.
310
ƒ« ¢ 16 „¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥
„¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥ "ᢥàåã ¢­¨§"
€«£®à¨â¬ à §¤¥« 16.1 ¤¥©á⢮¢ « "á­¨§ã ¢¢¥àå". ® â®â ¦¥
¯à¨ñ¬ (¨áª«î祭¨¥ ¯®¢â®à­®£® à¥è¥­¨ï ¯®¤§ ¤ ç) ¬®¦­® ॠ«¨§®¢ âì ¨ ¤«ï «£®à¨â¬®¢, à ¡®â îé¨å "ᢥàåã ¢­¨§". „«ï í⮣®
­ã¦­® § ¯®¬¨­ âì ®â¢¥âë ª 㦥 à¥èñ­­ë¬ ¯®¤§ ¤ ç ¬ ¢ á¯¥æ¨ «ì­®© â ¡«¨æ¥. ‘­ ç « ¢áï â ¡«¨æ ¯ãáâ (â. ¥. § ¯®«­¥­ á¯¥æ¨ «ì­ë¬¨ § ¯¨áﬨ, 㪠§ë¢ î騬¨ ­ â®, ç⮠ᮮ⢥âáâ¢ãî饥
§­ 祭¨¥ ¥é¥ ­¥ ¢ëç¨á«¥­®). Š®£¤ ¢ ¯à®æ¥áᥠ¢ë¯®«­¥­¨ï «£®à¨â¬ ¯®¤§ ¤ ç ¢áâà¥ç ¥âáï ¢ ¯¥à¢ë© à §, ¥ñ à¥è¥­¨¥ § ­®á¨âáï
¢ â ¡«¨æã. ‚ ¤ «ì­¥©è¥¬ à¥è¥­¨¥ í⮩ ¯®¤§ ¤ ç¨ ¡¥àñâáï ¯àאַ
¨§ â ¡«¨æë. (‚ ­ 襬 ¯à¨¬¥à¥ â ¡«¨æ㠮⢥⮢ § ¢¥á⨠«¥£ª®, â ª
ª ª ¯®¤§ ¤ ç¨ ­ã¬¥àãîâáï ¯ à ¬¨ (i; j ). ‚ ¡®«¥¥ á«®¦­ëå á«ãç ïå
¬®¦­® ¨á¯®«ì§®¢ âì å¥è¨à®¢ ­¨¥.) ®- ­£«¨©áª¨ íâ®â ¯à¨¥¬ ã«ãç襭¨ï ४ãàᨢ­ëå «£®à¨â¬®¢ ­ §ë¢ ¥âáï memoization.
à¨¬¥­¨¬ íâ® ãᮢ¥à襭á⢮¢ ­¨¥ ª «£®à¨â¬ã RecursiveMatrix-Chain:
Memoized-Matrix-Chain(p)
1 n length[p] ; 1
2 for i 1 to n
3
do for j i to n
4
do m[i; j ] 1
5 return Lookup-Chain(p; 1; n)
Lookup-Chain(p; i; j )
1 if m[i; j ] < 1
2 then return m[i; j ]
3 if i = j
4 then m[i; j ] 0
5 else for k i to j ; 1
6
do q Lookup-Chain(p; i; k) +
+ Lookup-Chain(p; k + 1; j ) + pi;1 pk pj
7
if q < m[i; j ]
8
then m[i; j ] q
9 return m[i; j ]
à®æ¥¤ãà Memoized-Matrix-Chain, ¯®¤®¡­® Matrix-ChainOrder, § ¯®«­ï¥â â ¡«¨æã m[1 : :n; 1 : :n], £¤¥ m[i; j ] | ¬¨­¨¬ «ì­®¥ ª®«¨ç¥á⢮ 㬭®¦¥­¨©, ­¥®¡å®¤¨¬®¥ ¤«ï ¢ëç¨á«¥­¨ï Ai::j . ¥à¢®­ ç «ì­® m[i; j ] = 1 ¢ §­ ª ⮣®, ç⮠ᮮ⢥âáâ¢ãî饥 ¬¥áâ® ¢
â ¡«¨æ¥ ­¥ § ¯®«­¥­®. …᫨ ¯à¨ ¨á¯®«­¥­¨¨ Lookup-Chain(p; i; j )
®ª §ë¢ ¥âáï, çâ® m[i; j ] < 1, â® ¯à®æ¥¤ãà áà §ã ¢ë¤ ¥â íâ® §­ 祭¨¥ m[i; j ]. ‚ ¯à®â¨¢­®¬ á«ãç ¥ m[i; j ] ¢ëç¨á«ï¥âáï ª ª ¢ ¯à®æ¥¤ãà¥
Recursive-Matrix-Chain, § ¯¨áë¢ ¥âáï ¢ â ¡«¨æã ¨ ¢ë¤ ñâáï ¢
ª ç¥á⢥ ®â¢¥â . ’¥¬ á ¬ë¬ ¢ë§®¢ Lookup-Chain(p; i; j ) ¢á¥£¤ Š®£¤ ¯à¨¬¥­¨¬® ¤¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥
311
¢®§¢à é ¥â m[i; j ], ­® ¢ëç¨á«¥­¨ï ¯à®¢®¤ïâáï ⮫쪮 ¯à¨ ¯¥à¢®¬
â ª®¬ ¢ë§®¢¥.
¨á. 16.2 ¨««îáâà¨àã¥â íª®­®¬¨î, ¤®á⨣ ¥¬ãî § ¬¥­®©
Recursive-Matrix-Chain ­ Memoized-Matrix-Chain. ‡ èâà¨å®¢ ­­ë¥ ¢¥àè¨­ë ¤¥à¥¢ ४ãàᨨ ᮮ⢥âáâ¢ãîâ ⥬
á«ãç ï¬, ª®£¤ §­ 祭¨¥ m[i; j ] ­¥ ¢ëç¨á«ï¥âáï, ¡¥àñâáï ¯àאַ ¨§
â ¡«¨æë.
€«£®à¨â¬ Memoized-Matrix-Chain âॡã¥â ¢à¥¬¥­¨ O(n3), ª ª
¨ «£®à¨â¬ Matrix-Chain-Order. ‚ á ¬®¬ ¤¥«¥, ª ¦¤ ï ¨§ (n2)
¯®§¨æ¨© â ¡«¨æë ®¤¨­ à § ¨­¨æ¨ «¨§¨àã¥âáï (áâப 4 ¯à®æ¥¤ãàë
Memoized-Matrix-Chain) ¨ ®¤¨­-¥¤¨­á⢥­­ë© à § § ¯®«­ï¥âáï
| ¯à¨ ¯¥à¢®¬ ¢ë§®¢¥ Lookup-Chain(p; i; j ) ¤«ï ¤ ­­ëå i ¨ j . ‚á¥
¢ë§®¢ë Lookup-Chain(p; i; j ) ¤¥«ïâáï ­ ¯¥à¢ë¥ ¨ ¯®¢â®à­ë¥. Š ¦¤ë© ¨§ (n2) ¯¥à¢ëå ¢ë§®¢®¢ âॡã¥â ¢à¥¬¥­¨ O(n) (­¥ ¢ª«îç ï
¢à¥¬¥­¨ à ¡®âë ४ãàᨢ­ëå ¢ë§®¢®¢ Lookup-Chain ¤«ï ¬¥­ìè¨å
ãç á⪮¢); ®¡é¥¥ ¢à¥¬ï à ¡®âë ¥áâì O(n3). Š ¦¤ë© ¨§ ¯®¢â®à­ëå
¢ë§®¢®¢ âॡã¥â ¢à¥¬¥­¨ O(1); ¨å ç¨á«® ¥áâì O(n3) (¢ëç¨á«¥­¨ï
¤«ï ª ¦¤®© ¨§ O(n2) ª«¥â®ª â ¡«¨æë ¯®à®¦¤ îâ O(n) ¢ë§®¢®¢).
’¥¬ á ¬ë¬ à¥ªãàᨢ­ë© «£®à¨â¬, âॡãî騩 ¢à¥¬¥­¨ (2n), ¯à¥¢à ⨫áï ¢ ¯®«¨­®¬¨ «ì­ë©, âॡãî騩 ¢à¥¬¥­¨ O(n3).
®¤¢¥¤ñ¬ ¨â®£¨: § ¤ ç ®¡ ®¯â¨¬ «ì­®¬ ¯®à浪¥ 㬭®¦¥­¨ï
n ¬ âà¨æ ¬®¦¥â ¡ëâì à¥è¥­ § ¢à¥¬ï O(n3) «¨¡® "ᢥàåã ¢­¨§"
(४ãàᨢ­ë© «£®à¨â¬ á § ¯®¬¨­ ­¨¥¬ ®â¢¥â®¢), «¨¡® "á­¨§ã
¢¢¥àå" (¤¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥). Ž¡ «£®à¨â¬ ®á­®¢ ­ë ­ ¯¥à¥ªàë⨨ ¯®¤§ ¤ ç; ç¨á«® ¯®¤§ ¤ ç ¥áâì (n2), ¨ ®¡ «£®à¨â¬ à¥è îâ ª ¦¤ãî ¨§ ¯®¤§ ¤ ç «¨èì ¥¤¨­®¦¤ë.
‚®®¡é¥ £®¢®àï, ¥á«¨ ª ¦¤ ï ¨§ ¯®¤§ ¤ ç ¤®«¦­ ¡ëâì à¥è¥­ å®âì à §, ¬¥â®¤ ¤¨­ ¬¨ç¥áª®£® ¯à®£à ¬¬¨à®¢ ­¨ï ("á­¨§ã ¢¢¥àå")
®¡ëç­® íä䥪⨢­¥¥, 祬 ४ãàá¨ï á § ¯®¬¨­ ­¨¥¬ ®â¢¥â®¢, ¯®áª®«ìªã ॠ«¨§ æ¨ï ४ãàᨨ ( â ª¦¥ ¯à®¢¥àª , ¥áâì ®â¢¥â ¢ â ¡«¨æ¥ ¨«¨ ¥éñ ­¥â) âॡã¥â ¤®¯®«­¨â¥«ì­®£® ¢à¥¬¥­¨. ® ¥á«¨ ¤«ï
­ 宦¤¥­¨ï ®¯â¨¬ã¬ ­¥ ®¡ï§ ⥫쭮 à¥è âì ¢á¥ ¯®¤§ ¤ ç¨, ¯®¤å®¤ "ᢥàåã ¢­¨§" ¨¬¥¥â â® ¯à¥¨¬ãé¥á⢮, çâ® à¥è îâáï «¨èì â¥
¯®¤§ ¤ ç¨, ª®â®àë¥ ¤¥©á⢨⥫쭮 ­ã¦­ë.
“¯à ¦­¥­¨ï
‘à ¢­¨â¥ ­¥à ¢¥­á⢮ (16.4) á ä®à¬ã«®© (8.4), ¨á¯®«ì§®¢ ­­®© ¯à¨ ®æ¥­ª¥ ¢à¥¬¥­¨ à ¡®âë «£®à¨â¬ ¡ëáâன á®àâ¨à®¢ª¨.
‚ çñ¬ ¯à¨ç¨­ ⮣®, çâ® ®æ¥­ª¨, ¯®«ãç î騥áï ¨§ íâ¨å ¤¢ãå ४ãà७â­ëå ᮮ⭮襭¨©, á⮫ì à §«¨ç­ë?
16.2-2 Š ª «ãçè¥ ¨áª âì ®¯â¨¬ «ì­ë© ¯®à冷ª ¯¥à¥¬­®¦¥­¨ï
¬ âà¨æ: ¯¥à¥¡¨à ï ¢á¥ à ááâ ­®¢ª¨ ᪮¡®ª ¨ ¢ëç¨á«ïï ª®«¨ç¥á⢮ 㬭®¦¥­¨© ¤«ï ª ¦¤®© ¨§ ­¨å, ¨«¨ ¦¥ á ¯®¬®éìî «£®à¨â¬ 16.2-1
312
ƒ« ¢ 16 „¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥
Recursive-Matrix-Chain?
16.2-3
 à¨áã©â¥ ¤¥à¥¢® ४ãàᨨ ¤«ï «£®à¨â¬ Merge-Sort
(á®àâ¨à®¢ª ᫨ﭨ¥¬) ¨§ à §¤¥« 1.3.1, ¯à¨¬¥­ñ­­®£® ª ¬ áᨢã
¨§ 16 í«¥¬¥­â®¢. ®ç¥¬ã §¤¥áì ­¥â á¬ëá« § ¯®¬¨­ âì ®â¢¥âë ª
㦥 à¥èñ­­ë¬ ¯®¤§ ¤ ç ¬?
16.3  ¨¡®«ìè ï ®¡é ï ¯®¤¯®á«¥¤®¢ ⥫쭮áâì
®¤¯®á«¥¤®¢ ⥫쭮áâì ¯®«ãç ¥âáï ¨§ ¤ ­­®© ¯®á«¥¤®¢ ⥫쭮áâ¨, ¥á«¨ 㤠«¨âì ­¥ª®â®àë¥ ¥ñ í«¥¬¥­âë (á ¬ ¯®á«¥¤®¢ ⥫쭮áâì
â ª¦¥ áç¨â ¥âáï ᢮¥© ¯®¤¯®á«¥¤®¢ ⥫쭮áâìî). ”®à¬ «ì­®:
¯®á«¥¤®¢ ⥫쭮áâì Z = hz1; z2; : : :; zk i ­ §ë¢ ¥âáï ¯®¤¯®á«¥¤®¢ ⥫쭮áâìî (subsequence) ¯®á«¥¤®¢ ⥫쭮á⨠X = hx1; x2; : : :; xni,
¥á«¨ áãé¥áâ¢ã¥â áâண® ¢®§à áâ îé ï ¯®á«¥¤®¢ ⥫쭮áâì ¨­¤¥ªá®¢ hi1; i2; : : :; iki, ¤«ï ª®â®à®© zj = xij ¯à¨ ¢á¥å j = 1; 2; : : :; k.
 ¯à¨¬¥à, Z = hB; C; D; Bi ï¥âáï ¯®¤¯®á«¥¤®¢ ⥫쭮áâìî
¯®á«¥¤®¢ ⥫쭮á⨠X = hA; B; C; B; D; A; Bi; ᮮ⢥âáâ¢ãîé ï
¯®á«¥¤®¢ ⥫쭮áâì ¨­¤¥ªá®¢ ¥áâì h2; 3; 5; 7i. (Žâ¬¥â¨¬, çâ® £®¢®àï
® ¯®á«¥¤®¢ ⥫쭮áâïå, ¬ë | ¢ ®â«¨ç¨¥ ®â ªãàᮢ ¬ ⥬ â¨ç¥áª®£®
­ «¨§ | ¨¬¥¥¬ ¢ ¢¨¤ã ª®­¥ç­ë¥ ¯®á«¥¤®¢ ⥫쭮áâ¨.)
ã¤¥¬ £®¢®à¨âì, çâ® ¯®á«¥¤®¢ ⥫쭮áâì Z ï¥âáï ®¡é¥© ¯®¤¯®á«¥¤®¢ ⥫쭮áâìî (common subsequence) ¯®á«¥¤®¢ ⥫쭮á⥩ X
¨ Y , ¥á«¨ Z ï¥âáï ¯®¤¯®á«¥¤®¢ ⥫쭮áâìî ª ª X , â ª ¨ Y .
à¨¬¥à: X = hA; B; C; B; D; A; Bi, Y = hB; D; C; A; B; Ai, Z =
hB; C; Ai. ®á«¥¤®¢ ⥫쭮áâì Z ¢ í⮬ ¯à¨¬¥à¥ | ­¥ á ¬ ï ¤«¨­­ ï ¨§ ®¡é¨å ¯®¤¯®á«¥¤®¢ ⥫쭮á⥩ X ¨ Y (¯®á«¥¤®¢ ⥫쭮áâì
hB; C; B; Ai ¤«¨­­¥¥). ®á«¥¤®¢ ⥫쭮áâì hB; C; B; Ai ¡ã¤¥â ­ ¨¡®«ì襩 ®¡é¥© ¯®¤¯®á«¥¤®¢ ⥫쭮áâìî ¤«ï X ¨ Y , ¯®áª®«ìªã
®¡é¨å ¯®¤¯®á«¥¤®¢ ⥫쭮á⥩ ¤«¨­ë 5 ã ­¨å ­¥â.  ¨¡®«ìè¨å
®¡é¨å ¯®¤¯®á«¥¤®¢ ⥫쭮á⥩ ¬®¦¥â ¡ëâì ­¥áª®«ìª®.  ¯à¨¬¥à,
hB; D; A; Bi | ¤àã£ ï ­ ¨¡®«ìè ï ®¡é ï ¯®¤¯®á«¥¤®¢ ⥫쭮áâì X
¨ Y.
‡ ¤ ç ® ­ ¨¡®«ì襩 ®¡é¥© ¯®¤¯®á«¥¤®¢ ⥫쭮á⨠(᮪à 饭­® Ž; ¯®- ­£«¨©áª¨ LCS = longest-common-subsequence)
á®á⮨⠢ ⮬, çâ®¡ë ­ ©â¨ ®¡éãî ¯®¤¯®á«¥¤®¢ ⥫쭮áâì ­ ¨¡®«ì襩 ¤«¨­ë ¤«ï ¤¢ãå ¤ ­­ëå ¯®á«¥¤®¢ ⥫쭮á⥩ X ¨ Y .
‚ í⮬ à §¤¥«¥ ¬ë ¯®ª ¦¥¬, ª ª à¥è¨âì íâã § ¤ çã á ¯®¬®éìî
¤¨­ ¬¨ç¥áª®£® ¯à®£à ¬¬¨à®¢ ­¨ï.
‘â஥­¨¥ ­ ¨¡®«ì襩 ®¡é¥© ¯®¤¯®á«¥¤®¢ ⥫쭮áâ¨
…᫨ à¥è âì § ¤ çã ® Ž "¢ «®¡", ¯¥à¥¡¨à ï ¢á¥ ¯®¤¯®á«¥¤®¢ ⥫쭮á⨠¯®á«¥¤®¢ ⥫쭮á⨠X ¨ ¯à®¢¥àïï ¤«ï ª ¦¤®© ¨§ ­¨å, ­¥
 ¨¡®«ìè ï ®¡é ï ¯®¤¯®á«¥¤®¢ ⥫쭮áâì
313
¡ã¤¥â «¨ ®­ ¯®¤¯®á«¥¤®¢ ⥫쭮áâìî ¯®á«¥¤®¢ ⥫쭮á⨠Y , â® «£®à¨â¬ ¡ã¤¥â à ¡®â âì íªá¯®­¥­æ¨ «ì­®¥ ¢à¥¬ï, ¯®áª®«ìªã ¯®á«¥¤®¢ ⥫쭮áâì ¤«¨­ë m ¨¬¥¥â 2m ¯®¤¯®á«¥¤®¢ ⥫쭮á⥩ (á⮫쪮
¦¥, ᪮«ìª® ¯®¤¬­®¦¥á⢠㠬­®¦¥á⢠f1; 2; : : :; mg).
Ž¤­ ª® § ¤ ç ® Ž ®¡« ¤ ¥â ᢮©á⢮¬ ®¯â¨¬ «ì­®á⨠¤«ï
¯®¤§ ¤ ç, ª ª ¯®ª §ë¢ ¥â ⥮६ 16.1 (á¬. ­¨¦¥). ®¤å®¤ï饥 ¬­®¦¥á⢮ ¯®¤§ ¤ ç | ¬­®¦¥á⢮ ¯ à ¯à¥ä¨ªá®¢ ¤¢ãå ¤ ­­ëå ¯®á«¥¤®¢ ⥫쭮á⥩. ãáâì X = hx1; x2; : : :; xmi | ­¥ª®â®à ï ¯®á«¥¤®¢ ⥫쭮áâì. …ñ ¯à¥ä¨ªá (prex) ¤«¨­ë i | íâ® ¯®á«¥¤®¢ ⥫쭮áâì Xi = hx1; x2; : : :; xii (¯à¨ i ®â 0 ¤® m).  ¯à¨¬¥à, ¥á«¨
X = hA; B; C; B; D; A; B i, â® X4 = hA; B; C; Bi, X0 | ¯ãáâ ï ¯®á«¥¤®¢ ⥫쭮áâì.
’¥®à¥¬ 16.1 (® áâ஥­¨¨ Ž). ãáâì Z = hz1 ; z2; : : :; zk i |
®¤­ ¨§ ­ ¨¡®«ìè¨å ®¡é¨å ¯®¤¯®á«¥¤®¢ ⥫쭮á⥩ ¤«ï
X = hx1; x2; : : :; xmi ¨ Y = hy1; y2; : : :; yni. ’®£¤ :
1. ¥á«¨ xm = yn , â® zk = xm = yn ¨ Zk;1 ï¥âáï Ž ¤«ï Xm;1
¨ Yn;1 ;
2. ¥á«¨ xm =
6 yn ¨ zk =6 xm, â® Z ï¥âáï Ž ¤«ï Xm;1 ¨ Y ;
3. ¥á«¨ xm =
6 yn ¨ zk =6 yn , â® Z ï¥âáï Ž ¤«ï Xm ¨ Yn;1 .
„®ª § ⥫ìá⢮. (1) …᫨ zk =
6 xm, â® ¬ë ¬®¦¥¬ ¤®¯¨á âì xm =
yn ¢ ª®­¥æ ¯®á«¥¤®¢ ⥫쭮á⨠Z ¨ ¯®«ãç¨âì ®¡éãî ¯®¤¯®á«¥¤®¢ ⥫쭮áâì ¤«¨­ë k + 1, çâ® ¯à®â¨¢®à¥ç¨â ãá«®¢¨î. ‘â «® ¡ëâì,
zk = xm = yn . …᫨ ã ¯®á«¥¤®¢ ⥫쭮á⥩ Xm;1 ¨ Yn;1 ¥áâì ¡®«¥¥
¤«¨­­ ï (祬 Zk;1) ®¡é ï ¯®¤¯®á«¥¤®¢ ⥫쭮áâì, â® ¬ë ¬®¦¥¬
¤®¯¨á âì ª ­¥© xm = yn ¨ ¯®«ãç¨âì ®¡éãî ¯®¤¯®á«¥¤®¢ ⥫쭮áâì
¤«ï X ¨ Y , ¡®«¥¥ ¤«¨­­ãî, 祬 Z | ¯à®â¨¢®à¥ç¨¥.
(2) Š®«ì ᪮஠zk =
6 xm, ¯®á«¥¤®¢ ⥫쭮áâì Z ï¥âáï ®¡é¥©
¯®¤¯®á«¥¤®¢ ⥫쭮áâìî ¤«ï Xm;1 ¨ Y . ’ ª ª ª Z | Ž ¤«ï X
¨ Y , â® ®­ ⥬ ¡®«¥¥ ï¥âáï Ž ¤«ï Xm;1 ¨ Y .
(3) €­ «®£¨ç­® (2).
Œë ¢¨¤¨¬, çâ® Ž ¤¢ãå ¯®á«¥¤®¢ ⥫쭮á⥩ ᮤ¥à¦¨â ¢ ᥡ¥
­ ¨¡®«ìèãî ®¡éãî ¯®¤¯®á«¥¤®¢ ⥫쭮áâì ¨å ¯à¥ä¨ªá®¢. ‘â «®
¡ëâì, § ¤ ç ® Ž ®¡« ¤ ¥â ᢮©á⢮¬ ®¯â¨¬ «ì­®á⨠¤«ï ¯®¤§ ¤ ç. ‘¥©ç á ¬ë ã¡¥¤¨¬áï, çâ® ¯¥à¥ªàë⨥ ¯®¤§ ¤ ç â ª¦¥ ¨¬¥¥â
¬¥áâ®.
¥ªãà७⭠ï ä®à¬ã« ’¥®à¥¬ 16.1 ¯®ª §ë¢ ¥â, çâ® ­ 宦¤¥­¨¥ Ž ¯®á«¥¤®¢ ⥫쭮á⥩ X = hx1; x2; : : :; xmi ¨ Y = hy1; y2; : : :; yni ᢮¤¨âáï ª à¥è¥­¨î
«¨¡® ®¤­®©, «¨¡® ¤¢ãå ¯®¤§ ¤ ç. …᫨ xm = yn , â® ¤®áâ â®ç­® ­ ©â¨
Ž ¯®á«¥¤®¢ ⥫쭮á⥩ Xm;1 ¨ Yn;1 ¨ ¤®¯¨á âì ª ­¥© ¢ ª®­æ¥
xm = yn . …᫨ ¦¥ xm =
6 yn, â® ­ ¤® à¥è¨âì ¤¢¥ ¯®¤§ ¤ ç¨: ­ ©â¨
314
ƒ« ¢ 16 „¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥
Ž ¤«ï Xm;1 ¨ Y , § ⥬ ­ ©â¨ Ž ¤«ï X ¨ Yn;1 . ®«¥¥ ¤«¨­­ ï ¨§ ­¨å ¨ ¡ã¤¥â á«ã¦¨âì Ž ¤«ï X ¨ Y .
’¥¯¥àì áà §ã ¢¨¤­®, çâ® ¢®§­¨ª ¥â ¯¥à¥ªàë⨥ ¯®¤§ ¤ ç. „¥©á⢨⥫쭮, çâ®¡ë ­ ©â¨ Ž X ¨ Y , ­ ¬ ¬®¦¥â ¯®­ ¤®¡¨âìáï
­ ©â¨ Ž Xm;1 ¨ Y , â ª¦¥ Ž X ¨ Yn;1 ; ª ¦¤ ï ¨§ íâ¨å § ¤ ç ᮤ¥à¦¨â ¯®¤§ ¤ çã ­ 宦¤¥­¨ï Ž ¤«ï Xm;1 ¨ Yn;1 . €­ «®£¨ç­ë¥ ¯¥à¥ªàëâ¨ï ¡ã¤ãâ ¢áâà¥ç âìáï ¨ ¤ «¥¥.
Š ª ¨ ¢ § ¤ ç¥ ¯¥à¥¬­®¦¥­¨ï ¯®á«¥¤®¢ ⥫쭮á⨠¬ âà¨æ, ¬ë
­ ç­ñ¬ á ४ãà७⭮£® ᮮ⭮襭¨ï ¤«ï á⮨¬®á⨠®¯â¨¬ «ì­®£®
à¥è¥­¨ï. ãáâì c[i; j ] ®¡®§­ ç ¥â ¤«¨­ã Ž ¤«ï ¯®á«¥¤®¢ ⥫쭮á⥩ Xi ¨ Yj . …᫨ i ¨«¨ j à ¢­® ­ã«î, â® ®¤­ ¨§ ¤¢ãå ¯®á«¥¤®¢ ⥫쭮á⥩ ¯ãáâ , â ª çâ® c[i; j ] = 0. ‘ª § ­­®¥ ¢ëè¥ ¬®¦­®
§ ¯¨á âì â ª:
8
>
¥á«¨ i = 0 ¨«¨ j = 0,
< 0
c[i; j ] = > c[i ; 1; j ; 1] + 1
¥á«¨ i; j > 0 ¨ xi = yj ,
:
max(c[i; j ; 1]; c[i ; 1; j ]); ¥á«¨ i; j > 0 ¨ xi =
6 yj .
(16.5)
‚ëç¨á«¥­¨¥ ¤«¨­ë Ž
ˆáå®¤ï ¨§ ᮮ⭮襭¨ï (16.5), «¥£ª® ­ ¯¨á âì ४ãàᨢ­ë© «£®à¨â¬, à ¡®â î騩 íªá¯®­¥­æ¨ «ì­®¥ ¢à¥¬ï ¨ ¢ëç¨á«ïî騩 ¤«¨­ã
Ž ¤¢ãå ¤ ­­ëå ¯®á«¥¤®¢ ⥫쭮á⥩. ® ¯®áª®«ìªã à §«¨ç­ëå
¯®¤§ ¤ ç ¢á¥£® (mn), «ãçè¥ ¢®á¯®«ì§®¢ âìáï ¤¨­ ¬¨ç¥áª¨¬ ¯à®£à ¬¬¨à®¢ ­¨¥¬.
ˆá室­ë¬¨ ¤ ­­ë¬¨ ¤«ï «£®à¨â¬ LCS-Length á«ã¦ â ¯®á«¥¤®¢ ⥫쭮á⨠X = hx1; x2; : : :; xmi ¨ Y = hy1; y2; : : :; yni. —¨á« c[i; j ] § ¯¨áë¢ îâáï ¢ â ¡«¨æã c[0 : :m; 0 : :n] ¢ â ª®¬ ¯®à浪¥: á­ ç « § ¯®«­ï¥âáï á«¥¢ ­ ¯à ¢® ¯¥à¢ ï áâப , § ⥬ ¢â®à ï, ¨ â. ¤.
Šà®¬¥ ⮣®, «£®à¨â¬ § ¯®¬¨­ ¥â ¢ â ¡«¨æ¥ b[1 : :m; 1 : :n] "¯à®¨á宦¤¥­¨¥" c[i; j ]: ¢ ª«¥âªã b[i; j ] § ­®á¨âáï áâ५ª , 㪠§ë¢ îé ï
­ ª«¥âªã á ª®®à¤¨­ â ¬¨ (i ; 1; j ; 1), (i ; 1; j ) ¨«¨ (i; j ; 1), ¢ § ¢¨á¨¬®á⨠®â ⮣®, à ¢­® «¨ c[i; j ] ç¨á«ã c[i ; 1; j ; 1]+1, c[i ; 1; j ] ¨«¨
c[i; j ; 1] (á¬. (16.5)). ¥§ã«ìâ â ¬¨ à ¡®âë «£®à¨â¬ ïîâáï
â ¡«¨æë c ¨ b.
 ¨¡®«ìè ï ®¡é ï ¯®¤¯®á«¥¤®¢ ⥫쭮áâì
315
16.3 ’ ¡«¨æë c ¨ b, ᮧ¤ ­­ë¥ «£®à¨â¬®¬ LCS-Length ¯à¨ X =
hA; B; C; B; D; A;B i ¨ Y = hB; D; C; A; B; Ai. ‚ ª«¥âª¥ á ª®®à¤¨­ â ¬¨ (i; j ) § ¯¨á ­ë ç¨á«® c[i;j ] ¨ áâ५ª b[i; j ]. —¨á«® 4 ¢ ¯à ¢®© ­¨¦­¥© ª«¥âª¥ ¥áâì ¤«¨­ Ž. à¨ i; j > 0 §­ 祭¨¥ c[i;j ] ®¯à¥¤¥«ï¥âáï ⥬, à ¢­ë «¨ xi ¨ yj , ¨ ¢ëç¨á«¥­­ë¬¨ à ­¥¥ §­ 祭¨ï¬¨ c[i ; 1;j ], c[i; j ; 1] ¨ c[i ; 1;j ; 1]. ãâì ¯® áâ५ª ¬,
¢¥¤ã騩 ¨§ c[7; 6], § èâà¨å®¢ ­. Š ¦¤ ï ª®á ï áâ५ª ­ í⮬ ¯ã⨠ᮮ⢥âáâ¢ã¥â í«¥¬¥­â㠍Ž (íâ¨ í«¥¬¥­âë ¢ë¤¥«¥­ë).
¨áã­®ª
LCS-Length(X; Y )
m length[X ]
n length[Y ]
for i 1 to m
do c[i; 0] 0
for j 0 to n
do c[0; j ] 0
for i 1 to m
do for j 1 to n
do if xi = yj
then c[i; j ] c[i ; 1; j ; 1] + 1
b[i; j ] "-"
else if c[i ; 1; j ] > c[i; j ; 1]
then c[i; j ] c[i ; 1; j ]
b[i; j ] """
else c[i; j ] c[i; j ; 1]
b[i; j ] " "
return c, b
 à¨á. 16.3 ¯®ª § ­ à ¡®â LCS-Length ¤«ï X =
hA; B; C; B; D; A; Bi ¨ Y = hB; D; C; A; B; Ai.
€«£®à¨â¬ LCS-Length âॡã¥â ¢à¥¬¥­¨ O(mn): ­ ª ¦¤ãî
ª«¥âªã âॡã¥âáï O(1) è £®¢.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
316
ƒ« ¢ 16 „¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥
®áâ஥­¨¥ Ž
’ ¡«¨æ b, ᮧ¤ ­­ ï ¯à®æ¥¤ãன LCS-Length, ¯®§¢®«ï¥â ¡ëáâà® ­ ©â¨ Ž ¯®á«¥¤®¢ ⥫쭮á⥩ X = hx1; x2; : : :; xmi ¨
Y = hy1; y2; : : :; yni. „«ï í⮣® ­ ¤® ¯à®©â¨ ¯® ¯ãâ¨, 㪠§ ­­®¬ã áâ५ª ¬¨, ­ 稭 ï á b[m; n]. à®©¤¥­­ ï áâ५ª - ¢
ª«¥âª¥ (i; j ) ®§­ ç ¥â, çâ® xi = yj ¢å®¤¨â ¢ ­ ¨¡®«ìèãî ®¡éãî
¯®¤¯®á«¥¤®¢ ⥫쭮áâì. ‚®â ª ª í⮠ॠ«¨§®¢ ­® ¢ ४ãàᨢ­®©
¯à®æ¥¤ãॠPrint-LCS (Ž ¤«ï X ¨ Y ¯¥ç â ¥âáï ¯à¨ ¢ë§®¢¥
Print-LCS(b; X; length[X ]; length[Y ])):
Print-LCS(b; X; i; j )
1 if i = 0 ¨«¨ j = 0
2 then return
3 if b[i; j ] = "-"
4 then Print-LCS(b; X; i ; 1; j ; 1)
5
­ ¯¥ç â âì xi
6 elseif b[i; j ] = """
7 then Print-LCS(b; X; i ; 1; j )
8 else Print-LCS(b; X; i; j ; 1)
ã¤ãç¨ ¯à¨¬¥­ñ­­®© ª â ¡«¨æ¥ à¨á. 16.3, íâ ¯à®æ¥¤ãà ­ ¯¥ç â ¥â BCBA. ‚६ï à ¡®âë ¯à®æ¥¤ãàë ¥áâì O(m + n), ¯®áª®«ìªã
­ ª ¦¤®¬ è £¥ å®âï ¡ë ®¤­® ¨§ ç¨á¥« m ¨ n 㬥­ìè ¥âáï.
“«ãç襭¨¥ «£®à¨â¬ ®á«¥ ⮣®, ª ª «£®à¨â¬ à §à ¡®â ­, ­¥à¥¤ª® 㤠ñâáï ᤥ« âì
¥£® ¡®«¥¥ íª®­®¬­ë¬. ‚ ­ 襬 ¯à¨¬¥à¥ ¬®¦­® ®¡®©â¨áì ¡¥§ â ¡«¨æë b. ‚ á ¬®¬ ¤¥«¥, ª ¦¤®¥ ¨§ ç¨á¥« c[i; j ] § ¢¨á¨â ®â c[i ; 1; j ],
c[i; j ; 1] ¨ c[i ; 1; j ; 1]. ‡­ ï c[i; j ], ¬ë ¬®¦¥¬ § ¢à¥¬ï O(1) ¢ëïá­¨âì, ª ª ï ¨§ íâ¨å âàñå § ¯¨á¥© ¨á¯®«ì§®¢ « áì. ’¥¬ á ¬ë¬ ¬®¦­®
­ ©â¨ Ž § ¢à¥¬ï O(m+n) á ¯®¬®éìî ®¤­®© ⮫쪮 â ¡«¨æë c (¢
ã¯à ¦­¥­¨¨ 16.3-2 ¬ë ¯®¯à®á¨¬ ¢ á í⮠ᤥ« âì). à¨ í⮬ ¬ë íª®­®¬¨¬ (mn) ¯ ¬ïâ¨. (‚¯à®ç¥¬, ᨬ¯â®â¨ª ­¥ ¬¥­ï¥âáï: ®¡êñ¬
â ¡«¨æë c ¥áâì â ª¦¥ (mn).)
…᫨ ­ á ¨­â¥à¥áã¥â ⮫쪮 ¤«¨­ ­ ¨¡®«ì襩 ®¡é¥© ¯®¤¯®á«¥¤®¢ ⥫쭮áâ¨, â® á⮫쪮 ¯ ¬ï⨠­¥ ­ã¦­®: ¢ëç¨á«¥­¨¥ c[i; j ] § âà £¨¢ ¥â ⮫쪮 ¤¢¥ áâப¨ á ­®¬¥à ¬¨ i ¨ i ; 1 (íâ® ­¥ ¯à¥¤¥«
íª®­®¬¨¨: ¬®¦­® ®¡®©â¨áì ¯ ¬ïâìî ­ ®¤­ã áâபã â ¡«¨æë c ¯«îá
¥éñ çãâì-çãâì, á¬. ã¯à ¦­¥­¨¥ 16.3-4). à¨ í⮬, ®¤­ ª®, á ¬ã ¯®¤¯®á«¥¤®¢ ⥫쭮áâì ­ ©â¨ (§ ¢à¥¬ï O(m + n)) ­¥ 㤠ñâáï.
Ž¯â¨¬ «ì­ ï âਠ­£ã«ïæ¨ï ¬­®£®ã£®«ì­¨ª 317
“¯à ¦­¥­¨ï
 ©¤¨â¥ Ž ¯®á«¥¤®¢ ⥫쭮á⥩ h1; 0; 0; 1; 0; 1; 0; 1i ¨
h0; 1; 0; 1; 1; 0; 1; 1; 0i.
16.3-2  §à ¡®â ©â¥ «£®à¨â¬, áâà®ï騩 Ž ¤«ï X =
hx1; x2; : : :; xmi ¨ Y = hy1; y2; : : :; yni § ¢à¥¬ï O(m + n), ¨á室ï
⮫쪮 ¨§ â ¡«¨æë c.
16.3-3  §à ¡®â ©â¥ ४ãàᨢ­ë© ¢ ਠ­â «£®à¨â¬ LCSLength á § ¯®¬¨­ ­¨¥¬ ®â¢¥â®¢, âॡãî騩 ¢à¥¬¥­¨ O(mn).
16.3-4 ®ª ¦¨â¥, ª ª ¬®¦­® ¢ëç¨á«¨âì ¤«¨­ã Ž, ¨á¯®«ì§ãï
¯ ¬ïâì à §¬¥à 2 min(m; n) + O(1) ¨ åà ­ï «¨èì ç áâì â ¡«¨æë c.
€ ª ª í⮠ᤥ« âì, ¨á¯®«ì§ãï ¯ ¬ïâì min(m; n) + O(1)?
16.3-5  §à ¡®â ©â¥ «£®à¨â¬, ­ 室ï騩 ­ ¨¡®«ìèãî ¢®§à áâ îéãî ¯®¤¯®á«¥¤®¢ ⥫쭮áâì ¤ ­­®© ¯®á«¥¤®¢ ⥫쭮áâ¨
¨§ n ç¨á¥« ¨ à ¡®â î騩 § ¢à¥¬ï O(n2).
16.3-6?  §à ¡®â ©â¥ «£®à¨â¬, à¥è î騩 ¯à¥¤ë¤ãéãî § ¤ çã
§ ¢à¥¬ï O(n log n). (“ª § ­¨¥. •à ­¨¬ ¤«ï ª ¦¤®£® i ­ ¨¬¥­ì訩 ¨§ ¯®á«¥¤­¨å í«¥¬¥­â®¢ ¢®§à áâ îé¨å ¯®¤¯®á«¥¤®¢ ⥫쭮á⥩ ¤«¨­ë i. Š ª ¬¥­ïîâáï í⨠ç¨á« ¯à¨ ¤®¡ ¢«¥­¨¨ ­®¢®£® í«¥¬¥­â ?)
16.3-1
16.4 Ž¯â¨¬ «ì­ ï âਠ­£ã«ïæ¨ï ¬­®£®ã£®«ì­¨ª ¥á¬®âàï ­ á¢®î £¥®¬¥âà¨ç¥áªãî ä®à¬ã«¨à®¢ªã, íâ § ¤ ç ®ç¥­ì ¡«¨§ª ª § ¤ ç¥ ® ¯¥à¥¬­®¦¥­¨¨ ¬ âà¨æ.
Œ­®£®ã£®«ì­¨ª (polygon) | íâ® § ¬ª­ãâ ï ªà¨¢ ï ­ ¯«®áª®áâ¨, á®áâ ¢«¥­­ ï ¨§ ®â१ª®¢, ­ §ë¢ ¥¬ëå áâ®à®­ ¬¨ (sides) ¬­®£®ã£®«ì­¨ª . ’®çª , ¢ ª®â®à®© á室ïâáï ¤¢¥ á®á¥¤­¨¥ áâ®à®­ë, ­ §ë¢ ¥âáï ¢¥à設®© (vertex). ¥á ¬®¯¥à¥á¥ª î騩áï ¬­®£®ã£®«ì­¨ª
(⮫쪮 â ª¨¥ ¬ë ¨ ¡ã¤¥¬, ª ª ¯à ¢¨«®, à áᬠâਢ âì) ­ §ë¢ ¥âáï ¯à®áâë¬ (simple). Œ­®¦¥á⢮ â®ç¥ª ¯«®áª®áâ¨, «¥¦ é¨å ¢­ãâਠ¯à®á⮣® ¬­®£®ã£®«ì­¨ª , ­ §ë¢ ¥âáï ¢­ãâ७­®áâìî (interior)
¬­®£®ã£®«ì­¨ª , ®¡ê¥¤¨­¥­¨¥ ¥£® áâ®à®­ ­ §ë¢ ¥âáï ¥£® £à ­¨æ¥©
(boundary), ¬­®¦¥á⢮ ¢á¥å ®áâ «ì­ëå â®ç¥ª ¯«®áª®á⨠­ §ë¢ ¥âáï ¥£® ¢­¥è­®áâìî (exterior). à®á⮩ ¬­®£®ã£®«ì­¨ª ­ §ë¢ ¥âáï
¢ë¯ãª«ë¬ (convex), ¥á«¨ ¤«ï «î¡ëå ¤¢ãå â®ç¥ª, «¥¦ é¨å ¢­ãâà¨
¨«¨ ­ £à ­¨æ¥ ¬­®£®ã£®«ì­¨ª , ᮥ¤¨­ïî騩 ¨å ®â१®ª 楫¨ª®¬
«¥¦¨â ¢­ãâਠ¨«¨ ­ £à ­¨æ¥ ¬­®£®ã£®«ì­¨ª .
‚ë¯ãª«ë© ¬­®£®ã£®«ì­¨ª ¬®¦­® § ¤ âì, ¯¥à¥ç¨á«¨¢ ¥£® ¢¥àè¨­ë ¯à®â¨¢ ç ᮢ®© áâ५ª¨: ¬­®£®ã£®«ì­¨ª P = hv0; v1; : : :; vn;1i
318
ƒ« ¢ 16 „¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥
¨áã­®ª 16.4 „¢¥ âਠ­£ã«ï樨 ¢ë¯ãª«®£® ᥬ¨ã£®«ì­¨ª . Š ¦¤ ï ¤¥«¨â ᥬ¨ã£®«ì­¨ª ­ 7 ; 2 = 5 âà¥ã£®«ì­¨ª®¢ á ¯®¬®éìî 7 ; 3 = 4 ¤¨ £®­ «¥©.
¨¬¥¥â n áâ®à®­ v0v1, v1v2; : : :; vn;1vn. ‡¤¥áì vn | â® ¦¥ á ¬®¥, çâ® v0
(㤮¡­® ­ã¬¥à®¢ âì ¢¥à設ë n-㣮«ì­¨ª ¢ëç¥â ¬¨ ¯® ¬®¤ã«î n).
…᫨ vi ¨ vj | ¤¢¥ ¢¥à設ë, ­¥ ïî騥áï á®á¥¤­¨¬¨, ®â१®ª
vivj ­ §ë¢ ¥âáï ¤¨ £®­ «ìî (chord) ¬­®£®ã£®«ì­¨ª . „¨ £®­ «ì vi vj
à §¡¨¢ ¥â ¬­®£®ã£®«ì­¨ª ­ ¤¢ : hvi; vi+1; : : :; vj i ¨ hvj ; vj+1; : : :; vii.
’ਠ­£ã«ïæ¨ï (triangulation) ¬­®£®ã£®«ì­¨ª | íâ® ­ ¡®à ¤¨ £®­ «¥©, à §à¥§ îé¨å ¬­®£®ã£®«ì­¨ª ­ âà¥ã£®«ì­¨ª¨; áâ®à®­ ¬¨ íâ¨å
âà¥ã£®«ì­¨ª®¢ ïîâáï áâ®à®­ë ¨á室­®£® ¬­®£®ã£®«ì­¨ª ¨ ¤¨ £®­ «¨ âਠ­£ã«ï樨.
 à¨á. 16.4 ¨§®¡à ¦¥­ë ¤¢¥ âਠ­£ã«ï樨 ᥬ¨ã£®«ì­¨ª . (’ਠ­£ã«ïæ¨î ¬®¦­® â ª¦¥ ®¯à¥¤¥«¨âì ª ª ¬ ªá¨¬ «ì­®¥ ¬­®¦¥á⢮
¤¨ £®­ «¥©, ­¥ ¯¥à¥á¥ª îé¨å ¤à㣠¤à㣠.)
‚® ¢á¥å âਠ­£ã«ïæ¨ïå n-㣮«ì­¨ª ®¤­® ¨ â® ¦¥ ç¨á«® âà¥ã£®«ì­¨ª®¢ (á㬬 ¢á¥å 㣫®¢ ¬­®£®ã£®«ì­¨ª à ¢­ ¯à®¨§¢¥¤¥­¨î 180
¨ ç¨á« âà¥ã£®«ì­¨ª®¢ ¢ âਠ­£ã«ï樨), ¨¬¥­­® n ; 2. à¨ í⮬
¨á¯®«ì§ãîâáï n ; 3 ¤¨ £®­ «¨ (¯à®¢®¤ï ¤¨ £®­ «ì, ¬ë 㢥«¨ç¨¢ ¥¬
ç¨á«® ç á⥩ ­ 1).
‡ ¤ ç ®¡ ®¯â¨¬ «ì­®© âਠ­£ã«ï樨 (optimal triangulation problem) á®á⮨⠢ á«¥¤ãî饬. „ ­ ¢ë¯ãª«ë© ¬­®£®ã£®«ì­¨ª P =
hv0; v1; : : :; vn;1i ¨ ¢¥á®¢ ï äã­ªæ¨ï w, ®¯à¥¤¥«ñ­­ ï ­ ¬­®¦¥á⢥
âà¥ã£®«ì­¨ª®¢ á ¢¥à設 ¬¨ ¢ ¢¥à設 å P . ’ॡã¥âáï ­ ©â¨ âਠ­£ã«ïæ¨î, ¤«ï ª®â®à®© á㬬 ¢¥á®¢ âà¥ã£®«ì­¨ª®¢ ¡ã¤¥â ­ ¨¬¥­ì襩.
…áâ¥á⢥­­ë© ¯à¨¬¥à ¢¥á®¢®© ä㭪樨 | äã­ªæ¨ï
w(4vivj vk ) = jvi vj j + jvj vk j + jvk vi j;
£¤¥ jvivj j ®¡®§­ ç ¥â (¥¢ª«¨¤®¢®) à ááâ®ï­¨¥ ¬¥¦¤ã vi ¨ vj . Œë ¯®áâந¬ «£®à¨â¬ à¥è¥­¨ï í⮩ § ¤ ç¨, ª®â®àë© ¯à¨¬¥­¨¬ ¤«ï «î¡®© ¢¥á®¢®© ä㭪樨.
Ž¯â¨¬ «ì­ ï âਠ­£ã«ïæ¨ï ¬­®£®ã£®«ì­¨ª 319
’ਠ­£ã«ï樨 ¨ à ááâ ­®¢ª¨ ᪮¡®ª
‘ãé¥áâ¢ã¥â 㤨¢¨â¥«ì­ ï á¢ï§ì ¬¥¦¤ã âਠ­£ã«ïæ¨ï¬¨ ¬­®£®ã£®«ì­¨ª ¨ à ááâ ­®¢ª ¬¨ ᪮¡®ª (᪠¦¥¬, ¢ ¯à®¨§¢¥¤¥­¨¨ ¯®á«¥¤®¢ ⥫쭮á⨠¬ âà¨æ). à®é¥ ¢á¥£® ®¡êïá­¨âì íâã á¢ï§ì á ¯®¬®éìî ¤¥à¥¢ì¥¢.
®«­®© à ááâ ­®¢ª¥ ᪮¡®ª ᮮ⢥âáâ¢ã¥â â ª ­ §ë¢ ¥¬®¥ ¤¥à¥¢®
à §¡®à (parse tree) ¢ëà ¦¥­¨ï.  à¨á. 16.5 ¨§®¡à ¦¥­® ¤¥à¥¢®
à §¡®à ¤«ï
((A1(A2 A3 ))(A4(A5A6 ))):
(16.6)
‚ ¥£® «¨áâìïå áâ®ïâ ¬ âà¨æë-ᮬ­®¦¨â¥«¨, ¢ ¢¥à設 å | ¨å
¯à®¨§¢¥¤¥­¨ï: ¢ ª ¦¤®© ¢¥à設¥ á⮨⠯ந§¢¥¤¥­¨¥ ¤¢ãå ¢ëà ¦¥­¨©, áâ®ïé¨å ¢ ¥ñ ¤¥âïå.
’ਠ­£ã«ïæ¨î ¢ë¯ãª«®£® ¬­®£®ã£®«ì­¨ª hv0; v1; : : :; vn;1i
â ª¦¥ ¬®¦­® ¨§®¡à §¨âì ¢ ¢¨¤¥ ¤¥à¥¢ . ‹¨áâìﬨ ¥£® ¡ã¤ãâ
áâ®à®­ë ¬­®£®ã£®«ì­¨ª (ªà®¬¥ v0vn;1). Žáâ «ì­ë¥ ¢¥à設ë |
íâ® ¤¨ £®­ «¨ âਠ­£ã«ï樨 ¯«îá áâ®à®­ v0vn;1; íâã ¯®á«¥¤­îî
®¡ê¬ ª®à­¥¬.
®áâ஥­¨¥ ¤¥à¥¢ (­ ¯à¨¬¥à¥ âਠ­£ã«ï樨 à¨á. 16.5a) ¯®ª § ­® ­ à¨á. 16.5¡. „«ï ­ ç « ¬ë ᬮâਬ, ¢ ª ª®© âà¥ã£®«ì­¨ª
¯®¯ « ª®à¥­ì v0vn;1. ‚ ­ 襬 á«ãç ¥ íâ® 4v0v3v6. „¥â쬨 ª®à­ï ¡ã¤¥¬ áç¨â âì ¤¢¥ ¤à㣨¥ áâ®à®­ë í⮣® âà¥ã£®«ì­¨ª . ’ਠ­£ã«ïæ¨ï
á®á⮨⠨§ í⮣® âà¥ã£®«ì­¨ª ¨ ¤¢ãå âਠ­£ã«ï権 ®áâ ¢è¨åáï ç á⥩ (hv0; v1; v2; v3i ¨ hv3; v4; v5; v6i, à¨á. 16.5¡), ¯à¨çñ¬ ¤¨ £®­ «¨,
ïî騥áï ¤¥â쬨 ª®à­ï, ïîâáï áâ®à®­ ¬¨ íâ¨å ¬­®£®ã£®«ì­¨ª®¢ (v0v3 ¨ v3v6 ­ à¨á. 16.5¡). ®¢â®à¨¬ ¤«ï ª ¦¤®© ¨§ ­¨å âã ¦¥
ª®­áâàãªæ¨î: à áᬮâਬ âà¥ã£®«ì­¨ª âਠ­£ã«ï樨 ­®¢®£® ¬­®£®ã£®«ì­¨ª , ᮤ¥à¦ 騩 ¢ë¤¥«¥­­ãî áâ®à®­ã, ¤¢¥ ¤à㣨¥ áâ®à®­ë
í⮣® âà¥ã£®«ì­¨ª ®¡ê¬ ¥ñ ¤¥â쬨 ¨ â. ¤. ‚ ª®­æ¥ ª®­æ®¢ ¬ë
¯à¨¤ñ¬ ª ¡¨­ à­®¬ã ¤¥à¥¢ã á n ; 1 «¨á⮬. „¥©áâ¢ãï ¢ ®¡à â­®¬
¯®à浪¥, ¬®¦­® ¯® ¡¨­ à­®¬ã ¤¥à¥¢ã ¯®áâநâì âਠ­£ã«ïæ¨î. ®áâ஥­­®¥ ᮮ⢥âá⢨¥ ¬¥¦¤ã âਠ­£ã«ïæ¨ï¬¨ ¨ ¡¨­ à­ë¬¨ ¤¥à¥¢ìﬨ ï¥âáï ¢§ ¨¬­® ®¤­®§­ ç­ë¬.
‚ᯮ¬¨­ ï, çâ® ¯®«­ë¥ à ááâ ­®¢ª¨ ᪮¡®ª ¢ ¯à®¨§¢¥¤¥­¨¨ n ᮬ­®¦¨â¥«¥© ­ 室ïâáï ¢® ¢§ ¨¬­® ®¤­®§­ ç­®¬ ᮮ⢥âá⢨¨ á ¡¨­ à­ë¬¨ ¤¥à¥¢ìﬨ á n «¨áâìﬨ, ¯®«ãç ¥¬ ¢§ ¨¬­® ®¤­®§­ ç­®¥
ᮮ⢥âá⢨¥ ¬¥¦¤ã ¯®«­ë¬¨ à ááâ ­®¢ª ¬¨ ᪮¡®ª ¢ ¯à®¨§¢¥¤¥­¨¨ n ¬ âà¨æ ¨ âਠ­£ã«ïæ¨ï¬¨ (n + 1)-㣮«ì­¨ª . à¨ í⮬ ¬ âà¨æ Ai ¢ ¯à®¨§¢¥¤¥­¨¨ A1A2 : : :An ᮮ⢥âáâ¢ã¥â áâ®à®­¥ vi;1vi,
¤¨ £®­ «ì vi;1vj (1 6 i < j 6 n) ᮮ⢥âáâ¢ã¥â ¯à®¨§¢¥¤¥­¨î
Ai::j .
â® ᮮ⢥âá⢨¥ ¬®¦­® ¯®­ïâì ¨ ¡¥§ ¤¥à¥¢ì¥¢.  ¯¨è¥¬ ­ ¢á¥å
áâ®à®­ å âਠ­£ã«¨à®¢ ­­®£® ¬­®£®ã£®«ì­¨ª , ªà®¬¥ ®¤­®©, ¯® ᮬ­®¦¨â¥«î. „ «¥¥ ¯®áâ㯠¥¬ â ª: ¥á«¨ ¢ âà¥ã£®«ì­¨ª¥ ¤¢¥ áâ®à®­ë 㦥 ¯®¬¥ç¥­ë, â® ­ âà¥â쥩 ¬ë ¯¨è¥¬ ¨å ¯à®¨§¢¥¤¥­¨¥.  Ž¯â¨¬ «ì­ ï âਠ­£ã«ïæ¨ï ¬­®£®ã£®«ì­¨ª 321
¡¨âì ¤«ï à¥è¥­¨ï § ¤ ç¨ ® âਠ­£ã«ï樨.  ¤® ⮫쪮 ¢ ¥£® § £®«®¢ª¥ § ¬¥­¨âì p ­ v ¨ áâபã 9 § ¬¥­¨âì ­ â ªãî:
9
do q m[i; k] + m[k + 1; j ] + w(4vi;1vk vj )
‚ १ã«ìâ â¥ à ¡®âë «£®à¨â¬ m[1; n] áâ ­¥â à ¢­ë¬ ¢¥áã ®¯â¨¬ «ì­®© âਠ­£ã«ï樨.
‘â஥­¨¥ ®¯â¨¬ «ì­®© âਠ­£ã«ï樨
„®ª ¦¥¬ ¯®á«¥¤­¥¥ ã⢥ত¥­¨¥. ãáâì T | ®¯â¨¬ «ì­ ï âਠ­£ã«ïæ¨ï (n + 1)-㣮«ì­¨ª P = hv0; v1; : : :; vni. ¥¡à® v0vn ¢å®¤¨â ¢ ®¤¨­ ¨§ âà¥ã£®«ì­¨ª®¢ âਠ­£ã«ï樨. ãáâì íâ® âà¥ã£®«ì­¨ª 4v0vk vn, £¤¥ 1 6 k 6 n ; 1. ’®£¤ ¢¥á âਠ­£ã«ï樨 T à ¢¥­ ¢¥áã 4v0vk vn ¯«îá á㬬 ¢¥á®¢ âਠ­£ã«ï権 ¬­®£®ã£®«ì­¨ª®¢ hv0; v1; : : :; vki ¨ hvk ; vk+1; : : :; vni. ‘«¥¤®¢ ⥫쭮, âਠ­£ã«ï樨
㪠§ ­­ëå ¬­®£®ã£®«ì­¨ª®¢ ®¡ï§ ­ë ¡ëâì ®¯â¨¬ «ì­ë¬¨, ¨ ¥á«¨
®¯â¨¬ «ì­ë¥ á⮨¬®á⨠¤«ï â ª¨å ¬­®£®ã£®«ì­¨ª®¢ (¯à¨ à §­ëå
k) 㦥 ¢ëç¨á«¥­ë, â® ®áâ ñâáï ¢ë¡à âì ®¯â¨¬ «ì­®¥ §­ 祭¨¥ k.
¥ªãà७⭠ï ä®à¬ã« „à㣨¬¨ á«®¢ ¬¨, ¨¬¥¥â ¬¥áâ® á«¥¤ãîé ï ४ãà७⭠ï ä®à¬ã« . ãáâì m[i; j ] | ¢¥á ®¯â¨¬ «ì­®© âਠ­£ã«ï樨 ¬­®£®ã£®«ì­¨ª hvi;1; vi; : : :; vj i, £¤¥ 1 6 i < j 6 n. ‚¥á ®¯â¨¬ «ì­®© âਠ­£ã«ï樨 ¢á¥£® ¬­®£®ã£®«ì­¨ª à ¢¥­ m[1; n]. ã¤¥¬ áç¨â âì, çâ®
"¤¢ã㣮«ì­¨ª¨" hvi;1 ; vii ¨¬¥îâ ¢¥á 0. ’®£¤ m[i; i] = 0 ¤«ï i =
1; 2; : : :; n. …᫨ j ; i > 1, â® ã ¬­®£®ã£®«ì­¨ª hvi;1; vi ; : : :; vj i
¨¬¥¥âáï ­¥ ¬¥­¥¥ âàñå ¢¥à設, ¨ ­ ¬ ­¥®¡å®¤¨¬® ­ ©â¨ ¬¨­¨¬ã¬ (¯® ¢á¥¬ k ¨§ ¯à®¬¥¦ã⪠i 6 k 6 j ; 1) â ª®© á㬬ë: ¢¥á
4vi;1vk vj , ¯«îá ¢¥á ®¯â¨¬ «ì­®© âਠ­£ã«ï樨 hvi;1; vi; : : :; vki,
¯«îá ¢¥á ®¯â¨¬ «ì­®© âਠ­£ã«ï樨 hvk ; vk+1; : : :; vj i. ®í⮬ã
m[i; j ] =
(
0
¯à¨ i = j ,
min fm[i; k] + m[k + 1; j ] + w(4vi;1vk vj )g ¯à¨ i < j .
i6k<j
(16.7)
…¤¨­á⢥­­®¥ ®â«¨ç¨¥ í⮩ ä®à¬ã«ë ®â ä®à¬ã«ë (16.2) | ¡®«¥¥
®¡é¨© ¢¨¤ ¢¥á®¢®© ä㭪樨. ‘â «® ¡ëâì, «£®à¨â¬ Matrix-ChainOrder á 㪠§ ­­ë¬¨ ¢ëè¥ ¨§¬¥­¥­¨ï¬¨ ¢ëç¨á«ï¥â ¢¥á ®¯â¨¬ «ì­®© âਠ­£ã«ï樨; ¢à¥¬ï à ¡®âë (n3), ®¡êñ¬ ¨á¯®«ì§ã¥¬®© ¯ ¬ï⨠(n2).
322
ƒ« ¢ 16 „¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥
“¯à ¦­¥­¨ï
16.4-1 „®ª ¦¨â¥, çâ® ¢áïª ï âਠ­£ã«ïæ¨ï ¢ë¯ãª«®£® n-㣮«ì­¨ª à §¡¨¢ ¥â ¥£® ­ n ; 2 âà¥ã£®«ì­¨ª á ¯®¬®éìî n ; 3 ¤¨ £®­ «¥©.
16.4-2 à®ä¥áá®à ¯à¥¤¯®« £ ¥â, çâ® ¤«ï á«ãç ï, ª®£¤ ¢¥á âà¥ã£®«ì­¨ª à ¢¥­ ¥£® ¯«®é ¤¨, «£®à¨â¬ ­ 宦¤¥­¨ï ®¯â¨¬ «ì­®©
âਠ­£ã«ï樨 ¬®¦­® ã¯à®áâ¨âì. ¥ ®¡¬ ­ë¢ ¥â «¨ ¥£® ¨­âã¨æ¨ï?
16.4-3 ãáâì ¢¥á®¢ ï äã­ªæ¨ï ®¯à¥¤¥«¥­ ­ ¬­®¦¥á⢥ ¤¨ £®­ «¥© ¬­®£®ã£®«ì­¨ª , ¨ âਠ­£ã«ïæ¨ï áç¨â ¥âáï ®¯â¨¬ «ì­®©, ¥á«¨
á㬬 ¢¥á®¢ ¢å®¤ïé¨å ¢ ­¥ñ ¤¨ £®­ «¥© ¬¨­¨¬ «ì­ . Š ª ᢥáâ¨
íâã § ¤ çã ª à §®¡à ­­®© ­ ¬¨ (¢ ª®â®à®© ¢¥á ¯à¨¯¨áë¢ «¨áì ­¥
¤¨ £®­ «ï¬, âà¥ã£®«ì­¨ª ¬)?
16.4-4  ©¤¨â¥ ®¯â¨¬ «ì­ãî âਠ­£ã«ïæ¨î ¯à ¢¨«ì­®£® ¢®á쬨㣮«ì­¨ª ­ ¥¢ª«¨¤®¢®© ¯«®áª®á⨠¤«ï á«ãç ï, ¥á«¨ ¢¥á®¬ âà¥ã£®«ì­¨ª áç¨â ¥âáï ¥£® ¯¥à¨¬¥âà.
‡ ¤ ç¨
16-1 ¨â®­¨ç¥áª ï ¥¢ª«¨¤®¢ § ¤ ç ª®¬¬¨¢®ï¦ñà …¢ª«¨¤®¢ § ¤ ç ª®¬¬¨¢®ï¦ñà (euclidean traveling-salesman prob-
lem) á®á⮨⠢ ­ 宦¤¥­¨¨ ªà âç ©è¥£® § ¬ª­ã⮣® ¯ãâ¨, ᮥ¤¨­ïî饣® ¤ ­­ë¥ n â®ç¥ª ­ ¯«®áª®á⨠(á¬. ¯à¨¬¥à ­ à¨á. 16.6 , £¤¥
n = 7). â § ¤ ç ï¥âáï NP-¯®«­®©, â ª çâ® ¢àï¤ «¨ ¥ñ ¬®¦­®
à¥è¨âì § ¯®«¨­®¬¨ «ì­®¥ ¢à¥¬ï (á¬. £« ¢ã 36).
„¦. ¥­â«¨ ¯à¥¤«®¦¨« ã¯à®áâ¨âì § ¤ çã, à áᬠâਢ ï ⮫쪮
¡¨â®­¨ç¥áª¨¥ ¯ã⨠(bitonic tours), â. ¥. ¯ãâ¨, ­ 稭 î騥áï ¢ ªà ©­¥© «¥¢®© â®çª¥, § ⥬ ¨¤ã騥 á«¥¢ ­ ¯à ¢® ¤® ªà ©­¥© ¯à ¢®©
â®çª¨, § ⥬ ¢®§¢à é î騥áï á¯à ¢ ­ «¥¢® ¢ ¨á室­ãî â®çªã.
( à¨á. 16.6¡ ¨§®¡à ¦ñ­ ªà âç ©è¨© ¡¨â®­¨ç¥áª¨© ¯ãâì ç¥à¥§
⥠¦¥ ᥬì â®ç¥ª). â § ¤ ç ¯à®é¥: ¯®áâன⥠«£®à¨â¬ à¥è¥­¨ï í⮩ § ¤ ç¨, âॡãî騩 ¢à¥¬¥­¨ O(n2). ‚ë ¬®¦¥â¥ áç¨â âì,
çâ® ¡áæ¨ááë ¢á¥å â®ç¥ª à §«¨ç­ë. (“ª § ­¨¥: ¯à®á¬ âਢ ï â®çª¨
á«¥¢ ­ ¯à ¢®, åà ­¨â¥ ¤«ï ⥪ã饩 â®çª¨ X ¨ ¤«ï ¢á¥å ¯à¥¤ë¤ãé¨å â®ç¥ª Y ¤«¨­ã ªà âç ©è¥£® ¯ãâ¨, ¡¨â®­¨ç¥áª¨ ᮥ¤¨­ïî饣®
X á Y á ¯à®å®¤®¬ ç¥à¥§ ªà ©­îî «¥¢ãî â®çªã.)
16-2  §¡¨¥­¨¥ ¡§ æ ­ áâப¨
€¡§ æ ⥪áâ á®á⮨⠨§ n á«®¢ ¤«¨­®© l1; l2; : : :; ln (¤«¨­ á«®¢ | ç¨á«® ᨬ¢®«®¢ ¢ ­ñ¬). ‘ç¨â ï, çâ® ¢á¥ ᨬ¢®«ë ¨¬¥îâ
à ¢­ãî è¨à¨­ã (ª ª ­ ¯¨èã饩 ¬ 設ª¥), ¬ë å®â¨¬ ®¯â¨-
‡ ¤ ç¨ ª £« ¢¥ 16
323
¨áã­®ª 16.6 ‘¥¬ì â®ç¥ª ­ ¯«®áª®á⨠¢ 㧫 å ¥¤¨­¨ç­®© à¥èñ⪨. ( ) Šà âç ©è¨© § ¬ª­ãâë© ¯ãâì (¤«¨­ë 24;88), ®¡å®¤ï騩 í⨠â®çª¨. â®â ¯ãâì ­¥
ï¥âáï ¡¨â®­¨ç¥áª¨¬. (¡) Šà âç ©è¨© ¡¨â®­¨ç¥áª¨© ¯ãâì, ®¡å®¤ï騩 ⥠¦¥
â®çª¨, ¤«¨­ 25;58.
¬ «ì­ë¬ ®¡à §®¬ à §¡¨âì ¥£® ­ áâப¨ ¤«¨­®© ­¥ ¡®«¥¥ M
ᨬ¢®«®¢. Ž¯â¨¬ «ì­®áâì ¯à¨ í⮬ ®¯à¥¤¥«ï¥âáï â ª: ¯®áç¨â ¥¬
ç¨á«® "«¨è­¨å" ¯à®¡¥«®¢ ¢ ª ¦¤®© áâப¥ (â® ¥áâì ¯®á¬®âਬ, ­ ᪮«ìª® ¤«¨­ áâப¨ ¬¥­ìè¥ M , ¥á«¨ ¬¥¦¤ã á«®¢ ¬¨ áâ ¢¨âì ¯®
®¤­®¬ã ¯à®¡¥«ã) ¨ á«®¦¨¬ ªã¡ë íâ¨å ç¨á¥« ¤«ï ¢á¥å áâப, ªà®¬¥
¯®á«¥¤­¥©: 祬 ¡®«ìè¥ íâ á㬬 , ⥬ å㦥 ¡§ æ. ˆá¯®«ì§ãï
¤¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥, à §à ¡®â ©â¥ «£®à¨â¬ ®¯â¨¬ «ì­®£® à §¡¨¥­¨ï ¡§ æ ­ áâப¨; ®æ¥­¨â¥ ¢à¥¬ï ¥£® à ¡®âë ¨
âà¥¡ã¥¬ë© ®¡êñ¬ ¯ ¬ïâ¨.
16-3 ‘⮨¬®áâì । ªâ¨à®¢ ­¨ï
Œë å®â¨¬ ¯à¥®¡à §®¢ âì áâபã ᨬ¢®«®¢ x[1 : :m] ¢ ­®¢ãî
áâபã y[1 : :n] á ¯®¬®éìî á«¥¤ãîé¨å ®¯¥à 権: ¯¥à¥­®á ᨬ¢®« ¨§ ¨á室­®© áâப¨ ¢ ­®¢ãî, ¯¥à¥­®á ¤¢ãå á®á¥¤­¨å ᨬ¢®«®¢ ¨§ ¨á室­®© áâப¨ ¢ ­®¢ãî á ®¤­®¢à¥¬¥­­®© ¨å ¯¥à¥áâ ­®¢ª®© ("âà ­á¯®§¨æ¨ï"), ¤®¡ ¢«¥­¨¥ ᨬ¢®« (á¯à ¢ ) ª ­®¢®© áâப¥, 㤠«¥­¨¥
¯¥à¢®£® ᨬ¢®« ¨§ áâ ன áâப¨, § ¬¥­ (㤠«¥­¨¥ ᨬ¢®« ¨§
¨á室­®© áâப¨ ¨ ¤®¡ ¢«¥­¨¥ ¤à㣮£® ᨬ¢®« ¢ ­®¢ãî áâபã),
­ ª®­¥æ, 㤠«¥­¨¥ ®áâ ⪠áâ ன áâப¨.
‚®â, ­ ¯à¨¬¥à, ª ª á ¯®¬®éìî íâ¨å ®¯¥à 権 ¯à¥®¡à §®¢ âì
áâபã algorithm ¢ áâபã altruistic:
324
ƒ« ¢ 16 „¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥
Ž¯¥à æ¨ï
®¢ ï áâப ‘â à ï áâப ¯¥à¥­®á a
a
lgorithm
¯¥à¥­®á l
al
gorithm
§ ¬¥­ g ­ t
alt
orithm
㤠«¥­¨¥ o
alt
rithm
¯¥à¥­®á r
altr
ithm
¤®¡ ¢«¥­¨¥ u
altru
ithm
¤®¡ ¢«¥­¨¥ i
altrui
ithm
¤®¡ ¢«¥­¨¥ s
altruis
ithm
âà ­á¯®§¨æ¨ï it ¢ ti altruisti
hm
¤®¡ ¢«¥­¨¥ c
altruistic
hm
㤠«¥­¨¥ ®áâ ⪠altruistic
Š ¦¤®© ¨§ ®¯¥à 権 ("¯¥à¥­®á", "âà ­á¯®§¨æ¨ï", "¤®¡ ¢«¥­¨¥",
"㤠«¥­¨¥", "§ ¬¥­ " ¨ "㤠«¥­¨¥ ®áâ ⪠") ¯à¨¯¨á ­ á⮨¬®áâì
(¬ë ¯à¥¤¯®« £ ¥¬, çâ® á⮨¬®áâì § ¬¥­ë ¬¥­ìè¥, 祬 á㬬 à­ ï
á⮨¬®áâì ¤®¡ ¢«¥­¨ï ¨ 㤠«¥­¨ï, ¨­ ç¥ § ¬¥­ ¡ë« ¡ë «¨è­¥©).
‚ ­ 襬 ¯à¨¬¥à¥ á⮨¬®áâì ¯à¥®¡à §®¢ ­¨ï à ¢­ 3 á⮨¬®áâì ¯¥à¥­®á + á⮨¬®áâì § ¬¥­ë +
+ á⮨¬®áâì 㤠«¥­¨ï + 4 á⮨¬®áâì ¤®¡ ¢«¥­¨ï +
+ á⮨¬®áâì âà ­á¯®§¨æ¨¨ + á⮨¬®áâì 㤠«¥­¨ï ®áâ ⪠:
ãáâì ¤ ­ë ¯®á«¥¤®¢ ⥫쭮á⨠x[1 : :m] ¨ y[1 : :n]. ’®£¤ á⮨¬®áâì
। ªâ¨à®¢ ­¨ï (edit distance) ¥áâì ­ ¨¬¥­ìè ï á⮨¬®áâì 楯®çª¨
¯à¥®¡à §®¢ ­¨©, ¯¥à¥¢®¤ï饩 x ¢ y.  §à ¡®â ©â¥ «£®à¨â¬, ®á­®¢ ­­ë© ­ ¤¨­ ¬¨ç¥áª®¬ ¯à®£à ¬¬¨à®¢ ­¨¨, ª®â®àë© ¢ëç¨á«ï¥â
á⮨¬®áâì । ªâ¨à®¢ ­¨ï ¨ ­ 室¨â ®¯â¨¬ «ì­ãî 楯®çªã ¯à¥®¡à §®¢ ­¨©. Žæ¥­¨â¥ ¢à¥¬ï à ¡®âë ¨ ®¡êñ¬ ¨á¯®«ì§ã¥¬®© ¯ ¬ïâ¨.
16-4 ‚¥ç¥à¨­ª ¢ ä¨à¬¥
à®ä¥áá®àã ¯®àã祭® ãáâநâì ¢¥ç¥à¨­ªã ¢ ä¨à¬¥ "’ŽŽ
Š‹Œ". ‘âàãªâãà ä¨à¬ë ¨¥à àå¨ç­ : ®â­®è¥­¨¥ ¯®¤ç¨­ñ­­®á⨠§ ¤ ­® ¤¥à¥¢®¬, ª®à¥­ì ª®â®à®£® | ¤¨à¥ªâ®à. Žâ¤¥« ª ¤à®¢
§­ ¥â ३⨭£ ª ¦¤®£® á®âà㤭¨ª (¤¥©á⢨⥫쭮¥ ç¨á«®). —⮡ë
¢á¥¬ ¡ë«® ¢¥á¥«®, ¤¨à¥ªâ®à à ᯮà廊«áï, çâ®¡ë ­¨ªâ® ­¥ ®ª § «áï
­ ¢¥ç¥à¨­ª¥ ¢¬¥á⥠ᮠ᢮¨¬ ­¥¯®á।á⢥­­ë¬ ­ ç «ì­¨ª®¬.
.  §à ¡®â ©â¥ «£®à¨â¬, á®áâ ¢«ïî騩 ᯨ᮪ ¯à¨£« èñ­­ëå á
­ ¨¡®«ì訬 á㬬 à­ë¬ ३⨭£®¬.
¡. ’ ¦¥ § ¤ ç á ¤®¯®«­¨â¥«ì­ë¬ ®£à ­¨ç¥­¨¥¬: ¤¨à¥ªâ®à ¤®«¦¥­
¡ëâì ¢ ᯨ᪥ ¯à¨£« èñ­­ëå.
16-5 €«£®à¨â¬ ‚¨â¥à¡¨
„¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥ ¬®¦¥â ¡ëâì ¯à¨¬¥­¥­® ª § ¤ ç¥ à ᯮ§­ ¢ ­¨ï à¥ç¨. ‚ ª ç¥á⢥ ¬®¤¥«¨ à áᬮâਬ ®à¨¥­â¨à®¢ ­­ë© £à ä G = (V; E ) ¨ ®â®¡à ¦¥­¨¥ , ᮯ®áâ ¢«ïî饥 á ª -
‡ ¬¥ç ­¨ï ª £« ¢¥ 16
325
¦¤ë¬ ॡ஬ (u; v) §¢ãª (u; v) ¨§ ¬­®¦¥á⢠¢®§¬®¦­ëå §¢ãª®¢ .
‚ £à ä¥ ¢ë¤¥«¥­ ­¥ª®â®à ï ¢¥à設 v0. Š ¦¤®¬ã ¯ãâ¨, ­ 稭 î饬ãáï ¢ v0, ᮮ⢥âáâ¢ã¥â ¯®á«¥¤®¢ ⥫쭮áâì §¢ãª®¢ (í«¥¬¥­â®¢ ).
 §à ¡®â ©â¥ íä䥪⨢­ë© «£®à¨â¬, ¢®ááâ ­ ¢«¨¢ î騩 ¯ãâì
¢ £à ä¥ ¯® ¯®á«¥¤®¢ ⥫쭮á⨠s = h1; 2; : : :; ni í«¥¬¥­â®¢ (¥á«¨ âॡ㥬®£® ¯ã⨠­¥ áãé¥áâ¢ã¥â, «£®à¨â¬ ¤®«¦¥­ ¢ë¤ âì
ᮮ⢥âáâ¢ãî饥 á®®¡é¥­¨¥). Žæ¥­¨â¥ ¢à¥¬ï à ¡®âë «£®à¨â¬ .
(“ª § ­¨¥: ¢ ¬ ¬®£ã⠯ਣ®¤¨âìáï ­¥ª®â®àë¥ ¨¤¥¨ ¨§ £« ¢ë 23).
ãáâì ⥯¥àì ¤«ï ª ¦¤®£® ॡà (u; v) 2 E ¨§¢¥áâ­ ¢¥à®ïâ­®áâì
¯à®©â¨ ¯® ॡàã ¨§ u ¢ v (¨§¤ âì ᮮ⢥âáâ¢ãî騩 §¢ãª); ®¡®§­ 稬 íâã ¢¥à®ïâ­®áâì p(u; v). Œë ¯à¥¤¯®« £ ¥¬, çâ® ¤«ï «î¡®© ¢¥à設ë u á㬬 ¢¥à®ïâ­®á⥩ p(u; v) ¯® ¢á¥¬ àñ¡à ¬, ¢ë室ï騬 ¨§
í⮩ ¢¥à設ë, à ¢­ ¥¤¨­¨æ¥. ‚¥à®ïâ­®áâìî ¯ã⨠áç¨â ¥¬ ¯à®¨§¢¥¤¥­¨¥ ¢¥à®ïâ­®á⥩, ᮮ⢥âáâ¢ãîé¨å ¥£® àñ¡à ¬ (â. ¥. ¯®á«¥¤®¢ ⥫ì­ë¥ ¢ë¡®àë áç¨â ¥¬ ­¥§ ¢¨á¨¬ë¬¨).
¡. Œ®¤¨ä¨æ¨àã©â¥ ¯®áâ஥­­ë© ¢ ( ) «£®à¨â¬ â ª, çâ®¡ë ®­ ­ 室¨« ­ ¨¡®«¥¥ ¢¥à®ïâ­ë© ¯ãâì, ᮮ⢥âáâ¢ãî騩 ¤ ­­®© ¯®á«¥¤®¢ ⥫쭮á⨠§¢ãª®¢. Žæ¥­¨â¥ ¢à¥¬ï à ¡®âë ¬®¤¨ä¨æ¨à®¢ ­­®£®
«£®à¨â¬ .
‡ ¬¥ç ­¨ï
‘¨á⥬ â¨ç¥áª®¥ ¨§ã祭¨¥ ¤¨­ ¬¨ç¥áª®£® ¯à®£à ¬¬¨à®¢ ­¨ï
¡ë«® ­ ç â® . ¥««¬ ­®¬ ¢ 1955 £®¤ã [21], å®âï ­¥ª®â®àë¥ ¯à¨ñ¬ë
â ª®£® த ¡ë«¨ ¨§¢¥áâ­ë ¨ à ­¥¥. Šáâ â¨, á«®¢® "¯à®£à ¬¬¨à®¢ ­¨¥" (programming) ¢ á«®¢®á®ç¥â ­¨ïå "¤¨­ ¬¨ç¥áª®¥
¯à®£à ¬¬¨à®¢ ­¨¥" (dynamic programming), â ª¦¥ "«¨­¥©­®¥
¯à®£à ¬¬¨à®¢ ­¨¥" (linear programming) ­¥ ®§­ ç ¥â á®áâ ¢«¥­¨¥
¯à®£à ¬¬ ¤«ï ª®¬¯ìîâ¥à .
•ã ¨ ˜¨­£ [106a, 106b] ¯à¨¤ã¬ «¨ à ¡®â î騩 § ¢à¥¬ï
O(n log n) «£®à¨â¬ ¤«ï § ¤ ç¨ ® ¯®à浪¥ ¯¥à¥¬­®¦¥­¨ï ¬ âà¨æ;
®­¨ ¦¥ 㪠§ «¨ ᮮ⢥âá⢨¥ ¬¥¦¤ã í⮩ § ¤ 祩 ¨ § ¤ 祩 ®¡
®¯â¨¬ «ì­®© âਠ­£ã«ï樨.
€«£®à¨â¬ ¤«ï ­ 宦¤¥­¨ï ­ ¨¡®«ì襩 ®¡é¥© ¯®¤¯®á«¥¤®¢ ⥫쭮á⨠§ ¢à¥¬ï O(mn) ®â­®á¨âáï, ¢¨¤¨¬®, ª 䮫쪫®àã. ‚ à ¡®â¥ [43] Š­ãâ ¯®áâ ¢¨« ¢®¯à®á, ¢®§¬®¦¥­ «¨ ¤«ï í⮩ § ¤ ç¨ á㡪¢ ¤à â¨ç­ë© «£®à¨â¬. Œ ᥪ ¨  â¥àá®­ [143] ¯®ª § «¨, çâ® ¢®§¬®¦¥­, ­ ©¤ï «£®à¨â¬, à ¡®â î騩 § ¢à¥¬ï O(mn= log n) ¯à¨
n 6 m ¨ 䨪á¨à®¢ ­­®¬ à §¬¥à¥ ¬­®¦¥á⢠, ¨§ ª®â®à®£® ¡¥àãâáï
ç«¥­ë ¯®á«¥¤®¢ ⥫쭮á⥩. „«ï á«ãç ï, ª®£¤ ¢ ¯®á«¥¤®¢ ⥫쭮áâïå ­¥â ¯®¢â®à¥­¨©, «£®à¨â¬ á ®æ¥­ª®© O((n + m) log(n + m))
¯®áâ஥­ ¢ áâ âì¥ ˜¨¬ ­áª¨ [184]. Œ­®£¨¥ ¨§ íâ¨å १ã«ìâ ⮢
®¡®¡é îâáï ­ § ¤ çã ® á⮨¬®á⨠। ªâ¨à®¢ ­¨ï (§ ¤ ç 16-3).
17
† ¤­ë¥ «£®à¨â¬ë
„«ï ¬­®£¨å ®¯â¨¬¨§ 樮­­ëå § ¤ ç ¥áâì ¡®«¥¥ ¯à®áâë¥ ¨ ¡ëáâàë¥
«£®à¨â¬ë, 祬 ¤¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥. ‚ í⮩ £« ¢¥ ¬ë
à áᬠâਢ ¥¬ § ¤ ç¨, ª®â®àë¥ ¬®¦­® à¥è âì á ¯®¬®éìî ¦ ¤­ëå
«£®à¨â¬®¢ (greedy algorithms). ’ ª®© «£®à¨â¬ ¤¥« ¥â ­ ª ¦¤®¬
è £¥ «®ª «ì­® ®¯â¨¬ «ì­ë© ¢ë¡®à, | ¢ ­ ¤¥¦¤¥, çâ® ¨â®£®¢®¥ à¥è¥­¨¥ â ª¦¥ ®ª ¦¥âáï ®¯â¨¬ «ì­ë¬. â® ­¥ ¢á¥£¤ â ª | ­® ¤«ï
¬­®£¨å § ¤ ç â ª¨¥ «£®à¨â¬ë ¤¥©á⢨⥫쭮 ¤ îâ ®¯â¨¬ã¬.  è
¯¥à¢ë© ¯à¨¬¥à | ¯à®áâ ï, ­® ­¥ ¢¯®«­¥ âਢ¨ «ì­ ï § ¤ ç ® ¢ë¡®à¥ § ª (à §¤¥« 17.1). „ «¥¥ (à §¤¥« 17.2) ¬ë ®¡á㦤 ¥¬, ¤«ï
ª ª¨å § ¤ ç £®¤ïâáï ¦ ¤­ë¥ «£®à¨â¬ë. ‚ à §¤¥«¥ 17.3 à á᪠§ë¢ ¥âáï ® ᦠ⨨ ¨­ä®à¬ 樨 á ¯®¬®éìî ª®¤®¢ • ä䬥­ , ª®â®àë¥
áâà®ïâáï ¦ ¤­ë¬ «£®à¨â¬®¬.  §¤¥« 17.4 ¯®á¢ïéñ­ â ª ­ §ë¢ ¥¬ë¬ ¬ âந¤ ¬ | ª®¬¡¨­ â®à­ë¬ ®¡ê¥ªâ ¬, á¢ï§ ­­ë¬ á ¦ ¤­ë¬¨ «£®à¨â¬ ¬¨.  ª®­¥æ, ¢ à §¤¥«¥ 17.5 ¬ë ¯à¨¬¥­ï¥¬ ¬ âந¤ë ª § ¤ ç¥ ® à á¯¨á ­¨¨ ¤«ï § ª §®¢ à ¢­®© ¤«¨â¥«ì­®á⨠á®
áப ¬¨ ¨ èâà ä ¬¨.
‚ á«¥¤ãîé¨å £« ¢ å ¬ë ­¥ à § ¢áâà¥â¨¬áï á ¦ ¤­ë¬¨ «£®à¨â¬ ¬¨ (§ ¤ ç ® ¬¨­¨¬ «ì­®¬ ¯®ªàë¢ î饬 ¤¥à¥¢¥, «£®à¨â¬
„¥©ªáâàë ¯®¨áª ªà âç ©è¨å ¯ã⥩ ¨§ ¤ ­­®© ¢¥à設ë, ¦ ¤­ ï
í¢à¨á⨪ •¢ â « ¤«ï § ¤ ç¨ ® ¯®ªàë⨨ ¬­®¦¥á⢠¨ ¤à㣨¥).
Œ¨­¨¬ «ì­ë¥ ¯®ªàë¢ î騥 ¤¥à¥¢ìï | ª« áá¨ç¥áª¨© ¯à¨¬¥à ¨á¯®«ì§®¢ ­¨ï ¦ ¤­®£® «£®à¨â¬ , â ª çâ® ¯ à ««¥«ì­® á í⮩ £« ¢®© ¬®¦­® ç¨â âì £« ¢ã 24.
17.1 ‡ ¤ ç ® ¢ë¡®à¥ § ª
ãáâì ¤ ­ë n § ª ­ ¯à®¢¥¤¥­¨¥ § ­ï⨩ ¢ ®¤­®© ¨ ⮩ ¦¥
㤨â®à¨¨. „¢ à §­ëå § ­ïâ¨ï ­¥ ¬®£ãâ ¯¥à¥ªàë¢ âìáï ¯® ¢à¥¬¥­¨. ‚ ª ¦¤®© § ¥ 㪠§ ­ë ­ ç «® ¨ ª®­¥æ § ­ïâ¨ï (si ¨ fi
¤«ï i-© § ¨).  §­ë¥ § ¨ ¬®£ãâ ¯¥à¥á¥ª âìáï, ¨ ⮣¤ ¬®¦­®
㤮¢«¥â¢®à¨âì ⮫쪮 ®¤­ã ¨§ ­¨å. Œë ®â®¦¤¥á⢫塞 ª ¦¤ãî § ã á ¯à®¬¥¦ã⪮¬ [si; fi), â ª çâ® ª®­¥æ ®¤­®£® § ­ïâ¨ï ¬®¦¥â
ᮢ¯ ¤ âì á ­ ç «®¬ ¤à㣮£®, ¨ íâ® ­¥ áç¨â ¥âáï ¯¥à¥á¥ç¥­¨¥¬.
‡ ¤ ç ® ¢ë¡®à¥ § ª
327
”®à¬ «ì­® £®¢®àï, § ¨ á ­®¬¥à ¬¨ i ¨ j ᮢ¬¥áâ­ë (compatible),
¥á«¨ ¨­â¥à¢ «ë [si; fi) ¨ [sj ; fj ) ­¥ ¯¥à¥á¥ª îâáï (¨­ë¬¨ á«®¢ ¬¨,
¥á«¨ fi 6 sj ¨«¨ fj 6 si). ‡ ¤ ç ® ¢ë¡®à¥ § ª (activity-selection
problem) á®á⮨⠢ ⮬, çâ®¡ë ­ ¡à âì ¬ ªá¨¬ «ì­®¥ ª®«¨ç¥á⢮
ᮢ¬¥áâ­ëå ¤àã£ á ¤à㣮¬ § ª.
† ¤­ë© «£®à¨â¬ à ¡®â ¥â á«¥¤ãî騬 ®¡à §®¬. Œë ¯à¥¤¯®« £ ¥¬, çâ® § ¨ 㯮àï¤®ç¥­ë ¢ ¯®à浪¥ ¢®§à áâ ­¨ï ¢à¥¬¥­¨ ®ª®­ç ­¨ï:
f1 6 f2 6 : : : 6 fn:
(17.1)
…᫨ íâ® ­¥ â ª, â® ¬®¦­® ®âá®àâ¨à®¢ âì ¨å § ¢à¥¬ï O(n log n);
§ ¨ á ®¤¨­ ª®¢ë¬ ¢à¥¬¥­¥¬ ª®­æ à ᯮ« £ ¥¬ ¢ ¯à®¨§¢®«ì­®¬
¯®à浪¥.
’®£¤ «£®à¨â¬ ¢ë£«ï¤¨â â ª (f ¨ s | ¬ áᨢë):
Greedy-Activity-Selector(s; f )
1 n length[s]
2 A f1g
3 j 1
4 for i 2 to n
5
do if si > fj
6
then A A [ fig
7
j i
8 return A
 ¡®â í⮣® «£®à¨â¬ ¯®ª § ­ ­ à¨á. 17.1. Œ­®¦¥á⢮ A á®á⮨⠨§ ­®¬¥à®¢ ¢ë¡à ­­ëå § ª, j | ­®¬¥à ¯®á«¥¤­¥© ¨§ ­¨å;
¯à¨ í⮬
fj = maxf fk : k 2 A g;
(17.2)
¯®áª®«ìªã § ¨ ®âá®àâ¨à®¢ ­ë ¯® ¢à¥¬¥­ ¬ ®ª®­ç ­¨ï. ‚­ ç «¥
A ᮤ¥à¦¨â § 㠭®¬¥à 1, ¨ j = 1 (áâப¨ 2{3). „ «¥¥ (横« ¢
áâப å 4{7) ¨é¥âáï §  , ­ 稭 îé ïáï ­¥ à ­ìè¥ ®ª®­ç ­¨ï
§ ¨ ­®¬¥à j . …᫨ â ª®¢ ï ­ ©¤¥­ , ®­ ¢ª«îç ¥âáï ¢ ¬­®¦¥á⢮ A ¨ ¯¥à¥¬¥­­®© j ¯à¨á¢ ¨¢ ¥âáï ¥ñ ­®¬¥à (áâப¨ 6{7).
€«£®à¨â¬ Greedy-Activity-Selector âॡã¥â ¢á¥£® «¨èì
(n) è £®¢ (­¥ áç¨â ï ¯à¥¤¢ à¨â¥«ì­®© á®àâ¨à®¢ª¨). Š ª ¨ ¯®¤®¡ ¥â ¦ ¤­®¬ã «£®à¨â¬ã, ­ ª ¦¤®¬ è £¥ ®­ ¤¥« ¥â ¢ë¡®à â ª,
çâ®¡ë ®áâ î饥áï ᢮¡®¤­ë¬ ¢à¥¬ï ¡ë«® ¬ ªá¨¬ «ì­®.
à ¢¨«ì­®áâì «£®à¨â¬ ¥ ¤«ï ¢á¥å § ¤ ç ¦ ¤­ë© «£®à¨â¬ ¤ ñâ ®¯â¨¬ «ì­®¥ à¥è¥­¨¥,
­® ¤«ï ­ 襩 ¤ ñâ. “¡¥¤¨¬áï ¢ í⮬.
’¥®à¥¬ 17.1. €«£®à¨â¬ Greedy-Activity-Selector ¤ ñâ ­ ¡®à
¨§ ­ ¨¡®«ì襣® ¢®§¬®¦­®£® ª®«¨ç¥á⢠ᮢ¬¥áâ­ëå § ª.
ƒ« ¢ 17 † ¤­ë¥ «£®à¨â¬ë
328
i si fi
1
1
4
2
3
5
3
0
6
4
5
7
5
3
8
6
5
9
7
6 10
8
8 11
9
8 12
10 2 13
11 12 14
¨áã­®ª 17.1  ¡®â «£®à¨â¬ Greedy-Activity-Selector ¤«ï 11 § ª
(â ¡«¨æ á«¥¢ ). Š ¦¤ ï áâப ­ à¨áã­ª¥ ᮮ⢥âáâ¢ã¥â ®¤­®¬ã ¯à®å®¤ã 横« ¢ áâப å 4{7. ‘¥àë¥ § ¨ 㦥 ¢ª«îç¥­ë ¢ A, ¡¥« ï ᥩç á à áᬠâਢ ¥âáï. …᫨ «¥¢ë© ª®­¥æ ¡¥«®£® ¯àאַ㣮«ì­¨ª «¥¢¥¥ ¯à ¢®£® ª®­æ ¯à ¢®£®
á¥à®£® (áâ५ª ¨¤ñâ ¢«¥¢®), â® §  ®â¢¥à£ ¥âáï. ‚ ¯à®â¨¢­®¬ á«ãç ¥ ®­ ¤®¡ ¢«ï¥âáï ª A.
‡ ¤ ç ® ¢ë¡®à¥ § ª
329
„®ª § ⥫ìá⢮.  ¯®¬­¨¬, çâ® § ¨ ®âá®àâ¨à®¢ ­ë ¯® ¢®§à áâ ­¨î ¢à¥¬¥­¨ ®ª®­ç ­¨ï. à¥¦¤¥ ¢á¥£® ¤®ª ¦¥¬, çâ® áãé¥áâ¢ã¥â
®¯â¨¬ «ì­®¥ à¥è¥­¨¥ § ¤ ç¨ ® ¢ë¡®à¥ § ª, ᮤ¥à¦ 饥 § ã
­®¬¥à 1 (á á ¬ë¬ à ­­¨¬ ¢à¥¬¥­¥¬ ®ª®­ç ­¨ï). ‚ á ¬®¬ ¤¥«¥, ¥á«¨
¢ ª ª®¬-â® ®¯â¨¬ «ì­®¬ ¬­®¦¥á⢥ § ª §  ­®¬¥à 1 ­¥ ᮤ¥à¦¨âáï, â® ¬®¦­® § ¬¥­¨âì ¢ ­ñ¬ § ã á á ¬ë¬ à ­­¨¬ ¢à¥¬¥­¥¬ ®ª®­ç ­¨ï ­ § 㠭®¬¥à 1, çâ® ­¥ ¯®¢à¥¤¨â ᮢ¬¥áâ­®áâ¨
§ ª (¨¡® §  ­®¬¥à 1 ª®­ç ¥âáï ¥éñ à ­ìè¥, 祬 ¯à¥¦­ïï, ¨
­¨ á 祬 ¯¥à¥á¥çìáï ­¥ ¬®¦¥â) ¨ ­¥ ¨§¬¥­¨â ¨å ®¡é¥£® ª®«¨ç¥á⢠.
‘â «® ¡ëâì, ¬®¦­® ¨áª âì ®¯â¨¬ «ì­®¥ ¬­®¦¥á⢮ § ª A á।¨
ᮤ¥à¦ é¨å § 㠭®¬¥à 1: áãé¥áâ¢ã¥â ®¯â¨¬ «ì­®¥ à¥è¥­¨¥, ­ 稭 î饥áï á ¦ ¤­®£® ¢ë¡®à .
®á«¥ ⮣® ª ª ¬ë ¤®£®¢®à¨«¨áì à áᬠâਢ âì ⮫쪮 ­ ¡®àë,
ᮤ¥à¦ 騥 § 㠭®¬¥à 1, ¢á¥ ­¥á®¢¬¥áâ­ë¥ á ­¥© § ¨ ¬®¦­®
¢ëª¨­ãâì, ¨ § ¤ ç ᢮¤¨âáï ª ¢ë¡®àã ®¯â¨¬ «ì­®£® ­ ¡®à § ª
¨§ ¬­®¦¥á⢠®áâ ¢è¨åáï § ª (ᮢ¬¥áâ­ëå á § ®© ­®¬¥à 1).
„à㣨¬¨ á«®¢ ¬¨, ¬ë ᢥ«¨ § ¤ çã ª ­ «®£¨ç­®© § ¤ ç¥ á ¬¥­ì訬 ç¨á«®¬ § ª.  áá㦤 ï ¯® ¨­¤ãªæ¨¨, ¯®«ãç ¥¬, çâ®, ¤¥« ï
­ ª ¦¤®¬ è £¥ ¦ ¤­ë© ¢ë¡®à, ¬ë ¯à¨¤ñ¬ ª ®¯â¨¬ «ì­®¬ã à¥è¥­¨î.
“¯à ¦­¥­¨ï
17.1-1 ‡ ¤ çã ® ¢ë¡®à¥ § ª ¬®¦­® à¥è âì á ¯®¬®éìî ¤¨­ ¬¨ç¥áª®£® ¯à®£à ¬¬¨à®¢ ­¨ï, ¢ëç¨á«ïï ¯®á«¥¤®¢ ⥫쭮 (¤«ï
i = 1; 2; : : :; n) ç¨á«® mi | ¬ ªá¨¬ «ì­® ¢®§¬®¦­®¥ ç¨á«® ᮢ¬¥áâ­ëå § ª á।¨ § ª á ­®¬¥à ¬¨ 1; 2; : : :; i (áç¨â ï, çâ® ­¥à ¢¥­á⢮ (17.1) ¢ë¯®«­¥­®). ‘à ¢­¨â¥ ¢à¥¬ï à ¡®âë â ª®£® «£®à¨â¬ ¨ «£®à¨â¬ Greedy-Activity-Selector.
17.1-2 ãáâì ¯®-¯à¥¦­¥¬ã ¨¬¥¥âáï ¬­®¦¥á⢮ § ª ­ ¯à®¢¥¤¥­¨¥ § ­ï⨩ (ª ¦¤ ï §  㪠§ë¢ ¥â ­ ç «® ¨ ª®­¥æ), ­® 㤨â®à¨© ᪮«ìª® 㣮¤­®. ã¦­® à á¯à¥¤¥«¨âì § ¨ ¯® 㤨â®à¨ï¬,
¨á¯®«ì§ãï ª ª ¬®¦­® ¬¥­ìè¥ ã¤¨â®à¨©.  §à ¡®â ©â¥ íä䥪⨢­ë© ¦ ¤­ë© «£®à¨â¬, à¥è î騩 íâã § ¤ çã.
â § ¤ ç ¨§¢¥áâ­ â ª¦¥ ª ª § ¤ ç ® à áªà ᪥ ¨­â¥à¢ «ì­®£®
£à ä (interval-graph coloring problem).  áᬮâਬ £à ä, ¢¥à設 ¬¨ ª®â®à®£® ïîâáï § ¨, ¯à¨çñ¬ ¢¥à設ë ᮥ¤¨­¥­ë ॡ஬ ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ ᮮ⢥âáâ¢ãî騥 § ¨ ­¥á®¢¬¥áâ­ë.  ¨¬¥­ì襥 ª®«¨ç¥á⢮ 梥⮢, ­¥®¡å®¤¨¬®¥ ¤«ï à áªà ᪨ ¢¥à設 £à ä â ª¨¬ ®¡à §®¬, çâ®¡ë ¢¥àè¨­ë ®¤­®£® 梥⠭¥ ¡ë«¨ ᮥ¤¨­¥­ë, ¨ ¥áâì ­ ¨¬¥­ì襥 ª®«¨ç¥á⢮ 㤨â®à¨©, ­¥®¡å®¤¨¬®¥ ¤«ï ¢ë¯®«­¥­¨ï ¢á¥å § ª.
17.1-3 „«ï § ¤ ç¨ ® ¢ë¡®à¥ § ª ¢®§¬®¦­® ­¥áª®«ìª® ᯮᮡ®¢
¦ ¤­®£® ¢ë¡®à , ¨ ­¥ ¢á¥ ®­¨ £®¤ïâáï. ®ª ¦¨â¥ ­ ¯à¨¬¥à¥, çâ®
330
ƒ« ¢ 17 † ¤­ë¥ «£®à¨â¬ë
¯à ¢¨« "­ ª ¦¤®¬ è £¥ ¢ë¡¨à âì § 㠭 ¨¬¥­ì襩 ¤«¨â¥«ì­®áâ¨, ᮢ¬¥áâ­ãî á 㦥 ¢ë¡à ­­ë¬¨", â ª¦¥ "­ ª ¦¤®¬ è £¥
¢ë¡¨à âì § ã, ᮢ¬¥áâ­ãî á ­ ¨¡®«ì訬 ª®«¨ç¥á⢮¬ ®áâ îé¨åáï", ­¥ £®¤ïâáï.
17.2 Š®£¤ ¯à¨¬¥­¨¬ ¦ ¤­ë© «£®à¨â¬?
Š ª 㧭 âì, ¤ áâ «¨ ¦ ¤­ë© «£®à¨â¬ ®¯â¨¬ã¬ ¯à¨¬¥­¨â¥«ì­®
ª ¤ ­­®© § ¤ ç¥? Ž¡é¨å à¥æ¥¯â®¢ âãâ ­¥â, ­® áãé¥áâ¢ãîâ ¤¢¥ ®á®¡¥­­®áâ¨, å à ªâ¥à­ë¥ ¤«ï § ¤ ç, à¥è ¥¬ëå ¦ ¤­ë¬¨ «£®à¨â¬ ¬¨. â® ¯à¨­æ¨¯ ¦ ¤­®£® ¢ë¡®à ¨ ᢮©á⢮ ®¯â¨¬ «ì­®á⨠¤«ï
¯®¤§ ¤ ç.
à¨­æ¨¯ ¦ ¤­®£® ¢ë¡®à ƒ®¢®àïâ, çâ® ª ®¯â¨¬¨§ 樮­­®© § ¤ ç¥ ¯à¨¬¥­¨¬ ¯à¨­æ¨¯ ¦ ¤­®£® ¢ë¡®à (greedy-choice property), ¥á«¨ ¯®á«¥¤®¢ ⥫쭮áâì «®ª «ì­® ®¯â¨¬ «ì­ëå (¦ ¤­ëå) ¢ë¡®à®¢ ¤ ¥â £«®¡ «ì­® ®¯â¨¬ «ì­®¥ à¥è¥­¨¥.  §«¨ç¨¥ ¬¥¦¤¥ ¦ ¤­ë¬¨ «£®à¨â¬ ¬¨ ¨ ¤¨­ ¬¨ç¥áª¨¬ ¯à®£à ¬¬¨à®¢ ­¨¥¬ ¬®¦­® ¯®ïá­¨âì â ª: ­ ª ¦¤®¬ è £¥
¦ ¤­ë© «£®à¨â¬ ¡¥àñâ "á ¬ë© ¦¨à­ë© ªã᮪", ¯®â®¬ 㦥 ¯ëâ ¥âáï ᤥ« âì ­ ¨«ãç訩 ¢ë¡®à á।¨ ®áâ ¢è¨åáï, ª ª®¢ë ¡ë ®­¨
­¨ ¡ë«¨; «£®à¨â¬ ¤¨­ ¬¨ç¥áª®£® ¯à®£à ¬¬¨à®¢ ­¨ï ¯à¨­¨¬ ¥â
à¥è¥­¨¥, ¯à®áç¨â ¢ § à ­¥¥ ¯®á«¥¤áâ¢¨ï ¤«ï ¢á¥å ¢ ਠ­â®¢.
Š ª ¤®ª § âì, çâ® ¦ ¤­ë© «£®à¨â¬ ¤ ñâ ®¯â¨¬ «ì­®¥ à¥è¥­¨¥?
â® ­¥ ¢á¥£¤ âਢ¨ «ì­®, ­® ¢ ⨯¨ç­®¬ á«ãç ¥ â ª®¥ ¤®ª § ⥫ìá⢮ á«¥¤ã¥â á奬¥, ¨á¯®«ì§®¢ ­­®© ¢ ¤®ª § ⥫ìá⢥ ⥮६ë 17.1.
‘­ ç « ¬ë ¤®ª §ë¢ ¥¬, çâ® ¦ ¤­ë© ¢ë¡®à ­ ¯¥à¢®¬ è £¥ ­¥
§ ªàë¢ ¥â ¯ã⨠ª ®¯â¨¬ «ì­®¬ã à¥è¥­¨î: ¤«ï ¢á类£® à¥è¥­¨ï
¥áâì ¤à㣮¥, ᮣ« ᮢ ­­®¥ á ¦ ¤­ë¬ ¢ë¡®à®¬ ¨ ­¥ åã¤è¥¥ ¯¥à¢®£®. ‡ ⥬ ¯®ª §ë¢ ¥âáï, çâ® ¯®¤§ ¤ ç , ¢®§­¨ª îé ï ¯®á«¥ ¦ ¤­®£® ¢ë¡®à ­ ¯¥à¢®¬ è £¥, ­ «®£¨ç­ ¨á室­®©, ¨ à áá㦤¥­¨¥
§ ¢¥àè ¥âáï ¯® ¨­¤ãªæ¨¨.
Ž¯â¨¬ «ì­®áâì ¤«ï ¯®¤§ ¤ ç
ƒ®¢®àï ¨­ë¬¨ á«®¢ ¬¨, à¥è ¥¬ë¥ á ¯®¬®éìî ¦ ¤­ëå «£®à¨â¬®¢ § ¤ ç¨ ®¡« ¤ îâ ᢮©á⢮¬ ®¯â¨¬ «ì­®á⨠¤«ï ¯®¤§ ¤ ç (have
optimal substructure): ®¯â¨¬ «ì­®¥ à¥è¥­¨¥ ¢á¥© § ¤ ç¨ á®¤¥à¦¨â
¢ ᥡ¥ ®¯â¨¬ «ì­ë¥ à¥è¥­¨ï ¯®¤§ ¤ ç. (‘ í⨬ ᢮©á⢮¬ ¬ë
㦥 ¢áâà¥ç «¨áì, £®¢®àï ® ¤¨­ ¬¨ç¥áª®¬ ¯à®£à ¬¬¨à®¢ ­¨¨.)  ¯à¨¬¥à, ¯à¨ ¤®ª § ⥫ìá⢥ ⥮६ë 17.1 ¬ë ¢¨¤¥«¨, çâ® ¥á«¨
A | ®¯â¨¬ «ì­ë© ­ ¡®à § ª, ᮤ¥à¦ 騩 § 㠭®¬¥à 1, â®
A0 = A n f1g | ®¯â¨¬ «ì­ë© ­ ¡®à § ª ¤«ï ¬¥­ì襣® ¬­®¦¥-
Š®£¤ ¯à¨¬¥­¨¬ ¦ ¤­ë© «£®à¨â¬?
331
á⢠§ ª S 0, á®áâ®ï饣® ¨§ â¥å § ª, ¤«ï ª®â®àëå si > f1.
† ¤­ë© «£®à¨â¬ ¨«¨ ¤¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥?
ˆ ¦ ¤­ë¥ «£®à¨â¬ë, ¨ ¤¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥ ®á­®¢ë¢ îâáï ­ ᢮©á⢥ ®¯â¨¬ «ì­®á⨠¤«ï ¯®¤§ ¤ ç, ¯®í⮬㠬®¦¥â
¢®§­¨ª­ãâì ¨áªã襭¨¥ ¯à¨¬¥­¨âì ¤¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥ ¢ á¨âã 樨, £¤¥ å¢ â¨«® ¡ë ¦ ¤­®£® «£®à¨â¬ , ¨«¨, ­ ¯à®â¨¢,
¯à¨¬¥­¨âì ¦ ¤­ë© «£®à¨â¬ ª § ¤ ç¥, ¢ ª®â®à®© ®­ ­¥ ¤ áâ ®¯â¨¬ã¬ . Œë ¯à®¨««îáâà¨à㥬 ¢®§¬®¦­ë¥ «®¢ã誨 ­ ¯à¨¬¥à¥ ¤¢ãå
¢ ਠ­â®¢ ª« áá¨ç¥áª®© ®¯â¨¬¨§ 樮­­®© § ¤ ç¨.
„¨áªà¥â­ ï § ¤ ç ® à ª¥ (0-1 knapsack problem) á®á⮨⠢ á«¥¤ãî饬. ãáâì ¢®à ¯à®¡à «áï ­ ᪫ ¤, ­ ª®â®à®¬ åà ­¨âáï n ¢¥é¥©. ‚¥éì ­®¬¥à i á⮨â vi ¤®«« ஢ ¨ ¢¥á¨â wi ª¨«®£à ¬¬®¢ (vi
¨ wi | æ¥«ë¥ ç¨á« ). ‚®à å®ç¥â ãªà áâì ⮢ à ­ ¬ ªá¨¬ «ì­ãî
á㬬ã, ¯à¨çñ¬ ¬ ªá¨¬ «ì­ë© ¢¥á, ª®â®àë© ®­ ¬®¦¥â ã­¥á⨠¢ à ª¥, à ¢¥­ W (ç¨á«® W ⮦¥ 楫®¥). —â® ®­ ¤®«¦¥­ ¯®«®¦¨âì ¢
à ª?
¥¯à¥à뢭 ï § ¤ ç ® à ª¥ (fractional knapsack problem) ®â«¨ç ¥âáï ®â ¤¨áªà¥â­®© ⥬, çâ® ¢®à ¬®¦¥â ¤à®¡¨âì ªà ¤¥­ë¥ ⮢ àë
­ ç á⨠¨ 㪫 ¤ë¢ âì ¢ à ª í⨠ç áâ¨, ­¥ ®¡ï§ ⥫쭮 ¢¥é¨
楫¨ª®¬ (¥á«¨ ¢ ¤¨áªà¥â­®© § ¤ ç¥ ¢®à ¨¬¥¥â ¤¥«® á §®«®â묨 ᫨⪠¬¨, â® ¢ ­¥¯à¥à뢭®© | á §®«®âë¬ ¯¥áª®¬).
Ž¡¥ § ¤ ç¨ ® à ª¥ ®¡« ¤ îâ ᢮©á⢮¬ ®¯â¨¬ «ì­®á⨠¤«ï
¯®¤§ ¤ ç. ‚ á ¬®¬ ¤¥«¥, à áᬮâਬ ¤¨áªà¥â­ãî § ¤ çã. ‚ë­ã¢
¢¥éì ­®¬¥à j ¨§ ®¯â¨¬ «ì­® § £à㦥­­®£® à ª , ¯®«ã稬 à¥è¥­¨¥ § ¤ ç¨ ® à ª¥ á ¬ ªá¨¬ «ì­ë¬ ¢¥á®¬ W ; wj ¨ ­ ¡®à®¬
¨§ n ; 1 ¢¥é¨ (¢á¥ ¢¥é¨, ªà®¬¥ j -©). €­ «®£¨ç­®¥ à áá㦤¥­¨¥ ¯à®å®¤¨â ¨ ¤«ï ­¥¯à¥à뢭®© § ¤ ç¨: ¢ë­ã¢ ¨§ ®¯â¨¬ «ì­® § £à㦥­­®£® à ª , ¢ ª®â®à®¬ «¥¦¨â w ª¨«®£à ¬¬®¢ ⮢ à ­®¬¥à j , ¢¥áì
íâ®â ⮢ à, ¯®«ã稬 ®¯â¨¬ «ì­®¥ à¥è¥­¨¥ ­¥¯à¥à뢭®© § ¤ ç¨, ¢
ª®â®à®© ¬ ªá¨¬ «ì­ë© ¢¥á à ¢¥­ W ; w (¢¬¥áâ® W ), ª®«¨ç¥á⢮
j -£® ⮢ à à ¢­® wj ; w (¢¬¥áâ® wj ).
•®âï ¤¢¥ § ¤ ç¨ ® à ª¥ ¨ ¯®å®¦¨, ¦ ¤­ë© «£®à¨â¬ ¤ ñâ
®¯â¨¬ã¬ ¢ ­¥¯à¥à뢭®© § ¤ ç¥ ® à ª¥ ¨ ­¥ ¤ ñâ ¢ ¤¨áªà¥â­®©.
‚ á ¬®¬ ¤¥«¥, à¥è¥­¨¥ ­¥¯à¥à뢭®© § ¤ ç¨ ® à ª¥ á ¯®¬®éìî
¦ ¤­®£® «£®à¨â¬ ¢ë£«ï¤¨â â ª. ‚ëç¨á«¨¬ 業ë (¢ à áçñ⥠­ ª¨«®£à ¬¬) ¢á¥å ⮢ ஢ (業 ⮢ à ­®¬¥à i à ¢­ vi =wi). ‘­ ç « ¢®à ¡¥àñâ ¯® ¬ ªá¨¬ã¬ã á ¬®£® ¤®à®£®£® ⮢ à ; ¥á«¨ ¢¥áì íâ®â
⮢ à ª®­ç¨«áï, à ª ­¥ § ¯®«­¥­, ¢®à ¡¥àñâ á«¥¤ãî騩 ¯® 業¥
⮢ à, § ⥬ á«¥¤ãî騩, ¨ â ª ¤ «¥¥, ¯®ª ­¥ ­ ¡¥àñâ ¢¥á W . ®áª®«ìªã ⮢ àë ­ ¤® ¯à¥¤¢ à¨â¥«ì­® ®âá®àâ¨à®¢ âì ¯® 業 ¬, ­ ç⮠㩤ñ⠢६ï O(n log n), ¢à¥¬ï à ¡®âë ®¯¨á ­­®£® «£®à¨â¬ ¡ã¤¥â O(n log n). ‚ ã¯à ¦­¥­¨¨ 17.2-1 ¬ë ¯®¯à®á¨¬ ¢ á ¤®ª § âì,
çâ® ®¯¨á ­­ë© «£®à¨â¬ ¤¥©á⢨⥫쭮 ¤ ¥â ®¯â¨¬ã¬.
332
ƒ« ¢ 17 † ¤­ë¥ «£®à¨â¬ë
¨áã­®ª 17.2 ‚ ¤¨áªà¥â­®© § ¤ ç¥ ® à ª¥ ¦ ¤­ ï áâà ⥣¨ï ¬®¦¥â ­¥ áà ¡®â âì. ( ) ‚®à ¤®«¦¥­ ¢ë¡à âì ¤¢¥ ¢¥é¨ ¨§ âàñå á ⥬, çâ®¡ë ¨å á㬬 à­ë©
¢¥á ­¥ ¯à¥¢ëᨫ 50 ª£. (¡) Ž¯â¨¬ «ì­ë© ¢ë¡®à | ¢â®à ï ¨ âà¥âìï ¢¥é¨; ¥á«¨
¯®«®¦¨âì ¢ à ª ¯¥à¢ãî, â® ¢ë¡®à ®¯â¨¬ «ì­ë¬ ­¥ ¡ã¤¥â, å®âï ¨¬¥­­® ®­ ¤®à®¦¥ ¢á¥å ¢ à áçñ⥠­ ¥¤¨­¨æã ¢¥á . (¢) „«ï ­¥¯à¥à뢭®© § ¤ ç¨ ® à ª¥ á ⥬¨ ¦¥ ¨á室­ë¬¨ ¤ ­­ë¬¨ ¢ë¡®à ⮢ ஢ ¢ ¯®à浪¥ ã¡ë¢ ­¨ï æ¥­ë ­ ¥¤¨­¨æã ¢¥á ¡ã¤¥â ®¯â¨¬ «¥­.
—⮡ë ã¡¥¤¨âìáï ¢ ⮬, çâ® ­ «®£¨ç­ë© ¦ ¤­ë© «£®à¨â¬ ­¥
®¡ï§ ­ ¤ ¢ âì ®¯â¨¬ã¬ ¢ ¤¨áªà¥â­®© § ¤ ç¥ ® à ª¥, ¢§£«ï­¨â¥
­ à¨á. 17.2 . ƒà㧮¯®¤êñ¬­®áâì à ª 50 ª£, ­ ᪫ ¤¥ ¨¬¥îâáï
âਠ¢¥é¨, ¢¥áï騥 10, 20 ¨ 30 ª£ ¨ áâ®ï騥 60, 100 ¨ 120 ¤®«« ஢
ᮮ⢥âá⢥­­®. –¥­ ¨å ¢ à áçñ⥠­ ¥¤¨­¨æã ¢¥á à ¢­ 6, 5 ¨ 4.
† ¤­ë© «£®à¨â¬ ¤«ï ­ ç « ¯®«®¦¨â ¢ à ª ¢¥éì ­®¬¥à 1;
®¤­ ª® ®¯â¨¬ «ì­®¥ à¥è¥­¨¥ ¢ª«îç ¥â ¯à¥¤¬¥âë ­®¬¥à 2 ¨ 3.
„«ï ­¥¯à¥à뢭®© § ¤ ç¨ á ⥬¨ ¦¥ ¨á室­ë¬¨ ¤ ­­ë¬¨ ¦ ¤­ë©
«£®à¨â¬, ¯à¥¤¯¨áë¢ î騩 ­ ç âì á ⮢ à ­®¬¥à 1, ¤ ñâ ®¯â¨¬ «ì­®¥ à¥è¥­¨¥ (à¨á. 17.2¢). ‚ ¤¨áªà¥â­®© § ¤ ç¥ â ª ï áâà ⥣¨ï
­¥ áà ¡ âë¢ ¥â: ¯®«®¦¨¢ ¢ à ª ¯à¥¤¬¥â ­®¬¥à 1, ¢®à «¨è ¥âáï
¢®§¬®¦­®á⨠§ ¯®«­¨âì à ª "¯®¤ § ¢ï§ªã", ¯ãá⮥ ¬¥áâ® ¢
à ª¥ á­¨¦ ¥â 業㠭 ¢®à®¢ ­­®£® ¢ à áçñ⥠­ ¥¤¨­¨æã ¢¥á .
à¨ à¥è¥­¨¨ ¤¨áªà¥â­®© § ¤ ç¨ ® à ª¥, ç⮡ë à¥è¨âì, ª« áâì
«¨ ¤ ­­ãî ¢¥éì ¢ à ª, ­ ¤® áà ¢­¨âì à¥è¥­¨¥ ¯®¤§ ¤ ç¨, ¢®§­¨ª î饩, ¥á«¨ ¤ ­­ ï ¢¥éì § ¢¥¤®¬® «¥¦¨â ¢ à ª¥, á ¯®¤§ ¤ 祩, ¢®§­¨ª î饩, ¥á«¨ í⮩ ¢¥é¨ ¢ à ª¥ § ¢¥¤®¬® ­¥â. ’¥¬
á ¬ë¬ ¤¨áªà¥â­ ï § ¤ ç ® à ª¥ ¯®à®¦¤ ¥â ¬­®¦¥á⢮ ¯¥à¥ªàë¢ îé¨åáï ¯®¤§ ¤ ç | ⨯¨ç­ë© ¯à¨§­ ª ⮣®, çâ® ¬®¦¥â ¯à¨£®¤¨âìáï ¤¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥. ˆ ¤¥©á⢨⥫쭮, ª ¤¨áªà¥â­®© § ¤ ç¥ ® à ª¥ ®­® ¯à¨¬¥­¨¬® (á¬. ã¯à ¦­¥­¨¥ 17.2-2).
“¯à ¦­¥­¨ï
17.2-1 „®ª ¦¨â¥, çâ® ¤«ï ­¥¯à¥à뢭®© § ¤ ç¨ ® à ª¥ ¢ë¯®«­¥­ ¯à¨­æ¨¯ ¦ ¤­®£® ¢ë¡®à .
Š®¤ë • ä䬥­ 333
 §à ¡®â ©â¥ ®á­®¢ ­­ë© ­ ¤¨­ ¬¨ç¥áª®¬ ¯à®£à ¬¬¨à®¢ ­¨¨ «£®à¨â¬ ¤«ï à¥è¥­¨ï ¤¨áªà¥â­®© § ¤ ç¨ ® à ª¥. €«£®à¨â¬ ¤®«¦¥­ à ¡®â âì § ¢à¥¬ï O(nW ) (n | ª®«¨ç¥á⢮ ¢¥é¥©,
W | ¬ ªá¨¬ «ì­ë© ¢¥á à ª ).
17.2-3 ãáâì ¢ ¤¨áªà¥â­®© § ¤ ç¥ ® à ª¥ ¢¥é¨ ¬®¦­® 㯮à冷ç¨âì â ª¨¬ ®¡à §®¬, çâ®¡ë ®¤­®¢à¥¬¥­­® ¢ë¯®«­ï«¨áì ­¥à ¢¥­á⢠w1 6 w2 6 6 wn ¨ v1 > v2 > > vn.  §à ¡®â ©â¥ íä䥪⨢­ë© «£®à¨â¬ ¤«ï ­ 宦¤¥­¨ï ®¯â¨¬ «ì­®£® ­ ¡®à ¨ ¤®ª ¦¨â¥,
çâ® ®­ ¯à ¢¨«¥­.
17.2-4 à®ä¥áá®à ¥¤¥â ¯® è®áᥠ¨§ ¥â¥à¡ã࣠¢ Œ®áª¢ã, ¨¬¥ï
¯à¨ ᥡ¥ ª àâã á 㪠§ ­¨¥¬ ¢á¥å áâ®ïé¨å ­ è®áᥠ¡¥­§®ª®«®­®ª ¨
à ááâ®ï­¨© ¬¥¦¤ã ­¨¬¨. ˆ§¢¥áâ­® à ááâ®ï­¨¥, ª®â®à®¥ ¬®¦¥â ¯à®¥å âì ¬ 設 á ¯®«­®áâìî § ¯à ¢«¥­­ë¬ ¡ ª®¬.  §à ¡®â ©â¥ íä䥪⨢­ë© «£®à¨â¬, ¯®§¢®«ïî騩 ¢ëïá­¨âì, ­ ª ª¨å ¡¥­§®ª®«®­ª å ­ ¤® § ¯à ¢«ïâìáï, çâ®¡ë ª®«¨ç¥á⢮ § ¯à ¢®ª ¡ë«® ¬¨­¨¬ «ì­®. (‚ ­ ç «¥ ¯ã⨠¡ ª ¯®«®­.)
17.2-5 „ ­® n â®ç¥ª x1 ; x2; : : :; xn ­ ª®®à¤¨­ â­®© ¯àאַ©; âॡã¥âáï ¯®ªàëâì ¢á¥ í⨠â®çª¨ ­ ¨¬¥­ì訬 ç¨á«®¬ ®â१ª®¢ ¤«¨­ë 1.
 §à ¡®â ©â¥ íä䥪⨢­ë© «£®à¨â¬, à¥è î騩 íâã ®¯â¨¬¨§ 樮­­ãî § ¤ çã.
17.2-6? à¥¤¯®« £ ï ¨§¢¥áâ­ë¬ à¥è¥­¨¥ § ¤ ç¨ 10-2, ­ ©¤¨â¥ à¥è¥­¨¥ ­¥¯à¥à뢭®© § ¤ ç¨ ® à ª¥ § ¢à¥¬ï O(n).
17.2-2
17.3 Š®¤ë • ä䬥­ Š®¤ë • ä䬥­ è¨à®ª® ¨á¯®«ì§ãîâáï ¯à¨ á¦ â¨ï ¨­ä®à¬ 樨
(¢ ⨯¨ç­®© á¨âã 樨 ¢ë¨£àëè ¬®¦¥â á®áâ ¢¨âì ®â 20% ¤® 90%
¢ § ¢¨á¨¬®á⨠®â ⨯ ä ©« ). €«£®à¨â¬ • ä䬥­ ­ 室¨â ®¯â¨¬ «ì­ë¥ ª®¤ë ᨬ¢®«®¢ (¨áå®¤ï ¨§ ç áâ®âë ¨á¯®«ì§®¢ ­¨ï íâ¨å
ᨬ¢®«®¢ ¢ ᦨ¬ ¥¬®¬ ⥪áâ¥) á ¯®¬®éìî ¦ ¤­®£® ¢ë¡®à .
ãáâì ¢ ä ©«¥ ¤«¨­ë 100 000 ¨§¢¥áâ­ë ç áâ®âë ᨬ¢®«®¢
(à¨á. 17.3). Œë å®â¨¬ ¯®áâநâì ¤¢®¨ç­ë© ª®¤ (binary character
code), ¢ ª®â®à®¬ ª ¦¤ë© ᨬ¢®« ¯à¥¤áâ ¢«ï¥âáï ¢ ¢¨¤¥ ª®­¥ç­®©
¯®á«¥¤®¢ ⥫쭮á⨠¡¨â®¢, ­ §ë¢ ¥¬®© ª®¤®¢ë¬ á«®¢®¬ (codeword).
à¨ ¨á¯®«ì§®¢ ­¨¨ à ¢­®¬¥à­®£® ª®¤ (xed-length code), ¢ ª®â®à®¬
¢á¥ ª®¤®¢ë¥ á«®¢ ¨¬¥îâ ®¤¨­ ª®¢ãî ¤«¨­ã, ­ ª ¦¤ë© ᨬ¢®«
(¨§ è¥á⨠¨¬¥îé¨åáï) ­ ¤® ¯®âà â¨âì ª ª ¬¨­¨¬ã¬ âਠ¡¨â ,
­ ¯à¨¬¥à, a = 000; b = 001; : : :; f = 101.  ¢¥áì ä ©« 㩤¥â 300 000
¡¨â®¢ | ­¥«ì§ï «¨ 㬥­ìè¨âì íâ® ç¨á«®?
¥à ¢­®¬¥à­ë© ª®¤ (variable-length code) ¡ã¤¥â íª®­®¬­¥¥, ¥á«¨
ç áâ® ¢áâà¥ç î騥áï ᨬ¢®«ë § ª®¤¨à®¢ âì ª®à®âª¨¬¨ ¯®á«¥¤®-
334
ƒ« ¢ 17 † ¤­ë¥ «£®à¨â¬ë
a
b
c
d
e
f
Š®«¨ç¥á⢮ (¢ âëáïç å) 45 13 12 16 9
5
 ¢­®¬¥à­ë© ª®¤
000 001 010 011 100 101
¥à ¢­®¬¥à­ë© ª®¤
0 101 100 111 1101 1100
¨áã­®ª 17.3 ‡ ¤ ç ® ¢ë¡®à¥ ª®¤ . ‚ ä ©«¥ ¤«¨­®© 100 000 ᨬ¢®«®¢ ¢áâà¥ç îâáï ⮫쪮 « ⨭᪨¥ ¡ãª¢ë ®â a ¤® f (¢ â ¡«¨æ¥ 㪠§ ­®, ¯® ᪮«ìªã à §
ª ¦¤ ï). …᫨ ª ¦¤ãî ¡ãª¢ã § ª®¤¨à®¢ âì âà¥¬ï ¡¨â ¬¨, â® ¢á¥£® ¡ã¤¥â 300 000
¡¨â®¢. …᫨ ¨á¯®«ì§®¢ âì ­¥à ¢­®¬¥à­ë© ª®¤ (­¨¦­ïï áâப ), â® ¤®áâ â®ç­®
224 000 ¡¨â®¢.
¢ ⥫쭮áâﬨ ¡¨â®¢, ।ª® ¢áâà¥ç î騥áï | ¤«¨­­ë¬¨. Ž¤¨­
â ª®© ª®¤ ¯®ª § ­ ­ à¨á. 17.3: ¡ãª¢ a ¨§®¡à ¦ ¥âáï ®¤­®¡¨â®¢®©
¯®á«¥¤®¢ ⥫쭮áâìî 0, ¡ãª¢ f | ç¥âëàñ塨⮢®© ¯®á«¥¤®¢ ⥫쭮áâìî 1100. à¨ â ª®© ª®¤¨à®¢ª¥ ­ ¢¥áì ä ©« 㩤ñâ
(45 1 + 13 3 + 12 3 + 16 3 + 9 4 + 5 4) 1000 = 224 000
¡¨â®¢, çâ® ¤ ñâ ®ª®«® 25% íª®­®¬¨¨. („ «¥¥ ¬ë 㢨¤¨¬, çâ® íâ®â
ª®¤ ¡ã¤¥â ®¯â¨¬ «ì­ë¬.)
à¥ä¨ªá­ë¥ ª®¤ë
Œë ¡ã¤¥¬ à áᬠâਢ âì ⮫쪮 ª®¤ë, ¢ ª®â®àëå ¨§ ¤¢ãå ¯®á«¥¤®¢ ⥫쭮á⥩ ¡¨â®¢, ¯à¥¤áâ ¢«ïîé¨å à §«¨ç­ë¥ ᨬ¢®«ë, ­¨
®¤­ ­¥ ï¥âáï ¯à¥ä¨ªá®¬ ¤à㣮©. ’ ª¨¥ ª®¤ë ­ §ë¢ îâáï ¯à¥ä¨ªá­ë¬¨ ª®¤ ¬¨ (prex codes; â ª®¢ ®¡é¥¯à¨­ïâë© â¥à¬¨­, å®âï
«®£¨ç­¥¥ ¡ë«® ¡ë ­ §ë¢ âì ¨å " ¡¥á¯à¥ä¨ªá­ë¬¨" ª®¤ ¬¨). Œ®¦­®
¯®ª § âì (¬ë í⮣® ¤¥« âì ­¥ ¡ã¤¥¬), çâ® ¤«ï «î¡®£® ª®¤ , ®¡¥á¯¥ç¨¢ î饣® ®¤­®§­ ç­®¥ ¢®ááâ ­®¢«¥­¨¥ ¨­ä®à¬ 樨, áãé¥áâ¢ã¥â
­¥ åã¤è¨© ¥£® ¯à¥ä¨ªá­ë© ª®¤, â ª çâ® ¬ë ­¨ç¥£® ­¥ â¥à塞.
à¨ ª®¤¨à®¢ ­¨¨ ª ¦¤ë© ᨬ¢®« § ¬¥­ï¥âáï ­ ᢮© ª®¤.  ¯à¨¬¥à, ¤«ï ­¥à ¢­®¬¥à­®£® ª®¤ à¨á. 17.3 áâப abc § ¯¨è¥âáï
ª ª 0101100. „«ï ¯à¥ä¨ªá­®£® ª®¤ ¤¥ª®¤¨à®¢ ­¨¥ ®¤­®§­ ç­® ¨
¢ë¯®«­ï¥âáï á«¥¢ ­ ¯à ¢®. ¥à¢ë© ᨬ¢®« ⥪áâ , § ª®¤¨à®¢ ­­®£® ¯à¥ä¨ªá­ë¬ ª®¤®¬, ®¯à¥¤¥«ï¥âáï ®¤­®§­ ç­®, â ª ª ª ª®¤¨àãîé ï ¥£® ¯®á«¥¤®¢ ⥫쭮áâì ­¥ ¬®¦¥â ¡ëâì ­ ç «®¬ ª®¤ ª ª®£®â® ¨­®£® ᨬ¢®« .  ©¤ï íâ®â ¯¥à¢ë© ᨬ¢®« ¨ ®â¡à®á¨¢ ª®¤¨à®¢ ¢èãî ¥£® ¯®á«¥¤®¢ ⥫쭮áâì ¡¨â®¢, ¬ë ¯®¢â®à塞 ¯à®æ¥áá ¤«ï
®áâ ¢è¨åáï ¡¨â®¢, ¨ â ª ¤ «¥¥.  ¯à¨¬¥à, áâப 001011101 (¯à¨
¨á¯®«ì§®¢ ­¨¨ ­¥à ¢­®¬¥à­®£® ª®¤ à¨á. 17.3) à §¡¨¢ ¥âáï ­ ç áâ¨
0 0 101 1101 ¨ ¤¥ª®¤¨àã¥âáï ª ª aabe.
„«ï íä䥪⨢­®© ॠ«¨§ 樨 ¤¥ª®¤¨à®¢ ­¨ï ­ ¤® åà ­¨âì ¨­ä®à¬ æ¨î ® ª®¤¥ ¢ 㤮¡­®© ä®à¬¥. Ž¤­ ¨§ ¢®§¬®¦­®á⥩ | ¯à¥¤áâ ¢¨âì ª®¤ ¢ ¢¨¤¥ ¤¢®¨ç­®£® ¤¥à¥¢ , «¨áâìï ª®â®à®£® ᮮ⢥âáâ¢ãîâ ª®¤¨àã¥¬ë¬ á¨¬¢®« ¬. à¨ í⮬ ¯ãâì ®â ¢¥àè¨­ë ¤¥à¥¢ ¤® ª®¤¨à㥬®£® ᨬ¢®« ®¯à¥¤¥«ï¥â ª®¤¨àãîéãî ¯®á«¥¤®¢ ⥫쭮áâì ¡¨â®¢: ¯®¢®à®â ­ «¥¢® ¤ ñâ 0, ¯®¢®à®â ­ ¯à ¢® | 1.
Š®¤ë • ä䬥­ 335
¨áã­®ª 17.4 „¥à¥¢ìï, ᮮ⢥âáâ¢ãî騥 ¤¢ã¬ ª®¤ ¬ à¨á. 17.3. ‚ ª ¦¤®¬ «¨áâ¥
㪠§ ­ ᮮ⢥âáâ¢ãî騩 ᨬ¢®« ¨ ç áâ®â ¥£® ¨á¯®«ì§®¢ ­¨ï ¢ ⥪áâ¥. ‚® ¢­ãâ७­¨å 㧫 å 㪠§ ­ á㬬 ç áâ®â ¤«ï «¨áâ쥢 ᮮ⢥âáâ¢ãî饣® ¯®¤¤¥à¥¢ .
( ) „¥à¥¢®, ᮮ⢥âáâ¢ãî饥 à ¢­®¬¥à­®¬ã ª®¤ã a = 000; : : : ; f = 100. (¡) „¥à¥¢®, ᮮ⢥âáâ¢ãî饥 ®¯â¨¬ «ì­®¬ã ¯à¥ä¨ªá­®¬ã ª®¤ã a = 0; b = 101; : : : ; f =
1100.
 à¨á. 17.4 ¨§®¡à ¦¥­ë ¤¥à¥¢ìï, ᮮ⢥âáâ¢ãî騥 ¤¢ã¬ ª®¤ ¬
à¨á. 17.3.
Ž¯â¨¬ «ì­®¬ã (¤«ï ¤ ­­®£® ä ©« ) ª®¤ã ¢á¥£¤ ᮮ⢥âáâ¢ã¥â
¤¢®¨ç­®¥ ¤¥à¥¢®, ¢ ª®â®à®¬ ¢áïª ï ¢¥à設 , ­¥ ïîé ïáï «¨á⮬,
¨¬¥¥â ¤¢®¨å ¤¥â¥© (á¬. ã¯à ¦­¥­¨¥ 17.3-1). ‚ ç áâ­®áâ¨, à ¢­®¬¥à­ë© ª®¤ ¨§ ­ 襣® ¯à¨¬¥à ®¯â¨¬ «ì­ë¬ ¡ëâì ­¥ ¬®¦¥â, â ª ª ª ¢
ᮮ⢥âáâ¢ãî饬 ¤¥à¥¢¥ (à¨á. 17.4 ) ¥áâì ¢¥à設 á ®¤­¨¬ ॡñ­ª®¬ (ª®¤ë ­¥ª®â®àëå ᨬ¢®«®¢ ­ 稭 îâáï á 10 : : : , ­® ­¨ ®¤¨­ ª®¤
ᨬ¢®« ­¥ ­ 稭 ¥âáï á 11 : : : ). ’ ª®¥ ᢮©á⢮ ®¯â¨¬ «ì­®£® ª®¤ ¯®§¢®«ï¥â «¥£ª® ¤®ª § âì, çâ® ¤¥à¥¢® ®¯â¨¬ «ì­®£® ¯à¥ä¨ªá­®£®
ª®¤ ¤«ï ä ©« , ¢ ª®â®à®¬ ¨á¯®«ì§ãîâáï ¢á¥ á¨¬¢®«ë ¨§ ­¥ª®â®à®£® ¬­®¦¥á⢠C ¨ ⮫쪮 ®­¨, ᮤ¥à¦¨â ஢­® jC j «¨áâ쥢, ¯®
®¤­®¬ã ­ ª ¦¤ë© ᨬ¢®«, ¨ ஢­® jC j ; 1 㧫®¢, ­¥ ïîé¨åáï
«¨áâìﬨ.
‡­ ï ¤¥à¥¢® T , ᮮ⢥âáâ¢ãî饥 ¯à¥ä¨ªá­®¬ã ª®¤ã, «¥£ª® ­ ©â¨
ª®«¨ç¥á⢮ ¡¨â®¢, ­¥®¡å®¤¨¬®¥ ¤«ï ª®¤¨à®¢ ­¨ï ä ©« . ˆ¬¥­­®,
¤«ï ª ¦¤®£® ᨬ¢®« c ¨§ «ä ¢¨â C ¯ãáâì f [c] ®¡®§­ ç ¥â ç¨á«®
¥£® ¢å®¦¤¥­¨© ¢ ä ©«, dT (c) | £«ã¡¨­ã ᮮ⢥âáâ¢ãî饣® «¨áâ ¢ ¤¥à¥¢¥ ¨«¨, çâ® â® ¦¥ á ¬®¥, ¤«¨­ã ¯®á«¥¤®¢ ⥫쭮á⨠¡¨â®¢,
ª®¤¨àãî饩 c. ’®£¤ ¤«ï ª®¤¨à®¢ ­¨ï ä ©« ¯®âॡã¥âáï
B (T ) =
X
c2C
f [c]dT (c)
¡¨â®¢.  §®¢¥¬ íâ® ç¨á«® á⮨¬®áâìî (cost) ¤¥à¥¢ T .
(17.3)
336
ƒ« ¢ 17 † ¤­ë¥ «£®à¨â¬ë
®áâ஥­¨¥ ª®¤ • ä䬥­ • ä䬥­ ¯®áâந« ¦ ¤­ë© «£®à¨â¬, ª®â®àë© áâந⠮¯â¨¬ «ì­ë© ¯à¥ä¨ªá­ë© ª®¤. â®â ª®¤ ­ §ë¢ ¥âáï ª®¤®¬ • ä䬥­ (Human code). €«£®à¨â¬ áâந⠤¥à¥¢® T , ᮮ⢥âáâ¢ãî饥 ®¯â¨¬ «ì­®¬ã ª®¤ã, á­¨§ã ¢¢¥àå, ­ 稭 ï á ¬­®¦¥á⢠¨§ jC j «¨áâ쥢 ¨ ¤¥« ï
jC j;1 "᫨ﭨ©". Œë ¯à¥¤¯®« £ ¥¬, çâ® ¤«ï ª ¦¤®£® ᨬ¢®« c 2 C
§ ¤ ­ ¥£® ç áâ®â f [c]. „«ï ­ 宦¤¥­¨ï ¤¢ãå ®¡ê¥ªâ®¢, ¯®¤«¥¦ é¨å ᫨ﭨî, ¨á¯®«ì§ã¥âáï ®ç¥à¥¤ì á ¯à¨®à¨â¥â ¬¨ Q, ¨á¯®«ì§ãîé ï ç áâ®âë f ¢ ª ç¥á⢥ à ­£®¢ | ᫨¢ îâáï ¤¢ ®¡ê¥ªâ á
­ ¨¬¥­ì訬¨ ç áâ®â ¬¨. ‚ १ã«ìâ â¥ á«¨ï­¨ï ¯®«ãç ¥âáï ­®¢ë©
®¡ê¥ªâ (¢­ãâ७­ïï ¢¥à設 ), ç áâ®â ª®â®à®£® áç¨â ¥âáï à ¢­®©
á㬬¥ ç áâ®â ¤¢ãå ᫨¢ ¥¬ëå ®¡ê¥ªâ®¢.
Huffman(C )
1 n jC j
2 Q C
3 for i 1 to n ; 1
4
do z Allocate-Node()
5
x left[z] Extract-Min(Q)
6
y right[z] Extract-Min(Q)
7
f [z] f [x] + f [y ]
8
Insert(Q; z )
9 return Extract-Min(Q)
 ¡®â í⮣® «£®à¨â¬ ¤«ï ­ 襣® ¯à¨¬¥à ¯®ª § ­ ­ à¨á. 17.5. ®áª®«ìªã ¨¬¥¥âáï ¢á¥£® 6 ¡ãª¢, ¯¥à¢®­ ç «ì­® ®ç¥à¥¤ì
¨¬¥¥â à §¬¥à n = 6, ¨ ¤«ï ¯®áâ஥­¨ï ¤¥à¥¢ ­ã¦­® ᤥ« âì
5 ᫨ﭨ©. à¥ä¨ªá­ë© ª®¤ ᮮ⢥âáâ¢ã¥â ¤¥à¥¢ã, ¯®«ã祭­®¬ã ¢
१ã«ìâ ⥠¢á¥å íâ¨å ᫨ﭨ©.
‚ áâப¥ 2 «£®à¨â¬ ¢ ®ç¥à¥¤ì Q ¯®¬¥é îâáï ᨬ¢®«ë ¨§ «ä ¢¨â C (á ᮮ⢥âáâ¢ãî騬¨ ç áâ®â ¬¨). ‚ 横«¥ (áâப¨ 3{8)
¯®¢â®àï¥âáï n ; 1 à § á«¥¤ãîé ï ®¯¥à æ¨ï: ¨§ ®ç¥à¥¤¨ ¨§ë¬ îâáï
¤¢¥ ¢¥à設ë x ¨ y á ­ ¨¬¥­ì訬¨ ç áâ®â ¬¨ f [x] ¨ f [y], ª®â®àë¥
§ ¬¥­ïîâáï ­ ®¤­ã ¢¥à設ã z á ç áâ®â®© f [x] + f [y] ¨ ¤¥â쬨 x ¨
y (ª®£® ¨§ ­¨å áç¨â âì «¥¢ë¬ ॡñ­ª®¬, ª®£® ¯à ¢ë¬ | ­¥¢ ¦­®:
ª®¤ ¯®«ãç¨âáï ¤à㣮©, ­® ¥£® á⮨¬®áâì ¡ã¤¥â â ¦¥). ‚ ª®­æ¥ ¢ ®ç¥à¥¤¨ ®áâ ñâáï ®¤¨­ 㧥« | ª®à¥­ì ¯®áâ஥­­®£® ¤¢®¨ç­®£® ¤¥à¥¢ .
‘á뫪 ­ ­¥£® ¢®§¢à é ¥âáï ¢ áâப¥ 9.
Žæ¥­¨¬ ¢à¥¬ï à ¡®âë «£®à¨â¬ , áç¨â ï, çâ® ®ç¥à¥¤ì Q ॠ«¨§®¢ ­ ¢ ¢¨¤¥ ¤¢®¨ç­®© ªãç¨ (á¬. £« ¢ã 7). ˆ­¨æ¨ «¨§ æ¨î Q ¢
áâப¥ 2 ¬®¦­® ¯à®¢¥á⨠§ O(n) ®¯¥à 権 á ¯®¬®éìî ¯à®æ¥¤ãàë
Build-Heap ¨§ à §¤¥« 7.3. –¨ª« ¢ áâப å 3{8 ¨á¯®«­ï¥âáï ஢­®
n ; 1 à §; ¯®áª®«ìªã ª ¦¤ ï ®¯¥à æ¨ï á ªã祩 âॡã¥â ¢à¥¬¥­¨
O(log n), ®¡é¥¥ ¢à¥¬ï ¡ã¤¥â O(n log n). ‘â «® ¡ëâì, ¢à¥¬ï à ¡®âë
«£®à¨â¬ Huffman ¤«ï «ä ¢¨â ¨§ n ᨬ¢®«®¢ ¡ã¤¥â O(n log n).
Š®¤ë • ä䬥­ 337
¨áã­®ª 17.5 à¨¬¥­¥­¨¥ «£®à¨â¬ • ä䬥­ ª â ¡«¨æ¥ ç áâ®â à¨á. 17.3. ®ª § ­ë ¯®á«¥¤®¢ ⥫ì­ë¥ á®áâ®ï­¨ï ®ç¥à¥¤¨ (¢ ¯®à浪¥ ¢®§à áâ ­¨ï ç áâ®â).  ª ¦¤®¬ è £¥ ᫨¢ îâáï ¤¢ ¯®¤¤¥à¥¢ á ­ ¨¬¥­ì訬¨ ç áâ®â ¬¨. ‹¨áâìï |
¯àאַ㣮«ì­¨ª¨, ¢ ª®â®àëå ᨬ¢®« ¨ ¥£® ç áâ®â à §¤¥«¥­ë ¤¢®¥â®ç¨¥¬. ‚­ãâ७­¨¥ ¢¥àè¨­ë ¨§®¡à ¦¥­ë ªà㦪 ¬¨, ¢ ª®â®àëå 㪠§ ­ë á㬬ë ç áâ®â ¨å
¤¥â¥©. ¥¡à®, ¨¤ã饥 ª «¥¢®¬ã ॡñ­ªã, ¯®¬¥ç¥­® ­ã«¥¬, ª ¯à ¢®¬ã | ¥¤¨­¨æ¥©. ‚ १ã«ìâ¨àãî饬 ¤¥à¥¢¥ ª®¤ «î¡®£® ᨬ¢®« ­ ¯¨á ­ ­ ¯ãâ¨, ¢¥¤ã饬
¨§ ª®à­ï ª í⮬ã ᨬ¢®«ã. ( )  ç «ì­ ï áâ ¤¨ï: n = 6 «¨áâ쥢, ¯® ®¤­®¬ã ­ ᨬ¢®«. (¡){(¤) à®¬¥¦ãâ®ç­ë¥ áâ ¤¨¨. (¥) ƒ®â®¢®¥ ¤¥à¥¢®.
à ¢¨«ì­®áâì «£®à¨â¬ • ä䬥­ —â®¡ë ¤®ª § âì, çâ® ¦ ¤­ë© «£®à¨â¬ Huffman ¤¥©á⢨⥫쭮
¤ ñâ ®¯â¨¬ã¬, ¬ë ¯®ª ¦¥¬, çâ® ¤«ï § ¤ ç¨ ®¡ ®¯â¨¬ «ì­®¬ ¯à¥ä¨ªá­®¬ ª®¤¥ ¢ë¯®«­¥­ë ¯à¨­æ¨¯ ¦ ¤­®£® ¢ë¡®à ¨ ᢮©á⢮ ®¯â¨¬ «ì­®á⨠¤«ï ¯®¤§ ¤ ç.  ç­ñ¬ á ¯à¨­æ¨¯ ¦ ¤­®£® ¢ë¡®à .
‹¥¬¬ 17.2. ãáâì ¢ «ä ¢¨â¥ C ª ¦¤ë© ᨬ¢®« c 2 C ¨¬¥¥â ç áâ®âã f [c]. ãáâì x; y 2 C | ¤¢ ᨬ¢®« á ­ ¨¬¥­ì訬¨ ç áâ®â ¬¨. ’®£¤ ¤«ï C áãé¥áâ¢ã¥â ®¯â¨¬ «ì­ë© ¯à¥ä¨ªá­ë© ª®¤, ¢
ª®â®à®¬ ¯®á«¥¤®¢ ⥫쭮á⨠¡¨â®¢, ª®¤¨àãî騥 x ¨ y, ¨¬¥îâ
®¤¨­ ª®¢ãî ¤«¨­ã ¨ à §«¨ç îâáï ⮫쪮 ¢ ¯®á«¥¤­¥¬ ¡¨â¥.
„®ª § ⥫ìá⢮. “⢥ত¥­¨¥ «¥¬¬ë ¡ã¤¥â ¢ë¯®«­¥­®, ¥á«¨ «¨áâìï, ᮮ⢥âáâ¢ãî騥 x ¨ y, ¡ã¤ãâ ¡à âìﬨ.  áᬮâਬ ¤¥à¥¢® T , ᮮ⢥âáâ¢ãî饥 ¯à®¨§¢®«ì­®¬ã ®¯â¨¬ «ì­®¬ã ¯à¥ä¨ªá-
338
ƒ« ¢ 17 † ¤­ë¥ «£®à¨â¬ë
¨áã­®ª 17.6 „®ª § ⥫ìá⢮ «¥¬¬ë 17.2. ‡¤¥áì b ¨ c | ­ ¨¡®«¥¥ 㤠«ñ­­ë¥
®â ª®à­ï «¨áâìï-¡à âìï, x ¨0 y | «¨áâìï á ­ ¨¬¥­ì訬¨ ç áâ®â ¬¨
. Ž¡¬¥­ x
¨ b ¯à¥¢à é ¥â ¤¥à¥¢® T ¢ T , ®¡¬¥­ y ¨ c ¯à¥¢à é ¥â T 0 ¢ T 00 . à¨ ª ¦¤®©
¨§ ¯¥à¥áâ ­®¢®ª á⮨¬®áâì ¤¥à¥¢ ­¥ ¢®§à áâ ¥â.
­®¬ã ª®¤ã, ¨ ¯®ª ¦¥¬, çâ® ¥£® ¬®¦­® ¬®¤¨ä¨æ¨à®¢ âì, ­¥ ­ àãè ï
®¯â¨¬ «ì­®áâ¨, â ª, çâ®¡ë ¢ëè¥ãª § ­­®¥ ãá«®¢¨¥ ¢ë¯®«­ï«®áì.
‚ á ¬®¬ ¤¥«¥, à áᬮâਬ ¯ àã á®á¥¤­¨å (¨¬¥îé¨å ®¡é¥£® த¨â¥«ï) «¨áâ쥢 ¢ ¤¥à¥¢¥ T , ­ 室ïéãîáï ­ ¬ ªá¨¬ «ì­®¬ à ááâ®ï­¨¨ ®â ª®à­ï. (’ ª¨¥ áãé¥áâ¢ãîâ: ¢ ®¯â¨¬ «ì­®¬ ¤¥à¥¢¥ ¢á¥ ¢­ãâ७­¨¥ ¢¥àè¨­ë ¨¬¥îâ á⥯¥­ì 2, ¨ ¯®â®¬ã «¨áâ ­ ¨¡®«ì襩 £«ã¡¨­ë ¨¬¥¥â ¡à â .) ‘¨¬¢®«ë, áâ®ï騥 ¢ íâ¨å «¨áâìïå (­ §®¢ñ¬ ¨å b
¨ c) | ­¥ ®¡ï§ ⥫쭮 x ¨ y, ­® § ¢¥¤®¬® ¨¬¥îâ ­¥ ¬¥­ì訥 ç áâ®âë
(¯®áª®«ìªã x ¨ y ¡ë«¨ ¤¢ã¬ï ­ ¨¡®«¥¥ ।ª¨¬¨ ᨬ¢®« ¬¨). ¥
®£à ­¨ç¨¢ ï ®¡é­®áâ¨, ¬®¦­® áç¨â âì, çâ® f [x] 6 f [b] ¨ f [y] 6 f [c].
’¥¯¥àì ¯®¬¥­ï¥¬ ¬¥áâ ¬¨ ¢ ¤¥à¥¢¥ T ᨬ¢®«ë b ¨ x (¯®«ã祭­®¥
¤¥à¥¢® ­ §®¢ñ¬ T 0), § ⥬ ᨬ¢®«ë c ¨ y (¯®«ã祭­®¥ ¤¥à¥¢® ­ §®¢ñ¬ T 00). ®á«¥ â ª¨å ®¡¬¥­®¢ x ¨ y (á¬. ¯à¨¬¥à ­ à¨á. 17.6)
áâ ­ãâ ¡à âìﬨ, ­ 室ï騬¨áï ­ ¬ ªá¨¬ «ì­®© £«ã¡¨­¥. Žáâ «®áì ã¡¥¤¨âìáï, çâ® ¯à¨ ®¡¬¥­ å á⮨¬®áâì ¤¥à¥¢ ­¥ ¢®§à á⠥⠨,
á«¥¤®¢ ⥫쭮, ¤¥à¥¢® T 00 â ª¦¥ ï¥âáï ®¯â¨¬ «ì­ë¬. „à㣨¬¨
á«®¢ ¬¨, ¬ë ¤®«¦­ë ¯à®¢¥à¨âì, çâ® B(T ) > B(T 0) > B(T 00), £¤¥ B
| äã­ªæ¨ï á⮨¬®áâ¨. ‚ á ¬®¬ ¤¥«¥, á⮨¬®áâì ®¯à¥¤¥«ï¥âáï ª ª
á㬬 ¯® ¢á¥¬ «¨áâìï¬ ¯à®¨§¢¥¤¥­¨© ç áâ®âë ­ £«ã¡¨­ã (17.3).
à¨ ¯¥à¥å®¤¥ ®â T ª T 0 ¢ í⮩ á㬬¥ ¬¥­ïîâáï ⮫쪮 ¤¢ á« £ ¥¬ëå: f [b]dT (b) + f [x]dT (x) § ¬¥­ï¥âáï ­ f [b]dT 0(b) + f [x]dT 0 (x), â. ¥.
­ f [b]dT (x) + f [x]dT (b). ’ ª¨¬ ®¡à §®¬,
B (T ) ; B (T 0) = f [b]dT (b) + f [x]dT (x) ; f [b]dT (x) ; f [x]dT (b) =
= (f [b] ; f [x])(dT (b) ; dT (x)) > 0:
Ž¡¥ ᪮¡ª¨ ­¥®âà¨æ ⥫ì­ë: ¢á¯®¬­¨¬, çâ® f [x] 6 f [b] ¨ çâ®
dT (b) > dT (x), â ª ª ª «¨áâ b ¡ë« ®¤­¨¬ ¨§ ­ ¨¡®«¥¥ 㤠«ñ­­ëå ®â ª®à­ï. €­ «®£¨ç­ë¬ ®¡à §®¬ B(T 0) > B(T 00), â ª çâ®
B(T ) > B (T 00), ¨ ¯®í⮬ã T 00 â ª¦¥ ®¯â¨¬ «ì­® ( ¢á¥ ­ è¨ ­¥à ¢¥­á⢠ïîâáï à ¢¥­á⢠¬¨). ‹¥¬¬ ¤®ª § ­ .
„®ª § ­­ ï «¥¬¬ ¯®ª §ë¢ ¥â, çâ® ¯®áâ஥­¨¥ ®¯â¨¬ «ì­®£® ¤¥à¥¢ ¢á¥£¤ ¬®¦­® ­ ç âì á® á«¨ï­¨ï ¤¢ãå ᨬ¢®«®¢ á ­ ¨¬¥­ì襩
ç áâ®â®©. ‘«¥¤ãî饥 ­ ¡«î¤¥­¨¥ ®¯à ¢¤ë¢ ¥â ­ §¢ ­¨¥ "¦ ¤­ë©"
¤«ï â ª®£® «£®à¨â¬ .  §®¢ñ¬ á⮨¬®áâìî ᫨ﭨï á㬬ã ç áâ®â
Š®¤ë • ä䬥­ 339
᫨¢ ¥¬ëå 㧫®¢. ‚ ã¯à ¦­¥­¨¨ 17.3-3 ¬ë ¯à¥¤«®¦¨¬ ¢ ¬ ¤®ª § âì, çâ® á⮨¬®áâì ¤¥à¥¢ à ¢­ á㬬¥ á⮨¬®á⥩ ¢á¥å ᫨ﭨ©,
­¥®¡å®¤¨¬ëå ¤«ï ¥£® ¯®áâ஥­¨ï. ‘â «® ¡ëâì, «£®à¨â¬ Huffman
­ ª ¦¤®¬ è £¥ ¢ë¡¨à ¥â ᫨ﭨ¥, ­ ¨¬¥­¥¥ 㢥«¨ç¨¢ î饥 á⮨¬®áâì.
’¥¯¥àì ãáâ ­®¢¨¬ ᢮©á⢮ ®¯â¨¬ «ì­®á⨠¤«ï ¯®¤§ ¤ ç.
ãáâì 䨪á¨à®¢ ­ «ä ¢¨â C ¨ ¤¢ ᨬ¢®« x, y í⮣® «ä ¢¨â ,
C 0 | «ä ¢¨â, ª®â®àë© ¯®«ãç¨âáï ¨§ C , ¥á«¨ ¢ëª¨­ãâì x ¨ y ¨
¤®¡ ¢¨âì ­®¢ë© ᨬ¢®« z.
 áᬮâਬ ª®¤®¢ë¥ ¤¥à¥¢ìï ¤«ï C , ¢ ª®â®àëå x ¨ y (â®ç­¥¥,
ᮮ⢥âáâ¢ãî騥 ¨¬ «¨áâìï) ïîâáï ¡à âìﬨ. Š ¦¤®¬ã â ª®¬ã
¤¥à¥¢ã ᮮ⢥âáâ¢ã¥â ª®¤®¢®¥ ¤¥à¥¢® ¤«ï C 0, ª®â®à®¥ ¯®«ãç¨âáï,
¥á«¨ ¢ë¡à®á¨âì ¢¥à設ë x ¨ y, ¨å ®¡é¥£® த¨â¥«ï áç¨â âì ª®¤®¬
ᨬ¢®« z.
à¨ í⮬ ᮮ⢥âá⢨¨ ª ¦¤®¬ã ª®¤®¢®¬ã ¤¥à¥¢ã ¤«ï C 0 ᮮ⢥âáâ¢ã¥â ஢­® ¤¢ ª®¤®¢ëå ¤¥à¥¢ ¤«ï C (¢ ®¤­®¬ ¨§ ­¨å x ¡ã¤¥â
«¥¢ë¬ ॡñ­ª®¬, ¢ ¤à㣮¬ | ¯à ¢ë¬).
ãáâì ¤«ï ª ¦¤®£® ᨬ¢®« c ¨§ C 䨪á¨à®¢ ­ ¥£® ç áâ®â f [c].
Ž¯à¥¤¥«¨¬ ç áâ®âë ¤«ï ᨬ¢®«®¢ ¨§ C 0, áç¨â ï ç áâ®â®© ᨬ¢®« z
á㬬ã f [x] + f [y]; ¤«ï ®áâ «ì­ëå ᨬ¢®«®¢ ç áâ®âë ®áâ îâáï ⥬¨
¦¥, çâ® ¨ ¢ C . ’®£¤ ¤«ï ª®¤®¢ëå ¤¥à¥¢ì¥¢ (¤«ï ®¡®¨å «ä ¢¨â®¢)
®¯à¥¤¥«¥­ë á⮨¬®áâ¨.
‹¥¬¬ 17.3. ‘⮨¬®á⨠ᮮ⢥âáâ¢ãîé¨å ¤à㣠¤àã£ã ¤¥à¥¢ì¥¢ T
¨ T 0 (¯à¨ ®¯¨á ­­®¬ ᮮ⢥âá⢨¨) ®â«¨ç îâáï ­ ¢¥«¨ç¨­ã
f [x] + f [y].
„®ª § ⥫ìá⢮. ‹¥£ª® ¢¨¤¥âì, çâ® dT (c) = dT 0 (c) ¤«ï ¢á¥å c 2
C n fx; yg, â ª¦¥ çâ® dT (x) = dT (y ) = dT 0 (z ) + 1. ‘«¥¤®¢ ⥫쭮,
f [x]dT (x) + f [y ]dT (y ) = (f [x] + f [y ])(dT 0(z) + 1) =
= f [z ]dT 0 (z ) + (f [x] + f [y ]);
®âªã¤ B(T ) = B(T 0) + f [x] + f [y].
â «¥¬¬ ¯®ª §ë¢ ¥â, çâ® ¢ë¯®«­¥­® ᢮©á⢮ ®¯â¨¬ «ì­®áâ¨
¤«ï ¯®¤§ ¤ ç (®¯â¨¬ «ì­®¥ ¤¥à¥¢® T ᮮ⢥âáâ¢ã¥â ®¯â¨¬ «ì­®¬ã
¤¥à¥¢ã T 0 ¤«ï ¬¥­ì襩 § ¤ ç¨).
ˆ§ ¤¢ãå ¤®ª § ­­ëå «¥¬¬ «¥£ª® á«¥¤ã¥â
’¥®à¥¬ 17.4. €«£®à¨â¬ Huffman áâந⠮¯â¨¬ «ì­ë© ¯à¥ä¨ªá­ë© ª®¤.
„®ª § ⥫ìá⢮. ‹¥¬¬ 17.2 ¯®ª §ë¢ ¥â, çâ® ®¯â¨¬ «ì­ë¥ ª®¤®¢ë¥ ¤¥à¥¢ìï ¬®¦­® ¨áª âì á।¨ â ª¨å, ã ª®â®àëå ¤¢ ­ ¨¡®«¥¥
।ª¨å ᨬ¢®« (­ §®¢ñ¬ ¨§ x ¨ y) ïîâáï ¡à âìﬨ. ˆ¬ ᮮ⢥âáâ¢ãîâ ¤¥à¥¢ìï ¤«ï «ä ¢¨â C 0, ¢ ª®â®à®¬ ᨬ¢®«ë x ¨ y ᫨âë ¢
®¤¨­ ᨬ¢®« z. ‘ç¨â ï ç áâ®âã ᨬ¢®« z à ¢­®© á㬬¥ ç áâ®â x ¨
340
ƒ« ¢ 17 † ¤­ë¥ «£®à¨â¬ë
y, ¬®¦­® ¯à¨¬¥­¨âì «¥¬¬ã 17.3 ¨ 㢨¤¥âì, çâ® ­ ¬ ®áâ ñâáï ­ ©â¨
®¯â¨¬ «ì­®¥ ª®¤®¢®¥ ¤¥à¥¢® ¤«ï «ä ¢¨â C 0 ¨ § ⥬ ¤®¡ ¢¨âì ª
¢¥à設¥ z ¤¢ãå ¤¥â¥©, ¯®¬¥ç¥­­ëå ᨬ¢®« ¬¨ x ¨ y. â® ¨ ¤¥« ¥â
«£®à¨â¬ Huffman.
“¯à ¦­¥­¨ï
17.3-1 „®ª ¦¨â¥, çâ® ¢ ¡¨­ à­®¬ ¤¥à¥¢¥, ᮮ⢥âáâ¢ãî饬 ®¯â¨¬ «ì­®¬ã ¯à¥ä¨ªá­®¬ã ª®¤ã, ¢áïª ï ¢¥à設 «¨¡® ï¥âáï «¨á⮬, «¨¡® ¨¬¥¥â ¤¢ãå ¤¥â¥©.
17.3-2  ©¤¨â¥ ª®¤ • ä䬥­ ¤«ï «ä ¢¨â , ¢ ª®â®à®¬ ç áâ®âë
ᨬ¢®«®¢ ᮢ¯ ¤ îâ á ¯¥à¢ë¬¨ ¢®á¥¬ìî ç¨á« ¬¨ ”¨¡®­ çç¨:
a : 1 b : 1 c : 2 d : 3 e : 5 f : 8 g : 13 h : 21:
—â® ¡ã¤¥â, ¥á«¨ ¢ «ä ¢¨â¥ n ᨬ¢®«®¢, ç áâ®âë ª®â®àëå ᮢ¯ ¤ îâ á ¯¥à¢ë¬¨ n ç¨á« ¬¨ ”¨¡®­ çç¨?
17.3-3 „®ª ¦¨â¥, çâ® á⮨¬®áâì ¤¢®¨ç­®£® ¤¥à¥¢ , ᮮ⢥âáâ¢ãî饣® ¯à¥ä¨ªá­®¬ã ª®¤ã, ¬®¦­® ¢ëç¨á«¨âì á«¥¤ãî騬 ®¡à §®¬:
¤«ï ª ¦¤®© ¢¥à設ë, ­¥ ïî饩áï «¨á⮬, ­ ©â¨ á㬬ã ç áâ®â
¥¥ ¤¥â¥©, ¨ á«®¦¨âì ¢á¥ ¯®«ã祭­ë¥ ç¨á« .
17.3-4  ᯮ«®¦¨¬ ᨬ¢®«ë «ä ¢¨â ¢ ¯®à浪¥ ã¡ë¢ ­¨ï (­¥¢®§à áâ ­¨ï) ç áâ®â. „®ª ¦¨â¥, çâ® ¢ ®¯â¨¬ «ì­®¬ ¯à¥ä¨ªá­®¬ ª®¤¥
¤«¨­ë ª®¤¨àãîé¨å í⨠ᨬ¢®«ë ¯®á«¥¤®¢ ⥫쭮á⥩ ¡¨â®¢ ¡ã¤ãâ
¨¤â¨ ¢ ­¥ã¡ë¢ î饬 ¯®à浪¥.
17.3-5 „®ª ¦¨â¥, çâ® ®¯â¨¬ «ì­ë© ¯à¥ä¨ªá­ë© ª®¤ ¤«ï «ä ¢¨â ¨§ n ᨬ¢®«®¢ ¬®¦¥â ¡ëâì ¯à¥¤áâ ¢«¥­ ¯®á«¥¤®¢ ⥫쭮áâìî
¨§ 2n ; 1 + ndlog2 ne ¡¨â®¢. (“ª § ­¨¥: ¤«ï § ¤ ­¨ï áâàãªâãàë ¤¥à¥¢ ¤®áâ â®ç­® 2n ; 1 ¡¨â®¢.)
17.3-6 Ž¡®¡é¨â¥ «£®à¨â¬ • ä䬥­ ­ â¥à­ à­ë¥ ª®¤ë (ª ¦¤ë© ᨬ¢®« ª®¤¨àã¥âáï ¯®á«¥¤®¢ ⥫쭮áâìî ¨§ æ¨äà 0, 1 ¨
2). Š®¤ë, ¯®à®¦¤ ¥¬ë¥ ¢ 訬 «£®à¨â¬®¬, ¤®«¦­ë ¡ëâì ®¯â¨¬ «ì­ë.
17.3-7 ãáâì «ä ¢¨â ᮤ¥à¦¨â 28 = 256 ᨬ¢®«®¢, ¯à¨çñ¬ ¬ ªá¨¬ «ì­ ï ç áâ®â ¯à¥¢®á室¨â ¬¨­¨¬ «ì­ãî ­¥ ¡®«¥¥ 祬 ¢¤¢®¥.
®ª ¦¨â¥, çâ® ¤«ï «ä ¢¨â á â ª¨¬¨ ç áâ®â ¬¨ ª®¤ • ä䬥­ ­¥
¡®«¥¥ íä䥪⨢¥­, 祬 à ¢­®¬¥à­ë© ¢®á쬨¡¨â®¢ë© ª®¤.
17.3-8 à®ä¥áá®à ã⢥ত ¥â, çâ® ­ ¯¨á ­­ ï ¨¬ ¯à®£à ¬¬ ᦠâ¨ï ¨­ä®à¬ 樨 ¯®§¢®«ï¥â ᦠâì «î¡®© ä ©« ¤«¨­ë 1000 (¯®á«¥¤®¢ ⥫쭮áâì ¨§ âëáïç¨ 8-¡¨â®¢ëå ¡ ©â®¢) å®âï ¡ë ­ ®¤¨­ ¡¨â,
¯®á«¥ 祣® ­ ¯¨á ­­ ï ¨¬ ¯à®£à ¬¬ ¢®ááâ ­®¢«¥­¨ï ᬮ¦¥â ¢®á-
17.4 ’¥®à¥â¨ç¥áª¨¥ ®á­®¢ë ¦ ¤­ëå «£®à¨â¬®¢
341
áâ ­®¢¨âì ¨á室­ë© ä ©«. ®ç¥¬ã ®­ ­¥¯à ¢? (“ª § ­¨¥: áà ¢­¨â¥
ª®«¨ç¥á⢮ ¢®§¬®¦­ëå ä ©«®¢ á ª®«¨ç¥á⢮¬ ᦠâëå ä ©«®¢).
? 17.4 ’¥®à¥â¨ç¥áª¨¥ ®á­®¢ë ¦ ¤­ëå «£®à¨â¬®¢
‚ í⮬ à §¤¥«¥ ¬ë ¢ªà âæ¥ à á᪠¦¥¬ ® ªà ᨢ®¬ à §¤¥«¥ ª®¬¡¨­ â®à¨ª¨, á¢ï§ ­­®¬ á ¦ ¤­ë¬¨ «£®à¨â¬ ¬¨, | ⥮ਨ ¬ âந¤®¢. ‘ ¯®¬®éìî í⮩ ⥮ਨ ç áâ® (å®âï ¨ ­¥ ¢á¥£¤ : § ¤ ç¨ ¨§
à §¤¥«®¢ 17.1 ¨ 17.3 ⥮ਥ© ¬ âந¤®¢ ­¥ ¯®ªàë¢ îâáï) 㤠ñâáï
ãáâ ­®¢¨âì, çâ® ¤ ­­ë© ¦ ¤­ë© «£®à¨â¬ ¤ ñâ ®¯â¨¬ã¬. ’¥®à¨ï
¬ âந¤®¢ ¡ëáâà® à §¢¨¢ ¥âáï (á¬. áá뫪¨ ¢ ª®­æ¥ £« ¢ë).
17.4.1 Œ âந¤ë
Œ âந¤®¬ (matroid) ­ §ë¢ ¥âáï ¯ à M = (S; I ), 㤮¢«¥â¢®àïîé ï á«¥¤ãî騬 ãá«®¢¨ï¬.
1. S | ª®­¥ç­®¥ ­¥¯ãá⮥ ¬­®¦¥á⢮.
2. I | ­¥¯ãá⮥ ᥬ¥©á⢮ ¯®¤¬­®¦¥á⢠S ; ¢å®¤ï騥 ¢ I ¯®¤¬­®¦¥á⢠­ §ë¢ îâ ­¥§ ¢¨á¨¬ë¬¨ (independent). à¨ í⮬ ¤®«¦­®
¢ë¯®«­ïâìáï â ª®¥ ᢮©á⢮: ¨§ B 2 I ¨ A B á«¥¤ã¥â A 2 I
(¢ ç áâ­®áâ¨, ¢á¥£¤ ; 2 I ). ‘¥¬¥©á⢮ I , 㤮¢«¥â¢®àïî饥 í⮬ã
ãá«®¢¨î, ­ §ë¢ ¥âáï ­ á«¥¤á⢥­­ë¬ (hereditary).
3. …᫨ A 2 I , B 2 I ¨ jAj < jB j, â® áãé¥áâ¢ã¥â â ª®© í«¥¬¥­â
x 2 B n A, çâ® A [ fxg 2 I . â® ᢮©á⢮ ᥬ¥©á⢠I ­ §ë¢ îâ
᢮©á⢮¬ § ¬¥­ë (exchange property).
’¥à¬¨­ "¬ âந¤" ¯à¨­ ¤«¥¦¨â • áá«¥à㠓¨â­¨ (Hassler Whitney). Ž­ § ­¨¬ «áï ¬ âà¨ç­ë¬¨ ¬ âந¤ ¬¨ (matric matroids), ã ª®â®àëå S | ¬­®¦¥á⢮ ¢á¥å áâப ­¥ª®â®à®© ¬ âà¨æë, ¨ ¬­®¦¥á⢮
áâப áç¨â ¥âáï ­¥§ ¢¨á¨¬ë¬, ¥á«¨ í⨠áâப¨ «¨­¥©­® ­¥§ ¢¨á¨¬ë
¢ ®¡ëç­®¬ á¬ëá«¥. (‹¥£ª® ¯®ª § âì, çâ® ¤¥©á⢨⥫쭮 ¯®«ãç ¥âáï
¬ âந¤, á¬. ã¯à. 17.4-2.)
„à㣨¬ ¯à¨¬¥à®¬ ï¥âáï £à ä®¢ë© ¬ âந¤ (graphic matroid)
(SG ; IG ), áâà®ï騩áï ¯® ­¥®à¨¥­â¨à®¢ ­­®¬ã £à äã G á«¥¤ãî騬
®¡à §®¬: SG ᮢ¯ ¤ ¥â á® ¬­®¦¥á⢮¬ àñ¡¥à £à ä , IG á®á⮨⠨§
¢á¥å 横«¨ç­ëå (â. ¥. ïîé¨åáï «¥á ¬¨) ¬­®¦¥á⢠àñ¡¥à. ƒà ä®¢ë¥ ¬ âந¤ë â¥á­® á¢ï§ ­ë á § ¤ 祩 ® ¬¨­¨¬ «ì­®¬ ¯®ªàë¢ î饬 ¤¥à¥¢¥, ª®â®àãî ¬ë à áᬮâਬ ¢ £« ¢¥ 24.
’¥®à¥¬ 17.5. …᫨ G = (V; E ) | ­¥®à¨¥­â¨à®¢ ­­ë© £à ä, â®
MG = (SG ; IG ) ï¥âáï ¬ âந¤®¬.
„®ª § ⥫ìá⢮. ’ ª ª ª ¯®¤£à ä 横«¨ç­®£® £à ä 横«¨ç¥­,
¬­®¦¥á⢮ IG ­ á«¥¤á⢥­­®, ¨ ®áâ ñâáï ¯à®¢¥à¨âì ᢮©á⢮ § ¬¥­ë. ‚ á ¬®¬ ¤¥«¥, ¯ãáâì A ¨ B | 横«¨ç­ë¥ ¯®¤£à äë G,
342
ƒ« ¢ 17 † ¤­ë¥ «£®à¨â¬ë
¯à¨çñ¬ jBj > jAj. ˆ§ ⥮६ë 5.2 á«¥¤ã¥â, çâ® «¥á á k àñ¡à ¬¨ ï¥âáï ­¥á¢ï§­ë¬ ®¡ê¥¤¨­¥­¨¥¬ jV j;k ¤¥à¥¢ì¥¢, £¤¥ jV j | ª®«¨ç¥á⢮
¢¥à設 (­¥§ ¢¨á¨¬®¥ ¤®ª § ⥫ìá⢮: ­ ç­ñ¬ á «¥á , á®áâ®ï饣® ¨§
jV j ¢¥à設 ¨ ­¥ ¨¬¥î饣® ॡñà, ¨ ¡ã¤¥¬ ¯® ®¤­®¬ã ¤®¡ ¢«ïâì
àñ¡à , ­¥ ­ àãè ï 横«¨ç­®áâ¨; ⮣¤ ¤®¡ ¢«¥­¨¥ ª ¦¤®£® ॡà 㬥­ìè ¥â ª®«¨ç¥á⢮ á¢ï§­ëå ª®¬¯®­¥­â ­ ¥¤¨­¨æã). ‘«¥¤®¢ ⥫쭮, «¥á A á®á⮨⠨§ jV j ; jAj ¤¥à¥¢ì¥¢, «¥á B | ¨§ jV j ; jBj
¤¥à¥¢ì¥¢. ®áª®«ìªã jV j ; jBj < jV j ; jAj, «¥á B ᮤ¥à¦¨â â ª®¥
¤¥à¥¢® T , çâ® ¤¢¥ ¥£® ¢¥àè¨­ë ¯à¨­ ¤«¥¦ â à §­ë¬ á¢ï§­ë¬ ª®¬¯®­¥­â ¬ «¥á A. ®«¥¥ ⮣®, ¯®áª®«ìªã T á¢ï§­®, ®­® ¤®«¦­® ᮤ¥à¦ âì â ª®¥ ॡ஠(u; v), çâ® u ¨ v ¯à¨­ ¤«¥¦ â à §­ë¬ á¢ï§­ë¬ ª®¬¯®­¥­â ¬ «¥á A. ‘«¥¤®¢ ⥫쭮, ¤®¡ ¢«¥­¨¥ í⮣® à¥¡à ª «¥áã A ­¥ ¬®¦¥â ᮧ¤ âì 横« , ¨ ¥£® ¬®¦­® ¢§ïâì ¢ ª ç¥á⢥
í«¥¬¥­â x ¨§ ®¯à¥¤¥«¥­¨ï ¬ âந¤ .
(ƒà ä®¢ë¥ ¬ âந¤ë ïîâáï ç áâ­ë¬ á«ãç ¥¬ ¬ âà¨ç­ëå,
¥á«¨ ॡ஠£à ä à áᬠâਢ âì ª ª ä®à¬ «ì­ãî á㬬㠥£® ¢¥à設 á ª®íää¨æ¨¥­â ¬¨ ¢ ¯®«¥ ¢ëç¥â®¢ ¯® ¬®¤ã«î 2, á¬. § ¤ çã
17-2¡.)
…᫨ M = (S; I ) | ¬ âந¤, â® í«¥¬¥­â x 2= A 2 I ­ §ë¢ ¥âáï
­¥§ ¢¨á¨¬ë¬ ®â A (extension of A), ¥á«¨ ¬­®¦¥á⢮ A [ fxg ­¥§ ¢¨á¨¬®.  ¯à¨¬¥à, ¢ £à 䮢®¬ ¬ âந¤¥ ॡ஠e ­¥§ ¢¨á¨¬® ®â «¥á A
⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ ¥£® ¤®¡ ¢«¥­¨¥ ª A ­¥ ᮧ¤ ñâ 横« .
¥§ ¢¨á¨¬®¥ ¯®¤¬­®¦¥á⢮ ¢ ¬ âந¤¥ ­ §ë¢ ¥âáï ¬ ªá¨¬ «ì­ë¬
(maximal), ¥á«¨ ®­® ­¥ ᮤ¥à¦¨âáï ­¨ ¢ ª ª®¬ ¡®«ì襬 ­¥§ ¢¨á¨¬®¬
¯®¤¬­®¦¥á⢥. — áâ® ¡ë¢ ¥â ¯®«¥§­ á«¥¤ãîé ï
’¥®à¥¬ 17.6. ‚ᥠ¬ ªá¨¬ «ì­ë¥ ­¥§ ¢¨á¨¬ë¥ ¯®¤¬­®¦¥á⢠¤ ­­®£® ¬ âந¤ á®áâ®ïâ ¨§ ®¤¨­ ª®¢®£® ç¨á« í«¥¬¥­â®¢.
„®ª § ⥫ìá⢮. ãáâì A ¨ B | ¬ ªá¨¬ «ì­ë¥ ­¥§ ¢¨á¨¬ë¥ ¯®¤¬­®¦¥á⢠. …᫨, ᪠¦¥¬, jAj < jBj, â® ¨§ ᢮©á⢠§ ¬¥­ë ¢ë⥪ ¥â áãé¥á⢮¢ ­¨¥ â ª®£® x 2= A, çâ® A [ fxg ­¥§ ¢¨á¨¬® | ¢
¯à®â¨¢®à¥ç¨¥ á ¬ ªá¨¬ «ì­®áâìî.
‚ ª ç¥á⢥ ¯à¨¬¥à à áᬮâਬ £à ä®¢ë© ¬ âந¤ MG , ᮮ⢥âáâ¢ãî騩 á¢ï§­®¬ã £à äã G. ‚á类¥ ¬ ªá¨¬ «ì­®¥ ­¥§ ¢¨á¨¬®¥ ¯®¤¬­®¦¥á⢮ MG ¤®«¦­® ¡ëâì ¤¥à¥¢®¬ á jV j ; 1 ॡ஬, ᮥ¤¨­ïî騬 ¢á¥ ¢¥à設ë G. ’ ª®¥ ¤¥à¥¢® ­ §ë¢ ¥âáï ¯®ªàë¢ î騬
(®á⮢­ë¬) ¤¥à¥¢®¬ £à ä G (¯®- ­£«¨©áª¨ spanning tree).
ã¤¥¬ ­ §ë¢ âì ¬ âந¤ M = (S; I ) ¢§¢¥è¥­­ë¬ (weighted), ¥á«¨
­ ¬­®¦¥á⢥ S § ¤ ­ ¢¥á®¢ ï äã­ªæ¨ï w á® §­ 祭¨ï¬¨ ¢® ¬­®¦¥á⢥ ¯®«®¦¨â¥«ì­ëå ç¨á¥«. ”ã­ªæ¨ï w à á¯à®áâà ­ï¥âáï ¯® ¤¤¨â¨¢­®á⨠­ ¢á¥ ¯®¤¬­®¦¥á⢠¬­®¦¥á⢠S ; ¢¥á ¯®¤¬­®¦¥á⢠®¯à¥¤¥«ï¥âáï ª ª á㬬 ¢¥á®¢ ¥£® í«¥¬¥­â®¢: w(A) = Px2A w(x).
à¨¬¥à: ¥á«¨ MG | £à ä®¢ë© ¬ âந¤, w(e) | ¤«¨­ ॡà e,
â® w(A) | á㬬 ¤«¨­ àñ¡¥à ¯®¤£à ä A.
17.4 ’¥®à¥â¨ç¥áª¨¥ ®á­®¢ë ¦ ¤­ëå «£®à¨â¬®¢
343
17.4.2 † ¤­ë¥ «£®à¨â¬ë ¤«ï ¢§¢¥è¥­­®£® ¬ âந¤ Œ­®£¨¥ ®¯â¨¬¨§ 樮­­ë¥ § ¤ ç¨, à¥è ¥¬ë¥ ¦ ¤­ë¬¨ «£®à¨â¬ ¬¨, ᢮¤ïâáï ª § ¤ ç¥ ® ­ 宦¤¥­¨¨ ¢ ¤ ­­®¬ ¢§¢¥è¥­­®¬ ¬ âந¤¥ M = (S; I ) ­¥§ ¢¨á¨¬®£® ¯®¤¬­®¦¥á⢠A M ¬ ªá¨¬ «ì­®£®
¢¥á . ¥§ ¢¨á¨¬®¥ ¯®¤¬­®¦¥á⢮ ¬ ªá¨¬ «ì­®£® ¢¥á ­ §ë¢ ¥âáï
®¯â¨¬ «ì­ë¬ (optimal) ¯®¤¬­®¦¥á⢮¬ ¢§¢¥è¥­­®£® ¬ âந¤ . ®áª®«ìªã ¢¥á ¢á¥å í«¥¬¥­â®¢ ¯®«®¦¨â¥«ì­ë, ®¯â¨¬ «ì­®¥ ¯®¤¬­®¦¥á⢮ ¢â®¬ â¨ç¥áª¨ ¡ã¤¥â ¬ ªá¨¬ «ì­ë¬ ­¥§ ¢¨á¨¬ë¬ ¯®¤¬­®¦¥á⢮¬.
 ¯à¨¬¥à, § ¤ ç ® ­ ¨¬¥­ì襬 ¯®ªàë¢ î饬 ¤¥à¥¢¥ (minimumspanning-tree problem) á®á⮨⠢ á«¥¤ãî饬. „ ­ á¢ï§­ë© ­¥®à¨¥­â¨à®¢ ­­ë© £à ä G = (V; E ) ¨ äã­ªæ¨ï w ¨§ ¬­®¦¥á⢠¥£®
àñ¡¥à ¢® ¬­®¦¥á⢮ ¯®«®¦¨â¥«ì­ëå ç¨á¥« (w(e) ¡ã¤¥¬ ­ §ë¢ âì
¤«¨­®© ॡà e). ’ॡã¥âáï ­ ©â¨ ¬­®¦¥á⢮ àñ¡¥à, ᮥ¤¨­ïîé¨å
¢á¥ ¢¥àè¨­ë ¨ ¨¬¥îé¨å ­ ¨¬¥­ìèãî á㬬 à­ãî ¤«¨­ã. âã § ¤ çã ¬®¦­® à áᬠâਢ âì ª ª ç áâ­ë© á«ãç © § ¤ ç¨ ®¡ ®¯â¨¬ «ì­®¬ ¯®¤¬­®¦¥á⢥ ¢§¢¥è¥­­®£® ¬ âந¤ . ‚ á ¬®¬ ¤¥«¥, ¢ë¡¥à¥¬ ç¨á«® w0, áâண® ¡®«ì襥 ¤«¨­ ¢á¥å àñ¡¥à, ¨ ¢¢¥¤¥¬ ­ £à 䮢®¬ ¬ âந¤¥ MG ¢¥á ¯® ¯à ¢¨«ã w0(e) = w0 ; w(e). „«ï ¢á类£®
¬ ªá¨¬ «ì­®£® ­¥§ ¢¨á¨¬®£® ¯®¤¬­®¦¥á⢠(â. ¥. ¯®ªàë¢ î饣® ¤¥à¥¢ ) A ¨¬¥¥¬
w0(A) = (jV j ; 1)w0 ; w(A);
£¤¥ V | ¬­®¦¥á⢮ ¢¥à設 £à ä . ‘â «® ¡ëâì, ­ ¨¬¥­ì訥 ¯®ªàë¢ î騥 ¤¥à¥¢ìï ¤«ï £à ä G | â® ¦¥ á ¬®¥, çâ® ®¯â¨¬ «ì­ë¥
¯®¤¬­®¦¥á⢠¢ ¬ âந¤¥ MG á ¢¥á®¢®© ä㭪樥© w0.
‡ ¤ ç ® ­ ¨¬¥­ì襬 ¯®ªàë¢ î饬 ¤¥à¥¢¥ ¯®¤à®¡­® à áᬠâਢ ¥âáï ¢ £« ¢¥ 24; ᥩç á ¬ë ¯à¨¢¥¤ñ¬ ¦ ¤­ë© «£®à¨â¬, ­ 室ï騩 ®¯â¨¬ «ì­®¥ ¯®¤¬­®¦¥á⢮ A ¢ «î¡®¬ ¢§¢¥è¥­­®¬ ¬ âந¤¥ M . …᫨ M = (S; I ), â® ¬ë ¯¨è¥¬ S = S [M ] ¨ I = I [M ];
¢¥á®¢ ï äã­ªæ¨ï ®¡®§­ ç ¥âáï w.
Greedy (M; w)
1 A ;
2 ®âá®àâ¨à®¢ âì S [M ] ¢ ¯®à浪¥ ­¥¢®§à áâ ­¨ï ¢¥á®¢
3 for x 2 S [M ] (¯¥à¥¡¨à ¥¬ ¢á¥ x ¢ 㪠§ ­­®¬ ¯®à浪¥)
4
do if A [ fxg 2 I [M ]
5
then A A [ fxg
6 return A
€«£®à¨â¬ à ¡®â ¥â á«¥¤ãî騬 ®¡à §®¬. ®« £ ¥¬ A = ;
(áâப 1; ¯ãá⮥ ¬­®¦¥á⢮, ª ª ¬ë ¯®¬­¨¬, ¢á¥£¤ ­¥§ ¢¨á¨¬®)
¨ ¯¥à¥¡¨à ¥¬ í«¥¬¥­âë S [M ] ¢ ¯®à浪¥ ã¡ë¢ ­¨ï ¢¥á ; ¥á«¨ ®ç¥à¥¤­®© í«¥¬¥­â ¬®¦­®, ­¥ ­ àãè ï ­¥§ ¢¨á¨¬®áâ¨, ¤®¡ ¢¨âì ª
¬­®¦¥áâ¢ã A, â® ¬ë íâ® ¤¥« ¥¬. Ÿá­®, çâ® ¯®«ã祭­®¥ ¢ १ã«ìâ ⥠¬­®¦¥á⢮ ¡ã¤¥â ­¥§ ¢¨á¨¬ë¬. ¨¦¥ ¬ë ¯®ª ¦¥¬, çâ® ®­®
344
ƒ« ¢ 17 † ¤­ë¥ «£®à¨â¬ë
¤¥©á⢨⥫쭮 ¡ã¤¥â ¨¬¥âì ¬ ªá¨¬ «ì­ë© ¢¥á á।¨ ­¥§ ¢¨á¨¬ëå ¯®¤¬­®¦¥áâ¢, ¯®ª çâ® ®æ¥­¨¬ ¢à¥¬ï à ¡®âë «£®à¨â¬ Greedy. ‘®àâ¨à®¢ª (áâப 2) § ­¨¬ ¥â ¢à¥¬ï O(n log n), £¤¥
n = jS j. à®¢¥àª ­¥§ ¢¨á¨¬®á⨠¬­®¦¥á⢠(áâப 4) ¯à®¢®¤¨âáï
n à §; ¥á«¨ ª ¦¤ ï â ª ï ¯à®¢¥àª § ­¨¬ ¥â ¢à¥¬ï f (n), â® ®¡é¥¥
¢à¥¬ï à ¡®âë ¡ã¤¥â O(n log n + nf (n)).
’¥¯¥àì ¯®ª ¦¥¬, çâ® «£®à¨â¬ Greedy ¤¥©á⢨⥫쭮 ¤ ñâ
®¯â¨¬ «ì­®¥ ¯®¤¬­®¦¥á⢮.
‹¥¬¬ 17.7 (᢮©á⢮ ¦ ¤­®£® ¢ë¡®à ¤«ï ¬ âந¤®¢).
ãáâì M = (S; I ) | ¢§¢¥è¥­­ë© ¬ âந¤ á ¢¥á®¢®© ä㭪樥© w. ãáâì x 2 S | í«¥¬¥­â ­ ¨¡®«ì襣® ¢¥á ¢® ¬­®¦¥á⢥ f y 2 S : fyg ­¥§ ¢¨á¨¬® g. ’®£¤ x ᮤ¥à¦¨âáï ¢ ­¥ª®â®à®¬
®¯â¨¬ «ì­®¬ ¯®¤¬­®¦¥á⢥ A S .
„®ª § ⥫ìá⢮. ãáâì B | ª ª®¥-â® ®¯â¨¬ «ì­®¥ ¯®¤¬­®¦¥á⢮. ã¤¥¬ áç¨â âì, çâ® x 2= B, ¨­ ç¥ ¤®ª §ë¢ âì ­¥ç¥£®.
®«®¦¨¬ A0 = fxg. â® ¬­®¦¥á⢮ ­¥§ ¢¨á¨¬® ¯® ¢ë¡®àã x. à¨¬¥­ïï jBj ; 1 à § ᢮©á⢮ § ¬¥­ë, ¬ë à áè¨à塞 A0 í«¥¬¥­â ¬¨
¨§ B ¨ ¢ ª®­æ¥ ª®­æ®¢ ¯®áâந¬ ­¥§ ¢¨á¨¬®¥ ¬­®¦¥á⢮ A, á®áâ®ï饥 ¨§ x ¨ jBj ; 1 í«¥¬¥­â ¬­®¦¥á⢠B. ˆ¬¥¥¬ jAj = jBj (â ª
çâ® A ¬ ªá¨¬ «ì­®) ¨ w(A) = w(B) ; w(y) + w(x), £¤¥ y | ¥¤¨­á⢥­­ë© í«¥¬¥­â B, ­¥ ¢å®¤ï騩 ¢ A. ‚ â® ¦¥ ¢à¥¬ï ¤«ï ¢á类£®
y 2 B ¬­®¦¥á⢮ fy g ­¥§ ¢¨á¨¬® ¢ ᨫã ᢮©á⢠­ á«¥¤á⢥­­®áâ¨, â ª çâ® w(x) > w(y) ¯® ¢ë¡®àã x. ‘â «® ¡ëâì, w(A) > w(B),
¨ ¬­®¦¥á⢮ A â ª¦¥ ®¯â¨¬ «ì­®. ‚áñ ¤®ª § ­®.
„ «¥¥, ¨¬¥¥â ¬¥áâ® á«¥¤ãîé ï ®ç¥¢¨¤­ ï
‹¥¬¬ 17.8. …᫨ M = (S; I ) | ¬ âந¤, x 2 S ¨ fxg 2= I , â®
A [ fxg 2= I ¤«ï ¢á¥å A S .
 è ¯®á«¥¤­ïï «¥¬¬ â ª®¢ :
‹¥¬¬ 17.9 (᢮©á⢮ ®¯â¨¬ «ì­®á⨠¯®¤§ ¤ ç ¤«ï ¬ âந¤®¢). ãáâì
M = (S; I ) | ¢§¢¥è¥­­ë© ¬ âந¤, ¨ ¯ãáâì x 2 S | ­¥ª®â®àë©
¥£® í«¥¬¥­â, ¯à¨çñ¬ ¬­®¦¥á⢮ fxg ­¥§ ¢¨á¨¬®. ’®£¤ ­¥§ ¢¨á¨¬®¥ ¬­®¦¥á⢮ ­ ¨¡®«ì襣® ¢¥á , ᮤ¥à¦ 饥 x, ï¥âáï
®¡ê¥¤¨­¥­¨¥¬ fxg ¨ ­¥§ ¢¨á¨¬®£® ¬­®¦¥á⢠­ ¨¡®«ì襣® ¢¥á ¢
¬ âந¤¥ M 0 = (S 0; I 0), £¤¥, ¯® ®¯à¥¤¥«¥­¨î,
S 0 = f y 2 S : fx; y g 2 I g ;
I 0 = f B S n fxg : B [ fxg 2 I g ;
¢¥á®¢ ï äã­ªæ¨ï ï¥âáï ®£à ­¨ç¥­¨¥¬ ­ S 0 ¢¥á®¢®© ä㭪樨
¤«ï ¬ âந¤ M (¢ â ª¨å á«ãç ïå £®¢®àïâ, çâ® ¬ âந¤ M 0 ¯®«ã祭 ¨§ M áâ¢ ­¨¥¬ (contraction) í«¥¬¥­â x).
17.4 ’¥®à¥â¨ç¥áª¨¥ ®á­®¢ë ¦ ¤­ëå «£®à¨â¬®¢
345
„®ª § ⥫ìá⢮. ¥§ ¢¨á¨¬ë¥ ¢ S ¬­®¦¥á⢠, ᮤ¥à¦ 騥 x, ¯®«ãç îâáï ¤®¡ ¢«¥­¨¥¬ í«¥¬¥­â x ª ­¥§ ¢¨á¨¬ë¬ ¢ S 0 ¯®¤¬­®¦¥á⢠¬. à¨ í⮬ ¨å ¢¥á ®â«¨ç îâáï ஢­® ­ w(x), â ª çâ® ®¯â¨¬ «ì­ë¥ ¬­®¦¥á⢠ᮮ⢥âáâ¢ãîâ ®¯â¨¬ «ì­ë¬.
’¥®à¥¬ 17.10 (¯à ¢¨«ì­®áâì ¦ ¤­®£® «£®à¨â¬ ¤«ï ¬ âந¤®¢). ‚ १ã«ìâ â¥ à ¡®âë «£®à¨â¬ Greedy, ¯à¨¬¥­ñ­­®£® ª ¢§¢¥è¥­­®¬ã ¬ âந¤ã, ¯®«ãç ¥âáï ®¯â¨¬ «ì­®¥ ¯®¤¬­®¦¥á⢮.
„®ª § ⥫ìá⢮. ãáâì M = (S; I ) | ¬ âந¤ á ¢¥á®¢®© ä㭪樥© w. ‚ ᨫ㠫¥¬¬ë 17.8 ¬ë ¬®¦¥¬ ­¥ ¯à¨­¨¬ âì ¢® ¢­¨¬ ­¨¥ í«¥¬¥­âë x 2 S , ¤«ï ª®â®àëå ¬­®¦¥á⢮ fxg ­¥ ­¥§ ¢¨á¨¬®.
…᫨ x 2 S | ¯¥à¢ë© ¨§ ¢ë¡à ­­ëå «£®à¨â¬®¬ í«¥¬¥­â®¢, â®
«¥¬¬ 17.7 ¯®ª §ë¢ ¥â, çâ® áãé¥áâ¢ã¥â ®¯â¨¬ «ì­®¥ ¯®¤¬­®¦¥á⢮ A S , ᮤ¥à¦ 饥 x. ’¥¯¥àì, ᮣ« á­® «¥¬¬¥ 17.9, ¤®áâ â®ç­® ­ ©â¨ ®¯â¨¬ «ì­®¥ ¯®¤¬­®¦¥á⢮ ¢ ¬ âந¤¥ M 0, ¯®«ã祭­®¬ ¨§ M áâ¢ ­¨¥¬ í«¥¬¥­â x (¨ ¤®¡ ¢¨âì ª ­¥¬ã x). „ «ì­¥©è ï à ¡®â «£®à¨â¬ ¢ áãé­®á⨠¨ ¯à¥¤áâ ¢«ï¥â ᮡ®© ®¡à ¡®âªã
¬ âந¤ M 0.
[®«¥¥ ä®à¬ «ì­®¥ à áá㦤¥­¨¥ ¬®¦¥â ¡ëâì â ª¨¬. ®á«¥
«î¡®£® ç¨á« ¨â¥à 権 ¢ë¯®«­¥­ á«¥¤ãî騩 ¨­¢ ਠ­â 横« :
(1) ¬­®¦¥á⢮ A ­¥§ ¢¨á¨¬®; (2) ®¯â¨¬ «ì­®¥ ¬­®¦¥á⢮ ¬®¦­®
¨áª âì á।¨ ¬­®¦¥áâ¢, ïîé¨åáï ®¡ê¥¤¨­¥­¨¥¬ A á ­¥ª®â®à묨
¨§ ¥éñ ­¥ ¯à®á¬®â७­ëå í«¥¬¥­â®¢.]
“¯à ¦­¥­¨ï
ãáâì S | ª®­¥ç­®¥ ¬­®¦¥á⢮, k | ­ âãà «ì­®¥ ç¨á«®,
Ik | ᥬ¥©á⢮ ¢á¥å ¯®¤¬­®¦¥á⢠S , ᮤ¥à¦ é¨å ­¥ ¡®«¥¥ k í«¥¬¥­â®¢. ®ª ¦¨â¥, çâ® (S; Ik) | ¬ âந¤.
17.4-2? ãáâì T | ¢¥é¥á⢥­­ ï ¬ âà¨æ , S | ¬­®¦¥á⢮ ¥ñ
á⮫¡æ®¢, ¨ ¯®¤¬­®¦¥á⢮ A S ­ §ë¢ ¥âáï ­¥§ ¢¨á¨¬ë¬, ¥á«¨
®­® «¨­¥©­® ­¥§ ¢¨á¨¬® ¢ ®¡ëç­®¬ á¬ëá«¥. „®ª ¦¨â¥, çâ® ¯®«ãç ¥âáï ¬ âந¤ (­ §ë¢ ¥¬ë© ¬ âà¨ç­ë¬, ª ª ¬ë 㦥 £®¢®à¨«¨).
17.4-3? ãáâì (S; I ) | ¬ âந¤. ãáâì I 0 | ᥬ¥©á⢮ ¢á¥å â ª¨å
¯®¤¬­®¦¥á⢠A0 S , ¤«ï ª®â®àëå S n A0 ᮤ¥à¦¨â ­¥ª®â®à®¥ ¬ ªá¨¬ «ì­®¥ ­¥§ ¢¨á¨¬®¥ ¯®¤¬­®¦¥á⢮ A S . ®ª ¦¨â¥, çâ® ¯ à (S; I 0) ï¥âáï ¬ âந¤®¬. ‡ ¬¥â¨¬, çâ® ¬ ªá¨¬ «ì­ë¥ ­¥§ ¢¨á¨¬ë¥ ¯®¤¬­®¦¥á⢠(S; I 0) áãâì ¤®¯®«­¥­¨ï ¬ ªá¨¬ «ì­ëå ­¥§ ¢¨á¨¬ëå ¯®¤¬­®¦¥á⢠(S; I ).
17.4-4? ãáâì S = S1 [ S2 [ [ Sk | à §¡¨¥­¨¥ ª®­¥ç­®£® ¬­®¦¥á⢠S ­ ­¥¯¥à¥á¥ª î騥áï ­¥¯ãáâë¥ ç áâ¨. ®«®¦¨¬ I =
f A S : jA \ Sij 6 1 ¤«ï i = 1; 2; : : :; k g. ®ª ¦¨â¥, çâ® ¯ à (S; I )
ï¥âáï ¬ âந¤®¬.
17.4-1
346
ƒ« ¢ 17 † ¤­ë¥ «£®à¨â¬ë
17.4-5 ãáâì ­ ¬ ¤ ­ ¢§¢¥è¥­­ë© ¬ âந¤. Ž¡êïá­¨â¥, ª ª ­ ¤®
¬®¤¨ä¨æ¨à®¢ âì ¢¥á®¢ãî äã­ªæ¨î, ç⮡ë ᢥá⨠§ ¤ çã ­ 宦¤¥­¨ï ¬ ªá¨¬ «ì­®£® ­¥§ ¢¨á¨¬®£® ¯®¤¬­®¦¥áâ¢ á ­ ¨¬¥­ì訬 ¢¥á®¬ ª § ¤ ç¥ ­ 宦¤¥­¨ï ­¥§ ¢¨á¨¬®£® ¯®¤¬­®¦¥áâ¢ á ­ ¨¡®«ì訬
¢¥á®¬.
? 17.5 ‡ ¤ ç ® à á¯¨á ­¨¨
ˆ­â¥à¥á­ë¬ ¯à¨¬¥à®¬ ®¯â¨¬¨§ 樮­­®© § ¤ ç¨, à¥è ¥¬®© á ¯®¬®éìî ¬ âந¤®¢, ï¥âáï § ¤ ç ® à á¯¨á ­¨¨ ¤«ï § ª §®¢ à ¢­®© ¤«¨â¥«ì­®áâ¨ á ¥¤¨­á⢥­­ë¬ ¨á¯®«­¨â¥«¥¬, áப ¬¨ ¨ èâà ä ¬¨.  ¯¥à¢ë© ¢§£«ï¤ íâ § ¤ ç ª ¦¥âáï ¢¥áì¬ § ¯ãâ ­­®©, ­®
¦ ¤­ë© «£®à¨â¬ ¤ ¥â ­¥®¦¨¤ ­­® ¯à®á⮥ à¥è¥­¨¥.
ˆâ ª, ¯à¥¤¯®«®¦¨¬, çâ® ¨¬¥¥âáï ª®­¥ç­®¥ ¬­®¦¥á⢮ S , á®áâ®ï饥 ¨§ § ª §®¢ (tasks), ª ¦¤ë© ¨§ ª®â®àëå âॡã¥â ஢­® ®¤­ã ¥¤¨­¨æ㠢६¥­¨ ¤«ï ᢮¥£® ¢ë¯®«­¥­¨ï.  á¯¨á ­¨¥¬ (schedule) ¤«ï S
­ §ë¢ ¥âáï ¯¥à¥áâ ­®¢ª ¬­®¦¥á⢠S , § ¤ îé ï ¯®à冷ª ¢ë¯®«­¥­¨ï § ª §®¢: ¢ë¯®«­¥­¨¥ ¯¥à¢®£® § ª § ­ 稭 ¥âáï ¢ ¬®¬¥­â ¢à¥¬¥­¨ 0 ¨ § ª ­ç¨¢ ¥âáï ¢ ¬®¬¥­â 1, ¢ë¯®«­¥­¨¥ ¢â®à®£® § ª § ­ 稭 ¥âáï ¢ ¬®¬¥­â ¢à¥¬¥­¨ 1 ¨ § ª ­ç¨¢ ¥âáï ¢ ¬®¬¥­â 2, ¨ â. ¤.
‚ § ¤ ç¥ ® à á¯¨á ­¨¨ ¤«ï § ª §®¢ à ¢­®© ¤«¨â¥«ì­®áâ¨ á ¥¤¨­á⢥­-
­ë¬ ¨á¯®«­¨â¥«¥¬, áப ¬¨ ¨ èâà ä ¬¨ (scheduling unit-time tasks
with deadlines and penalties for a single processor) ¨á室­ë¬¨ ¤ ­­ë¬¨ ïîâáï:
¬­®¦¥á⢮ S = f 1; 2; : : :; n g, í«¥¬¥­âë ª®â®à®£® ¬ë ­ §ë¢ ¥¬ § ª § ¬¨;
¯®á«¥¤®¢ ⥫쭮áâì ¨§ n 楫ëå ç¨á¥« d1; d2; : : :; dn, ­ §ë¢ ¥¬ëå
áப ¬¨ (deadlines) (1 6 di 6 n ¤«ï ¢á¥å i, áப di ®â­®á¨âáï ª
§ ª §ã ­®¬¥à i);
¯®á«¥¤®¢ ⥫쭮áâì ¨§ n ­¥®âà¨æ ⥫ì­ëå ç¨á¥« w1; w2; : : :; wn,
­ §ë¢ ¥¬ëå èâà ä ¬¨ (penalties) (¥á«¨ § ª § ­®¬¥à i ­¥ ¢ë¯®«­¥­
ª® ¢à¥¬¥­¨ di, ¢§¨¬ ¥âáï èâà ä wi).
’ॡã¥âáï ­ ©â¨ à á¯¨á ­¨¥ ¤«ï S , ¯à¨ ª®â®à®¬ á㬬 èâà 䮢
¡ã¤¥â ­ ¨¬¥­ì襩.
‡ ª § ­®¬¥à i ¯à®áà®ç¥­ (late) ¤«ï ¤ ­­®£® à á¯¨á ­¨ï, ¥á«¨ ¥£®
¢ë¯®«­¥­¨¥ § ¢¥àè ¥âáï ¯®§¦¥ ¬®¬¥­â di, ¢ ¯à®â¨¢­®¬ á«ãç ¥ § ª § áç¨â ¥âáï ¢ë¯®«­¥­­ë¬ ¢ áப (early). ‚á类¥ à á¯¨á ­¨¥ ¬®¦­®,
­¥ ¬¥­ïï á㬬ë èâà 䮢, ¬®¤¨ä¨æ¨à®¢ âì â ª¨¬ ®¡à §®¬, ç⮡ë
¢á¥ ¯à®áà®ç¥­­ë¥ § ª §ë áâ®ï«¨ ¢ ­ñ¬ ¯®á«¥ ¢ë¯®«­¥­­ëå ¢ áப.
‚ á ¬®¬ ¤¥«¥, ¥á«¨ ¯à®áà®ç¥­­ë© § ª § y ¨¤ñâ à ­ìè¥ ¢ë¯®«­¥­­®£® ¢ áப § ª § x, â® ¬®¦­® ¯®¬¥­ïâì ¨å ¬¥áâ ¬¨ ¢ à á¯¨á ­¨¨,
¨ áâ âãá ®¡®¨å § ª §®¢ ¯à¨ í⮬ ­¥ ¨§¬¥­¨âáï.
®«¥¥ ⮣®, ª ¦¤®¥ à á¯¨á ­¨¥ ¬®¦­®, ­¥ ¬¥­ïï á㬬ë èâà -
17.5 ‡ ¤ ç ® à á¯¨á ­¨¨
347
䮢, ¯à¥¤áâ ¢¨âì ¢ ª ­®­¨ç¥áª®¬ ¢¨¤¥ (canonical form), ¨¬¥­­®,
â ª, çâ®¡ë ¢á¥ ¯à®áà®ç¥­­ë¥ § ª §ë áâ®ï«¨ ¯®á«¥ ¢ë¯®«­¥­­ëå
¢ áப, áப¨ ¤«ï ¢ë¯®«­¥­­ëå ¢ áப § ª §®¢ 諨 ¢ ­¥ã¡ë¢ î饬 ¯®à浪¥. ‚ á ¬®¬ ¤¥«¥, ª ª ¬ë ¢¨¤¥«¨, ¬®¦­® áç¨â âì, çâ® ¢á¥
¯à®áà®ç¥­­ë¥ § ª §ë áâ®ïâ ¯®á«¥ ¢ë¯®«­¥­­ëå ¢ áப. …᫨ ⥯¥àì
¢ë¯®«­¥­¨¥ ­¥¯à®áà®ç¥­­ëå § ª §®¢ ­®¬¥à i ¨ j § ¢¥àè ¥âáï ¢ ¬®¬¥­âë ¢à¥¬¥­¨ k ¨ k + 1 ᮮ⢥âá⢥­­®, ­® ¯à¨ í⮬ dj < di, â®
¬®¦­® ¯®¬¥­ïâì § ª §ë ¬¥áâ ¬¨, ¨ ®¡ ¯®-¯à¥¦­¥¬ã ­¥ ¡ã¤ãâ ¯à®áà®ç¥­ë (ª®«ì ᪮஠dj > k + 1, â® ¨ ¯®¤ ¢­® di > dj > k + 1; § ª §ã
¦¥ ­®¬¥à j ¢®®¡é¥ ­¨ç¥£® ­¥ £à®§¨â, ¯®áª®«ìªã ¯® ­®¢®¬ã à á¯¨á ­¨î ¥£® ¡ã¤ã⠢믮«­ïâì à ­ìè¥, 祬 ¯® áâ ஬ã). Š®­¥ç­®¥ ç¨á«®
â ª¨å ®¡¬¥­®¢ ¯à¨¢¥¤ñâ à á¯¨á ­¨¥ ª ª ­®­¨ç¥áª®¬ã ¢¨¤ã.
’ ª¨¬ ®¡à §®¬, § ¤ ç ® à á¯¨á ­¨¨ ᢮¤¨âáï ª ­ 宦¤¥­¨î ¬­®¦¥á⢠A, á®áâ®ï饣® ¨§ § ª §®¢, ª®â®àë¥ ­¥ ¡ã¤ãâ ¯à®áà®ç¥­ë: ª ª
⮫쪮 íâ® ¬­®¦¥á⢮ ­ ©¤¥­®, ¤«ï á®áâ ¢«¥­¨ï à á¯¨á ­¨ï ¤®áâ â®ç­® à ᯮ«®¦¨âì § ª §ë ¨§ ¬­®¦¥á⢠A ¢ ¯®à浪¥ ¢®§à áâ ­¨ï
áப®¢, ¯®á«¥ ­¨å ¢ ¯à®¨§¢®«ì­®¬ ¯®à浪¥ ¯®áâ ¢¨âì ®áâ «ì­ë¥
§ ª §ë.
ã¤¥¬ £®¢®à¨âì, çâ® ¯®¤¬­®¦¥á⢮ A S ï¥âáï ­¥§ ¢¨á¨¬ë¬
(independent), ¥á«¨ ¤«ï í⮣® ¬­®¦¥á⢠§ ª §®¢ ¬®¦­® á®áâ ¢¨âì
à á¯¨á ­¨¥, ¯® ª®â®à®¬ã ¢á¥ § ª §ë ¡ã¤ã⠢믮«­¥­ë ¢ áப. Ž¡®§­ 稬 ç¥à¥§ I ᥬ¥©á⢮ ¢á¥å ­¥§ ¢¨á¨¬ëå ¯®¤¬­®¦¥á⢠¬­®¦¥á⢠S .
Š ª ¢ëïá­¨âì, ¡ã¤¥â «¨ ¤ ­­®¥ ¯®¤¬­®¦¥á⢮ A S ­¥§ ¢¨á¨¬ë¬? „«ï ª ¦¤®£® t = 1; 2; : : :; n ®¡®§­ 稬 ç¥à¥§ Nt(A) ª®«¨ç¥á⢮
§ ª §®¢ ¨§ ¬­®¦¥á⢠A, ¤«ï ª®â®àëå áப ­¥ ¯à¥¢®á室¨â t.
‹¥¬¬ 17.11. „«ï ¢á类£® ¯®¤¬­®¦¥á⢠A S á«¥¤ãî騥 âà¨
ãá«®¢¨ï íª¢¨¢ «¥­â­ë:
1. ¬­®¦¥á⢮ A ­¥§ ¢¨á¨¬®,
2. ¤«ï ¢á¥å t = 1; 2; : : :; n ¨¬¥¥¬ Nt (A) 6 t,
3. ¥á«¨ à ᯮ«®¦¨âì § ª §ë ¨§ ¬­®¦¥á⢠A ¢ ¯®à浪¥ ­¥ã¡ë¢ ­¨ï
áப®¢, â® ¢á¥ § ª §ë ¡ã¤ã⠢믮«­¥­ë ¢ áப.
„®ª § ⥫ìá⢮. …᫨ Nt(A) > t ¤«ï ­¥ª®â®à®£® t, â® § ª §®¢,
ª®â®àë¥ ¤®«¦­ë ¡ëâì ¢ë¯®«­¥­ë § ¯¥à¢ë¥ t ¥¤¨­¨æ ¢à¥¬¥­¨,
¡®«ìè¥ t ¨ ®¤¨­ ¨§ ­¨å ­¥¯à¥¬¥­­® ¡ã¤¥â ¯à®áà®ç¥­. ’ ª¨¬ ®¡à §®¬, (1) ¢«¥çñâ (2). …᫨ ¢ë¯®«­¥­® (2), â® i-© ¯® ¯®à浪ã áப
®ª®­ç ­¨ï § ª § ­¥ ¬¥­ìè¥ i, ¨ ¯à¨ à ááâ ­®¢ª¥ § ª §®¢ ¢ í⮬
¯®à浪¥ ¢á¥ áப¨ ¡ã¤ãâ ᮡ«î¤¥­ë. ‘«¥¤®¢ ⥫쭮, (2) ¢«¥çñâ (3).
ˆ¬¯«¨ª æ¨ï (3) ) (1) ®ç¥¢¨¤­ .
“á«®¢¨¥ (2) ï¥âáï 㤮¡­ë¬ ªà¨â¥à¨¥¬ ­¥§ ¢¨á¨¬®á⨠¬­®¦¥á⢠§ ª §®¢ (á¬. ã¯à ¦­¥­¨¥ 17.5-2).
Œ¨­¨¬¨§¨à®¢ âì á㬬ã èâà 䮢 § ¯à®áà®ç¥­­ë¥ § ª §ë | ¢áñ
à ¢­®, çâ® ¬ ªá¨¬¨§¨à®¢ âì á㬬㠭¥¢ë¯« 祭­ëå èâà 䮢, â®
348
ƒ« ¢ 17 † ¤­ë¥ «£®à¨â¬ë
di
wi
1
4
70
2
2
60
3
4
50
‡ ª §
4
3
40
5
1
30
6
4
20
7
6
10
¨áã­®ª 17.7 à¨¬¥à § ¤ ç¨ ® à á¯¨á ­¨¨ ¤«ï § ª §®¢ à ¢­®© ¤«¨â¥«ì­®á⨠á
¥¤¨­á⢥­­ë¬ ¨á¯®«­¨â¥«¥¬, áப ¬¨ ¨ èâà ä ¬¨.
¥áâì èâà 䮢, áá®æ¨¨à®¢ ­­ëå á ¢ë¯®«­¥­­ë¬¨ ¢ áப § ª § ¬¨.
‘«¥¤ãîé ï ⥮६ ¯®ª §ë¢ ¥â, çâ® íâã ®¯â¨¬¨§ 樮­­ãî § ¤ çã
¬®¦­® à¥è¨âì á ¯®¬®éìî ¦ ¤­®£® «£®à¨â¬ :
’¥®à¥¬ 17.12. ãáâì S | ¬­®¦¥á⢮ § ª §®¢ à ¢­®© ¤«¨â¥«ì­®á⨠ᮠáப ¬¨, I | ᥬ¥©á⢮ ­¥§ ¢¨á¨¬ëå ¬­®¦¥á⢠§ ª §®¢.
’®£¤ ¯ à (S; I ) ï¥âáï ¬ âந¤®¬.
„®ª § ⥫ìá⢮. Žç¥¢¨¤­®, ª ¦¤®¥ ¯®¤¬­®¦¥á⢮ ­¥§ ¢¨á¨¬®£®
¬­®¦¥á⢠⠪¦¥ ­¥§ ¢¨á¨¬®, ¨ ®áâ ñâáï ¯à®¢¥à¨âì ¢ë¯®«­¥­¨¥
᢮©á⢠§ ¬¥­ë. ãáâì A ¨ B | ­¥§ ¢¨á¨¬ë¥ ¬­®¦¥á⢠, ¯à¨çñ¬
jBj > jAj. ã¤¥¬ áà ¢­¨¢ âì ç¨á« Nt(B) ¨ Nt(A) ¯à¨ à §«¨ç­ëå t.
à¨ t = n ¯¥à¢®¥ ç¨á«® ¡®«ìè¥; 㬥­ìè ï t, ¤®¦¤ñ¬áï ¬®¬¥­â ,
ª®£¤ ®­¨ áà ¢­ïîâáï, ¨ ­ §®¢ñ¬ ¥£® k (¥á«¨ í⮣® ­¥ ¯à®¨§®©¤¥â
¤® á ¬®£® ª®­æ , áç¨â ¥¬ k = 0). à¨ í⮬ Nk (A) = Nk (B) (¥á«¨
k > 0) ¨ Nk+1(B) > Nk+1 (A). ‘«¥¤®¢ ⥫쭮, ¥áâì å®âï ¡ë ®¤¨­
§ ª § x 2 B n A á® áப®¬ k + 1. ®«®¦¨¬ A0 = A [ fxg. …᫨ t 6 k,
â® Nt(A0) = Nt(A) 6 t ¢ ᨫ㠭¥§ ¢¨á¨¬®á⨠¬­®¦¥á⢠A; ¥á«¨
t > k, â® Nt(A0) = Nt(A)+1 6 Nt(B) 6 t ¢ ᨫ㠭¥§ ¢¨á¨¬®á⨠¬­®¦¥á⢠B; áâ «® ¡ëâì, ¬­®¦¥á⢮ A0 ­¥§ ¢¨á¨¬® ¯® «¥¬¬¥ 17.11, ¨
¤«ï ¯ àë (S; I ) ¢ë¯®«­¥­® ᢮©á⢮ § ¬¥­ë. ‚áñ ¤®ª § ­®.
ˆ§ ¤®ª § ­­®© ⥮६ë á«¥¤ã¥â, çâ® ¤«ï ­ 宦¤¥­¨ï ®¯â¨¬ «ì­®£® ¬­®¦¥á⢠A ­¥§ ¢¨á¨¬ëå § ª §®¢ ¬®¦­® ¢®á¯®«ì§®¢ âìáï
¦ ¤­ë¬ «£®à¨â¬®¬, § ⥬ á®áâ ¢¨âì à á¯¨á ­¨¥, ­ 稭 î饥áï á § ª §®¢ ¨§ ¬­®¦¥á⢠A, à ááâ ¢«¥­­ëå ¢ ¯®à浪¥ ¢®§à áâ ­¨ï áப®¢ | íâ® ¨ ¡ã¤¥â à¥è¥­¨¥¬ § ¤ ç¨ ® à á¯¨á ­¨¨. …᫨
¯®«ì§®¢ âìáï «£®à¨â¬®¬ Greedy, â® ¢à¥¬ï à ¡®âë ¡ã¤¥â O(n2),
â ª ª ª ¢ ¯à®æ¥áá¥ à ¡®âë í⮣® «£®à¨â¬ ­ ¤® ᤥ« âì n ¯à®¢¥à®ª ­¥§ ¢¨á¨¬®á⨠¬­®¦¥á⢠, ¨ ª ¦¤ ï â ª ï ¯à®¢¥àª âॡã¥â
O(n) ®¯¥à 権 (ã¯à. 17.5-2). ®«¥¥ ¡ëáâàë© «£®à¨â¬ ¯à¨¢¥¤ñ­ ¢
§ ¤ ç¥ 17-3.
 à¨á. 17.7 ¯à¨¢¥¤ñ­ ¯à¨¬¥à § ¤ ç¨ ® à á¯¨á ­¨¨. † ¤­ë© «£®à¨â¬ ®â¡¨à ¥â § ª §ë 1, 2, 3 ¨ 4, § ⥬ ®â¢¥à£ ¥â § ª §ë 5 ¨ 6 ¨
®â¡¨à ¥â § ª § 7. Ž¯â¨¬ «ì­®¥ à á¯¨á ­¨¥:
(2; 4; 1; 3; 7; 5; 6):
‘㬬 èâà 䮢 à ¢­ w5 + w6 = 50.
‡ ¤ ç¨ ª £« ¢¥ 17
349
“¯à ¦­¥­¨ï
¥è¨â¥ § ¤ çã ® à á¯¨á ­¨¨ ¤«ï ᥬ¨ § ª §®¢, ¢ ª®â®à®©
áப¨ ⥠¦¥, çâ® ­ à¨á. 17.7, ­® ª ¦¤ë© èâà ä wi § ¬¥­ñ­ ­ 80 ; wi .
17.5-2 Š ª, ¨á¯®«ì§ãï ãá«®¢¨¥ (2) ¨§ «¥¬¬ë 17.11, ¢ëïá­¨âì § ¢à¥¬ï O(jAj), ¡ã¤¥â «¨ ¤ ­­®¥ ¬­®¦¥á⢮ § ª §®¢ A ­¥§ ¢¨á¨¬ë¬?
17.5-1
‡ ¤ ç¨
17-1 ‘¤ ç á ¤®«« à ãáâì âॡã¥âáï ­ ¡à âì á㬬㠢 n 業⮢, ¨á¯®«ì§ãï ­ ¨¬¥­ì襥 ª®«¨ç¥á⢮ ¬®­¥â.
Ž¯¨è¨â¥ ¦ ¤­ë© «£®à¨â¬, ­ ¡¨à î騩 n 業⮢ á ¯®¬®éìî
¬®­¥â ¤®á⮨­á⢮¬ ¢ 25, 10, 5 ¨ 1 業â. [ˆ¬¥­­® â ª¨¥ ¬®­¥âë ¨á¯®«ì§ãîâáï ¢ ‘˜€.] „®ª ¦¨â¥, çâ® «£®à¨â¬ ­ 室¨â ®¯â¨¬ «ì­®¥ à¥è¥­¨¥.
¡ ãáâì ¢ ­ 襬 à ᯮà殮­¨¨ ¨¬¥îâáï ¬®­¥âë ¤®á⮨­á⢮¬
c0; c1; : : :; ck 業⮢, £¤¥ c > 1 ¨ k > 1 | æ¥«ë¥ ç¨á« . „®ª ¦¨â¥,
çâ® ¦ ¤­ë© «£®à¨â¬ ¤ áâ ¢ í⮬ á«ãç ¥ ®¯â¨¬ «ì­®¥ à¥è¥­¨¥.
¢ à¨¢¥¤¨â¥ ¯à¨¬¥à ­ ¡®à ⨯®¢ ¬®­¥â, ¤«ï ª®â®à®£® ¦ ¤­ë© «£®à¨â¬ ®¯â¨¬ã¬ ­¥ ¤ áâ.
17-2 €æ¨ª«¨ç­ë¥ ¯®¤£à äë
ãáâì G = (V; E ) | ­¥®à¨¥­â¨à®¢ ­­ë© £à ä. ®ª ¦¨â¥, çâ®
¯ à (E; I ), £¤¥ A 2 I ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ ¬­®¦¥á⢮ A
横«¨ç­®, ï¥âáï ¬ âந¤®¬.
¡ Œ âà¨æ¥© ¨­æ¨¤¥­â­®á⨠(incidence matrix) ­¥®à¨¥­â¨à®¢ ­­®£®
£à ä G = (V; E ) ­ §ë¢ ¥âáï jV j jE j-¬ âà¨æ M , ¢ ª®â®à®©
Mve à ¢­® ¥¤¨­¨æ¥, ¥á«¨ ¢¥à設 v ¨­æ¨¤¥­â­ ॡàã e, ¨ ­ã«î
¢ ¯à®â¨¢­®¬ á«ãç ¥. (‘⮫¡¥æ, ᮮ⢥âáâ¢ãî騩 ॡàã, ᮤ¥à¦¨â ஢­® ¤¢¥ ¥¤¨­¨æë, ᮮ⢥âáâ¢ãî騥 ª®­æ ¬ í⮣® ॡà .)
„®ª ¦¨â¥, çâ® ­ ¡®à á⮫¡æ®¢ í⮩ ¬ âà¨æë «¨­¥©­® ­¥§ ¢¨á¨¬
[­ ¤ ¯®«¥¬ ¢ëç¥â®¢ ¨§ ¤¢ãå í«¥¬¥­â®¢] ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ ᮮ⢥âáâ¢ãî騩 ­ ¡®à ॡ¥à 横«¨ç¥­. ®«ì§ãïáì १ã«ìâ ⮬ ã¯à ¦­¥­¨ï 17.4-2, ¤®ª ¦¨â¥ ⥯¥àì ¤à㣨¬ ᯮᮡ®¬, çâ®
¯ à (E; I ) ï¥âáï ¬ âந¤®¬.
¢ ãáâì ¢ ­¥®à¨¥­â¨à®¢ ­­®¬ £à ä¥ G = (V; E ) ¤«ï ª ¦¤®£® ॡà e 2 E § ¤ ­ ­¥®âà¨æ ⥫ì­ë© ¢¥á w(e).  §à ¡®â ©â¥ íä䥪⨢­ë© «£®à¨â¬ ¤«ï ­ 宦¤¥­¨ï 横«¨ç­®£® ¯®¤¬­®¦¥á⢠¬­®¦¥á⢠E á ­ ¨¡®«ì襩 á㬬®© ¢¥á®¢ àñ¡¥à.
350
ƒ« ¢ 17 † ¤­ë¥ «£®à¨â¬ë
£ ãáâì G = (V; E ) | ®à¨¥­â¨à®¢ ­­ë© £à ä, ¨ ¯ãáâì I | ᥬ¥©á⢮ ¢á¥å 横«¨ç­ëå ¯®¤¬­®¦¥á⢠¬­®¦¥á⢠àñ¡¥à (¢ ¤ ­­®¬
á«ãç ¥ á«®¢® " 横«¨ç­ë©" ®§­ ç ¥â "­¥ ᮤ¥à¦ 騩 ®à¨¥­â¨à®¢ ­­ëå 横«®¢"). à¨¢¥¤¨â¥ ¯à¨¬¥à, ª®£¤ ¯ à (E; I ) ­¥ ¡ã¤¥â
¬ âந¤®¬. Š ª®¥ ¨§ ãá«®¢¨© ¢ ®¯à¥¤¥«¥­¨¨ ¬ âந¤ ¡ã¤¥â ­ àã襭®?
¤ Œ âà¨æ ¨­æ¨¤¥­â­®á⨠¤«ï ®à¨¥­â¨à®¢ ­­®£® £à ä G =
(V; E ) | íâ® jV j jE j-¬ âà¨æ M , ¢ ª®â®à®© Mve à ¢­® ;1,
¥á«¨ ¢¥à設 v ï¥âáï ­ ç «®¬ ॡà e, à ¢­® 1, ¥á«¨ ¢¥à設 v ï¥âáï ª®­æ®¬ ॡà e, ¨ à ¢­® ­ã«î ¢ ®áâ «ì­ëå
á«ãç ïå. „®ª ¦¨â¥, çâ® ¬­®¦¥á⢮ àñ¡¥à £à ä , ᮮ⢥âáâ¢ãî饥 «¨­¥©­® ­¥§ ¢¨á¨¬®¬ã (­ ¤ R) ­ ¡®àã á⮫¡æ®¢ ¬ âà¨æë
¨­æ¨¤¥­â­®áâ¨, ­¥ ᮤ¥à¦¨â ®à¨¥­â¨à®¢ ­­®£® 横« .
¥ ‚ ã¯à ¦­¥­¨¨ 17.4-2 ¬ë ¤®ª § «¨, çâ® «¨­¥©­® ­¥§ ¢¨á¨¬ë¥ ­ ¡®àë á⮫¡æ®¢ ¤ ­­®© ¬ âà¨æë ®¡à §ãîâ ¬ âந¤. ‚ ᢥ⥠í⮣®
१ã«ìâ â , ­¥â «¨ ¯à®â¨¢®à¥ç¨ï ¬¥¦¤ã ã⢥ত¥­¨ï¬¨ ¯ã­ªâ®¢ (£) ¨ (¤) ã¯à ¦­¥­¨ï?
17-3 …éñ ® à á¯¨á ­¨ïå
 áᬮâਬ á«¥¤ãî騩 «£®à¨â¬ ¤«ï à¥è¥­¨ï § ¤ ç¨ ¨§ à §¤¥« 17.5 (®¯â¨¬ «ì­®¥ à á¯¨á ­¨¥ ¤«ï § ª §®¢ à ¢­®© ¤«¨â¥«ì­®áâ¨ á ¥¤¨­á⢥­­ë¬ ¨á¯®«­¨â¥«¥¬, áப ¬¨ ¨ èâà ä ¬¨). ã¤¥¬
¯¥à¥¡¨à âì § ª §ë ¢ ¯®à浪¥ ã¡ë¢ ­¨ï èâà 䮢 ¨ § ¯®«­ïâì à á¯¨á ­¨¥ â ª: ¥á«¨ ¤«ï § ª § ­®¬¥à j áãé¥áâ¢ã¥â å®âï ¡ë ®¤­® ᢮¡®¤­®¥ ¬¥áâ® ¢ à á¯¨á ­¨¨, ¯®§¢®«ïî饥 ¢ë¯®«­¨âì ¥£® ­¥ ¯®§¤­¥¥
âॡ㥬®£® áப dj , â® ¯®áâ ¢¨¬ ¥£® ­ á ¬®¥ ¯®§¤­¥¥ ¨§ â ª¨å
¬¥áâ; ¢ ¯à®â¨¢­®¬ á«ãç ¥ ¯®áâ ¢¨¬ ¥£® ­ á ¬®¥ ¯®§¤­¥¥ ¨§ ᢮¡®¤­ëå ¬¥áâ.
„®ª ¦¨â¥, çâ® íâ®â «£®à¨â¬ ¤ ñâ ®¯â¨¬ã¬.
¡ ‚®á¯®«ì§ã©â¥áì ¯à¥¤áâ ¢«¥­¨¥¬ ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥á⢠á
¯®¬®éìî «¥á , ®¯¨á ­­ë¬ ¢ à §¤¥«¥ 22.3, ¤«ï íä䥪⨢­®© ॠ«¨§ 樨 ¢ë襮¯¨á ­­®£® «£®à¨â¬ (¬®¦¥â¥ áç¨â âì, çâ® § ª §ë
㦥 à ᯮ«®¦¥­ë ¢ ¯®à浪¥ ã¡ë¢ ­¨ï èâà 䮢). Žæ¥­¨â¥ ¢à¥¬ï
à ¡®âë «£®à¨â¬ .
‡ ¬¥ç ­¨ï
„®¯®«­¨â¥«ì­ë¥ ᢥ¤¥­¨ï ® ¦ ¤­ëå «£®à¨â¬ å ¨ ¬ âந¤ å
¬®¦­® ­ ©â¨ 㠋®ã«¥à [132] ¨«¨  ¯ ¤¨¬¨âà¨ã ¨ ‘â ©£«¨æ [154].
¥à¢®© à ¡®â®© ¯® ª®¬¡¨­ â®à­®© ®¯â¨¬¨§ 樨, ᮤ¥à¦ 饩
¦ ¤­ë© «£®à¨â¬, ¡ë« à ¡®â ¤¬®­¤á [62], ¤ â¨à®¢ ­­ ï 1971
£®¤®¬, å®âï á ¬® ¯®­ï⨥ ¬ âந¤ ¡ë«® ¢¢¥¤¥­® ¢ 1935 £®¤ã ¢ áâ âì¥ “¨â­¨ [200].
‡ ¬¥ç ­¨ï ª £« ¢¥ 17
351
‡ ¤ ç ¬¨ í⮩ £« ¢ë § ­¨¬ «¨áì ¬­®£¨¥ ¢â®àë | ƒ ¢à¨« [80]
(§ ¤ ç ® ¢ë¡®à¥ § ª), ‹®ã«¥à [132], ƒ®à®¢¨æ ¨ ‘ å­¨ [105], à áá à ¨ à ⫨ [33] (§ ¤ ç ® à á¯¨á ­¨¨).
Š®¤ë • ä䬥­ ¡ë«¨ ¨§®¡à¥â¥­ë ¢ 1952 £®¤ã [107]. Ž¡§®à ¬¥â®¤®¢ ᦠâ¨ï ¨­ä®à¬ 樨 (¯® á®áâ®ï­¨î ­ 1987 £®¤) ¤ «¨ ‹¥«¥¢¥à
¨ •¨à补࣠[136].
Š®à⥠¨ ‹®¢ á [127, 128, 129, 130] ᮧ¤ «¨ ⥮à¨î £à¨¤®¨¤®¢ (greedoids), ïîéãîáï ®¡®¡é¥­¨¥¬ ⥮ਨ, ¨§«®¦¥­­®© ¢ à §¤¥«¥ 17.4.
18
€¬®à⨧ 樮­­ë© ­ «¨§
€¬®à⨧ 樮­­ë© ­ «¨§ ¯à¨¬¥­ï¥âáï ¤«ï ®æ¥­ª¨ ¢à¥¬¥­¨ ¢ë¯®«­¥­¨ï ­¥áª®«ìª¨å ®¯¥à 権 á ª ª®©-«¨¡® áâàãªâãன ¤ ­­ëå
(­ ¯à¨¬¥à, á⥪®¬). —â®¡ë ®æ¥­¨âì ¢à¥¬ï ¢ë¯®«­¥­¨ï ª ª®©-«¨¡®
¯®á«¥¤®¢ ⥫쭮á⨠®¯¥à 権, ¤®áâ â®ç­® 㬭®¦¨âì ¬ ªá¨¬ «ì­ãî ¤«¨â¥«ì­®áâì ®¯¥à 樨 ­ ®¡é¥¥ ç¨á«® ®¯¥à 権. ˆ­®£¤ ,
®¤­ ª®, 㤠¥âáï ¯®«ãç¨âì ¡®«¥¥ â®ç­ãî ®æ¥­ªã ¢à¥¬¥­¨ à ¡®âë
(¨«¨, çâ® à ¢­®á¨«ì­®, á।­¥£® ¢à¥¬¥­¨ ¢ë¯®«­¥­¨ï ®¤­®© ®¯¥à 樨), ¨á¯®«ì§ãï â®â ä ªâ, çâ® ¢® ¬­®£¨å á«ãç ïå ¯®á«¥ ¤«¨â¥«ì­ëå ®¯¥à 権 ­¥áª®«ìª® á«¥¤ãîé¨å ®¯¥à 権 ¢ë¯®«­ïîâáï
¡ëáâà®. Žæ¥­ª¨ â ª®£® த ­ §ë¢ îâáï ¬®à⨧ 樮­­ë¬ ­ «¨§®¬
(amortized analysis) «£®à¨â¬ . ®¤ç¥àª­¥¬, çâ® ®æ¥­ª , ¤ ¢ ¥¬ ï
¬®à⨧ 樮­­ë¬ ­ «¨§®¬, ­¥ ï¥âáï ¢¥à®ïâ­®áâ­®©: íâ® ®æ¥­ª á।­¥£® ¢à¥¬¥­¨ ¢ë¯®«­¥­¨ï ®¤­®© ®¯¥à 樨 ¤«ï åã¤è¥£® á«ãç ï.
[à¨ ¬®à⨧ 樮­­®¬ ­ «¨§¥ ª ¦¤®© ®¯¥à 樨 ¯à¨á¢ ¨¢ ¥âáï
­¥ª®â®à ï ãçñâ­ ï á⮨¬®áâì (amortized cost), ª®â®à ï ¬®¦¥â ¡ëâì
¡®«ìè¥ ¨«¨ ¬¥­ìè¥ à¥ «ì­®© ¤«¨â¥«ì­®á⨠®¯¥à 樨. à¨ í⮬
¤®«¦­® ¢ë¯®«­ïâìáï á«¥¤ãî饥 ãá«®¢¨¥: ¤«ï «î¡®© ¯®á«¥¤®¢ ⥫쭮á⨠®¯¥à 権 ä ªâ¨ç¥áª ï á㬬 à­ ï ¤«¨â¥«ì­®áâì ¢á¥å ®¯¥à 権 (¯à¥¤¯®« £ ¥âáï, çâ® ¤® ¢ë¯®«­¥­¨ï ®¯¥à 権 áâàãªâãà ¤ ­­ëå ­ 室¨âáï ¢ ­ ç «ì­®¬ á®áâ®ï­¨¨ | ­ ¯à¨¬¥à, á⥪ ¯ãáâ) ­¥
¯à¥¢®á室¨â áã¬¬ë ¨å ãçñâ­ëå á⮨¬®á⥩. …᫨ íâ® ãá«®¢¨¥ ¢ë¯®«­¥­®, â® £®¢®àïâ, çâ® ãçñâ­ë¥ á⮨¬®á⨠¯à¨á¢®¥­ë ª®à४⭮.
‡ ¬¥â¨¬, çâ® ¤«ï ®¤­®© ¨ ⮩ ¦¥ áâàãªâãàë ¤ ­­ëå ¨ ®¤­¨å ¨ â¥å
¦¥ «£®à¨â¬®¢ ¢ë¯®«­¥­¨ï ®¯¥à 権 ¬®¦­® ª®à४⭮ ­ §­ ç¨âì
ãçñâ­ë¥ á⮨¬®á⨠­¥áª®«ìª¨¬¨ à §«¨ç­ë¬¨ ᯮᮡ ¬¨.]
‚ ¯¥à¢ëå âàñå à §¤¥« å í⮩ £« ¢ë à á᪠§ë¢ ¥âáï ® âàñå ®á­®¢­ëå ¬¥â®¤ å ¬®à⨧ 樮­­®£® ­ «¨§ . ‚ à §¤¥«¥ 18.1 à¥çì ¨¤¥â
® ¬¥â®¤¥ £à㯯¨à®¢ª¨: ¬ë ¬®¦¥¬ ®æ¥­¨âì á⮨¬®áâì n ®¯¥à 権
¢ åã¤è¥¬ á«ãç ¥ ¨ ãáâ ­®¢¨âì, çâ® ®­ ­¥ ¯à¥¢®á室¨â T (n)). ®á«¥ í⮣® ¬®¦­® ®¡êâì, çâ® ãçñâ­ ï á⮨¬®áâì «î¡®© ®¯¥à 樨,
­¥§ ¢¨á¨¬® ®â ¥¥ ¤«¨â¥«ì­®áâ¨, à ¢­ T (n)=n.
‚ à §¤¥«¥ 18.2 à á᪠§ë¢ ¥âáï ® ¬¥â®¤¥ ¯à¥¤®¯« âë. à¨ í⮬ ¬¥â®¤¥ ¬®à⨧ 樮­­®£® ­ «¨§ à §«¨ç­ë¬ ®¯¥à æ¨ï¬ ¬®£ãâ ¯à¨á¢ ¨¢ âìáï à §«¨ç­ë¥ ãçñâ­ë¥ á⮨¬®áâ¨. “ ­¥ª®â®àëå ®¯¥à 権
Œ¥â®¤ £à㯯¨à®¢ª¨
353
ãçñâ­ ï á⮨¬®áâì ®¡êï¥âáï ¢ëè¥ à¥ «ì­®©. Š®£¤ ¢ë¯®«­ï¥âáï
â ª ï ®¯¥à æ¨ï, ®áâ ñâáï १¥à¢, ª®â®àë© áç¨â ¥âáï åà ­ï騬áï ¢
®¯à¥¤¥«¥­­®¬ ¬¥á⥠áâàãªâãàë ¤ ­­ëå. â®â १¥à¢ ¨á¯®«ì§ã¥âáï
¤«ï ¤®¯« âë § ®¯¥à 樨, ãçñâ­ ï á⮨¬®áâì ª®â®àëå ­¨¦¥ ä ªâ¨ç¥áª®©.
‚ ¬¥â®¤¥ ¯®â¥­æ¨ «®¢, ®¡á㦤 ¥¬®¬ ¢ à §¤¥«¥ 18.3, १¥à¢ ­¥ á¢ï§ë¢ ¥âáï á ª ª¨¬¨-â® ª®­ªà¥â­ë¬¨ ®¡ê¥ªâ ¬¨, ï¥âáï ä㭪樥© ⥪ã饣® á®áâ®ï­¨ï áâàãªâãàë ¤ ­­ëå. â äã­ªæ¨ï ­ §ë¢ ¥âáï "¯®â¥­æ¨ «®¬", ¨ ãçñâ­ë¥ á⮨¬®á⨠¤®«¦­ë ¡ëâì á ­¥©
ᮣ« ᮢ ­ë.
Œë ¨««îáâà¨à㥬 í⨠âਠ¬¥â®¤ ­ ¤¢ãå ¯à¨¬¥à å. ¥à¢ë©
¨§ ­¨å | á⥪, á­ ¡¦¥­­ë© ¤®¯®«­¨â¥«ì­®© ®¯¥à 樥© Multipop,
㤠«ïî饩 ¨§ á⥪ ­¥áª®«ìª® í«¥¬¥­â®¢ ®¤­®¢à¥¬¥­­®. ‚â®à®©
¯à¨¬¥à | ¤¢®¨ç­ë© áç¥â稪, á­ ¡¦¥­­ë© ¥¤¨­á⢥­­®© ®¯¥à 樥©
Increment (㢥«¨ç¨âì ­ ¥¤¨­¨æã).
‡ ¬¥â¨¬, çâ® ¯®­ï⨥ ¯®â¥­æ¨ « ¨á¯®«ì§ã¥âáï ¤«ï ­ «¨§ «£®à¨â¬ ; ¢ á ¬®© ¯à®£à ¬¬¥ ­¥â ­¥®¡å®¤¨¬®á⨠¢ëç¨á«ïâì ¨ åà ­¨âì ¥£® §­ 祭¨¥.
ˆ¤¥¨, á¢ï§ ­­ë¥ á ¬®à⨧ 樮­­ë¬ ­ «¨§®¬, ¯®«¥§­® ¨¬¥âì ¢
¢¨¤ã ¯à¨ à §à ¡®âª¥ «£®à¨â¬®¢. à¨¬¥à â ª®£® த ¤ ­ ¢ à §¤¥«¥ 18.4 (â ¡«¨æ ¯¥à¥¬¥­­®£® à §¬¥à ).
18.1 Œ¥â®¤ £à㯯¨à®¢ª¨
Œ¥â®¤ £à㯯¨à®¢ª¨ (aggregate method) á®á⮨⠢ á«¥¤ãî饬: ¤«ï
ª ¦¤®£® n ®æ¥­¨¢ ¥âáï ¢à¥¬ï T (n), âॡ㥬®¥ ­ ¢ë¯®«­¥­¨¥ n ®¯¥à 権 (¢ åã¤è¥¬ á«ãç ¥). ‚à¥¬ï ¢ à áçñ⥠­ ®¤­ã ®¯¥à æ¨î, â®
¥áâì ®â­®è¥­¨¥ T (n)=n, ®¡êï¥âáï ãçñâ­®© á⮨¬®áâìî ®¤­®©
®¯¥à 樨. à¨ í⮬ ãçñâ­ë¥ á⮨¬®á⨠¢á¥å ®¯¥à 権 ®ª §ë¢ îâáï
®¤¨­ ª®¢ë¬¨ (¯à¨ ¤¢ãå ¤àã£¨å ¬¥â®¤ å ¬®à⨧ 樮­­®£® ­ «¨§ íâ® ¡ã¤¥â ­¥ â ª).
Ž¯¥à 樨 á® á⥪®¬
Œë ¯à¨¬¥­¨¬ ¬¥â®¤ £à㯯¨à®¢ª¨ ¤«ï ­ «¨§ á⥪ á ®¤­®© ¤®¯®«­¨â¥«ì­®© ®¯¥à 樥©. ‚ à §¤¥«¥ 11.1 ¬ë ¢¢¥«¨ ¤¢¥ ®á­®¢­ë¥
®¯¥à 樨 á® á⥪®¬:
Push(S; x) ¤®¡ ¢«ï¥â í«¥¬¥­â x ª á⥪ã S ;
Pop(S ) 㤠«ï¥â ¢¥à設ã á⥪ S (¨ ¢®§¢à é ¥â ¥ñ).
Š ¦¤ ï ¨§ íâ¨å ®¯¥à 権 ¢ë¯®«­ï¥âáï § ¢à¥¬ï O(1). ‘«¥¤®¢ ⥫쭮, ¢ë¯®«­¥­¨¥ n ®¯¥à 権 Push ¨ Pop âॡã¥â ¢à¥¬¥­¨ (n).
‘¨âã æ¨ï áâ ­®¢¨âáï ¡®«¥¥ ¨­â¥à¥á­®©, ¥á«¨ ¤®¡ ¢¨âì ®¯¥à æ¨î
Multipop(S; k), ª®â®à ï 㤠«ï¥â k í«¥¬¥­â®¢ ¨§ á⥪ (¥á«¨ ¢ á⥪¥
354
ƒ« ¢ 18 €¬®à⨧ 樮­­ë© ­ «¨§
¨áã­®ª 18.1 „¥©á⢨¥ ®¯¥à 樨 Multipop ­ á⥪¥ S . ( )  ç «ì­®¥ á®áâ®ï­¨¥ á⥪ . Multipop(S; 4) 㤠«ï¥â ¨§ á⥪ ¢¥àå­¨¥ ç¥âëà¥ í«¥¬¥­â , ¨ á⥪
¯à¨å®¤¨â ¢ á®áâ®ï­¨¥ (¡). …᫨ ⥯¥àì ¯à¨¬¥­¨âì ®¯¥à æ¨î Multipop(S; 7), â®
á⥪ áâ ­¥â ¯ãáâ (¢), â ª ª ª ¯¥à¥¤ ¯à¨¬¥­¥­¨¥¬ í⮩ ®¯¥à 樨 ¢ á⥪¥ ¡ë«®
¬¥­¥¥ ᥬ¨ í«¥¬¥­â®¢.
ᮤ¥à¦¨âáï ¬¥­¥¥ k í«¥¬¥­â®¢, ⮠㤠«ï¥âáï ¢áñ, çâ® â ¬ ¥áâì). …ñ
¬®¦­® ॠ«¨§®¢ âì â ª (Stack-Empty ¢®§¢à é ¥â true ⮣¤ ¨
⮫쪮 ⮣¤ , ª®£¤ á⥪ ¯ãáâ):
Multipop(S; k)
1 while not Stack-Empty(S ) and k =
6 0
2
do Pop(S )
3
k k;1
à¨¬¥à à ¡®âë ®¯¥à 樨 Multipop ¯à¨¢¥¤¥­ ­ à¨á. 18.1.
à¨ ¯à¨¬¥­¥­¨¨ ®¯¥à 樨 Multipop(S; k) ª á⥪ã, ᮤ¥à¦ 饬ã
s í«¥¬¥­â®¢, ¡ã¤¥â ¯à®¨§¢¥¤¥­® min(s; k) ®¯¥à 権 Pop. ®í⮬ã
(¨¬¥¥âáï ¢ ¢¨¤ã ä ªâ¨ç¥áª ï á⮨¬®áâì, ­¥ ãçñâ­ ï) ¢à¥¬ï ¥¥
à ¡®âë ¯à®¯®à樮­ «ì­® min(s; k).
‘ç¨â ï, çâ® ®¯¥à 樨 Push, Pop ¨¬¥îâ ¥¤¨­¨ç­ãî á⮨¬®áâì
(¨¬¥¥âáï ¢ ¢¨¤ã ä ªâ¨ç¥áª ï á⮨¬®áâì, ­¥ ãçñâ­ ï), ®¯¥à æ¨ï Multipop ¨¬¥¥â á⮨¬®áâì min(s; k), ®æ¥­¨¬ á㬬 à­ãî á⮨¬®áâì n ®¯¥à 権, ¯à¨¬¥­ñ­­ëå ª ¨§­ ç «ì­® ¯ãá⮬ã á⥪ã. ‘⮨¬®áâì «î¡®© ¨§ ®¯¥à 権 ­¥ ¯à¥¢®á室¨â n (á ¬ ï ¤®à®£ ï ®¯¥à æ¨ï
Multipop á⮨⠭¥ ¡®«¥¥ n, ¯®áª®«ìªã § n ®¯¥à 権 ¢ á⥪¥ ­¥ ­ ¡¥àñâáï ¡®«¥¥ n í«¥¬¥­â®¢). ‘«¥¤®¢ ⥫쭮, á㬬 à­ ï á⮨¬®áâì
n ®¯¥à 権 ¥áâì O(n2). â ®æ¥­ª , ®¤­ ª®, ᫨誮¬ £àã¡ . —⮡ë
¯®«ãç¨âì â®ç­ãî ®æ¥­ªã, § ¬¥â¨¬, çâ®, ª®«ì ᪮஠¯¥à¢®­ ç «ì­®
á⥪ ¡ë« ¯ãáâ, ®¡é¥¥ ç¨á«® ॠ«ì­® ¢ë¯®«­ï¥¬ëå ®¯¥à 権 Pop
(¢ª«îç ï ⥠¨§ ­¨å, çâ® ¢ë§ë¢ îâáï ¨§ ¯à®æ¥¤ãàë Multipop) ­¥
¯à¥¢®á室¨â ®¡é¥£® ç¨á« ®¯¥à 権 Push, íâ® ¯®á«¥¤­¥¥ ­¥ ¯à¥¢®á室¨â n. ‘â «® ¡ëâì, á⮨¬®áâì «î¡®© ¯®á«¥¤®¢ ⥫쭮á⨠¨§
n ®¯¥à 権 Push, Pop ¨ Multipop, ¯à¨¬¥­¥­­ëå ª ¯ãá⮬ã á⥪ã,
¥áâì O(n). ’¥¬ á ¬ë¬ ¬®¦­® ®¡êâì, çâ® ãçñâ­ ï á⮨¬®áâì ª ¦¤®© ¨§ ®¯¥à 権 ¥áâì O(n)=n = O(1).
®¤ç¥àª­ñ¬ ¥éñ à §, çâ® ­ è ®æ¥­ª ­¥ ï¥âáï ¢¥à®ïâ­®áâ­®©: á⮨¬®áâì (¢ à áçñ⥠­ ®¤­ã ®¯¥à æ¨î) ®æ¥­¨¢ ¥âáï ¤«ï åã¤è¥£® á«ãç ï.
Œ¥â®¤ £à㯯¨à®¢ª¨
355
counter value | §­ 祭¨¥ áç¥â稪 ,
total cost | á⮨¬®áâì
18.2 ‘®áâ®ï­¨ï ¢®á쬨¡¨â®¢®£® ¤¢®¨ç­®£® áç¥â稪 ¢ ¯à®æ¥áᥠ¢ë¯®«­¥­¨ï 16 ¯®á«¥¤®¢ ⥫ì­ëå ®¯¥à 権 Increment. ‡ èâà¨å®¢ ­ë ¡¨âë, §­ 祭¨ï ª®â®àëå ¨§¬¥­ïâáï ¯à¨ á«¥¤ãî饩 ®¯¥à 樨 Increment. ‚ ¯à ¢®© £à ä¥
¯®ª § ­ ®¡é ï á⮨¬®áâì ¢á¥å ®¯¥à 権 ¯® ãáâ ­®¢ª¥ ¨«¨ ®ç¨á⪥ ¡¨â®¢, ­¥®¡å®¤¨¬ëå, çâ®¡ë ¤®áç¨â âì ¤® ¤ ­­®£® ç¨á« . ‡ ¬¥âìâ¥, çâ® ¢ áâப¥ ­®¬¥à k
íâ á⮨¬®áâì ­¥ ¯à¥¢®á室¨â 2k.
¨áã­®ª
„¢®¨ç­ë© áçñâ稪
‚ í⮬ à §¤¥«¥ ¬ë ¯à¨¬¥­¨¬ ¬¥â®¤ £à㯯¨à®¢ª¨ ª ­ «¨§ã k¡¨â­®£® ¤¢®¨ç­®£® áçñâ稪 . ‘çñâ稪 ॠ«¨§®¢ ­P
ª ª;1¬ áᨢ ¡¨â®¢
A[0 : :k ; 1] ¨ åà ­¨â ¤¢®¨ç­ãî § ¯¨áì ç¨á« x = ki=0
A[i] 2i (â ª
çâ® A[0] | ¬« ¤è¨© ¡¨â). ¥à¢®­ ç «ì­® x = 0, â. ¥. A[i] = 0
¤«ï ¢á¥å i. Ž¯à¥¤¥«¨¬ ®¯¥à æ¨î Increment (㢥«¨ç¨âì ­ 1 ¯®
¬®¤ã«î 2k ) â ª:
Increment(A)
1 i 0
2 while i < length[A] and A[i] = 1
3
do A[i] 0
4
i i+1
5 if i < length[A]
6 then A[i] 1
® áãé¥áâ¢ã â®â ¦¥ «£®à¨â¬ ¨á¯®«ì§ã¥âáï ¢ ॠ«ì­ëå ª®¬¯ìîâ¥à å (ª ᪠¤­®¥ á«®¦¥­¨¥ | á¬. à §¤¥« 29.2.1).  à¨á. 18.2 ¨§®¡à ¦¥­ë á®áâ®ï­¨ï ¤¢®¨ç­®£® áç¥â稪 ¯à¨ 16 ¯®á«¥¤®¢ ⥫ì­ëå
¯à¨¬¥­¥­¨ïå ®¯¥à 樨 Increment, ­ 稭 ï ®â 0 ¤® 16. “¢¥«¨ç¥­¨¥
áç¥â稪 ­ ¥¤¨­¨æ㠯நá室¨â á«¥¤ãî騬 ®¡à §®¬: ¢á¥ ­ ç «ì­ë¥ ¥¤¨­¨ç­ë¥ ¡¨âë ¢ ¬ áᨢ¥ A áâ ­®¢ïâáï ­ã«ï¬¨ (横« ¢ áâப å 2{4), á«¥¤ãî騩 ­¥¯®á।á⢥­­® § ­¨¬¨ ­ã«¥¢®© ¡¨â (¥á«¨
356
ƒ« ¢ 18 €¬®à⨧ 樮­­ë© ­ «¨§
â ª®¢®© ¥áâì) ãáâ ­ ¢«¨¢ ¥âáï ¢ ¥¤¨­¨æã. ‘⮨¬®áâì ®¯¥à 樨
Increment «¨­¥©­® § ¢¨á¨â ®â ®¡é¥£® ª®«¨ç¥á⢠¡¨â®¢, ¯®¤¢¥à£-
è¨åáï ®ç¨á⪥ ¨«¨ ãáâ ­®¢ª¥. Žâáî¤ áà §ã ¯®«ãç ¥âáï £àã¡ ï
®æ¥­ª : ¯®áª®«ìªã ¢ åã¤è¥¬ á«ãç ¥ (¬ áᨢ A á®á⮨⠨§ ®¤­¨å
¥¤¨­¨æ) ¬¥­ïîâáï k ¡¨â®¢, âॡã¥âáï O(nk) ®¯¥à 権, ç⮡ë á®áç¨â âì ®â 0 ¤® n.
—â®¡ë ¯®«ãç¨âì ¡®«¥¥ â®ç­ãî ®æ¥­ªã, § ¬¥â¨¬, çâ® ­¥ ª ¦¤ë©
à § §­ 祭¨ï ¢á¥å k ¡¨â®¢ ¬¥­ïîâáï. ‚ á ¬®¬ ¤¥«¥, ¬« ¤è¨© ¡¨â
A[0] ¬¥­ï¥âáï ¯à¨ ª ¦¤®¬ ¨á¯®«­¥­¨¨ ®¯¥à 樨 Increment (á¬.
à¨á. 18.2). ‘«¥¤ãî騩 ¯® áâ à設áâ¢ã ¡¨â A[1] ¬¥­ï¥âáï ⮫쪮
ç¥à¥§ à §: ¯à¨ ®âáç¥â¥ ®â ­ã«ï ¤® n íâ®â ¡¨â ¬¥­ï¥âáï bn=2c à §.
„ «¥¥, A[N ] ¬¥­ï¥âáï ⮫쪮 ª ¦¤ë© ç¥â¢¥àâë© à §, ¨ â ª ¤ «¥¥:
¥á«¨ 0 6 i 6 lg n, â® ¢ ¯à®æ¥áᥠáç¥â ®â 0 ¤® n ¡¨â A[i] ¬¥­ï¥âáï
bn=2ic à §, ¥á«¨ i > blg nc, â® ¡¨â i ¢®®¡é¥ ­¥ ¬¥­ï¥âáï. ‘â «®
¡ëâì, ®¡é¥¥ ª®«¨ç¥á⢮ ®¯¥à 権 ®ç¨á⪨ ¨ ãáâ ­®¢ª¨ ¡¨â®¢ à ¢­®
bX
lg nc j k
1 1
n < nX
= 2n:
i=0
2i
i=0
2i
’¥¬ á ¬ë¬ ã¢¥«¨ç¥­¨¥ ¤¢®¨ç­®£® áçñâ稪 ®â 0 ¤® n âॡã¥â ¢
åã¤è¥¬ á«ãç ¥ O(n) ®¯¥à 権, ¯à¨çñ¬ ª®­áâ ­â ­¥ § ¢¨á¨â ®â k
(¨ à ¢­ 2); ãçñâ­ãî á⮨¬®áâì ª ¦¤®© ®¯¥à 樨 ¬®¦­® áç¨â âì
à ¢­®© O(n)=n = O(1) (ª®­áâ ­â ®¯ïâì ¦¥ ­¥ § ¢¨á¨â ®â k).
“¯à ¦­¥­¨ï
à¥¤¯®«®¦¨¬, çâ® ¬ë à §à¥è¨«¨ ­¥ ⮫쪮 ®¯¥à æ¨î
Multipop, ­® ¨ Multipush, ¤®¡ ¢«ïîéãî ª á⥪㠯ந§¢®«ì­®¥
ª®«¨ç¥á⢮ í«¥¬¥­â®¢. Œ®¦­® «¨ ⥯¥àì áç¨â âì ãçñâ­ãî á⮨¬®áâì ª ¦¤®© ®¯¥à 樨 à ¢­®© O(1)?
18.1-2 Ž¯à¥¤¥«¨¬ ¤«ï k-¡¨â®¢®£® ¤¢®¨ç­®£® áç¥â稪 ®¯¥à æ¨î
Decrement (¢ëç¨â ­¨¥ ¥¤¨­¨æë ¯® ¬®¤ã«î 2k ). ®ª ¦¨â¥, ¯®á«¥¤®¢ ⥫쭮áâì ¨§ n ®¯¥à 権 Increment ¨ Decrement ¢ åã¤è¥¬
á«ãç ¥ âॡã¥â ¢à¥¬¥­¨ (nk).
18.1-3  áᬮâਬ ¯®á«¥¤®¢ ⥫쭮áâì ®¯¥à 権, ¢ ª®â®à®© á⮨¬®áâì ®¯¥à 樨 ­®¬¥à i à ¢­ i, ¥á«¨ i ï¥âáï á⥯¥­ìî ¤¢®©ª¨, ¨
1 ¢ ¯à®â¨¢­®¬ á«ãç ¥. Žæ¥­¨â¥ á।­îî á⮨¬®áâì ®¤­®© ®¯¥à 樨
¢ ¯®á«¥¤®¢ ⥫쭮á⨠¨§ n ®¯¥à 権.
18.1-1
18.2 Œ¥â®¤ ¯à¥¤®¯« âë
à¨ ¯à®¢¥¤¥­¨¨ ¬®à⨧ 樮­­®£® ­ «¨§ ¯® ¬¥â®¤ã ¯à¥¤®¯« âë
(accounting method) ª ¦¤®© ®¯¥à 樨 ¯à¨á¢ ¨¢ ¥âáï ᢮ï ãçñâ­ ï
Œ¥â®¤ ¯à¥¤®¯« âë
357
á⮨¬®áâì, ¯à¨ç¥¬ í⨠á⮨¬®á⨠¬®£ãâ ¡ëâì ª ª ¡®«ìè¥, â ª ¨
¬¥­ìè¥ à¥ «ì­ëå. …᫨ ãç¥â­ ï á⮨¬®áâì ¯à¥¢®á室¨â ॠ«ì­ãî,
à §­®áâì à áᬠâਢ ¥âáï ª ª १¥à¢ (credit), ª®â®àë© áç¨â ¥âáï
á¢ï§ ­­ë¬ á ª ª¨¬-â® ®¡ê¥ªâ®¬ áâàãªâãàë ¤ ­­ëå ¨ à áᬠâਢ ¥âáï ª ª ¯à¥¤®¯« â § ¡ã¤ãéãî ®¡à ¡®âªã í⮣® ®¡ê¥ªâ . ‡ áç¥â
í⮣® १¥à¢ ª®¬¯¥­á¨àã¥âáï à §­¨æ ¬¥¦¤ã ãç¥â­®© ¨ ॠ«ì­®©
á⮨¬®áâìî ¤«ï â¥å ®¯¥à 権, ã ª®â®àëå ãç¥â­ ï á⮨¬®áâì ­¨¦¥
ॠ«ì­®©.
Œë ¤®«¦­ë ¢ë¡¨à âì ãçñâ­ë¥ á⮨¬®á⨠⠪, ç⮡ë ä ªâ¨ç¥áª ï á⮨¬®áâì ­¥ ¯à¥¢®á室¨« á㬬ë ãç¥â­ëå á⮨¬®á⥩, â®
¥áâì ç⮡ë १¥à¢ ®áâ ¢ «áï ­¥®âà¨æ ⥫ì­ë¬ ¢ «î¡®© ¬®¬¥­â à ¡®âë.
Ž¯¥à 樨 á® á⥪®¬
à®¨««îáâà¨à㥬 ¬¥â®¤ ¯à¥¤®¯« âë ­ 㦥 ¨§¢¥áâ­®¬ ¯à¨¬¥à¥
á® á⥪®¬.  ¯®¬­¨¬, ç⮠ॠ«ì­ë¥ á⮨¬®á⨠®¯¥à 権 á® á⥪®¬
¬ë áç¨â ¥¬ â ª¨¬¨:
Push
1;
Pop
1;
Multipop min(s; k);
£¤¥ k | ª®«¨ç¥á⢮ í«¥¬¥­â®¢, 㤠«ï¥¬ëå ¨§ á⥪ , s | à §¬¥à
á⥪ . à¨á¢®¨¬ í⨬ ®¯¥à æ¨ï¬ â ª¨¥ ãçñâ­ë¥ á⮨¬®áâ¨:
Push
2;
Pop
0;
Multipop 0:
‚ ­ 襬 ¯à¨¬¥à¥ ãçñâ­ë¥ á⮨¬®á⨠¢á¥å ®¯¥à 権 ¯®áâ®ï­­ë;
¢®§¬®¦­ë á«ãç ¨, ª®£¤ í⨠á⮨¬®á⨠­¥¯®áâ®ï­­ë ¨ ¤ ¦¥ ¨¬¥îâ
à §«¨ç­ë¥ ᨬ¯â®â¨ª¨ ¤«ï à §­ëå ®¯¥à 権.
®ª ¦¥¬ ⥯¥àì, çâ® ¢ë¡à ­­ë¥ ­ ¬¨ ãç¥â­ë¥ á⮨¬®á⨠¯®§¢®«ïîâ ¯®«­®áâìî ¯®ªàëâì ॠ«ì­ãî á⮨¬®áâì ®¯¥à 権 á® á⥪®¬. ã¤¥¬ áç¨â âì, çâ® ¥¤¨­¨æ¥© á⮨¬®á⨠®¯¥à 権 ï¥âáï
¤®«« à. ‚®á¯®«ì§ã¥¬áï ­ «®£¨¥© ¬¥¦¤ã á⥪®¬ ¨ á⮯ª®© â ५®ª
(á¬. à §¤. 11.1). ¥à¢®­ ç «ì­® ­¨ ®¤­®© â ५ª¨ ¢ á⮯ª¥ ­¥â (¬ë
­ 稭 ¥¬ á ¯ãá⮣® á⥪ ). Š®£¤ ¬ë ¤®¡ ¢«ï¥¬ â ५ªã ª á⮯ª¥,
¬ë ¤®«¦­ë § ¯« â¨âì 1 ¤®«« à § ®¯¥à æ¨î Push (íâ® ¥¥ ॠ«ì­ ï
業 ). Ž¤¨­ ¤®«« à ®áâ ¥âáï ã ­ á ¢ १¥à¢¥, ¢¥¤ì ãçñâ­ ï 業 ®¯¥à 樨 Push à ¢­ ¤¢ã¬ ¤®«« à ¬. ã¤¥¬ ¢á直© à § ª« áâì íâ®â
१¥à¢­ë© ¤®«« à ­ ᮮ⢥âáâ¢ãîéãî â ५ªã. ’®£¤ ¢ ª ¦¤ë©
¬®¬¥­â ­ ª ¦¤®© â ५ª¥ ¢ ­ 襩 á⮯ª¥ ¡ã¤¥â «¥¦ âì ¯® ¤®«« ஢®© ¡ã¬ ¦ª¥.
„®«« à, «¥¦ 騩 ­ â ५ª¥, | íâ® ¯à¥¤®¯« â § 㤠«¥­¨¥ â ५ª¨ ¨§ á⮯ª¨. Š®£¤ ¬ë ¯à®¨§¢®¤¨¬ ®¯¥à æ¨î Pop, ¬ë § ­¥¥
­¨ç¥£® ¤®¯®«­¨â¥«ì­® ­¥ ¯« ⨬ (ãçñâ­ ï á⮨¬®áâì Pop à ¢­ 358
ƒ« ¢ 18 €¬®à⨧ 樮­­ë© ­ «¨§
­ã«î), à ᯫ 稢 ¥¬áï § 㤠«¥­¨¥ â ५ª¨ «¥¦ 騬 ­ ­¥© १¥à¢­ë¬ ¤®«« ஬. ’®ç­® â ª ¦¥ ¬ë ¨¬¥¥¬ ¢®§¬®¦­®áâì ®¡êâì
®¯¥à æ¨î Multipop ¡¥á¯« â­®©: ¥á«¨ ­ ¤® 㤠«¨âì k â ५®ª, § 㤠«¥­¨¥ ª ¦¤®© ¨§ ­¨å ¬ë à ᯫ ⨬áï «¥¦ 騬 ­ ­¥© ¤®«« ஬. ‘â «® ¡ëâì, ¨§¡ëâ®ç­ ï ¯« â , ª®â®àãî ¬ë ¡¥à¥¬ § ®¯¥à æ¨î Push, ¯®ªàë¢ ¥â à áå®¤ë ­ ®¯¥à 樨 Pop ¨ Multipop.
(á⮨¬®áâì «î¡®© ¯®á«¥¤®¢ ⥫쭮á⨠¨§ n ®¯¥à 権 Push, Pop ¨
Multipop ­¥ ¯à¥¢®á室¨â á㬬 à­®© ãçñâ­®© á⮨¬®áâ¨).
„¢®¨ç­ë© áçñâ稪
¥è¨¬ â ª¨¬ ¦¥ ᯮᮡ®¬ § ¤ çã ® ¤¢®¨ç­®¬ áçñâ稪¥.  ¬ ­ ¤®
¯à®¢¥á⨠¬®à⨧ 樮­­ë© ­ «¨§ ¯®á«¥¤®¢ ⥫쭮á⨠¨§ n ®¯¥à 権 Increment (¢ ¨á室­®¬ á®áâ®ï­¨¨ ¢ áç¥â稪¥ § ¯¨á ­ ­ã«ì).
Œë 㦥 ®â¬¥ç «¨, çâ® ¢à¥¬ï à ¡®âë í⮩ ®¯¥à 樨 ¯à®¯®à樮­ «ì­® á㬬 à­®¬ã ª®«¨ç¥áâ¢ã ãáâ ­®¢®ª ¨ ®ç¨á⮪ ¡¨â®¢. ã¤¥¬
áç¨â âì, çâ® ª ¦¤ ï ãáâ ­®¢ª ¨«¨ ®ç¨á⪠á⮨â 1 ¤®«« à.
“áâ ­®¢¨¬ â ª¨¥ ãçñâ­ë¥ á⮨¬®áâ¨: 2 ¤®«« à § ãáâ ­®¢ªã
¡¨â , 0 § ®ç¨áâªã. à¨ ª ¦¤®© ãáâ ­®¢ª¥ ¡¨â ®¤­¨¬ ¨§ ¤¢ãå ¤®«« ஢ ãç¥â­®© æ¥­ë ¡ã¤¥¬ à ᯫ 稢 âìáï § ॠ«ì­ë¥ § âà âë ­ íâã ãáâ ­®¢ªã, ¤®«« à, ®áâ î騩áï ¢ १¥à¢¥, ¡ã¤¥¬ ¯à¨ªà¥¯«ïâì ª ãáâ ­®¢«¥­­®¬ã ¡¨âã. ®áª®«ìªã ¯¥à¢®­ ç «ì­® ¢á¥ ¡¨âë
¡ë«¨ ­ã«¥¢ë¬¨, ¢ ª ¦¤ë© ¬®¬¥­â ª ª ¦¤®¬ã ­¥­ã«¥¢®¬ã ¡¨â㠡㤥⠯ਪ९«¥­ १¥à¢­ë© ¤®«« à. ‘â «® ¡ëâì, § ®ç¨áâªã «î¡®£®
¡¨â ­¨ç¥£® ¯« â¨âì ­ ¬ ­¥ ¯à¨¤¥âáï: ¬ë à ᯫ ⨬áï § ­¥¥ ¤®«« ஢®© ¡ã¬ ¦ª®©, ¯à¨ªà¥¯«ñ­­®© ª í⮬㠡¨âã ¢ ¬®¬¥­â ¥£® ãáâ ­®¢ª¨.
’¥¯¥àì «¥£ª® ®¯à¥¤¥«¨âì ãçñâ­ãî á⮨¬®áâì ®¯¥à 樨
Increment: ¯®áª®«ìªã ª ¦¤ ï â ª ï ®¯¥à æ¨ï âॡã¥â ­¥ ¡®«¥¥ ®¤­®© ãáâ ­®¢ª¨ ¡¨â , ¥¥ ãçñâ­ãî á⮨¬®áâì ¬®¦­® áç¨â âì à ¢­®©
2 ¤®«« à ¬. ‘«¥¤®¢ ⥫쭮, ä ªâ¨ç¥áª ï á⮨¬®áâì n ¯®á«¥¤®¢ ⥫ì­ëå ®¯¥à 権 Increment, ­ 稭 îé¨åáï á ­ã«ï, ¥áâì O(n),
¯®áª®«ìªã ®­ ­¥ ¯à¥¢®á室¨â á㬬ë ãçñâ­ëå á⮨¬®á⥩.
“¯à ¦­¥­¨ï
à¥¤¯®«®¦¨¬, çâ® ¬ë à ¡®â ¥¬ á® á⥪®¬, ¬ ªá¨¬ «ì­ë©
à §¬¥à ª®â®à®£® à ¢¥­ k, ¯à¨ç¥¬ ¯®á«¥ ª ¦¤ëå k ®¯¥à 権 ¤¥« ¥âáï १¥à¢­ ï ª®¯¨ï á⥪ . ®ª ¦¨â¥, çâ® á㬬 à­ ï á⮨¬®áâì
n ®¯¥à 権 á® á⥪®¬ (¢ª«îç ï १¥à¢­®¥ ª®¯¨à®¢ ­¨¥) ¥áâì O(n),
¢ë¡à ¢ ¯®¤å®¤ï騥 ãçñâ­ë¥ á⮨¬®áâ¨.
18.2-2 ‘¤¥« ©â¥ ã¯à ¦­¥­¨¥ 18.1-3 á ¯®¬®éìî ¬¥â®¤ ¯à¥¤®¯« âë.
18.2-1
Œ¥â®¤ ¯®â¥­æ¨ «®¢
359
18.2-3 „®¡ ¢¨¬ ª á¨á⥬¥ ®¯¥à 権 á ¤¢®¨ç­ë¬ áçñâ稪®¬ ®¯¥à æ¨î Reset (®ç¨áâ¨âì ¢á¥ ¡¨âë). ¥ «¨§ã©â¥ áç¥â稪 ­ ¡ §¥
¢¥ªâ®à ¡¨â®¢ â ª¨¬ ®¡à §®¬, ç⮡ë á⮨¬®áâì ¯®á«¥¤®¢ ⥫쭮á⨠n ®¯¥à 権 Increment ¨ Reset, ¯à¨¬¥­¥­­ëå ª áçñâ稪ã, ¢
ª®â®à®¬ ¯¥à¢®­ ç «ì­® ­ 室¨«áï ­ã«ì, ¡ë« à ¢­ O(n), ¯à¨çñ¬
ª®­áâ ­â ­¥ ¤®«¦­ § ¢¨á¥áâì ®â k | ç¨á« ¡¨â®¢ ¢ áçñâ稪¥.
(“ª § ­¨¥: åà ­¨â¥ ­®¬¥à áâ à襣® ­¥­ã«¥¢®£® ¡¨â ).
18.3 Œ¥â®¤ ¯®â¥­æ¨ «®¢
Œ¥â®¤ ¯®â¥­æ¨ «®¢ (potential method) ï¥âáï ®¡®¡é¥­¨¥¬ ¬¥â®¤ ¯à¥¤®¯« âë: §¤¥áì १¥à¢ ­¥ à á¯à¥¤¥«ï¥âáï ¬¥¦¤ã ®â¤¥«ì­ë¬¨ í«¥¬¥­â ¬¨ áâàãªâãàë ¤ ­­ëå (­ ¯à¨¬¥à, ®â¤¥«ì­ë¬¨ ¡¨â ¬¨ ¤¢®¨ç­®£® áç¥â稪 ), ï¥âáï ä㭪樥© á®áâ®ï­¨ï áâàãªâãàë ¤ ­­ëå ¢ 楫®¬. â äã­ªæ¨ï ­ §ë¢ ¥âáï "¯®â¥­æ¨ «ì­®©
í­¥à£¨¥©", ¨«¨ "¯®â¥­æ¨ «®¬".
Ž¡é ï á奬 ¬¥â®¤ ¯®â¥­æ¨ «®¢ â ª®¢ . ãáâì ­ ¤ áâàãªâãன
¤ ­­ëå ¯à¥¤á⮨⠯ந§¢¥á⨠n ®¯¥à 権, ¨ ¯ãáâì Di | á®áâ®ï­¨¥
áâàãªâãàë ¤ ­­ëå ¯®á«¥ i-© ®¯¥à 樨 (¢ ç áâ­®áâ¨, D0 | ¨á室­®¥
á®áâ®ï­¨¥). ®â¥­æ¨ « (potential) ¯à¥¤áâ ¢«ï¥â ᮡ®© äã­ªæ¨î ¨§ ¬­®¦¥á⢠¢®§¬®¦­ëå á®áâ®ï­¨© áâàãªâãàë ¤ ­­ëå ¢® ¬­®¦¥á⢮ ¤¥©á⢨⥫ì­ëå ç¨á¥«; íâ äã­ªæ¨ï ­ §ë¢ ¥âáï ¥éñ ¯®â¥­æ¨ «ì­®© ä㭪樥© (potential function). ãáâì ci | ॠ«ì­ ï á⮨¬®áâì
i-© ®¯¥à 樨. “ç¥â­®© á⮨¬®áâìî (amortized cost) i-© ®¯¥à 樨 ®¡ê¬ ç¨á«®
ci = ci + (Di) ; (Di;1);
b
(18.1)
â. ¥. á㬬ã ॠ«ì­®© á⮨¬®á⨠®¯¥à 樨 ¯«îá ¯à¨à 饭¨¥ ¯®â¥­æ¨ « ¢ १ã«ìâ ⥠¢ë¯®«­¥­¨ï í⮩ ®¯¥à 樨. ’®£¤ á㬬 à­ ï
ãç¥â­ ï á⮨¬®áâì ¢á¥å ®¯¥à 権 à ¢­ n
X
i=1
c=
bi
n
X
i=1
ci + (Dn) ; (D0):
(18.2)
…᫨ ­ ¬ 㤠«®áì ¯à¨¤ã¬ âì äã­ªæ¨î , ¤«ï ª®â®à®© (Dn) >
(D0), â® á㬬 à­ ï ãç¥â­ ï á⮨¬®áâì ¤ áâ ¢¥àå­îî ®æ¥­ªã ¤«ï
ॠ«ì­®© á⮨¬®á⨠¯®á«¥¤®¢ ⥫쭮á⨠n ®¯¥à 権. ¥ ®£à ­¨ç¨¢ ï ®¡é­®áâ¨, ¬®¦­® áç¨â âì, çâ® (D0) = 0 (á¬. ã¯à. 18.3-1).
ƒ®¢®àï ­¥ä®à¬ «ì­®, ¥á«¨ à §­®áâì ¯®â¥­æ¨ «®¢ (Di) ; (Di;1)
¯®«®¦¨â¥«ì­ , â® ãç¥â­ ï á⮨¬®áâì i-© ®¯¥à 樨 ¢ª«îç ¥â ¢ ᥡï
१¥à¢ ("¯à¥¤®¯« âã" § ¡ã¤ã騥 ®¯¥à 樨); ¥á«¨ ¦¥ íâ à §­®áâì
®âà¨æ â¥«ì­ , â® ãç¥â­ ï á⮨¬®áâì i-© ®¯¥à 樨 ¬¥­ìè¥ à¥ «ì­®©, ¨ à §­¨æ ¯®ªàë¢ ¥âáï § áç¥â ­ ª®¯«¥­­®£® ª í⮬㠬®¬¥­âã
¯®â¥­æ¨ « .
360
ƒ« ¢ 18 €¬®à⨧ 樮­­ë© ­ «¨§
“çñâ­ë¥ á⮨¬®á⨠(¨ ⥬ á ¬ë¬ ®æ¥­ª¨ ­ ॠ«ì­ãî á⮨¬®áâì), à ááç¨â ­­ë¥ á ¯®¬®éìî ¬¥â®¤ ¯®â¥­æ¨ «®¢, § ¢¨áïâ ®â
¢ë¡®à ¯®â¥­æ¨ «ì­®© ä㭪樨, á ¬ íâ®â ¢ë¡®à ï¥âáï ¤¥«®¬
⢮àç¥áª¨¬.
Ž¯¥à 樨 á® á⥪®¬
à®¨««îáâà¨à㥬 ¬¥â®¤ ¯®â¥­æ¨ «®¢ ­ ¯à¨¬¥à¥ §­ ª®¬®© ­ ¬
§ ¤ ç¨ ® á⥪¥ á ®¯¥à æ¨ï¬¨ Push, Pop ¨ Multipop. ‚ ª ç¥á⢥
¯®â¥­æ¨ «ì­®© ä㭪樨 ¢®§ì¬¥¬ ª®«¨ç¥á⢮ í«¥¬¥­â®¢ ¢ á⥪¥.
®áª®«ìªã ¬ë ­ 稭 ¥¬ á ¯ãá⮣® á⥪ , ¨¬¥¥¬
(Di ) > 0 = (D0):
‘â «® ¡ëâì, á㬬 ãçñâ­ëå á⮨¬®á⥩ ®æ¥­¨¢ ¥â ᢥàåã ॠ«ì­ãî á⮨¬®áâì ¯®á«¥¤®¢ ⥫쭮á⨠®¯¥à 権.
 ©¤¥¬ ⥯¥àì ãçñâ­ë¥ á⮨¬®á⨠¨­¤¨¢¨¤ã «ì­ëå ®¯¥à 権.
’ ª ª ª ®¯¥à æ¨ï Push ¨¬¥¥â ॠ«ì­ãî á⮨¬®áâì 1 ¨ ª ⮬㠦¥
㢥«¨ç¨¢ ¥â ¯®â¥­æ¨ « ­ 1, ¥ñ ãçñâ­ ï á⮨¬®áâì à ¢­ 1 + 1 = 2;
®¯¥à æ¨ï Multipop, 㤠«ïîé ï ¨§ á⥪ m í«¥¬¥­â®¢, ¨¬¥¥â á⮨¬®áâì m, ­® 㬥­ìè ¥â ¯®â¥­æ¨ « ­ m, â ª çâ® ¥ñ ãçñâ­ ï á⮨¬®áâì à ¢­ m ; m = 0; â®ç­® â ª ¦¥ à ¢­ ­ã«î ¨ ãç¥â­ ï
á⮨¬®áâì ®¯¥à 樨 Pop. Š®«ì ᪮஠ãçñâ­ ï á⮨¬®áâì ª ¦¤®©
®¯¥à 樨 ­¥ ¯à¥¢®á室¨â 2, á⮨¬®áâì ¯®á«¥¤®¢ ⥫쭮á⨠n ®¯¥à 権, ­ 稭 îé¨åáï á ¯ãá⮣® á⥪ , ¥áâì O(n).
„¢®¨ç­ë© áç¥â稪
à® ­ «¨§¨à㥬 á ¯®¬®éìî ¬¥â®¤ ¯®â¥­æ¨ «®¢ ¤¢®¨ç­ë© áçñâ稪. ‚ ª ç¥á⢥ ¯®â¥­æ¨ «ì­®© ä㭪樨 ¢®§ì¬ñ¬ ª®«¨ç¥á⢮ ¥¤¨­¨æ ¢ áç¥â稪¥.
 ©¤¥¬ ãçñâ­ãî á⮨¬®áâì ®¯¥à 樨 Increment. ãáâì bi | ª®«¨ç¥á⢮ ¥¤¨­¨æ ¢ áç¥â稪¥ ¯®á«¥ i-© ®¯¥à 樨, ¨ ¯ãáâì i-ï ®¯¥à æ¨ï
Increment ®ç¨é ¥â ti ¡¨â®¢; ⮣¤ bi 6 bi;1 ; ti +1 (ªà®¬¥ ®ç¨á⪨
¡¨â®¢, Increment ¬®¦¥â ¥éñ ãáâ ­®¢¨âì ¢ ¥¤¨­¨æã ­¥ ¡®«¥¥ ®¤­®£®
¡¨â ). ‘â «® ¡ëâì, ॠ«ì­ ï á⮨¬®áâì i-£® Increment' ­¥ ¯à¥¢®á室¨â ti + 1, ¥£® ãç¥â­ ï á⮨¬®áâì ¥áâì
ci 6 (ti + 1) + (bi ; bi;1) 6 2:
b
…᫨ ®âáçñâ ­ 稭 ¥âáï á ­ã«ï, â® (D0) = 0, â ª çâ® (Di) >
(D0) ¤«ï ¢á¥å i, á㬬 ãçñâ­ëå á⮨¬®á⥩ ®æ¥­¨¢ ¥â ᢥàåã
á㬬ã ॠ«ì­ëå á⮨¬®á⥩, ¨ á㬬 à­ ï á⮨¬®áâì n ®¯¥à 権
Increment ¥áâì O(n) á ª®­á⠭⮩ (¤¢®©ª®©), ­¥ § ¢¨áï饩 ®â k
(à §¬¥à áçñâ稪 ).
Œ¥â®¤ ¯®â¥­æ¨ «®¢
361
Œ¥â®¤ ¯®â¥­æ¨ «®¢ ¯®§¢®«ï¥â à §®¡à âìáï ¨ á® á«ãç ¥¬, ª®£¤ ®âáç¥â ­ 稭 ¥âáï ­¥ á ­ã«ï. ‚ í⮬ á«ãç ¥ ¨§ (18.2) ¢ë⥪ ¥â, çâ®
n
X
i=1
ci =
n
X
i=1
c ; (Dn) + (D0);
bi
(18.3)
®âªã¤ , ¯à¨­¨¬ ï ¢® ¢­¨¬ ­¨¥, çâ® bci 6 2 ¤«ï ¢á¥å i, ¯®«ãç ¥¬, çâ®
n
X
i=1
ci 6 2n ; bn + b0:
®áª®«ìªã b0 6 k, ¤«ï ¤®áâ â®ç­® ¤«¨­­ëå ¯®á«¥¤®¢ ⥫쭮á⥩
®¯¥à 権 (n = (k) ®¯¥à 権 Increment) ॠ«ì­ ï á⮨¬®áâì ®æ¥­¨¢ ¥âáï ª ª O(n), ¯à¨çñ¬ ª®­áâ ­â ¢ O-§ ¯¨á¨ ­¥ § ¢¨á¨â ­¨ ®â k,
­¨ ®â ­ ç «ì­®£® §­ 祭¨ï áç¥â稪 .
“¯à ¦­¥­¨ï
18.3-1 ãáâì ¯®â¥­æ¨ «ì­ ï äã­ªæ¨ï â ª®¢ , çâ® (Di) >
(D0) ¤«ï ¢á¥å i, ­® (D0) 6= 0. ®ª ¦¨â¥, çâ® áãé¥áâ¢ã¥â ¯®â¥­æ¨ «ì­ ï äã­ªæ¨ï 0, ¤«ï ª®â®à®© 0(D0) = 0, 0(Di) > 0 ¤«ï
¢á¥å i, ¨ ãçñâ­ë¥ á⮨¬®áâ¨, à ááç¨â ­­ë¥ á ¯®¬®éìî ä㭪樨 0,
ᮢ¯ ¤ îâ á ãçñâ­ë¬¨ á⮨¬®áâﬨ, à ááç¨â ­­ë¬¨ á ¯®¬®éìî .
18.3-2 ‘¤¥« ©â¥ ã¯à ¦­¥­¨¥ 18-1.3 á ¯®¬®éìî ¬¥â®¤ ¯®â¥­æ¨ «®¢.
18.3-3 ãáâì ­ è áâàãªâãà ¤ ­­ëå | ¤¢®¨ç­ ï ªãç á ®¯¥à æ¨ï¬¨ Insert ¨ Extract-Min, à ¡®â î騬¨ § ¢à¥¬ï O(lg n) ¢
åã¤è¥¬ á«ãç ¥, £¤¥ n | ª®«¨ç¥á⢮ í«¥¬¥­â®¢. à¨¤ã¬ ©â¥ ¯®â¥­æ¨ «ì­ãî äã­ªæ¨î , ¤«ï ª®â®à®© ãçñâ­ ï á⮨¬®áâì ®¯¥à 樨
Insert ¥áâì O(lg n), ãçñâ­ ï á⮨¬®áâì ®¯¥à 樨 Extract-Min
¥áâì O(1), ¨ á㬬 ãçñâ­ëå á⮨¬®á⥩ ¯®á«¥¤®¢ ⥫쭮á⨠®¯¥-
à 権 ®æ¥­¨¢ ¥â ᢥàåã ॠ«ì­ãî á⮨¬®áâì ¯®á«¥¤®¢ ⥫쭮áâ¨
®¯¥à 権.
18.3-4 ãáâì ¯®á«¥¤®¢ ⥫쭮áâì ¨§ n ®¯¥à 権 Push, Pop ¨
Multipop ¯à¨¬¥­ï¥âáï ª á⥪ã, ᮤ¥à¦ 饬ã s0 í«¥¬¥­â®¢, ¨ ¯à¨¢®¤¨â ª á⥪ã, ᮤ¥à¦ 饬ã sn í«¥¬¥­â®¢. Š ª®¢ á㬬 à­ ï ä ªâ¨ç¥áª ï á⮨¬®áâì íâ¨å ®¯¥à 権?
18.3-5 ãáâì ¢ ­ ç «ì­®¬ á®áâ®ï­¨¨ ¤¢®¨ç­ë© áç¥â稪 ᮤ¥à¦¨â
b ¥¤¨­¨æ, ¨ ¯ãáâì n = (b). „®ª ¦¨â¥, çâ® á⮨¬®áâì n ®¯¥à 権
Increment ¥áâì O(n) á ª®­á⠭⮩, ­¥ § ¢¨áï饩 ®â b.
18.3-6 Š ª ॠ«¨§®¢ âì ®ç¥à¥¤ì ­ ¡ §¥ ¤¢ãå á⥪®¢ (ã¯à ¦­¥­¨¥ 11.1-6) â ª¨¬ ®¡à §®¬, ç⮡ë ãç¥â­ ï á⮨¬®áâì ®¯¥à 権
Enqueue ¨ Dequeue ¡ë« O(1)?
362
ƒ« ¢ 18 €¬®à⨧ 樮­­ë© ­ «¨§
18.4 „¨­ ¬¨ç¥áª¨¥ â ¡«¨æë
à¨ à ¡®â¥ á â ¡«¨æ¥© ¯¥à¥¬¥­­®£® à §¬¥à ¡ë¢ ¥â ¦¥« ⥫쭮
§ ¯à 訢 âì ¯ ¬ïâì ¡«®ª ¬¨: ª®£¤ ¢ â ¡«¨æ¥ ­¥â ¬¥áâ ¤«ï ­®¢®£®
í«¥¬¥­â , ¬ë § ¯à 訢 ¥¬ ¬¥áâ® ¤«ï â ¡«¨æë ¡®«ì襣® à §¬¥à ¨ ª®¯¨à㥬 § ¯¨á¨ ¨§ áâ ன â ¡«¨æë ¢ ­®¢ãî. à¨ í⮬ ­®¢ë©
à §¬¥à â ¡«¨æë ¢ë¡¨à ¥âáï á § ¯ ᮬ, çâ®¡ë ­¥ ¯à¨è«®áì ­¥¬¥¤«¥­­® à áè¨àïâì ¥ñ ¥éñ à §.  ¯à®â¨¢, ¥á«¨ ¯à¨ 㤠«¥­¨¨ § ¯¨á¥©
â ¡«¨æ áâ ­®¢¨âáï ¯®ç⨠¯ãá⮩, â® ¨¬¥¥â á¬ë᫠᪮¯¨à®¢ âì ¥ñ
®áâ ⮪ ¢ â ¡«¨æã ¬¥­ì襣® à §¬¥à ¨ ®á¢®¡®¤¨âì ¯ ¬ïâì, § ­ïâãî áâ ன â ¡«¨æ¥©. ‚ í⮬ à §¤¥«¥ ¬ë ¯®ª ¦¥¬, ª ª ¬®¦­® ¤¨­ ¬¨ç¥áª¨ à áè¨àïâì ¨ ᦨ¬ âì â ¡«¨æë, ¥á«¨ ¬ë å®â¨¬, ç⮡ë
ãçñâ­ ï á⮨¬®áâì ®¯¥à 権 ¤®¡ ¢«¥­¨ï ¨ 㤠«¥­¨ï § ¯¨á¥© ª â ¡«¨æ¥ ¡ë« O(1), (å®âï ॠ«ì­ ï á⮨¬®áâì ¤®¡ ¢«¥­¨© ¨«¨ 㤠«¥­¨©, âॡãîé¨å à áè¨à¥­¨ï ¨«¨ ᦠâ¨ï â ¡«¨æë, ¬®¦¥â ¡ëâì
¢¥«¨ª ). à¨ í⮬ ¬ë ¡ã¤¥¬ á«¥¤¨âì, çâ®¡ë ª®íää¨æ¨¥­â § ¯®«­¥­¨ï â ¡«¨æë (®â­®è¥­¨¥ ç¨á« ¨á¯®«ì§®¢ ­­ëå ï祥ª ª ®¡é¥¬ã
à §¬¥àã) ¡ë« ­¥ ᫨誮¬ ¬ «.
ã¤¥¬ áç¨â âì, çâ® ¤¨­ ¬¨ç¥áª ï â ¡«¨æ ¯®¤¤¥à¦¨¢ ¥â ®¯¥à 樨 Table-Insert (¤®¡ ¢¨âì ª â ¡«¨æ¥) ¨ Table-Delete (㤠«¨âì
¨§ â ¡«¨æë). à¨ ¤®¡ ¢«¥­¨¨ § ¯¨á¨ ª â ¡«¨æ¥ ¬ë § ­¨¬ ¥¬ ¢ â ¡«¨æ¥ ®¤­ã ï祩ªã (slot), ¯à¨ 㤠«¥­¨¨ § ¯¨á¨ ®¤­ ï祩ª ®á¢®¡®¦¤ ¥âáï. Š ª ª®­ªà¥â­® ॠ«¨§®¢ ­ë á ¬ â ¡«¨æ ¨ í⨠®¯¥à 樨,
­ á ¢ ¤ ­­ë© ¬®¬¥­â ­¥ ¨­â¥à¥áã¥â: íâ® ¬®¦¥â ¡ëâì á⥪ (à §¤¥« 11.1), ªãç (à §¤¥« 7.1), å¥è-â ¡«¨æ (£« ¢ 12), ¨«¨, ­ ª®­¥æ,
¬ áᨢ ¨«¨ ­ ¡®à ¬ áᨢ®¢ (à §¤¥« 11.3).
Š ª ¬ë 㦥 £®¢®à¨«¨ (á¬. â ª¦¥ £« ¢ã 12 ® å¥è¨à®¢ ­¨¨),
ˆ¬¥­­®, ª®íää¨æ¨¥­â®¬ § ¯®«­¥­¨ï (load factor) â ¡«¨æë T ­ §®¢¥¬
ç¨á«® (T ), à ¢­®¥ ®â­®è¥­¨î ç¨á« § ¯®«­¥­­ëå ï祥ª ª à §¬¥àã
â ¡«¨æë (®¡é¥¬ã ç¨á«ã ï祥ª), ¥á«¨ §­ ¬¥­ â¥«ì ®â«¨ç¥­ ®â ­ã«ï.
„«ï ¢ë஦¤¥­­®© â ¡«¨æë (­¥ ᮤ¥à¦ 饩 ­¨ ®¤­®© ï祩ª¨) ª®íää¨æ¨¥­â § ¯®«­¥­¨ï ¬ë áç¨â ¥¬ à ¢­ë¬ ¥¤¨­¨æ¥. …᫨ ®¯à¥¤¥«¥­­ë© â ª¨¬ ®¡à §®¬ ª®íää¨æ¨¥­â § ¯®«­¥­¨ï ®£à ­¨ç¥­ á­¨§ã
¯®«®¦¨â¥«ì­ë¬ ç¨á«®¬, â® ¤®«ï ᢮¡®¤­ëå ï祥ª ¢ â ¡«¨æ¥ ®£à ­¨ç¥­ ᢥàåã ç¨á«®¬, ¬¥­ì訬 ¥¤¨­¨æë.
18.4.1  áè¨à¥­¨¥ â ¡«¨æë
„«ï ­ ç « à áᬮâਬ ¤¨­ ¬¨ç¥áªãî â ¡«¨æã, ¢ ª®â®àãî
¬®¦­® ¤®¡ ¢«ïâì § ¯¨á¨, ­¥«ì§ï 㤠«ïâì.  ¬ïâì ¤«ï â ¡«¨æë
¢ë¤¥«ï¥âáï ¢ ¢¨¤¥ ¬ áᨢ ï祥ª. ’ ¡«¨æ § ¯®«­¥­ , ª®£¤ ¢ ­¥©
­¥â ᢮¡®¤­ëå ï祥ª (¨­ë¬¨ á«®¢ ¬¨, ª®£¤ ª®íää¨æ¨¥­â § ¯®«­¥-
„¨­ ¬¨ç¥áª¨¥ â ¡«¨æë
363
­¨ï à ¢¥­ 1)1. ã¤¥¬ áç¨â âì, çâ® ­ è ®¯¥à 樮­­ ï á¨á⥬ , ª ª
¨ ¡®«ì設á⢮ ᮢ६¥­­ëå, á­ ¡¦¥­ ¯®¤á¨á⥬®© ã¯à ¢«¥­¨ï
¯ ¬ïâìî, ¯®§¢®«ïî饩 ¯à¨ ­¥®¡å®¤¨¬®á⨠¢ë¤¥«ïâì ­®¢ë¥ ¡«®ª¨
¯ ¬ï⨠¨ ®á¢®¡®¦¤ âì § ­ïâë¥. ˆ¬¥ï íâ® ¢ ¢¨¤ã, ¯à¨ ¯®¯ë⪥
¤®¡ ¢¨âì § ¯¨áì ª § ¯®«­¥­­®© â ¡«¨æ¥ ¬ë ¡ã¤¥¬ ¯à¥¤¢ à¨â¥«ì­®
à áè¨àïâì (expand) â ¡«¨æã á«¥¤ãî騬 ®¡à §®¬: ¢ë¤¥«¨¬ ¯ ¬ïâì
¯®¤ â ¡«¨æã 㢥«¨ç¥­­®£® à §¬¥à , ᪮¯¨à㥬 ¨¬¥î騥áï § ¯¨á¨
¨§ áâ ன â ¡«¨æë ¢ ­®¢ãî, ¯®á«¥ 祣® ¤®¡ ¢¨¬ § ¯¨áì 㦥 ª ­®¢®©
â ¡«¨æ¥.
Š ª ¯®ª §ë¢ ¥â ®¯ëâ, à §ã¬­® 㢥«¨ç¨¢ âì â ¡«¨æã ¢¤¢®¥ ¢ ¬®¬¥­â ¯¥à¥¯®«­¥­¨ï. …᫨ ¬ë ⮫쪮 ¤®¡ ¢«ï¥¬ § ¯¨á¨ ª â ¡«¨æ¥,
â® ¯à¨ â ª®© áâà ⥣¨¨ ª®íää¨æ¨¥­â § ¯®«­¥­¨ï ­¥ ¬®¦¥â áâ âì
¬¥­ìè¥ 1=2 (¥á«¨ ®­ ­¥ ¡ë« â ª¨¬ ¢ á ¬®¬ ­ ç «¥), â. ¥. ¯ãáâë¥
ï祩ª¨ ­¥ ¡ã¤ãâ § ­¨¬ âì ¡®«¥¥ ¯®«®¢¨­ë â ¡«¨æë.
‚®â ª ª ¢ë£«ï¤¨â «£®à¨â¬ Table-Insert, ®á­®¢ ­­ë© ­ íâ¨å
¯à¨­æ¨¯ å (table[T ] {㪠§ â¥«ì ­ ¡«®ª ¯ ¬ïâ¨, ¢ ª®â®à®¬ à §¬¥é¥­ â ¡«¨æ T , num[T ] | ª®«¨ç¥á⢮ § ¯¨á¥© ¢ â ¡«¨æ¥, size[T ] |
à §¬¥à â ¡«¨æë, â. ¥. ª®«¨ç¥á⢮ ï祥ª; ¯¥à¢®­ ç «ì­® size[T ] =
num[T ] = 0):
Table-Insert (T; x)
1 if size[T ] = 0
2
then ¢ë¤¥«¨âì ¡«®ª table[T ] á ®¤­®© ï祩ª®©
3
size[T ] 1
4 if num[T ] = size[T ]
5
then ¢ë¤¥«¨âì ¡«®ª ¯ ¬ï⨠new-table á 2 size[T ] ï祩ª ¬¨
6
᪮¯¨à®¢ âì ¢á¥ § ¯¨á¨ ¨§ table[T ] ¢ new-table
7
®á¢®¡®¤¨âì ¯ ¬ïâì, § ­ïâãî table[T ]
8
table[T ] new-table
9
size[T ] 2 size[T ]
10 § ¯¨á âì x ¢ table[T ]
11 num[T ] num[T ] + 1
à® ­ «¨§¨à㥬 ¢à¥¬ï à ¡®âë í⮣® «£®à¨â¬ . ‘®¡á⢥­­® § ¯¨áì ¢ â ¡«¨æ㠯நá室¨â ¢ ­ñ¬ ⮫쪮 ¢ áâப å 6 ¨ 10. ‘⮨¬®áâì ®¯¥à 樨 "§ ¯¨á âì í«¥¬¥­â ¢ â ¡«¨æã" ¯à¨¬¥¬ § ¥¤¨­¨æã. ã¤¥¬ áç¨â âì, çâ® ¢à¥¬ï à ¡®âë ¢á¥© ¯à®æ¥¤ãàë TableInsert ¯à®¯®à樮­ «ì­® ª®«¨ç¥áâ¢ã ®¯¥à 権 "§ ¯¨á âì ¢ â ¡«¨æã"; ⥬ á ¬ë¬ ¬ë ¯®¤à §ã¬¥¢ ¥¬, çâ® § âà âë ­ ¢ë¤¥«¥­¨¥
¯ ¬ï⨠¯®¤ â ¡«¨æã á ®¤­®© ï祩ª®© (áâப 2) | ¢¥«¨ç¨­ ®£à ­¨ç¥­­ ï, ¨ çâ® § âà âë ­ ¢ë¤¥«¥­¨¥ ¨ ®á¢®¡®¦¤¥­¨¥ ¯ ¬ï⨠¢
áâப å 5 ¨ 7 | ¢¥«¨ç¨­ ­¥ ¡®«ì襣® ¯®à浪 , 祬 § âà âë ­ 1 ‚ ­¥ª®â®àëå ¯à¨«®¦¥­¨ïå (­ ¯à¨¬¥à, ¢ å¥è-â ¡«¨æ å á ®âªàë⮩ ¤à¥á 樥©) à §ã¬­® áç¨â âì â ¡«¨æã § ¯®«­¥­­®© 㦥 ¢ â®â ¬®¬¥­â, ª®£¤ ª®íää¨æ¨¥­â § ¯®«­¥­¨ï
¯à¥¢ëè ¥â ­¥ª®â®àãî ª®­áâ ­âã, ¬¥­ìèãî ¥¤¨­¨æë (á¬. ã¯à. 18-4.2).
364
ƒ« ¢ 18 €¬®à⨧ 樮­­ë© ­ «¨§
¯¥à¥¯¨áë¢ ­¨¥ ¨§ ®¤­®© â ¡«¨æë ¢ ¤àã£ãî (áâப 6).
ãáâì ⥯¥àì ¬ë ¯à¨¬¥­¨«¨ n ®¯¥à 権 Table-Insert ª â ¡«¨æ¥, ­¥ ᮤ¥à¦ 饩 ¯¥à¢®­ ç «ì­® ­¨ ®¤­®© ï祩ª¨. Š ª®¢ á⮨¬®áâì i-© ®¯¥à 樨, ¯®á«¥ ª®â®à®© ¢ â ¡«¨æ¥ ¡ã¤¥â i í«¥¬¥­â®¢?
Ž¡®§­ 稬 íâã á⮨¬®áâì ç¥à¥§ ci. …᫨ ¢ â ¡«¨æ¥ ¥áâì ¬¥áâ® (¨«¨
¥á«¨ i = 1), â® ci = 1 (¬ë § ¯¨áë¢ ¥¬ ­®¢ë© í«¥¬¥­â ¢ â ¡«¨æã ®¤¨­
à § ¢ áâப¥ 10. …᫨ ¦¥ ¬¥áâ ¢ â ¡«¨æ¥ ­¥â ¨ ¤®¡ ¢«¥­¨¥ § ¯¨á¨
ª â ¡«¨æ¥ ᮯ஢®¦¤ ¥âáï à áè¨à¥­¨¥¬ â ¡«¨æë, â® ci = i: ®¤­ ¥¤¨­¨æ á⮨¬®á⨠¨¤¥â ­ § ¯¨áì ­®¢®£® í«¥¬¥­â ¢ à áè¨à¥­­ãî
â ¡«¨æã (áâப 10), ¨ ¥éñ i ; 1 ¥¤¨­¨æ ¯®©¤¥â ­ ª®¯¨à®¢ ­¨¥
áâ ன â ¡«¨æë ¢ ­®¢ãî (áâப 6). ‘â «® ¡ëâì, ci 6 n ¯à¨ ¢á¥å i,
¨ £àã¡ ï ®æ¥­ª á⮨¬®á⨠n ®¯¥à 権 Table-Insert ¥áâì O(n2).
Œ®¦­®, ®¤­ ª®, íâ㠮業ªã ã«ãçè¨âì, ¥á«¨ ¯à®á«¥¤¨âì, ᪮«ì ç áâ®
¯à®¨á室¨â à áè¨à¥­¨¥ â ¡«¨æë. ‚ á ¬®¬ ¤¥«¥, à áè¨à¥­¨¥ ¯à®¨á室¨â ⮫쪮 ¢ ⮬ á«ãç ¥, ª®£¤ i ; 1 ï¥âáï á⥯¥­ìî ¤¢®©ª¨,
â ª çâ®
bX
lg nc
n
X
ci 6 n +
2j < n + 2n = 3n:
i=1
j =0
‘â «® ¡ëâì, á⮨¬®áâì n ®¯¥à 権 Table-Insert ­¥ ¯à¥¢®á室¨â 3n, ¨ ãçñâ­ãî á⮨¬®áâì ª ¦¤®© â ª®© ®¯¥à 樨 ¬®¦­® áç¨â âì à ¢­®© 3.
®­ïâì, ®âªã¤ ¡¥à¥âáï ª®íää¨æ¨¥­â 3, ¬®¦­® á ¯®¬®éìî ¬¥â®¤ ¯à¥¤®¯« âë. ˆ¬¥­­®, ¯à¨ ¢ë¯®«­¥­¨¨ ª ¦¤®© ®¯¥à 樨 TableInsert(T; x) ¡ã¤¥¬ ¢­®á¨âì ¯® 3 ¤®«« à , ¯à¨ í⮬ ®¤¨­ ¤®«« à ­¥¬¥¤«¥­­® ¨§à á室㥬 ­ ®¯« âã ®¯¥à 樨 "§ ¯¨á âì x ¢ table[T ]" ¢
áâப¥ 10, ¥éñ ®¤¨­ ¤®«« à ¯à¨ªà¥¯¨¬ ª í«¥¬¥­âã x, ®á⠢訩áï
®â¤ ¤¨¬ ®¤­®¬ã ¨§ í«¥¬¥­â®¢, 㦥 § ¯¨á ­­ëå ¢ â ¡«¨æã (¨§ â¥å,
çâ® ¥éñ ­¥ ¯®«ã稫¨ ᢮¥£® ¤®«« à ) â¨¬¨ ¤®«« à ¬¨ ¡ã¤¥â ®¯« 稢 âìáï ¯¥à¥­®á § ¯¨á¥© ¨§ áâ ன â ¡«¨æë ¢ à áè¨à¥­­ãî. à¨
í⮬ ¢á直© à §, ª®£¤ â ¡«¨æã ­¥®¡å®¤¨¬® à áè¨àïâì, ª ¦¤ë© ¨§
¥ñ í«¥¬¥­â®¢ ¡ã¤¥â ¨¬¥âì ¯® ¤®«« àã. ‚ á ¬®¬ ¤¥«¥, ¯ãáâì ¯à¨ ¯à¥¤ë¤ã饬 à áè¨à¥­¨¨ â ¡«¨æ ¨¬¥« à §¬¥à m ¨ ¡ë« à áè¨à¥­ ¤® 2m. ‘ â¥å ¯®à ¬ë ¤®¡ ¢¨«¨ m í«¥¬¥­â®¢, ¯à¨ í⮬ ¨ ¤®¡ ¢«¥­­ë¥
í«¥¬¥­âë, ¨ ª ¦¤ë© ¨§ m áâ àëå í«¥¬¥­â®¢ ¯®«ã稫¨ ¯® ¤®«« àã.
’ ª¨¬ ®¡à §®¬, á«¥¤ãî饥 à áè¨à¥­¨¥ â ¡«¨æë 㦥 ®¯« 祭®.
Œ®¦­® ¯à® ­ «¨§¨à®¢ âì «£®à¨â¬ Table-Insert ¨ á ¯®¬®éìî
¬¥â®¤ ¯®â¥­æ¨ «®¢. —⮡ë í⮠ᤥ« âì, ­ ¤® ¯à¨¤ã¬ âì â ªãî ¯®â¥­æ¨ «ì­ãî äã­ªæ¨î, ª®â®à ï à ¢­ ­ã«î áà §ã ¯®á«¥ à áè¨à¥­¨ï â ¡«¨æë ¨ ­ à á⠥⠯® ¬¥à¥ à áè¨à¥­¨ï â ¡«¨æë (áâ ­®¢ïáì
à ¢­®© à §¬¥àã â ¡«¨æë ¢ â®â ¬®¬¥­â, ª®£¤ ᢮¡®¤­ëå ï祥ª ­¥
®áâ ñâáï). â¨¬ ãá«®¢¨ï¬ 㤮¢«¥â¢®àï¥â, ­ ¯à¨¬¥à, äã­ªæ¨ï
(T ) = 2 num[T ] ; size[T ]:
(18.4)
 ç «ì­®¥ §­ 祭¨¥ ¯®â¥­æ¨ « à ¢­® ­ã«î, ¨ ¯®áª®«ìªã ¢ «î¡®©
¬®¬¥­â ­¥ ¬¥­¥¥ ¯®«®¢¨­ë â ¡«¨æë § ¯®«­¥­®, §­ 祭¨¥ (T ) ¢á¥-
„¨­ ¬¨ç¥áª¨¥ â ¡«¨æë
365
¨áã­®ª 18.3  §¬¥à â ¡«¨æë (sizei ), ç¨á«® § ¯¨á¥© (numi ) ¨ ¯®â¥­æ¨ « (i =
2 numi ; sizei ) ª ª äã­ªæ¨ï ®â ç¨á« ®¯¥à 権 Table-Insert, ®¡®§­ 祭­®£® ¡ãª¢®© i. ƒà 䨪 num | ᯫ®è­ ï â®­ª ï «¨­¨ï, £à 䨪 size | ᯫ®è­ ï ¦¨à­ ï
«¨­¨ï, £à 䨪 | ¯ã­ªâ¨à. ¥¯®á।á⢥­­® ¯¥à¥¤ à áè¨à¥­¨¥¬ â ¡«¨æë ¢®§à á⠥⠤® numi , çâ®¡ë ®¯« â¨âì íâ® à áè¨à¥­¨¥. ‘à §ã ¯®á«¥ à áè¨à¥­¨ï
¯®â¥­æ¨ « ¯ ¤ ¥â ¤® ­ã«ï, ­® âãâ ¦¥ ¨ ¢®§à á⠥⠤® 2 (§ áç¥â ¤®¡ ¢«¥­¨ï
§ ¯¨á¨ ¯®á«¥ à áè¨à¥­¨ï).
£¤ ­¥®âà¨æ ⥫쭮. ‘â «® ¡ëâì, á㬬 ãçñâ­ëå á⮨¬®á⥩ ®¯¥à 権 Table-Insert (®¯à¥¤¥«ñ­­ëå ¯® ¬¥â®¤ã ¯®â¥­æ¨ «®¢ ª ª ä ªâ¨ç¥áª ï á⮨¬®áâì ¯«îá ¨§¬¥­¥­¨¥ ¯®â¥­æ¨ « ) ®æ¥­¨¢ ¥â ᢥàåã
á㬬 à­ãî ä ªâ¨ç¥áªãî á⮨¬®áâì.
 ©¤¥¬ ãçñâ­ë¥ á⮨¬®áâ¨. „«ï í⮣® ®¡®§­ 稬 ç¥à¥§ sizei,
numi ¨ i à §¬¥à, ª®«¨ç¥á⢮ § ¯¨á¥© ¨ ¯®â¥­æ¨ « â ¡«¨æë ¯®á«¥
i-© ®¯¥à 樨 Table-Insert. …᫨ íâ ®¯¥à æ¨ï ­¥ ᮯ஢®¦¤ « áì
à áè¨à¥­¨¥¬ â ¡«¨æë, â® sizei = sizei;1, numi = numi;1 +1 ¨ ci = 1,
®âªã¤ ci = ci + i ; i;1 = 3:
b
…᫨ ¦¥ i-ï ®¯¥à 樨 Table-Insert ᮯ஢®¦¤ « áì à áè¨à¥­¨¥¬
â ¡«¨æë, â® sizei=2 = sizei;1 = numi;1 ¨ ci = numi, ®âªã¤ ®¯ïâìâ ª¨
ci = ci + i ; i;1 =
b
= numi + (2numi ; sizei ) ; (2numi;1 ; sizei;1 ) =
= numi + (2numi ; (2numi ; 2)) ; (2(numi ; 1) ; (numi ; 1)) =
= numi + 2 ; (numi ; 1) = 3:
 à¨á. 18.3 ¨§®¡à ¦¥­ § ¢¨á¨¬®áâì ¢¥«¨ç¨­ numi, sizei ¨ i ®â i.
Ž¡à â¨â¥ ¢­¨¬ ­¨¥, ª ª ­ ª ¯«¨¢ ¥âáï ¯®â¥­æ¨ « ª ¬®¬¥­âã à áè¨à¥­¨ï â ¡«¨æë.
366
ƒ« ¢ 18 €¬®à⨧ 樮­­ë© ­ «¨§
18.4.2  áè¨à¥­¨¥ ¨ ᮪à 饭¨¥ â ¡«¨æë
’¥¯¥àì § ©¬¥¬áï ®¯¥à 樥© Table-Delete (㤠«¨âì ¨§ â ¡«¨æë). ®¬¨¬® 㤠«¥­¨ï ­¥­ã¦­®© § ¯¨á¨ ¨§ â ¡«¨æë, ¦¥« ⥫쭮 ᮪à â¨âì (contract) â ¡«¨æã, ª ª ⮫쪮 ª®íää¨æ¨¥­â
§ ¯®«­¥­¨ï áâ ­¥â ᫨誮¬ ­¨§®ª. Ž¡é ï áâà ⥣¨ï âãâ â ¦¥,
çâ® ¨ ¯à¨ à áè¨à¥­¨¨ â ¡«¨æë: ª ª ⮫쪮 ç¨á«® § ¯¨á¥© ¯ ¤ ¥â ­¨¦¥ ­¥ª®â®à®£® ¯à¥¤¥« , ¬ë ¢ë¤¥«ï¥¬ ¯ ¬ïâì ¯®¤ ­®¢ãî
â ¡«¨æã ¬¥­ì襣® à §¬¥à , ª®¯¨à㥬 ¢ ¬¥­ìèãî â ¡«¨æë ¢á¥
§ ¯¨á¨ ¨§ ¡®«ì襩, ¯®á«¥ 祣® ¢®§¢à é ¥¬ ®¯¥à 樮­­®© á¨á⥬¥
¯ ¬ïâì, § ­¨¬ ¢èãîáï áâ ன â ¡«¨æ¥©. Œë ¯®áâந¬ «£®à¨â¬
Table-Delete á® á«¥¤ãî騬¨ ᢮©á⢠¬¨:
ª®íää¨æ¨¥­â § ¯®«­¥­¨ï ®£à ­¨ç¥­ á­¨§ã ¯®«®¦¨â¥«ì­®© ª®­á⠭⮩,
ãçñâ­ ï á⮨¬®áâì ®¯¥à 権 Table-Insert ¨ Table-Delete ¥áâì
O(1).
à¨ í⮬ ¬ë ¯®-¯à¥¦­¥¬ã ¡ã¤¥¬ áç¨â âì, çâ® á⮨¬®áâì «£®à¨â¬ ®¯à¥¤¥«ï¥âáï ª®«¨ç¥á⢮¬ ®¯¥à 権 "§ ¯¨á âì ¢ â ¡«¨æã"
(áâப¨ 6 ¨ 10 «£®à¨â¬ Table-Insert) ¨ ¯à®â¨¢®¯®«®¦­ëå ¥©
®¯¥à 権 "ã¡à âì ¨§ â ¡«¨æë"; á⮨¬®áâì ª ¦¤®© ¨§ íâ¨å í«¥¬¥­â à­ëå ®¯¥à 権 ¯à¨¬¥¬ § ¥¤¨­¨æã.
¥à¢®¥, çâ® ¯à¨å®¤¨â ¢ £®«®¢ã, | 㤢 ¨¢ âì à §¬¥à â ¡«¨æë ¢á直© à §, ª®£¤ ­ ¤® ¤®¡ ¢¨âì § ¯¨áì ª § ¯®«­¥­­®© â ¡«¨æ¥, ¨ ᮪à é âì à §¬¥à â ¡«¨æë ¢¤¢®¥ ¢á直© à §, ª®£¤ ¢ १ã«ìâ ⥠㤠«¥­¨ï § ¯¨á¨ ª®íää¨æ¨¥­â § ¯®«­¥­¨ï ¯ ¤ ¥â ­¨¦¥ 1=2. à¨ â ª®©
áâà ⥣¨¨ ª®íää¨æ¨¥­â § ¯®«­¥­¨ï ­¨ª®£¤ ­¥ ®¯ãáâ¨âáï ­¨¦¥ 1=2,
­®, ª ᮦ «¥­¨î, á⮨¬®á⨠®¯¥à 権 ®ª §ë¢ îâáï ᫨誮¬ ¢¥«¨ª¨. ‚ á ¬®¬ ¤¥«¥, ¯ãáâì n | ­ âãà «ì­®¥ ç¨á«®, ïî饥áï
á⥯¥­ìî ¤¢®©ª¨. à¥¤¯®«®¦¨¬, çâ® á­ ç « ¬ë ¤®¡ ¢¨«¨ ª ¯ãá⮩
(­¥ ᮤ¥à¦ 饩 ï祥ª) â ¡«¨æ¥ n=2+1 § ¯¨á¥©, § ⥬ ¯à®¢¥«¨ ¥éñ
n=2 ; 1 ®¯¥à æ¨î ¢ â ª®© ¯®á«¥¤®¢ ⥫쭮áâ¨: ¤¢ 㤠«¥­¨ï, § ⥬
¤¢ ¤®¡ ¢«¥­¨ï, § ⥬ ®¯ïâì ¤¢ 㤠«¥­¨ï, ®¯ïâì ¤¢ ¤®¡ ¢«¥­¨ï,
¨ â. ¤. ®á«¥ n=2+1 ¤®¡ ¢«¥­¨© à §¬¥à â ¡«¨æë áâ ­¥â à ¢­ë¬ n (¨
§ ¯®«­¥­® ¡ã¤¥â çãâì ¡®«ìè¥ ¯®«®¢¨­ë ï祥ª); ¯®á«¥ ¤¢ãå 㤠«¥­¨©
¥£® ¯à¨¤¥âáï ᮪à â¨âì ¤® n=2; ¯®á«¥ á«¥¤ãîé¨å ¤¢ãå ¤®¡ ¢«¥­¨©
à §¬¥à ®¯ïâì ¢®§à áâ¥â ¤® n, ¯®á«¥ ¤¢ãå 㤠«¥­¨© | ᮪à â¨âáï
¤® n=2, ¨ â. ¤. ‘⮨¬®áâì ª ¦¤®£® ᮪à 饭¨ï ¨ à áè¨à¥­¨ï ¥áâì
(n), ¨ ª®«¨ç¥á⢮ ᮪à 饭¨© ¨ à áè¨à¥­¨© â ª¦¥ ¥áâì (n),
â ª çâ® á⮨¬®áâì n ®¯¥à 権 ¥áâì (n2), á।­ïï á⮨¬®áâì ¢
à áçñ⥠­ ®¤­ã ®¯¥à æ¨î ®ª §ë¢ ¥âáï à ¢­®© (n).
à¨ç¨­ ­¥ã¤ ç¨ ¯®­ïâ­ : ¨áâà ⨢ ¢¥áì १¥à¢ ­ ®¯« âã à áè¨à¥­¨ï â ¡«¨æë, ¬ë âãâ ¦¥ ¢ë­ã¦¤¥­ë ¥¥ ᮪à é âì, ­¥ ãᯥ¢
­ ª®¯¨âì á।á⢠­ ®¯« âã ¡ã¤ã饣® ᮪à 饭¨ï. ’ ¦¥ ¨áâ®à¨ï ¨ á à áè¨à¥­¨¥¬ â ¡«¨æë: ¬ë ¢ë­ã¦¤¥­ë ¯à¥¤¯à¨­¨¬ âì ¥£®
áà §ã ¯®á«¥ ᮪à 饭¨ï, ­¥ ãᯥ¢ ­ ª®¯¨âì á।á⢠§ áç¥â ¤®¡ -
„¨­ ¬¨ç¥áª¨¥ â ¡«¨æë
367
¢«¥­¨ï § ¯¨á¥© ¢ â ¡«¨æã ¯®áâ®ï­­®£® à §¬¥à .
„¥« ¯®©¤ãâ «ãçè¥, ¥á«¨ ¬ë à §à¥è¨¬ ª®íää¨æ¨¥­âã § ¯®«­¥­¨ï ®¯ã᪠âìáï ­¨¦¥ 1=2 [¢¢¥¤ï £¨áâ¥à¥§¨á ¢ ­ è «£®à¨â¬, ª ª
᪠§ «¨ ¡ë 䨧¨ª¨]. ˆ¬¥­­®, ¬ë ¯®-¯à¥¦­¥¬ã 㤢 ¨¢ ¥¬ à §¬¥à
â ¡«¨æë ¯à¨ ¯®¯ë⪥ ¤®¡ ¢¨âì § ¯¨áì ª § ¯®«­¥­­®© â ¡«¨æ¥, ¢®â ᮪à 饭¨¥ â ¡«¨æë ¢¤¢®¥ ¬ë ¯à¥¤¯à¨­¨¬ ¥¬ ⮫쪮 ⮣¤ ,
ª®£¤ ª®íää¨æ¨¥­â § ¯®«­¥­¨ï ¯ ¤ ¥â ­¨¦¥ 1=4. ’ ª¨¬ ®¡à §®¬,
ª®íää¨æ¨¥­â § ¯®«­¥­¨ï ¢á¥£¤ ¡ã¤¥â ¡®«ìè¥ ¨«¨ à ¢¥­ 1=4. „à㣨¬¨ á«®¢ ¬¨, ¬ë áç¨â ¥¬ 50% ®¯â¨¬ «ì­ë¬ ª®íää¨æ¨¥­â®¬ § ¯®«­¥­¨ï â ¡«¨æë, ¨ ¢®§¢à é ¥¬áï ª â ª®© á¨âã 樨, ª ª ⮫쪮
ª®íää¨æ¨¥­â § ¯®«­¥­¨ï ®âª«®­¨âáï ®â ®¯â¨¬ «ì­®£® ¢ ¤¢ à § (¢ «î¡ãî áâ®à®­ã).
Œë ­¥ ¡ã¤¥¬ ¢ë¯¨áë¢ âì ¯á¥¢¤®ª®¤ ¤«ï «£®à¨â¬ TableDelete | ®­ ­ «®£¨ç¥­ ª®¤ã ¤«ï Table-Insert. Žâ¬¥â¨¬ ⮫쪮,
çâ® ¯à¨ 㤠«¥­¨¨ ¨§ â ¡«¨æë ¯®á«¥¤­¥© § ¯¨á¨ à §ã¬­® ¯®«­®áâìî
®á¢®¡®¦¤ âì ¯ ¬ïâì, § ­¨¬ ¥¬ãî ï祩ª ¬¨ â ¡«¨æë. ¨¦¥ ¬ë ¡ã¤¥¬ áç¨â âì, çâ® ¢ «£®à¨â¬¥ Table-Delete íâ® ¯à¥¤ãᬮâ७®,
¨­ë¬¨ á«®¢ ¬¨, çâ® size[T ] = 0, ª ª ⮫쪮 num[T ] = 0.
„«ï ®æ¥­ª¨ á⮨¬®á⨠¯®á«¥¤®¢ ⥫쭮á⨠¨§ n ®¯¥à 権 TableInsert ¨ Table-Delete, ¯à¨¬¥­¥­­ëå ª ¯ãá⮩ â ¡«¨æ¥, ¬ë ¢®á¯®«ì§ã¥¬áï ¬¥â®¤®¬ ¯®â¥­æ¨ «®¢. ®â¥­æ¨ «ì­ ï äã­ªæ¨ï ¡ã¤¥â
à ¢­ ­ã«î, ª®£¤ ª®íää¨æ¨¥­â § ¯®«­¥­¨ï ®¯â¨¬ «¥­ (à ¢¥­ 1=2)
| â ª ¡ã¤¥â áà §ã ¯®á«¥ ᮪à 饭¨ï ¨«¨ à áè¨à¥­¨ï. ®â¥­æ¨ «
¢®§à á⠥⠯® ¬¥à¥ ⮣®, ª ª ª®íää¨æ¨¥­â § ¯®«­¥­¨ï ¯à¨¡«¨¦ ¥âáï ª 1 ¨«¨ 1=4.  ¯®¬­¨¬, çâ® ª®íää¨æ¨¥­â § ¯®«­¥­¨ï (T )
à ¢¥­ num[T ]=size[T ], ¥á«¨ size[T ] =
6 0, ¨ à ¢¥­ 1, ¥á«¨ size[T ] (¨ ⥬
á ¬ë¬ num[T ]) à ¢­® ­ã«î.  訬 âॡ®¢ ­¨ï¬ 㤮¢«¥â¢®àï¥â â ª ï ¯®â¥­æ¨ «ì­ ï äã­ªæ¨ï:
(T ) =
(
2 num[T ] ; size[T ]; ¥á«¨ [T ] 6 1=2;
size[T ]=2 ; num[T ]; ¥á«¨ [T ] > 1=2:
(18.5)
‡ ¬¥â¨¬, çâ® (T ) = 0 ¯à¨ (T ) = 1=2 (¯® «î¡®© ¨§ ¤¢ãå ä®à¬ã«),
çâ® ¯®â¥­æ¨ « ¯ãá⮩ â ¡«¨æë à ¢¥­ ­ã«î ¨ çâ® ¯®â¥­æ¨ « ¢á¥£¤ ­¥®âà¨æ ⥫¥­. …᫨ ª®íää¨æ¨¥­â § ¯®«­¥­¨ï à ¢¥­ 1 ¨«¨ 1=4, â®
[T ] = num[T ], â ª çâ® ­ ª®¯«¥­­®£® ¯®â¥­æ¨ « ¤®áâ â®ç­® ¤«ï
®¯« âë à áè¨à¥­¨ï ¨«¨ ᮪à 饭¨ï â ¡«¨æë.  à¨á. 18.4 ¨§®¡à ¦¥­®, ª ª ¬¥­ï¥âáï ¯®â¥­æ¨ « ¢ ¯à®æ¥áᥠ¢ë¯®«­¥­¨ï ¯®á«¥¤®¢ ⥫쭮á⨠®¯¥à 権 Table-Insert ¨ Table-Delete.
 ©¤¥¬ ãçñâ­ë¥ á⮨¬®á⨠®¯¥à 権 ¯à¨ â ª®¬ ¯®â¥­æ¨ «¥ .
…᫨ ®¯¥à æ¨ï Table-Insert ¨«¨ Table-Delete ­¥ ᮯ஢®¦¤ ¥âáï à áè¨à¥­¨¥¬ ¨«¨ ᮪à 饭¨¥¬ â ¡«¨æë, â® ¨§¬¥­¥­¨¥ ¯®â¥­æ¨ « ­¥ ¯à¥¢®á室¨â 2 (size ­¥ ¬¥­ï¥âáï, num ¬¥­ï¥âáï ­ 1), â ª
çâ® ãçñâ­ ï á⮨¬®áâì ­¥ ¯à¥¢®á室¨â 3. ‚ á«ãç ¥ à áè¨à¥­¨ï ¨«¨
ᦠâ¨ï â ¡«¨æë ãçñâ­ ï á⮨¬®áâì ®ª §ë¢ ¥âáï à ¢­®© 1, â ª ª ª
¨§¬¥­¥­¨ï ¢ ¯®â¥­æ¨ «¥ ª®¬¯¥­á¨àãîâ § âà âë ­ ª®¯¨à®¢ ­¨¥.
368
ƒ« ¢ 18 €¬®à⨧ 樮­­ë© ­ «¨§
¨áã­®ª 18.4  §¬¥à â ¡«¨æë
(sizei ), ç¨á«® § ¯¨á¥© (numi ) ¨ ¯®â¥­æ¨ «
(
2
num
i ; sizei ; ¥á«¨ i > 1=2;
i =
sizei =2 ; numi ; ¥á«¨ i < 1=2;
ª ª äã­ªæ¨ï ®â ç¨á« ®¯¥à 権 Table-Insert ¨ Table-Delete, ®¡®§­ 祭­®£®
¡ãª¢®© i. ƒà 䨪 num | ᯫ®è­ ï â®­ª ï «¨­¨ï, £à 䨪 size | ᯫ®è­ ï ¦¨à­ ï «¨­¨ï, £à 䨪 | ¯ã­ªâ¨à. ¥¯®á।á⢥­­® ¯¥à¥¤ à áè¨à¥­¨¥¬ ¨«¨ ᮪à 饭¨¥¬ â ¡«¨æë ¯®â¥­æ¨ « à ¢¥­ ª®«¨ç¥áâ¢ã § ¯¨á¥©.
‚ ®¡é¥¬ ¨ 楫®¬, ãçñâ­ ï á⮨¬®áâì ª ¦¤®© ¨§ ®¯¥à 権
¥áâì O(1), â ª çâ® ä ªâ¨ç¥áª ï á⮨¬®áâì ¯®á«¥¤®¢ ⥫쭮á⨠¨§
n ®¯¥à 権 ¥áâì O(n).
“¯à ¦­¥­¨ï
Ž¡êïá­¨â¥, ¯®ç¥¬ã ¤«ï á«ãç ï i;1 < i 6 1=2 ãçñâ­ ï
á⮨¬®áâì ®¯¥à 樨 Table-Insert à ¢­ ­ã«î.
18.4-2 ®ç¥¬ã ¤¨­ ¬¨ç¥áªãî å¥è-â ¡«¨æã á ®âªàë⮩ ¤à¥á 樥© à §ã¬­® áç¨â âì § ¯®«­¥­­®© (¨ à áè¨àïâì) ¥éñ ¤® ⮣®, ª ª
ª®íää¨æ¨¥­â § ¯®«­¥­¨ï áâ ­¥â à ¢­ë¬ ¥¤¨­¨æ¥? Š ª § ¯à®£à ¬¬¨à®¢ âì ¤®¡ ¢«¥­¨¥ § ¯¨á¨ ¢ â ªãî â ¡«¨æã, çâ®¡ë ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ãçñâ­®© á⮨¬®á⨠¤®¡ ¢«¥­¨ï ¡ë« O(1)? ®ç¥¬ã
­¥«ì§ï £ à ­â¨à®¢ âì, çâ® ¬ ⥬ â¨ç¥áª®¥ ®¦¨¤ ­¨¥ ॠ«ì­®© á⮨¬®á⨠ª ¦¤®£® ¤®¡ ¢«¥­¨ï ¡ã¤¥â O(1)?
18.4-3 „®ª ¦¨â¥, çâ® ãçñâ­ ï á⮨¬®áâì (®â­®á¨â¥«ì­® ¯®â¥­æ¨ « (18.5)) ®¯¥à 樨 Table-Delete, ¯à¨¬¥­¥­­®© ª ¤¨­ ¬¨ç¥áª®©
â ¡«¨æ¥ á ª®íää¨æ¨¥­â®¬ § ¯®«­¥­¨ï > 1=2, ­¥ ¯à¥¢®á室¨â ­¥ª®â®à®© ª®­áâ ­âë.
18.4-4  áᬮâਬ â ªãî ॠ«¨§ æ¨î ®¯¥à 樨 Table-Delete:
¥á«¨ ¢ १ã«ìâ ⥠㤠«¥­¨ï í«¥¬¥­â ª®íää¨æ¨¥­â § ¯®«­¥­¨ï ¯ 18.4-1
‡ ¤ ç¨ ª £« ¢¥ 18
369
¤ ¥â ­¨¦¥ 1=3, â® ¬ë ᮪à é ¥¬ â ¡«¨æã ­ âà¥âì ¥ñ à §¬¥à .
®«ì§ãïáì ¯®â¥­æ¨ «®¬
(T ) = j2 num[T ] ; size[T ]j;
¯®ª ¦¨â¥, çâ® ¯à¨ í⮬ ãçñâ­ ï á⮨¬®áâì ®¯¥à 樨 TableDelete ®£à ­¨ç¥­ .
‡ ¤ ç¨
18-1 „¢®¨ç­ë© áç¥â稪 á ®¡à â­ë¬ ¯®à浪®¬ ¡¨â®¢
‚ £« ¢¥ 32 ¬ë à á᪠¦¥¬ ® ¢ ¦­®¬ «£®à¨â¬¥, ­ §ë¢ ¥¬®¬ ¡ëáâàë¬ ¯à¥®¡à §®¢ ­¨¥¬ ”ãàì¥. â®â «£®à¨â¬ ­ 稭 ¥âáï á ®¡à 饭¨ï ¡¨â®¢ ¨­¤¥ªá (bit-reversal permutation) ã ¬ áᨢ A[0 : :n ; 1],
£¤¥ n = 2k (k | ­ âãà «ì­®¥ ç¨á«®). ˆ¬¥­­®, ª ¦¤®¥ A[a] § ¬¥­ï¥âáï ­ A[revk (a)], £¤¥ revk (a) ¯®«ãç ¥âáï, ¥á«¨ ¯à¥¤áâ ¢¨âì ç¨á«® a
¢ ¢¨¤¥ ¯®á«¥¤®¢ ⥫쭮á⨠k ¡¨â®¢, § ⥬ P
­ ¯¨á âì
í⨠¡¨âë ¢
;1 a 2i , â®
®¡à â­®¬ ¯®à浪¥. ˆ­ë¬¨ á«®¢ ¬¨, ¥á«¨ a = ki=0
i
revk (a) =
k;1
X
i=0
ak;i;1 2i:
à¨¬¥à: rev4(3) = 12, ¯®áª®«ìªã 3 ¢ ¤¢®¨ç­®© § ¯¨á¨ ¥áâì 0011, 1100 | ¤¢®¨ç­ ï § ¯¨áì ç¨á« 12.
. ‹¥£ª® ¢ëç¨á«¨âì revk (a) § ¢à¥¬ï (k). Š ª ¯à®¨§¢¥á⨠®¯¥à æ¨î
®¡à 饭¨ï ¡¨â®¢ ¨­¤¥ªá ¢ ¬ áᨢ¥ ¤«¨­®© n = 2k § ¢à¥¬ï O(nk)?
—â®¡ë ¢ë¯®«­ïâì ®¡à 饭¨¥ ¡¨â®¢ ¨­¤¥ªá ¡ëáâ॥, ¬®¦­® ¯à¨¬¥­¨âì ¬®à⨧ 樮­­ë© ­ «¨§ ª ¯à®æ¥¤ãॠ¯à¨¡ ¢«¥­¨ï ¥¤¨­¨æë
­ ®¡®à®â, ª®â®à ï ¤ ñâ revk (a + 1) ¯® ¤ ­­®¬ã revk (a). ‚뤥«¨¬
¬ áᨢ ¡¨â®¢ ¤«¨­®© k ¤«ï åà ­¥­¨ï áç¥â稪 á ®¡à éñ­­ë¬ ¯®à浪®¬ ¡¨â®¢.  ¬ ­ã¦­® à §à ¡®â âì ¯à®æ¥¤ãàã Bit-ReversedIncrement, ¯¥à¥¢®¤ïéãî revk (a) ¢ revk (a) + 1. …᫨, ­ ¯à¨¬¥à,
k = 4 ¨ ¯¥à¢®­ ç «ì­® ¢ áç¥â稪¥ á ®¡à éñ­­ë¬ ¯®à浪®¬ ¡¨â®¢
¡ë«® § ¯¨á ­® 0000, â® ¢ १ã«ìâ ⥠¯®á«¥¤®¢ ⥫ì­ëå ¢ë§®¢®¢ ¯à®æ¥¤ãàë Bit-Reversed-Increment §­ 祭¨ï áçñâ稪 ¡ã¤ãâ à ¢­ë
0000; 1000; 0100; 1100; 0010; 1010; : : : = 0; 8; 4; 12; 2; 10; : : : :
¡. ãáâì ª®¬¯ìîâ¥à 㬥¥â § ¥¤¨­¨ç­®¥ ¢à¥¬ï ¯à®¢®¤¨âì á k¡¨â­ë¬¨ á«®¢ ¬¨ â ª¨¥ ®¯¥à 樨, ª ª ᤢ¨£ ­ ¯à®¨§¢®«ì­®¥ ª®«¨ç¥á⢮ ¡¨â®¢, «®£¨ç¥áª¨¥ ˆ ¨ ˆ‹ˆ ¨ â. ¤. Š ª ­ã¦­® ॠ«¨§®¢ âì ¯à®æ¥¤ãàã Bit-Reversed-Increment, çâ®¡ë ®¡à 饭¨¥ ¡¨â®¢ ¨­¤¥ªá ã ¬ áᨢ ¤«¨­®© n = 2k § ­¨¬ «® O(n) ¢à¥¬¥­¨?
¢. ãáâì § ¥¤¨­¨ç­®¥ ¢à¥¬ï k-¡¨â­®¥ á«®¢® ¬®¦­® ᤢ¨­ãâì «¨èì
­ ®¤¨­ ¡¨â. Œ®¦­® «¨ ¢ í⮬ á«ãç ¥ ¯à®¢¥á⨠®¡à 饭¨¥ ¡¨â®¢
¨­¤¥ªá § ¢à¥¬ï O(n)?
370
ƒ« ¢ 18 €¬®à⨧ 樮­­ë© ­ «¨§
18-2 „¨­ ¬¨ç¥áª¨© ¤¢®¨ç­ë© ¯®¨áª
—⮡ë ᮪à â¨âì ¢à¥¬ï ­ ¤®¡ ¢«¥­¨¥ í«¥¬¥­â ª ®âá®àâ¨à®¢ ­­®¬ã ¬ áᨢã, ¬®¦­® ¯®áâ㯨âì â ª.  á¯à¥¤¥«¨¬ í«¥¬¥­âë
®âá®àâ¨à®¢ ­­®£® ¬ áᨢ ¤«¨­ë n ¯® k = dlog2 ne ¬ áᨢ ¬
A0; A1; : : :; Ak á«¥¤ãî騬 ®¡à §®¬: ¥á«¨ hnPk;1 ; nk;2 ; : : :; n0i | ¤¢®;1 n 2i ), â® ¬ áᨢ A
Žç¥­ì ¯ã- ¨ç­®¥ ¯à¥¤áâ ¢«¥­¨¥ ç¨á« n (â. ¥. n = ki=0
i
i
â ­®!
¯ãáâ, ¥á«¨ ni = 0, ¨ ᮤ¥à¦¨â 2i í«¥¬¥­â®¢, ¥á«¨ ni = 1; ¢ í⮬
¯®á«¥¤­¥¬ á«ãç ¥ ¬ áᨢ Ai ®âá®àâ¨à®¢ ­.  à á¯à¥¤¥«¥­¨¥ n í«¥¬¥­â®¢ ¯® ¬ áᨢ ¬ A0; : : :; An ­¨ª ª¨å ãá«®¢¨© ­¥ ­ ª« ¤ë¢ ¥âáï.
. ¥ «¨§ã©â¥ ¤«ï í⮩ áâàãªâãàë ¤ ­­ëå ®¯¥à æ¨î Search (¨áª âì). Š ª®¢® ¥¥ ¢à¥¬ï à ¡®âë ¢ åã¤è¥¬ á«ãç ¥?
¡. ¥ «¨§ã©â¥ ®¯¥à æ¨î Insert (¤®¡ ¢¨âì í«¥¬¥­â). Žæ¥­¨â¥ ¥¥ á⮨¬®áâì ¢ åã¤è¥¬ á«ãç ¥ ¨ ãçñâ­ãî á⮨¬®áâì (¥á«¨ ¢®§¬®¦­ë
⮫쪮 ¤®¡ ¢«¥­¨ï, ­® ­¥ 㤠«¥­¨ï).
¢. Š ª ॠ«¨§®¢ âì ®¯¥à æ¨î Delete (㤠«¨âì)?
18-3 ‘¡ « ­á¨à®¢ ­­ë¥ ¯® ¢¥áã ¤¥à¥¢ìï
ãáâì x | 㧥« ¤¢®¨ç­®£® ¤¥à¥¢ ; ç¥à¥§ size[x] ®¡®§­ 稬 ç¨á«® «¨áâ쥢 ¢ ¯®¤¤¥à¥¢¥ á ¢¥à設®© ¢ x. ãáâì ç¨á«® 㤮¢«¥â¢®àï¥â ­¥à ¢¥­áâ¢ã 1=2 6 < 1. ã¤¥¬ £®¢®à¨âì, ç⮠㧥« x á¡ « ­á¨à®¢ ­ (-balanced), ¥á«¨
size[left[x]] 6 size[x]
¨
size[right[x]] 6 size[x]:
„¢®¨ç­®¥ ¤¥à¥¢® ­ §ë¢ ¥âáï -á¡ « ­á¨à®¢ ­­ë¬, ¥á«¨ ¢á¥ ¥£® 㧫ë,
ªà®¬¥ «¨áâ쥢, -á¡ « ­á¨à®¢ ­ë. ®¤å®¤ ª á¡ « ­á¨à®¢ ­­ë¬ ¤¥à¥¢ìï¬, ® ª®â®à®¬ ¨¤¥â à¥çì ­¨¦¥, ¡ë« ¯à¥¤«®¦¥­ ƒ. ‚ ࣥ§¥
(G. Varghese).
. ãáâì x | 㧥« ¤¢®¨ç­®£® ¤¥à¥¢ ¯®¨áª . Ž¡êïá­¨â¥, ª ª
¯¥à¥áâநâì ¯®¤¤¥à¥¢® á ª®à­¥¬ ¢ x, çâ®¡ë ®­® áâ «® 1=2á¡ « ­á¨à®¢ ­­ë¬ (á ¬®¥ ᨫ쭮¥ âॡ®¢ ­¨¥ á¡ « ­á¨à®¢ ­­®áâ¨) ‚ è «£®à¨â¬ ¤®«¦¥­ à ¡®â âì § ¢à¥¬ï (size[x]) ¨
¯®«ì§®¢ âìáï ¤®¯®«­¨â¥«ì­®© ¯ ¬ïâìî ®¡ê¥¬ O(size[x]).
¡. ®ª ¦¨â¥, çâ® ¯®¨áª ¢ -á¡ « ­á¨à®¢ ­­®¬ ¤¢®¨ç­®¬ ¤¥à¥¢¥ á
n 㧫 ¬¨ âॡã¥â ¢ åã¤è¥¬ á«ãç ¥ ¢à¥¬¥­¨ O(log n).
„ «¥¥ ¡ã¤¥¬ áç¨â âì, çâ® > 1=2. ã¤¥¬ áç¨â âì, çâ® ¯®á«¥ ¢ë¯®«­¥­¨ï ®¯¥à 権 Insert ¨ Delete (ॠ«¨§®¢ ­­ëå áâ ­¤ àâ­ë¬
®¡à §®¬), ¯à®¨§¢®¤¨âáï ¡ « ­á¨à®¢ª : ¥á«¨ ª ª®©-⮠㧥« ¤¥à¥¢ ¯¥à¥áâ « ¡ëâì -á¡ « ­á¨à®¢ ­­ë¬, ¢ë¡¨à ¥âáï ¡«¨¦ ©è¨© ª ª®à­î
¨§ â ª¨å 㧫®¢ ¨ ᮮ⢥âáâ¢ãî饥 ¯®¤¤¥à¥¢® ¯¥à¥áâà ¨¢ ¥âáï ¢
1=2-á¡ « ­á¨à®¢ ­­®¥ (á¬. ¯ã­ªâ ).
à® ­ «¨§¨à㥬 íâã á奬㠡 « ­á¨à®¢ª¨ á ¯®¬®éìî ¬¥â®¤ ¯®â¥­æ¨ «®¢. Š ª ®¡ëç­®, ¯®â¥­æ¨ « ¡ã¤¥â ⥬ ¡®«ìè¥, 祬 ¤ «ìè¥
‡ ¬¥ç ­¨ï ª £« ¢¥ 18
371
¤¥à¥¢® ®â á¡ « ­á¨à®¢ ­­®£®. ãáâì x | 㧥« ¢ ¤¢®¨ç­®¬ ¤¥à¥¢¥ T ;
¯®«®¦¨¬
(x) = jsize[left[x]] ; size[right[x]j
¨ ®¯à¥¤¥«¨¬ ¯®â¥­æ¨ « (T ) ¯® ä®à¬ã«¥
(T ) = c
X
(x);
x2T :(x)>2
£¤¥ c | ¤®áâ â®ç­® ¡®«ìè ï ¯®«®¦¨â¥«ì­ ï ª®­áâ ­â , § ¢¨áïé ï
®â .
¢. ®ª ¦¨â¥, çâ® ¯®â¥­æ¨ « ¤¢®¨ç­®£® ¤¥à¥¢ ¢á¥£¤ ­¥®âà¨æ ⥫¥­
¨ çâ® ¯®â¥­æ¨ « 1=2-á¡ « ­á¨à®¢ ­­®£® ¤¥à¥¢ à ¢¥­ ­ã«î.
£. ã¤¥¬ áç¨â âì, çâ® á⮨¬®áâì ¯¥à¥áâனª¨ ¤¥à¥¢ á m ¢¥à設 ¬¨ ¢ 1=2-á¡ « ­á¨à®¢ ­­®¥ à ¢­ m (­ ¯®¬­¨¬, çâ® ç¨á«® ®¯¥à 権 ¥áâì O(m)). Š ª®¢ ¤®«¦­ ¡ëâì ¢¥«¨ç¨­ c ¤«ï ¤ ­­®£® ,
ç⮡ë ãçñâ­ ï á⮨¬®áâì ¯¥à¥áâனª¨ ¯®¤¤¥à¥¢ , ­¥ ïî饣®áï
-á¡ « ­á¨à®¢ ­­ë¬, ¡ë« O(1)?
¤. ®ª ¦¨â¥, çâ® ãçñâ­ ï á⮨¬®áâì 㤠«¥­¨ï ¨«¨ ¢áâ ¢ª¨ í«¥¬¥­â ¢ -á¡ « ­á¨à®¢ ­­®¥ ¤¥à¥¢® á n ¢¥à設 ¬¨ ¥áâì O(log n).
‡ ¬¥ç ­¨ï
Œ¥â®¤ £à㯯¨à®¢ª¨ ¢ ¬®à⨧ 樮­­®¬ ­ «¨§¥ ®¯¨á ­ 㠀å®,
•®¯ªà®äâ ¨ “«ì¬ ­ [4]. ’ àìï­ [189] à áᬠâਢ ¥â ¬¥â®¤ë ¯à¥¤®¯« âë ¨ ¯®â¥­æ¨ «®¢ ¨ ¯à¨¢®¤¨â ­¥ª®â®àë¥ ¯à¨«®¦¥­¨ï. ‘®£« á­® ’ àìï­ã, ¬¥â®¤ ¯à¥¤®¯« âë ¢®á室¨â ª à ¡®â ¬ ¬­®£¨å ¢â®à®¢, ¢ ⮬ ç¨á«¥ à ã­ (M. R. Brown), ’ àìï­ (R. E. Tarjan),
• ¤«áâ®­ (S. Huddleston) ¨ Œ¥«ìå®à­ (K. Mehlhorn), ¢ â® ¢à¥¬ï
ª ª ¬¥â®¤ ¯®â¥­æ¨ «®¢ ¨§®¡à¥â¥­ ‘«¥ â®à®¬ (D.D. Sleator). ’¥à¬¨­
" ¬®à⨧ 樮­­ë© ­ «¨§" ¢¢¥¤ñ­ ‘«¥ â®à®¬ ¨ ’ àìï­®¬.
V
®«¥¥ á«®¦­ë¥ áâàãªâãàë ¤ ­­ëå
‚¢¥¤¥­¨¥
Š ª ¨ ¢ ç á⨠III, ¢ í⮩ ç á⨠¬ë à áᬮâਬ áâàãªâãàë ¤ ­­ëå, ª®â®àë¥ åà ­ïâ ¨§¬¥­ïî騥áï ¬­®¦¥á⢠| ­® ¨å ­ «¨§
¡ã¤¥â ­¥áª®«ìª® ¡®«¥¥ á«®¦­ë¬. ‚ ç áâ­®áâ¨, ¢ ¤¢ãå £« ¢ å ¬ë
¯à¨¬¥­ï¥¬ â¥å­¨ªã ¬®à⨧ 樮­­®£® ­ «¨§ (£« ¢ 18).
‚ £« ¢¥ 19 ¬ë à áᬠâਢ ¥¬ -¤¥à¥¢ìï | á¡ « ­á¨à®¢ ­­ë¥
¤¥à¥¢ìï ®¯à¥¤¥«ñ­­®£® ¢¨¤ , 㤮¡­ë¥ ¤«ï åà ­¥­¨ï ¨­ä®à¬ 樨 ­ ¤¨áª å. ‘¯¥æ¨ä¨ª ¤¨áª®¢ ¢ ⮬, çâ® ¢ ¦­® ­¥ á⮫쪮 ¢à¥¬ï ¢ëç¨á«¥­¨©, ᪮«ìª® ç¨á«® ®¯¥à 権 ç⥭¨ï/§ ¯¨á¨ ¡«®ª®¢. —¨á«® â ª¨å ®¯¥à 権 ¯à®¯®à樮­ «ì­® ¢ëá®â¥ ¤¥à¥¢ , ¨ ¯®â®¬ã ¢ëá®â㠁¤¥à¥¢ì¥¢ ¢ ¦­® ¯®¤¤¥à¦¨¢ âì ­¥¡®«ì让.
‚ £« ¢ å 20 ¨ 21 ¬ë à áᬠâਢ ¥¬ à §«¨ç­ë¥ ॠ«¨§ 樨 ᫨¢ ¥¬ëå ªãç | áâàãªâãàë ¤ ­­ëå, ª®â®à ï ¯®¤¤¥à¦¨¢ ¥â ®¯¥à 樨
¤®¡ ¢«¥­¨ï í«¥¬¥­â (Insert), ®âë᪠­¨ï ¬¨­¨¬ã¬ (Minimum),
㤠«¥­¨ï ¬¨­¨¬ «ì­®£® í«¥¬¥­â (Extract-Min) ¨ ®¡ê¥¤¨­¥­¨ï
(Union) ¤¢ãå ªãç. ®¬¨¬® íâ¨å ®¯¥à 権, ¬®£ãâ ¡ëâì íä䥪⨢­®
ॠ«¨§®¢ ­ë â ª¦¥ ®¯¥à 樨 㤠«¥­¨ï í«¥¬¥­â ¨ 㬥­ì襭¨ï ¥£®
ª«îç .
¨­®¬¨ «ì­ë¥ ªãç¨ (£« ¢ 20) ¢ë¯®«­ïîâ ª ¦¤ãî ®¯¥à æ¨î (¢
åã¤è¥¬ á«ãç ¥) § ¢à¥¬ï O(lg n), £¤¥ n | ç¨á«® í«¥¬¥­â®¢ ¢ ªãç¥
(¨«¨ ¢ ¤¢ãå ᫨¢ ¥¬ëå ªãç å). ˆå ¯à¥¨¬ãé¥á⢮ (¯® áà ¢­¥­¨î á
¤¢®¨ç­ë¬¨ ªãç ¬¨) á®á⮨⠢ ¢®§¬®¦­®á⨠¡ëáâண® á«¨ï­¨ï ¤¢ãå
ªãç (¤«ï ¤¢®¨ç­ëå ªãç íâ® âॡã¥â ¢à¥¬¥­¨ (n)).
”¨¡®­ ç稥¢ë ªãç¨ (£« ¢ 21) ¥éñ ¡®«¥¥ íä䥪⨢­ë (¯® ªà ©­¥© ¬¥à¥ ⥮à¥â¨ç¥áª¨: ¨¬¥îâ «ãçèãî ᨬ¯â®â¨ªã). à ¢¤ ,
§¤¥áì à¥çì ¨¤ñâ 㦥 ®¡ ãçñâ­®© á⮨¬®á⨠®¯¥à 権. Ž¯¥à 樨
Insert, Minimum ¨ Union ¨¬¥ñâ ãçñâ­ãî ( â ª¦¥ ä ªâ¨ç¥áªãî)
á⮨¬®áâì O(1). Ž¯¥à 樨 Extract-Min ¨ Delete ¨¬¥îâ ãçñâ­ãî á⮨¬®áâì O(lg n).  ¨¡®«¥¥ áãé¥á⢥­­ ¢®§¬®¦­®áâì ¡ëáâà® ¢ë¯®«­ïâì ®¯¥à æ¨î Decrease-Key (¥ñ ãçñâ­ ï á⮨¬®áâì
¥áâì O(1)). ˆ¬¥­­® ¡« £®¤ àï í⮬㠬­®£¨¥ (­ ᥣ®¤­ïè­¨© ¤¥­ì)
374
— áâì V ®«¥¥ á«®¦­ë¥ áâàãªâãàë ¤ ­­ëå
"४®à¤­®" ¡ëáâàë¥ «£®à¨â¬ë ®¡à ¡®âª¨ £à 䮢 ¨á¯®«ì§ãîâ 䨡®­ ç稥¢ë ªãç¨.
 ª®­¥æ, ¢ £« ¢¥ 22 ¬ë à áᬠâਢ ¥¬ áâàãªâãàë ¤ ­­ëå ¤«ï
åà ­¥­¨ï ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥á⢠(®â­®è¥­¨© íª¢¨¢ «¥­â­®áâ¨). Œë ¨¬¥¥¬ ¢ ¢¨¤ã á«¥¤ãî饥: ¨¬¥¥âáï ­¥ª®â®à®¥ ª®­¥ç­®¥
¬­®¦¥á⢮, à §¡¨â®¥ ­ ª« ááë. ‚ ­ ç «ì­ë© ¬®¬¥­â ª ¦¤ë© ª« áá
ᮤ¥à¦¨â ¯® ®¤­®¬ã í«¥¬¥­âã; § ⥬ ¨å ¬®¦­® ¯®¯ à­® ®¡ê¥¤¨­ïâì.
‚ «î¡®© ¬®¬¥­â ®¤¨­ ¨§ í«¥¬¥­â®¢ ª« áá áç¨â ¥âáï ¥£® ¯à¥¤áâ ¢¨â¥«¥¬; ®¯¥à æ¨ï Find-Set(x) ¤ ñ⠯।áâ ¢¨â¥«ì ª« áá , ᮤ¥à¦ 饣® x, ®¯¥à æ¨ï Union(x; y) ®¡ê¥¤¨­ï¥â ¤¢ ª« áá . Žª §ë¢ ¥âáï,
çâ® ¢¥áì¬ ¯à®á⮥ ¯à¥¤áâ ¢«¥­¨¥ í⮩ ¨­ä®à¬ 樨 ¢ ¢¨¤¥ ª®à­¥¢®£® ¤¥à¥¢ ¢¥áì¬ íä䥪⨢­®: ¯®á«¥¤®¢ ⥫쭮áâì ¨§ m ®¯¥à 権 âॡã¥â ¢à¥¬¥­¨ O(m(m; n)), £¤¥ (m; n) | ¨áª«îç¨â¥«ì­®
¬¥¤«¥­­® à áâãé ï äã­ªæ¨ï. à ¢¤ , ¤®ª § âì íâ㠮業ªã ¢¥áì¬ ­¥¯à®áâ® (­¥á¬®âàï ­ ¯à®áâ®âã á ¬®© áâàãªâãàë ¤ ­­ëå), ¨ ¬ë
®£à ­¨ç¨¬áï ¤®ª § ⥫ìá⢮ çãâì ¬¥­¥¥ ᨫ쭮© ®æ¥­ª¨.
 §ã¬¥¥âáï, íâ®â à §¤¥« ª­¨£¨ ­¨ª ª ­¥ ¯à¥â¥­¤ã¥â ­ ¯®«­®âã
| ¬­®¦¥á⢮ ¨­â¥à¥á­ëå áâàãªâãà ¤ ­­ëå ¢ ­¥£® ­¥ ¢®è«¨. “ª ¦¥¬ ­¥ª®â®àë¥ ¨§ ­¨å:
‘âàãªâãà ¤ ­­ëå, ¯®¤¤¥à¦¨¢ îé ï ®¯¥à 樨 ®âë᪠­¨ï ¬¨­¨¬ã¬ , ¬ ªá¨¬ã¬ , ¤®¡ ¢«¥­¨ï ¨ 㤠«¥­¨ï í«¥¬¥­â , ¯®¨áª , 㤠«¥­¨ï ¬¨­¨¬ «ì­®£® ¨ ¬ ªá¨¬ «ì­®£® í«¥¬¥­â®¢, ¯®¨áª ¯à¥¤ë¤ã饣® ¨ á«¥¤ãî饣® í«¥¬¥­â®¢ § ¢à¥¬ï O(lg lg n) ¢ åã¤è¥¬ á«ãç ¥
| ¢ ¯à¥¤¯®«®¦¥­¨¨, çâ® ¢á¥ ª«îç¨ ï¢«ïîâáï 楫묨 ç¨á« ¬¨ ®â
1 ¤® n (¢ ­ ¬¤¥ ® á [194]).
„¨­ ¬¨ç¥áª¨¥ ¤¥à¥¢ìï (dynamic trees), ª®â®àë¥ ¯à¥¤«®¦¨«¨
‘«¥ â®à ¨ ’ àìï­ [177] (á¬. â ª¦¥ ’ àìï­ [188]). â áâàãªâãà ¤ ­­ëå åà ­¨â «¥á ¨§ ­¥¯¥à¥á¥ª îé¨åáï ª®à­¥¢ëå ¤¥à¥¢ì¥¢. Š ¦¤®¥ ॡ஠ª ¦¤®£® ¤¥à¥¢ ¨¬¥¥â ­¥ª®â®àë© ¢¥é¥á⢥­­ãî á⮨¬®áâì. Œ®¦­® ¨áª âì த¨â¥«¥©, ª®à­¨, á⮨¬®á⨠àñ¡¥à, â ª¦¥
¬¨­¨¬ «ì­ãî á⮨¬®áâì à¥¡à ­ ¯ã⨠®â ¤ ­­®© ¢¥àè¨­ë ª
ª®à­î. Œ®¦­® 㤠«ïâì àñ¡à , ¬¥­ïâì á⮨¬®á⨠àñ¡¥à ­ ¯ã⨠ª
ª®à­î, ¯à¨¢¨¢ âì ª®à¥­ì ¤¥à¥¢ ª ¤à㣮¬ã ¤¥à¥¢ã, â ª¦¥ ¤¥« âì
§ ¤ ­­ãî ¢¥à設㠪®à­¥¬ ¤¥à¥¢ , ¢ ª®â®à®¬ ®­ ­ 室¨âáï. ‚á¥
í⨠®¯¥à 樨 ¬®¦­® ॠ«¨§®¢ âì á ãçñâ­®© á⮨¬®áâìî O(lg n);
¡®«¥¥ á«®¦­ ï ॠ«¨§ æ¨ï £ à ­â¨àã¥â ¢à¥¬ï à ¡®âë O(lg n) ¨ ¢
åã¤è¥¬ á«ãç ¥.
 áè¨àïî騥áï ¤¥à¥¢ìï (splay trees) â ª¦¥ ¯à¥¤«®¦¨«¨ ‘«¥ â®à ¨ ’ àìï­ [178] (á¬. â ª¦¥ ’ àìï­ [188]). Ž­¨ ¯à¥¤áâ ¢«ïîâ
ᮡ®© ¤¢®¨ç­ë¥ ¤¥à¥¢ìï á ®¡ëç­ë¬¨ ¤«ï ¤¥à¥¢ì¥¢ ¯®¨áª ®¯¥à æ¨ï¬¨; ¨å ãçñâ­ ï á⮨¬®áâì á®áâ ¢«ï¥â O(lg n) (§ áçñâ ⮣®, çâ®
¢à¥¬ï ®â ¢à¥¬¥­¨ ¤¥à¥¢® ¯®¤¢¥à£ ¥âáï ¡ « ­á¨à®¢ª¥).  áè¨àïî騥áï ¤¥à¥¢ìï ¬®¦­® ¯à¨¬¥­¨âì ¯à¨ à¥ «¨§ 樨 ¤¨­ ¬¨ç¥áª¨å
¤¥à¥¢ì¥¢.
‘âàãªâãàë ¤ ­­ëå á á®åà ­¥­¨¥¬ ¯à¥¤ë¤ãé¨å ¢¥àᨩ (persistent
— áâì V ®«¥¥ á«®¦­ë¥ áâàãªâãàë ¤ ­­ëå
375
data structures) ¯®§¢®«ïîâ ¯®«ãç âì ¨­ä®à¬ æ¨î ® ¯à¥¤ë¤ãé¨å
á®áâ®ï­¨ïå (¢¥àá¨ïå ᮤ¥à¦¨¬®£®) áâàãªâãàë, ¨­®£¤ ¨ ¬¥­ïâì
¯à¥¤ë¤ã騥 ¢¥àᨨ. Ž¡éãî ¬¥â®¤¨ªã á®åà ­¥­¨ï ¯à¥¤ë¤ãé¨å
¢¥àᨩ ᯨá®ç­®© áâàãªâãàë ¤ ­­ëå (á ­¥¡®«ì訬¨ ¯®â¥àﬨ ¯®
¢à¥¬¥­¨ ¨ ¯ ¬ïâ¨) ¯à¥¤«®¦¨«¨ „à¨áª®««, ‘ à­ ª, ‘«¥ â®à ¨ ’ àìï­ [59].  ¯®¬­¨¬, çâ® ¢ § ¤ ç¥ 14-1 ¯®¤®¡­ ï áâàãªâãà áâந« áì ¤«ï ¤¨­ ¬¨ç¥áª®£® ¬­®¦¥á⢠.
19
-¤¥à¥¢ìï
‚ í⮩ £« ¢¥ ¬ë à áᬮâਬ ®¤¨­ ¨§ ¢¨¤®¢ á¡ « ­á¨à®¢ ­­ëå ¤¥à¥¢ì¥¢, ¯à¨ ª®â®à®¬ ®¡¥á¯¥ç¨¢ ¥âáï íä䥪⨢­®¥ åà ­¥­¨¥ ¨­ä®à¬ 樨 ­ ¬ £­¨â­ëå ¤¨áª å ¨ ¤à㣨å ãáâனá⢠å á ¯àï¬ë¬ ¤®áâ㯮¬
| -¤¥à¥¢ìï.
-¤¥à¥¢ìï ¯®å®¦¨ ­ ªà á­®-ç¥à­ë¥ ¤¥à¥¢ìï; à §­¨æ ¢ ⮬, çâ® ¢
-¤¥à¥¢¥ ¢¥à設 ¬®¦¥â ¨¬¥âì ¬­®£® ¤¥â¥©, ­ ¯à ªâ¨ª¥ ¤® âëáïç¨
(¢ § ¢¨á¨¬®á⨠®â å à ªâ¥à¨á⨪ ¨á¯®«ì§ã¥¬®£® ¤¨áª ). « £®¤ àï
í⮬㠪®­áâ ­â ¢ ®æ¥­ª¥ O(log n) ¤«ï ¢ëá®âë ¤¥à¥¢ áãé¥á⢥­­®
¬¥­ìè¥, 祬 ¤«ï ç¥à­®-ªà á­ëå ¤¥à¥¢ì¥¢.
Š ª ¨ ç¥à­®-ªà á­ë¥ ¤¥à¥¢ìï, -¤¥à¥¢ìï ¯®§¢®«ïîâ ॠ«¨§®¢ âì
¬­®£¨¥ ®¯¥à 樨 á ¬­®¦¥á⢠¬¨ à §¬¥à n § ¢à¥¬ï O(log n).
à¨¬¥à -¤¥à¥¢ ¯®ª § ­ ­ à¨á. 19.1. ‚¥à設 x, åà ­ïé ï
n[x] í«¥¬¥­â®¢, ¨¬¥¥â n[x]+1 ¤¥â¥©. •à ­ï騥áï ¢ x ª«îç¨ á«ã¦ â
£à ­¨æ ¬¨, à §¤¥«ïî騬¨ ¢á¥å ¥ñ ¯®â®¬ª®¢ ­ n[x] + 1 £à㯯; § ª ¦¤ãî £àã¯¯ã ®â¢¥ç ¥â ®¤¨­ ¨§ ¤¥â¥© x. à¨ ¯®¨áª¥ ¢ -¤¥à¥¢¥
¬ë áà ¢­¨¢ ¥¬ ¨áª®¬ë© ª«îç á n[x] ª«îç ¬¨, åà ­ï騬¨áï ¢ x, ¨
¯® १ã«ìâ â ¬ áà ¢­¥­¨ï ¢ë¡¨à ¥¬ ®¤¨­ ¨§ n[x] + 1 ¯ã⥩.
’®ç­®¥ ®¯à¥¤¥«¥­¨¥ -¤¥à¥¢ ¨ «®£ à¨ä¬¨ç¥áª ï (®â ç¨á« ¢¥à設) ®æ¥­ª ¥£® ¢ëá®âë ¯à¨¢®¤ïâáï ¢ à §¤¥«¥ 19.1. ‚ à §¤¥«¥ 19.2
®¯¨á ­ë ®¯¥à 樨 ¯®¨áª ¨ ¤®¡ ¢«¥­¨ï í«¥¬¥­â ¢ ¤¥à¥¢®; 㤠«¥­¨¥ ®¡á㦤 ¥âáï ¢ 19.3. ® ¯à¥¦¤¥ ­ ¤® ®¡êïá­¨âì, ¢ 祬 ®â«¨ç¨¥
¬ £­¨â­ëå ¤¨áª®¢ ®â ®¯¥à ⨢­®© ¯ ¬ïâ¨, ¤¥« î饥 ¢ë£®¤­ë¬ ¨á¯®«ì§®¢ ­¨¥ -¤¥à¥¢ì¥¢.
¨áã­®ª 19.1 -¤¥à¥¢® á ­£«¨©áª¨¬¨ ᮣ« á­ë¬¨ ¢ ª ç¥á⢥ ª«î祩. ‚­ãâ७­ïï ¢¥à設 x á n[x] ª«îç ¬¨ ¨¬¥¥â n[x]+1 ¤¥â¥©. ‚ᥠ«¨áâìï ¨¬¥îâ ®¤­ã
¨ âã ¦¥ £«ã¡¨­ã. ‘¢¥â«ë¥ ¢¥àè¨­ë ¯à®á¬®âà¥­ë ¢ ¯à®æ¥áᥠ¯®¨áª ¡ãª¢ë R.
ƒ« ¢ 19 -¤¥à¥¢ìï
377
¨áã­®ª 19.2 „¨áª®¢®¤
‘âàãªâãàë ¤ ­­ëå ­ ¤¨áª¥
Š®¬¯ìîâ¥à ¨á¯®«ì§ã¥â à §­ë¥ ¢¨¤ë ¯ ¬ïâ¨. Ž¯¥à ⨢­ ï ¯ ¬ïâì
(main memory) ¯à¥¤áâ ¢«ï¥â ᮡ®© ¬¨ªà®á奬ë, ª ¦¤ ï ¨§ ª®â®àëå
¢¬¥é ¥â ¬¨««¨®­ë ¡¨â®¢. –¥­ â ª®© ¯ ¬ï⨠(¢ à áçñ⥠­ ¡¨â)
¢ëè¥, 祬 ¤«ï ¢â®à¨ç­®© ¯ ¬ï⨠(secondary storage). ’¨¯¨ç­ë©
ª®¬¯ìîâ¥à ¨á¯®«ì§ã¥â ¢ ª ç¥á⢥ ¢â®à¨ç­®© ¯ ¬ï⨠¦ñá⪨© ¤¨áª,
®¡êñ¬ ª®â®à®£® ¬®¦¥â ­ ­¥áª®«ìª® ¯®à浪®¢ ¯à¥¢®á室¨âì ®¡êñ¬
®¯¥à ⨢­®© ¯ ¬ïâ¨.
Œ £­¨â­ ï £®«®¢ª (á¬. à¨á. 19.2) § ¯¨áë¢ ¥â ¨ ç¨â ¥â ¤ ­­ë¥
­ ¬ £­¨â­®¬ á«®¥ ¢à é î饣®áï ¤¨áª . ëç £ ¬®¦¥â ¯¥à¥¬¥áâ¨âì
¥ñ ¢¤®«ì à ¤¨ãá ¤¨áª . ®á«¥ í⮣® £®«®¢ª ç¨â ¥â/¯¨è¥â ¤ ­­ë¥
­ ®¤­®© ¨§ ¤®à®¦¥ª (tracks) ¤¨áª . Ž¡ëç­® ª ¦¤ ï ¤®à®¦ª ¤¥«¨âáï ­ ®¯à¥¤¥«ñ­­®¥ ç¨á«® à ¢­ëå ¯® à §¬¥àã ᥪâ®à®¢ (ª ¦¤ë©
¬®¦¥â § ­¨¬ âì ­¥áª®«ìª® ª¨«®¡ ©â®¢). Ž¡ëç­® § ¯¨áë¢ îâ ¨«¨
áç¨âë¢ îâ ᥪâ®à 楫¨ª®¬. ‚à¥¬ï ¤®áâ㯠(access time), ª®â®à®¥
âॡã¥âáï çâ®¡ë ¯®¤¢¥á⨠£®«®¢ªã ª ­ã¦­®¬ã ¬¥áâã ¤¨áª , ¬®¦¥â
¡ëâì ¤®áâ â®ç­® ¡®«ì訬 (¤® 20 ¬¨««¨á¥ªã­¤); ¢ ®¯¥à ⨢­®© ¯ ¬ï⨠⠪®© § ¤¥à¦ª¨ ­¥â, ¯®â®¬ã çâ® ­¥â ¬¥å ­¨ç¥áª®£® ¯¥à¥¬¥é¥­¨ï. Š ª ⮫쪮 £®«®¢ª ¤¨áª 㦥 ãáâ ­®¢«¥­ , § ¯¨áì ¨«¨ ç⥭¨¥
¤¨áª ¯à®¨á室¨â ¤®¢®«ì­® ¡ëáâà®. — áâ® ¯®«ãç ¥âáï, çâ® ®¡à ¡®âª ¯à®ç¨â ­­®£® § ­¨¬ ¥â ¬¥­ìè¥ ¢à¥¬¥­¨, 祬 ¯®¨áª ­ã¦­®£®
ᥪâ®à . ®í⮬ã, ®æ¥­¨¢ ï ª ç¥á⢮ «£®à¨â¬ ¬ë ¡ã¤¥¬ ãç¨âë¢ âì ¤¢ ¯ à ¬¥âà :
ç¨á«® ®¡à 饭¨© ª ¤¨áªã, ¨
¢à¥¬ï ¢ëç¨á«¥­¨© (¢à¥¬ï à ¡®âë ¯à®æ¥áá®à ).
‘âண® £®¢®àï, ¢à¥¬ï ¤®áâ㯠§ ¢¨á¨â ®â ¯®«®¦¥­¨ï £®«®¢ª¨ ®â­®á¨â¥«ì­® ­ã¦­®£® ᥪâ®à . ® ¬ë ­¥ ®¡à é ¥¬ ­ íâ® ¢­¨¬ ­¨ï
¨ ãç¨âë¢ ¥¬ «¨èì ç¨á«® ®¡à 饭¨© ª ¤¨áªã (â. ¥. ç¨á«® ᥪâ®à®¢,
ª®â®àë¥ ­ã¦­® áç¨â âì ¨«¨ § ¯¨á âì).
€«£®à¨â¬ë, à ¡®â î騥 á -¤¥à¥¢ìﬨ, åà ­ïâ ¢ ®¯¥à ⨢­®©
378
ƒ« ¢ 19 -¤¥à¥¢ìï
¨áã­®ª 19.3 -¤¥à¥¢® ¢ëá®âë 2 ᮤ¥à¦¨â ¡®«¥¥ ¬¨««¨ ठª«î祩. Š ¦¤ ï
¢¥à設 ᮤ¥à¦¨â 1000 ª«î祩. ‚ᥣ® ¨¬¥¥âáï 1001 ¢¥à設 ­ £«ã¡¨­¥ 1 ¨
¡®«¥¥ ¬¨««¨®­ «¨áâ쥢 ­ £«ã¡¨­¥ 2. ‚ ª ¦¤®© ¢¥à設¥ x § ¯¨á ­® ç¨á«® n[x]
ª«î祩 ¢ ­¥©.
¯ ¬ï⨠«¨èì ­¥¡®«ìèãî ç áâì ¢á¥© ¨­ä®à¬ 樨 (䨪á¨à®¢ ­­®¥
ç¨á«® ᥪâ®à®¢), ¨ ¯®í⮬㠥ñ à §¬¥à ­¥ ®£à ­¨ç¨¢ ¥âáï à §¬¥à®¬
¤®áâ㯭®© ¯ ¬ïâ¨.
Œë à áᬠâਢ ¥¬ ¤¨áª ª ª ¡®«ì让 ãç á⮪ ¯ ¬ïâ¨, à ¡®â á
ª®â®àë¬ ¯à®¨á室¨â á«¥¤ãî騬 ®¡à §®¬: ¯¥à¥¤ ⥬ ª ª à ¡®â âì
á ®¡ê¥ªâ®¬ x, ¬ë ¤®«¦­ë ¢ë¯®«­¨âì á¯¥æ¨ «ì­ãî ®¯¥à æ¨î DiskRead(x) (ç⥭¨¥ á ¤¨áª ). ®á«¥ ¢­¥á¥­¨ï ¨§¬¥­¥­¨© ¢ ­ è ®¡ê¥ªâ x, ¬ë ¢ë¯®«­ï¥¬ ®¯¥à æ¨î Disk-Write(x) (§ ¯¨áì ­ ¤¨áª):
1 :::
2 x 㪠§ â¥«ì ­ ª ª®©-â® ®¡ê¥ªâ
3 Disk-Read(x)
4 ®¯¥à 樨, ª®â®àë¥ ¨á¯®«ì§ãîâ ¨/¨«¨ ¨§¬¥­ïîâ
¯®«ï ®¡ê¥ªâ , ­ ª®â®àë© ãª §ë¢ ¥â x.
5 Disk-Write(x) . ¥ ­ã¦­®, ¥á«¨
. ¯®«ï ®¡ê¥ªâ ­¥ ¨§¬¥­¨«¨áì.
6 ®¯¥à 樨, ª®â®àë¥ ¯®«ì§ãîâáï ¯®«ï¬¨ 㪠§ ⥫ï x,
­® ­¥ ¬¥­ïîâ ¨å.
7 :::
‚६ï à ¡®âë ¯à®£à ¬¬ë ¢ ®á­®¢­®¬ ®¯à¥¤¥«ï¥âáï ª®«¨ç¥á⢮¬
®¯¥à 権 Disk-Read ¨ Disk-Write, â ª çâ® ¨¬¥¥¥â á¬ëá« ç¨â âì/§ ¯¨áë¢ âì ¢®§¬®¦­® ¡®«ìè¥ ¨­ä®à¬ 樨 § à § ¨ ᤥ« âì
â ª, çâ®¡ë ¢¥à設 -¤¥à¥¢ § ¯®«­ï« ¯®«­®áâìî ®¤¨­ ᥪâ®à
¤¨áª . ’ ª¨¬ ®¡à §®¬, á⥯¥­ì ¢¥â¢«¥­¨ï (ç¨á«® ¤¥â¥© ¢¥à設ë)
®¯à¥¤¥«ï¥âáï à §¬¥à®¬ ᥪâ®à .
’¨¯¨ç­ ï á⥯¥­ì ¢¥â¢«¥­¨ï -¤¥à¥¢ì¥¢ ­ 室¨âáï ¬¥¦¤ã 50 ¨
2000 (¢ § ¢¨á¨¬®á⨠®â à §¬¥à í«¥¬¥­â ). “¢¥«¨ç¥­¨¥ á⥯¥­¨ ¢¥â¢«¥­¨ï १ª® ᮪à é ¥â ¢ëá®âã ¤¥à¥¢ , ¨ ⥬ á ¬ë¬ ç¨á«® ®¡à 饭¨© ª ¤¨áªã, ¯à¨ ¯®¨áª¥.  à¨á. 19.3 ¯®ª § ­® -¤¥à¥¢® á⥯¥­¨ 1001 ¨ ¢ëá®âë 2, åà ­ï饥 ¡®«¥¥ ¬¨««¨ ठª«î祩. “ç¨âë¢ ï, çâ® ª®à¥­ì ¬®¦­® ¯®áâ®ï­­® åà ­¨âì ¢ ®¯¥à ⨢­®© ¯ ¬ïâ¨,
¤®áâ â®ç­® ¤¢ãå ®¡à 饭¨© ª ¤¨áªã, ¯à¨ ¯®¨áª¥ ­ã¦­®£® ª«îç !
Ž¯à¥¤¥«¥­¨¥ -¤¥à¥¢ 379
19.1 Ž¯à¥¤¥«¥­¨¥ -¤¥à¥¢ Š ª ¨ à ­ìè¥, ¤«ï ¯à®áâ®âë ¬ë áç¨â ¥¬, çâ® ¤®¯®«­¨â¥«ì­ ï
¨­ä®à¬ æ¨ï, á¢ï§ ­­ ï á ª«î箬, åà ­¨âáï ¢ ⮩ ¦¥ ¢¥à設¥ ¤¥à¥¢ . ( ¯à ªâ¨ª¥ íâ® ­¥ ¢á¥£¤ 㤮¡­®, ¨ ¢ ॠ«ì­®¬ «£®à¨â¬¥
¢¥à設 ¬®¦¥â ᮤ¥à¦ âì «¨èì áá뫪㠭 ᥪâ®à, £¤¥ åà ­¨âáï
íâ ¤®¯®«­¨â¥«ì­ ï ¨­ä®à¬ æ¨ï.) Œë áç¨â ¥¬, çâ® ¯à¨ ¯¥à¥¬¥é¥­¨ïå ª«îç ¤®¯®«­¨â¥«ì­ ï ¨­ä®à¬ æ¨ï (¨«¨ áá뫪 ­ ­¥ñ)
¯¥à¥¬¥é ¥âáï ¢¬¥áâ¥ á ­¨¬. ’¥¬ á ¬ë¬ í«¥¬¥­â®¬ -¤¥à¥¢ ¡ã¤¥â
ª«îç ¢¬¥á⥠ᮠá¢ï§ ­­®© á ­¨¬ ¨­ä®à¬ 樥©.
‚ ¯à¨­æ¨¯¥ ¬ë ¬®£«¨ ¡ë ¨á¯®«ì§®¢ âì ¤àã£ãî ç áâ® ¢áâà¥ç îéãîáï ®à£ ­¨§ æ¨î -¤¥à¥¢ì¥¢: ¯®¬¥é âì ᮯãâáâ¢ãîéãî ¨­ä®à¬ æ¨î ¢ «¨áâìïå (£¤¥ ¡®«ìè¥ ¬¥áâ , â ª ª ª ­¥ ­ ¤® åà ­¨âì
ª«îç¨), ¢® ¢­ãâ७­¨å ¢¥à設 å åà ­¨âì ⮫쪮 ª«îç¨ ¨ 㪠§ ⥫¨ ­ ¤¥â¥©, íª®­®¬ï ¬¥áâ® (¨ ¯®«ãç ï ¢®§¬®¦­®áâì 㢥«¨ç¨âì
á⥯¥­ì ¢¥â¢«¥­¨ï ¯à¨ ⮬ ¦¥ à §¬¥à¥ ᥪâ®à ).
ˆâ ª, -¤¥à¥¢®¬ (B-tree) ­ §®¢ñ¬ ª®à­¥¢®¥ ¤¥à¥¢®, ãáâ஥­­®¥ á«¥¤ãî騬 ®¡à §®¬:
1. Š ¦¤ ï ¢¥à設 x ᮤ¥à¦¨â ¯®«ï, ¢ ª®â®àëå åà ­ïâáï:
ª®«¨ç¥á⢮ n[x] ª«î祩, åà ­ïé¨åáï ¢ ­¥©;
á ¬¨ ª«îç¨ key1[x] 6 key2[x] 6 : : : 6 keyn[x][x] (¢ ­¥ã¡ë¢ î饬
¯®à浪¥)
¡ã«¥¢áª®¥ §­ 祭¨¥ leaf[x], ¨á⨭­®¥, ª®£¤ ¢¥à設 ï¥âáï «¨á⮬.
2. …᫨ | ¢­ãâ७­ïï ¢¥à設 , â® ®­ â ª¦¥ ᮤ¥à¦¨â n[x]+1 㪠§ ⥫ì c1[x]; c2[x]; : : :; cn[x]+1[x] ­ ¥ñ ¤¥â¥©. “ «¨áâ쥢 ¤¥â¥© ­¥â, ¨
í⨠¯®«ï ¤«ï ­¨å ­¥ ®¯à¥¤¥«¥­ë.
3. Š«îç¨ keyi [x] á«ã¦ â £à ­¨æ ¬¨, à §¤¥«ïî騬¨ §­ 祭¨ï
ª«î祩 ¢ ¯®¤¤¥à¥¢ìïå:
k1 6 key1 [x] 6 k2 6 key2[x] 6 6 keyn[x] [x] 6 kn[x]+1;
£¤¥ ki | «î¡®© ¨§ ª«î祩, åà ­ïé¨åáï ¢ ¯®¤¤¥à¥¢¥ á ª®à­¥¬ i[x].
4. ‚ᥠ«¨áâìï ­ 室ïâáï ­ ®¤­®© ¨ ⮩ ¦¥ £«ã¡¨­¥ (à ¢­®© ¢ëá®â¥ h
¤¥à¥¢ ).
5. —¨á«® ª«î祩, åà ­ïé¨åáï ¢ ®¤­®© ¢¥à設¥, ®£à ­¨ç¥­® ᢥàåã
¨ á­¨§ã; £à ­¨æë § ¤ îâáï ¥¤¨­ë¬ ¤«ï ¢á¥£® ¤¥à¥¢ ç¨á«®¬ t >
2, ª®â®à®¥ ­ §ë¢ ¥âáï ¬¨­¨¬ «ì­®© á⥯¥­ìî (minimum degree) ¤¥à¥¢ . ˆ¬¥­­®:
Š ¦¤ ï ¢¥à設 , ªà®¬¥ ª®à­ï, ᮤ¥à¦¨â ¯® ¬¥­ì襩 ¬¥à¥ t ; 1
ª«îç. ’ ª¨¬ ®¡à §®¬, ¢­ãâ७­¨¥ ¢¥à設ë (ªà®¬¥ ª®à­ï) ¨¬¥îâ
­¥ ¬¥­¥¥ t ¤¥â¥©. …᫨ ¤¥à¥¢® ­¥¯ãáâ®, â® ¢ ª®à­¥ ¤®«¦¥­ åà ­¨âìáï å®âï ¡ë ®¤¨­ ª«îç.
380
ƒ« ¢ 19 -¤¥à¥¢ìï
‚ ¢¥à設¥ åà ­¨âáï ­¥ ¡®«¥¥ 2t ; 1 ª«î祩. ‘«¥¤®¢ ⥫쭮, ¢­ãâ७­ïï ¢¥à設 ¨¬¥¥â ­¥ ¡®«¥¥ 2t ¤¥â¥©. ‚¥à設ã, åà ­ïéãî
஢­® 2t ; 1 ª«î祩, ­ §®¢¥¬ ¯®«­®© (full).
‚ ¯à®á⥩襬 á«ãç ¥ t = 2, ⮣¤ ã ª ¦¤®© ¢­ãâ७­¥© ¢¥à設ë
2, 3 ¨«¨ 4 ॡ¥­ª , ¨ ¬ë ¯®«ãç ¥¬ â ª ­ §ë¢ ¥¬®¥ 2-3-4 ¤¥à¥¢® (2-34 tree). (Š ª ¬ë 㦥 £®¢®à¨«¨, ¤«ï íä䥪⨢­®© à ¡®âë á ¤¨áª®¬
­ ¯à ªâ¨ª¥ t ­ ¤® ¡à âì £®à §¤® ¡®«ì訬.)
‚ëá®â -¤¥à¥¢ —¨á«® ®¡à 饭¨© ª ¤¨áªã ¤«ï ¡®«ì設á⢠®¯¥à 権 ¯à®¯®à樮­ «ì­® ¢ëá®â¥ -¤¥à¥¢ . Žæ¥­¨¬ ᢥàåã íâã ¢ëá®âã.
’¥®à¥¬ 19.1. „«ï ¢á类£® -¤¥à¥¢ ¢ëá®âë h ¨ ¬¨­¨¬ «ì­®© á⥯¥­¨ t > 2, åà ­ï饣® n > 1 ª«î祩, ¢ë¯®«­¥­® ­¥à ¢¥­á⢮
h 6 log n + 1 :
t
2
„®ª § ⥫ìá⢮. ãáâì ¢ëá®â -¤¥à¥¢ à ¢­ § ¤ ­­®¬ã ç¨á«ã
h.  ¨¬¥­ì襥 ç¨á«® ¢¥à設 ¢ ¤¥à¥¢¥ ¡ã¤¥â, ¥á«¨ á⥯¥­ì ª ¦¤®©
¢¥àè¨­ë ¬¨­¨¬ «ì­ , â® ¥áâì ã ª®à­ï 2 ॡñ­ª , ã ¢­ãâ७­¨å
¢¥à設 ¯® t ¤¥â¥©. ‚ í⮬ á«ãç ¥ ­ £«ã¡¨­¥ 1 ¬ë ¨¬¥¥¬ 2 ¢¥à設ë,
­ £«ã¡¨­¥ 2 ¨¬¥¥¬ 2t ¢¥à設, ­ £«ã¡¨­¥ 3 ¨¬¥¥¬ 2t2 ¢¥à設, : : : ,
­ £«ã¡¨­¥ h ¨¬¥¥¬ 2th;1 ¢¥à設. à¨ í⮬ ¢ ª®à­¥ åà ­¨âáï ®¤¨­
ª«îç, ¢® ¢á¥å ®áâ «ì­ëå ¢¥à設 å ¯® t ; 1 ª«î祩. ( à¨á. 19.4
¯®ª § ­® â ª®¥ ¤¥à¥¢® ¯à¨ h = 3.) ’ ª¨¬ ®¡à §®¬, ¯®«ãç ¥¬ ­¥à ¢¥­á⢮:
n > 1 + (t ; 1)
h
X
i=1
2ti;1 = 1 + 2(t ; 1)
th ; 1 = 2th ; 1;
t;1
®âªã¤ á«¥¤ã¥â ã⢥ত¥­¨¥ ⥮६ë.
Š ª ¨ ¤«ï ªà á­®-çñà­ëå ¤¥à¥¢ì¥¢, ¢ëá®â -¤¥à¥¢ á n ¢¥à設 ¬¨ ¥áâì O(log n), ­® ®á­®¢ ­¨¥ «®£ à¨ä¬ ¤«ï -¤¥à¥¢ì¥¢ £®à §¤®
¡®«ìè¥, çâ® ¯à¨¬¥à­® ¢ lg t à § ᮪à é ¥â ª®«¨ç¥á⢮ ®¡à 饭¨©
ª ¤¨áªã.
“¯à ¦­¥­¨ï
19.1-1 ®ç¥¬ã ¢ ®¯à¥¤¥«¥­¨¨ -¤¥à¥¢ âॡ®¢ ­¨¥ t > 2 áãé¥á⢥­­®?
19.1-2 à¨ ª ª¨å t ¤¥à¥¢® ­ à¨á. 19.1 ¬®¦­® à áᬠâਢ âì ª ª
-¤¥à¥¢® ¬¨­¨¬ «ì­®© á⥯¥­¨ t?
Žá­®¢­ë¥ ®¯¥à 樨 á -¤¥à¥¢ìﬨ
381
¨áã­®ª 19.4 -¤¥à¥¢® ¢ëá®âë 3 ᮤ¥à¦¨â ¬¨­¨¬ «ì­® ¢®§¬®¦­®¥ ç¨á«®
ª«î祩. ‚­ãâਠª ¦¤®© ¢¥à設ë x § ¯¨á ­® ç¨á«® n[x] ª«î祩 ¢ ­¥©.
 ©â¨ ¢á¥ -¤¥à¥¢ìï ¬¨­¨¬ «ì­®© á⥯¥­¨ 2, ¯à¥¤áâ ¢«ïî騥 ¬­®¦¥á⢮ f1; 2; 3; 4; 5g
19.1-4  ©â¨ â®ç­ãî ¢¥àå­îî ®æ¥­ªã ¤«ï ç¨á« ª«î祩, åà ­ïé¨åáï ¢ -¤¥à¥¢¥ ¢ëá®âë h ¨ ¬¨­¨¬ «ì­®© á⥯¥­¨ t.
19.1-5 Ž¯¨á âì áâàãªâãàã ¤ ­­ëå, ª®â®à ï ¯®«ãç¨âáï, ¥á«¨ ¢
ªà á­®-çñà­®¬ ¤¥à¥¢¥ ª ¦¤ãî çñà­ãî ¢¥à設ã ᮥ¤¨­¨âì á ¥¥ ªà á­ë¬¨ ¤¥â쬨, ¨å ¤¥â¥© ᤥ« âì ¤¥â쬨 í⮩ çñà­®© ¢¥à設ë.
19.1-3
19.2 Žá­®¢­ë¥ ®¯¥à 樨 á -¤¥à¥¢ìﬨ
‚ í⮬ à §¤¥«¥ ¬ë ¯®¤à®¡­® à áᬮâਬ ®¯¥à 樨 B-TreeSearch (¯®¨áª), B-Tree-Create (ᮧ¤ ­¨¥ -¤¥à¥¢ ) ¨ B-TreeInsert (¤®¡ ¢«¥­¨¥ í«¥¬¥­â ). Œë áç¨â ¥¬, çâ®:
Š®à¥­ì -¤¥à¥¢ ¢á¥£¤ ­ 室¨âáï ¢ ®¯¥à ⨢­®© ¯ ¬ïâ¨, â. ¥. ®¯¥à æ¨ï Disk-Read ¤«ï ª®à­ï ­¨ª®£¤ ­¥ âॡã¥âáï; ®¤­ ª® ¢á直© à §, ª®£¤ ¬ë ¨§¬¥­ï¥¬ ª®à¥­ì, ¬ë ¤®«¦­ë ¥£® á®åà ­ïâì ­ ¤¨áª¥.
‚ᥠ¢¥à設ë, ¯¥à¥¤ ¢ ¥¬ë¥ ª ª ¯ à ¬¥âàë, 㦥 áç¨â ­ë á ¤¨áª .
 è¨ ¯à®æ¥¤ãàë ®¡à ¡ âë¢ îâ ¤¥à¥¢® § ®¤¨­ ¯à®å®¤ ®â ª®à­ï ª
«¨áâìï¬.
®¨áª ¢ -¤¥à¥¢¥
®¨áª ¢ -¤¥à¥¢¥ ¯®å®¦ ­ ¯®¨áª ¢ ¤¢®¨ç­®¬ ¤¥à¥¢¥.  §­¨æ ¢
⮬, çâ® ¢ ª ¦¤®© ¢¥à設¥ x ¬ë ¢ë¡¨à ¥¬ ®¤¨­ ¢ ਠ­â ¨§ (n[x]+
1), ­¥ ¨§ ¤¢ãå.
Š ª ¨ ¯à®æ¥¤ãà Tree-Search (¤«ï ¤¢®¨ç­ëå ¤¥à¥¢ì¥¢), ४ãà-
382
ƒ« ¢ 19 -¤¥à¥¢ìï
ᨢ­®© ¯à®æ¥¤ãà B-Tree-Search ¯®«ãç ¥â ­ ¢å®¤ 㪠§ ⥫ì x
­ ª®à¥­ì ¯®¤¤¥à¥¢ ¨ ª«îç k, ª®â®àë© ¬ë ¨é¥¬ ¢ í⮬ ¯®¤¤¥à¥¢¥.
„«ï ¯®¨áª ª«îç k ¢ -¤¥à¥¢¥ T á«¥¤ã¥â ᪮¬ ­¤®¢ âì B-TreeSearch(root(T ); k), £¤¥ root(T ) 㪠§ë¢ ¥â ­ ª®à¥­ì. …᫨ ¯à®æ¥¤ãà ®¡­ à㦨¢ ¥â ª«îç k ¢ ¤¥à¥¢¥, ®­ ¢®§¢à é ¥â ¯ àã (y; i),
£¤¥ y | ¢¥à設 , i | ¯®à浪®¢ë© ­®¬¥à 㪠§ ⥫ï, ¤«ï ª®â®à®£®
keyi [y ] = k. ‚ ¯à®â¨¢­®¬ á«ãç ¥ ¯à®æ¥¤ãà ¢®§¢à é ¥â ª®­áâ ­âã
nil.
B-Tree-Search (x; k)
1
2
3
4
5
6
7
8
9
i
1
while i 6 n[x] and k > keyi [x]
do i i + 1
if i 6 n[x] and k = keyi [x]
then return (x; i)
if leaf[x]
then return nil
else Disk-Read(ci [x])
return B-Tree-Search (ci[x]; k)
‚ áâப å 1-3 ¨é¥âáï ­ ¨¬¥­ì襥 i, ¤«ï ª®â®à®£® k 6 keyi[x];
¥á«¨ â ª®£® ­¥â, â® ¢ i ¯®¬¥é ¥âáï n[x] + 1 («¨­¥©­ë© ¯®¨áª). …᫨
­ã¦­ë© ª«îç ­ ©¤¥­, à ¡®â ¯à¥ªà é ¥âáï (áâப¨ 4{5). ‡ ⥬
(áâப¨ 6{7) ¯à®£à ¬¬ «¨¡® ®áâ ­ ¢«¨¢ ¥âáï, ¥á«¨ ¯®¨áª § ¢¥à訫áï ¡¥§à¥§ã«ìâ â­® (x | «¨áâ), «¨¡® ४ãàᨢ­® ¢ë§ë¢ ¥â ᥡï,
¯à¥¤¢ à¨â¥«ì­® áç¨â ¢ á ¤¨áª ª®à¥­ì ­ã¦­®£® ¯®¤¤¥à¥¢ (áâப¨
8{9).
 à¨á. 19.1 ¯®ª § ­ à ¡®â í⮩ ¯à®£à ¬¬ë. ‘¢¥â«ë¥ ¢¥à設ë
¯à®á¬®âà¥­ë ¯à¨ ¯®¨áª¥ ¡ãª¢ë R.
Š ª ¨ ¯à®æ¥¤ãà Tree-Search, ­ è ¯à®£à ¬¬ ¯à®á¬ âਢ ¥â
¢¥àè¨­ë ¤¥à¥¢ ®â ª®à­ï ª «¨áâã. ®í⮬ã ç¨á«® ®¡à 饭¨© ª
¤¨áªã ¥áâì (h) = (logt n), £¤¥ h | ¢ëá®â ¤¥à¥¢ , n | ª®«¨ç¥á⢮ ª«î祩. ’ ª ª ª n[x] 6 2t, ⮠横« while ¢ áâப å 2{3 ¯®¢â®àï¥âáï O(t) à §, ¨ ¢à¥¬ï ¢ëç¨á«¥­¨© à ¢­® O(th) = O(t logt n).
‘®§¤ ­¨¥ ¯ãá⮣® -¤¥à¥¢ à¨ à ¡®â¥ á -¤¥à¥¢®¬ T , ¬ë á­ ç « ᮧ¤ ¥¬ á ¯®¬®éìî ¯à®æ¥¤ãàë B-Tree-Create ¯ãá⮥ ¤¥à¥¢®, § ⥬ § ¯¨áë¢ ¥¬ ¢ ­¥£®
¤ ­­ë¥ á ¯®¬®éìî ¯à®æ¥¤ãàë B-Tree-Insert. Ž¡¥ í⨠¯à®æ¥¤ãàë
¨á¯®«ì§ãîâ ¯®¤¯à®£à ¬¬ã Allocate-Node, ª®â®à ï ­ 室¨â ¬¥áâ® ­ ¤¨áª¥ ¤«ï ­®¢®© ¢¥à設ë. Œë áç¨â ¥¬, çâ® ¯®¤¯à®£à ¬¬ Allocate-Node âॡã¥â ¢à¥¬¥­¨ O(1) ¨ ­¥ ¨á¯®«ì§ã¥â ®¯¥à æ¨î
Disk-Read.
Žá­®¢­ë¥ ®¯¥à 樨 á -¤¥à¥¢ìﬨ
383
¨áã­®ª 19.5  §¡¨¥­¨¥ ¢¥àè¨­ë ¤¥à¥¢ ¬¨­¨¬ «ì­®© á⥯¥­¨ t = 4. „¥«¨¬
¢¥à設ã y ­ ¤¢¥: y ¨ z . Š«îç-¬¥¤¨ ­ S ¢¥à設ë y ¯¥à¥å®¤¨â ª ¥¥ த¨â¥«î x.
B-Tree-Create (T )
1 x Allocate-Node ()
2 leaf[x] true
3 n[x] 0
4 Disk-Write(x)
5 root[T ] x
à®æ¥¤ãà B-Tree-Create âॡã¥â ®¤­®£® ®¡à 饭¨ï ª ¤¨áªã,
¢à¥¬ï à ¡®âë | O(1).
 §¡¨¥­¨¥ ¢¥àè¨­ë -¤¥à¥¢ ­ ¤¢¥
„®¡ ¢«¥­¨¥ í«¥¬¥­â ¢ -¤¥à¥¢® | §­ ç¨â¥«ì­® ¡®«¥¥ á«®¦­ ï ®¯¥à æ¨ï, 祬 ¤®¡ ¢«¥­¨¥ í«¥¬¥­â ¢ ¤¢®¨ç­®¥ ¤¥à¥¢® ¯®¨áª .
Š«îç¥¢ë¬ ¬¥á⮬ ï¥âáï à §¡¨¥­¨¥ (splitting) ¯®«­®© (á 2t ; 1
ª«îç ¬¨) ¢¥à設ë y ­ ¤¢¥ ¢¥à設ë, ¨¬¥î騥 ¯® t ; 1 í«¥¬¥­â®¢
¢ ª ¦¤®©. à¨ í⮬ ª«îç-¬¥¤¨ ­ (median key) keyt[y] ®â¯à ¢«ï¥âáï
ª த¨â¥«î x ¢¥à設ë y ¨ áâ ­®¢¨âáï à §¤¥«¨â¥«¥¬ ¤¢ãå ¯®«ã祭­ëå ¢¥à設. â® ¢®§¬®¦­®, ¥á«¨ ¢¥à設 x ­¥¯®«­ . …᫨ y
| ª®à¥­ì, ¯à®æ¥¤ãà à ¡®â ¥â ­ «®£¨ç­®. ‚ í⮬ á«ãç ¥ ¢ëá®â ¤¥à¥¢ 㢥«¨ç¨¢ ¥âáï ­ ¥¤¨­¨æã. ’ ª®¢ ¬¥å ­¨§¬ à®á⠁-¤¥à¥¢ .
à®æ¥¤ãà B-Tree-Split-Child ¤¥«¨â ¢¥à設ã y ­ ¤¢¥ ¨ ¬¥­ï¥â ᮮ⢥âáâ¢ãî騬 ®¡à §®¬ ¥ñ த¨â¥«ï x.  à¨á. 19.5 ¯®ª § ­®, ª ª íâ® ¯à®¨á室¨â. Š«îç-¬¥¤¨ ­ S ¢¥à設ë y ¯¥à¥å®¤¨â
ª ¥ñ த¨â¥«î x, ¡®«ì訥 S í«¥¬¥­âë ¯¥à¥¯¨áë¢ îâáï ¢ ­®¢®£®
ॡ¥­ª z ¢¥à設ë x. ‚室­ë¬¨ ¤ ­­ë¬¨ ¯à®æ¥¤ãàë ïîâáï ­¥¯®«­ ï ¢­ãâ७­ïï ¢¥à設 x, ç¨á«® i ¨ ¯®«­ ï ¢¥à設ã y, ¤«ï
ª®â®àëå y = ci[x]. Œë áç¨â ¥¬, çâ® ¢¥à設ë x ¨ y 㦥 ­ 室ïâáï
¢ ®¯¥à ⨢­®© ¯ ¬ïâ¨.
384
ƒ« ¢ 19 -¤¥à¥¢ìï
B-Tree-Split-Child (x; i; y )
1 z Allocate-Node ()
leaf[z ] leaf[y ]
n[z ] t ; 1
for j 1 to t ; 1
do keyj [z ] keyj +t [y ]
if not leaf[y ]
then for j 1 to t
do cj [z ] cj +t [y ]
n[y] t ; 1
for j n[x] + 1 downto i + 1
do cj +1 [x] cj [x]
ci+1 [x] z
for j n[x] downto i
do keyj +1 [x] keyj [x]
keyi [x] keyt [y ]
n[x] n[x] + 1
Disk-Write(y )
Disk-Write(z )
Disk-Write(x)
‚¥à設 y ¨¬¥« 2t ¤¥â¥©; ¯®á«¥ ¯à¥®¡à §®¢ ­¨ï ¢ ­¥© ®áâ «®áì
t ­ ¨¬¥­ìè¨å ¨§ ­¨å, ®áâ «ì­ë¥ t áâ «¨ ¤¥â쬨 ­®¢®© ¢¥à設ë z ,
ª®â®à ï ¢ á¢®î ®ç¥à¥¤ì áâ « ॡñ­ª®¬ ¢¥à設ë x. Š«îç-¬¥¤¨ ­ ¢¥à設ë y ¤®¡ ¢«¥­ ª ¢¥à設¥ x ¨ áâ « à §¤¥«¨â¥«¥¬ ¬¥¦¤ã ¢¥à設®© y ¨ á«¥¤ãî饩 § ­¥© ¢¥à設®© z.
‘âப¨ 1{8 ä®à¬¨àãîâ ¢¥à設ã z ¨ ¯¥à¥¤ îâ ¥© ¤¥â¥©. ‘âப 9
¬¥­ï¥â ¢¥à設ã y.  ª®­¥æ, áâப¨ 10{16 ¢­®áïâ ᮮ⢥âáâ¢ãî騥 ¨§¬¥­¥­¨ï ¢ ¢¥à設ã x. ‘âப¨ 17{19 á®åà ­ïîâ ¨§¬¥­¥­¨ï
­ ¤¨áª¥. ‚६ï à ¡®âë 横«®¢ (áâப¨ 4{5 ¨ 7{8) à ¢­® (t). („«ï
®áâ «ì­ëå 横«®¢ âॡã¥âáï ­¥ ¡®«ìè¥ t è £®¢).
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
„®¡ ¢«¥­¨¥ í«¥¬¥­â ¢ -¤¥à¥¢®
à®æ¥¤ãà B-Tree-Insert ¤®¡ ¢«ï¥â í«¥¬¥­â k ¢ -¤¥à¥¢® T ,
¯à®©¤ï ®¤¨­ à § ®â ª®à­ï ª «¨áâã.  íâ® âॡã¥âáï ¢à¥¬ï O(th) =
O(t logt n) ¨ O(h) ®¡à 饭¨© ª ¤¨áªã, ¥á«¨ ¢ëá®â ¤¥à¥¢ h. ® 室ã
¤¥« ¬ë á ¯®¬®éìî ¯à®æ¥¤ãàë B-Tree-Split à §¤¥«ï¥¬ ¢áâà¥ç î騥áï ­ ¬ ¯®«­ë¥ ¢¥à設ë, ¨á¯®«ì§ãï â ª®¥ ­ ¡«î¤¥­¨¥: ¥á«¨
¯®«­ ï ¢¥à設 ¨¬¥¥â ­¥¯®«­®£® த¨â¥«ï, â® ¥ñ ¬®¦­® à §¤¥«¨âì,
â ª ª ª ¢ த¨â¥«¥ ¥áâì ¬¥áâ® ¤«ï ¤®¯®«­¨â¥«ì­®£® ª«îç . ‚ ª®­æ¥
ª®­æ®¢ ¬ë ®ª §ë¢ ¥¬áï ¢ ­¥¯®«­®¬ «¨áâ¥, ªã¤ ¨ ¤®¡ ¢«ï¥¬ ­®¢ë©
í«¥¬¥­â.
Žá­®¢­ë¥ ®¯¥à 樨 á -¤¥à¥¢ìﬨ
385
¨áã­®ª 19.6 ¨á. 19.6. Š®à¥­ì r -¤¥à¥¢ (á t = 4) ï¥âáï ¯®«­®© ¢¥à設®©.
Ž­ ¤¥«¨âáï ­ ¤¢¥ ¯®«®¢¨­ë; ¯à¨ í⮬ ᮧ¤ ¥âáï ­®¢ë© ª®à¥­ì s, ¤¥â쬨 ª®â®à®£® áâ ­®¢ïâáï í⨠¢¥à設ë. ®¢ë© ª®à¥­ì s ᮤ¥à¦¨â ª«îç-¬¥¤¨ ­ã áâ ண®
ª®à­ï. ‚ëá®â -¤¥à¥¢ 㢥«¨ç¨« áì ­ ¥¤¨­¨æã.
B-Tree-Insert (T; k)
1 r root[T ]
2 if n[r] = 2t ; 1
3
then s Allocate-Node()
4
root[T ] s
5
leaf[s] false
6
n[s] 0
7
c1[s] r
8
B-Tree-Split-Child(s; 1; r)
9
B-Tree-Insert-Nonfull (s; k)
10
else B-Tree-Insert-Nonfull (r; k)
‘âப¨ 3{9 ®â­®áïâáï ª á«ãç î ¤®¡ ¢«¥­¨ï ¢ ¤¥à¥¢® á ¯®«­ë¬
ª®à­¥¬ (¯à¨¬¥à ­ à¨á. 19.6). ˆ¬¥­­® ¢ í⮬ á«ãç ¥ 㢥«¨ç¨¢ ¥âáï
¢ëá®â -¤¥à¥¢ . Žâ¬¥â¨¬, çâ® â®çª®© à®á⠁-¤¥à¥¢ ï¥âáï
ª®à¥­ì ( ­¥ «¨áâ, ª ª ¢ ¤¢®¨ç­ëå ¤¥à¥¢ìïå ¯®¨áª ).
‘¤¥« ¢ ª®à¥­ì ­¥¯®«­ë¬ (¥á«¨ ®­ ­¥ ¡ë« â ª®¢ë¬ á á ¬®£® ­ ç « ), ¬ë ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã B-Tree-Insert-Nonfull(x; k), ª®â®à ï ¤®¡ ¢«ï¥â í«¥¬¥­â k ¢ ¯®¤¤¥à¥¢® á ª®à­¥¬ ¢ ­¥¯®«­®© ¢¥à設¥ x. â ¯à®æ¥¤ãà ४ãàᨢ­® ¢ë§ë¢ ¥â ᥡï, ¯à¨ ­¥®¡å®¤¨¬®á⨠(¥á«¨ ¢¥à設 ®ª § « áì ¯®«­®©) ¢ë¯®«­¨¢ à §¤¥«¥­¨¥.
386
ƒ« ¢ 19 -¤¥à¥¢ìï
B-Tree-Insert-Nonfull (x; k)
1 i n[x]
2 if leaf[x]
3
then while i > 1 and k < keyi [x]
4
do keyi+1 [x] keyi [x]
5
i i;1
6
keyi+1 [x] k
7
n[x] n[x] + 1
8
Disk-Write(x)
9
else while i > 1 and k < keyi [x]
10
do i i ; 1
11
i i+1
12
Disk-Read(ci[x])
13
if n[ci [x]] = 2t ; 1
14
then B-Tree-Split-Child(x; i; ci[x])
15
if k > keyi [x]
16
then i i + 1
17
B-Tree-Insert-Nonfull (ci [x]; k)
â ¯à®æ¥¤ãà à ¡®â ¥â á«¥¤ãî騬 ®¡à §®¬. …᫨ ¢¥à設 x |
«¨áâ, â® ª«îç k ¢ ­¥£® ¤®¡ ¢«ï¥âáï (áâப¨ 3{8; ­ ¯®¬­¨¬, çâ® ¢¥à設 x ¯à¥¤¯®« £ ¥âáï ­¥¯®«­®©). ‚ ¯à®â¨¢­®¬ á«ãç ¥ ­ ¬ ­ã¦­®
¤®¡ ¢¨âì k ª ¯®¤¤¥à¥¢ã, ª®à¥­ì ª®â®à®£® ï¥âáï ॡñ­ª®¬ x. ‚
áâப å 9{11 ¬ë ­ 室¨¬ ­ã¦­®£® ॡñ­ª ¢¥à設ë x. …᫨ íâ®â
ॡñ­®ª ®ª §ë¢ ¥âáï ¯®«­®© ¢¥à設®© (áâப 13), â® ¢ áâப¥ 14 ®­
à §¤¥«ï¥âáï ­ ¤¢¥ ­¥¯®«­ëå ¢¥à設ë, ¨ ¢ áâப å 15{16 ®¯à¥¤¥«ï¥âáï, ¢ ª ª®¥ ¨§ ­®¢ëå ¯®¤¤¥à¥¢ì¥¢ á«¥¤ã¥â ¤®¡ ¢¨âì k. (‡ ¬¥â¨¬,
çâ® ¯®á«¥ ¨§¬¥­¥­¨ï i ¢ áâப¥ 16 ­¥â ­¥®¡å®¤¨¬®á⨠®¡à é âìáï
ª ¤¨áªã | ¢­®¢ì ᮧ¤ ­­ ï ¢¥à設 , ª ª®â®à®© ¬ë ®¡à ⨬áï ¢
áâப¥ 17, 㦥 ­ 室¨âáï ¢ ®¯¥à ⨢­®© ¯ ¬ïâ¨.) ’ ª¨¬ ®¡à §®¬,
¬ë §­ ¥¬, çâ® ¢¥à設 ci[x] | ­¥¯®«­ ï, ¨ ¢ áâப¥ 17 ¤®¡ ¢«ï¥¬
ª«îç k ¢ ᮮ⢥âáâ¢ãî饥 ¯®¤¤¥à¥¢® á ¯®¬®éìî ४ãàᨢ­®£® ¢ë§®¢ ¯à®æ¥¤ãàë B-Tree-Insert-Nonfull.  à¨á. 19.7 ¯®ª § ­ë
à §­ë¥ á«ãç ¨ ¤®¡ ¢«¥­¨ï í«¥¬¥­â ¢ -¤¥à¥¢®.
à®æ¥¤ãà B-Tree-Insert-Nonfull ¨á¯®«ì§ã¥â O(1) ®¯¥à 権
Disk-Read ¨ Disk-Write (¥á«¨ ­¥ áç¨â âì ४ãàᨢ­®£® ¢ë§®¢ ).
‘«¥¤®¢ ⥫쭮, ¤«ï -¤¥à¥¢ ¢ëá®âë h ¯à®æ¥¤ãà B-Tree-Insert
®¡à é ¥âáï ª ¤¨áªã O(h) à §. ‚à¥¬ï ¢ëç¨á«¥­¨© ¥áâì O(th) =
O(t logt h). ‚ ¯à®æ¥¤ãॠB-Tree-Insert-Nonfull ४ãàᨢ­ë© ¢ë§®¢ ï¥âáï ¯®á«¥¤­¨¬ ®¯¥à â®à®¬ (tail recursion), ¨ ¯®í⮬㠬ë
¬®£«¨ ¡ë § ¬¥­¨âì ४ãàá¨î 横«®¬. Žâáî¤ ¢¨¤­®, çâ® ç¨á«® ᥪâ®à®¢, ª®â®àë¥ ­¥®¡å®¤¨¬® ¤¥à¦ âì ¢ ®¯¥à ⨢­®© ¯ ¬ïâ¨,
¥áâì O(1).
Žá­®¢­ë¥ ®¯¥à 樨 á -¤¥à¥¢ìﬨ
387
¨áã­®ª 19.7 „®¡ ¢«¥­¨¥ í«¥¬¥­â ¢ -¤¥à¥¢®, ¤«ï ª®â®à®£® t = 3, (¢¥à設 ᮤ¥à¦¨â ¤® 5 ª«î祩). ‘¢¥â«ë¥ ¢¥àè¨­ë ¡ë«¨ ¨§¬¥­¥­ë ¯à¨ ¤®¡ ¢«¥­¨¨. ( )
 ç «ì­®¥ ¤¥à¥¢®. (¡) „®¡ ¢¨«¨ ¡ãª¢ã B (¢ ­¥¯®«­ë© «¨áâ). (¢) „®¡ ¢«¥­¨¥
Q ¯à¨¢®¤¨â ª à §¤¥«ã ¢¥à設ë RSTUV ­ RS ¨ UV , ¡ãª¢ T ¯¥à¥è« ¢ ª®à¥­ì, ¯®á«¥ 祣® ¡ãª¢ã Q ¤®¡ ¢¨«¨ ª ¢¥à設¥ RS . (£) ‚ ¯à¥¤ë¤ã饥 ¤¥à¥¢®
¤®¡ ¢¨«¨ L: ª®à¥­ì ¡ë« ¯®«­®© ¢¥à設®©, ¯®í⮬㠥£® ¯à¨è«®áì à §¤¥«¨âì ­ ¤¢¥ ¨ ¢ëá®â ¤¥à¥¢ 㢥«¨ç¨« áì ­ ¥¤¨­¨æã. ãª¢ã L ¢áâ ¢¨«¨ ¢ «¨áâ JK .
(¤) ‚ ¯à¥¤ë¤ã饥 ¤¥à¥¢® ¤®¡ ¢¨«¨ F . ‚¥à設ã ABCDE à §¤¥«¨«¨ ­ ¤¢¥ ¨ ¢
¯®«®¢¨­ªã DE ¤®¡ ¢¨«¨ F .
388
ƒ« ¢ 19 -¤¥à¥¢ìï
“¯à ¦­¥­¨ï
à®á«¥¤¨âì, § ¤®¡ ¢«¥­¨¥¬ ¢ ¯ãá⮥ -¤¥à¥¢® í«¥¬¥­â®¢
F; S; Q; K; C; L; H; T; V; W; M; R; N; P; A; B; X; Y; D; Z; E
¢ 㪠§ ­­®¬ ¯®à浪¥ (­ à¨á®¢ âì ⮫쪮 á®áâ®ï­¨ï ¤¥à¥¢ ¯¥à¥¤
à §¤¥«¥­¨¥¬ ª ª®©-â® ¨§ ¢¥à設, â ª¦¥ ¯®á«¥¤­¥¥ á®áâ®ï­¨¥)
19.2-2 ‚ëïá­¨âì, ¨á¯®«­ïîâáï «¨ «¨è­¨¥ ®¯¥à 樨 Disk-Read
¨«¨ Disk-Write ¯à¨ ¢ë§®¢¥ ¯à®æ¥¤ãàë B-Tree-Insert. (‹¨è­ïï
®¯¥à æ¨ï Disk-Read ç¨â ¥â ᥪâ®à, 㦥 § £à㦥­­ë© ¢ ®¯¥à ⨢­ãî ¯ ¬ïâì. ‹¨è­ïï ®¯¥à æ¨ï Disk-Write á®åà ­ï¥â ­ ¤¨áª¥ ­¥
¨§¬¥­¨¢è¨©áï ᥪâ®à.)
19.2-3 Š ª ­ ©â¨ ¬¨­¨¬ «ì­ë© í«¥¬¥­â ¢ -¤¥à¥¢¥? Š ª ­ ©â¨
í«¥¬¥­â -¤¥à¥¢ , ¯à¥¤è¥áâ¢ãî騩 ¤ ­­®¬ã í«¥¬¥­âã?
19.2-4? Š«îç¨ 1; 2; : : :; n ¤®¡ ¢«ïîâ ¯® ®¤­®¬ã ¢ ¯ãá⮥ -¤¥à¥¢®
¬¨­¨¬ «ì­®© á⥯¥­¨ 2. ‘ª®«ìª® ¢¥à設 ã ¯®«ã祭­®£® -¤¥à¥¢ ?
19.2-5 ’ ª ª ª ã «¨áâ쥢 ­¥â 㪠§ ⥫¥© ­ ¤¥â¥©, â® ¢ ­¨å ¬®¦¥â
¯®¬¥áâ¨âìáï ¡®«ìè¥ ª«î祩, 祬 ¢® ¢­ãâ७­¨¥ ¢¥à設ë. Š ª ¡ã¤ã⠢룫拉âì ¯à®æ¥¤ãàë ᮧ¤ ­¨ï -¤¥à¥¢ ¨ ¤®¡ ¢«¥­¨ï ¢ ­¥£®
í«¥¬¥­â , ¨á¯®«ì§ãî騥 íâ® ®¡áâ®ï⥫ìá⢮?
19.2-6 ‡ ¬¥­¨¬ ¢ ¯à®æ¥¤ãॠB-Tree-Search «¨­¥©­ë© ¯®¨áª ¤¢®¨ç­ë¬. ®ª § âì, ç⮠⮣¤ ¢à¥¬ï ¢ëç¨á«¥­¨© ¤«ï í⮩ ¯à®æ¥¤ãàë
áâ ­¥â à ¢­ë¬ O(log n) (ª®­áâ ­â ­¥ § ¢¨á¨â ®â t!).
19.2-7 à¥¤¯®«®¦¨¬, çâ® ¬ë ¬®¦¥¬ á ¬¨ ¢ë¡à âì à §¬¥à ᥪâ®à , ¯à¨ç¥¬ ¢à¥¬ï ç⥭¨ï ᥪâ®à , ¢¬¥é î饣® ¢¥à設㠁-¤¥à¥¢ á⥯¥­¨ t, ¡ã¤¥â a + bt, £¤¥ a ¨ b | ­¥ª®â®àë¥ ª®­áâ ­âë. Š ª á«¥¤ã¥â ¢ë¡à âì t, ç⮡ë 㬥­ìè¨âì ¢à¥¬ï ¯®¨áª ¢ -¤¥à¥¢¥? Žæ¥­¨â¥ ®¯â¨¬ «ì­®¥ §­ 祭¨¥ t ¢ á«ãç ¥ a = 30 ¬¨««¨á¥ªã­¤, b = 40
¬¨ªà®á¥ªã­¤.
19.2-1
19.3 “¤ «¥­¨¥ í«¥¬¥­â ¨§ -¤¥à¥¢ “¤ «¥­¨¥ í«¥¬¥­â ¨§ -¤¥à¥¢ (¯à®æ¥¤ãà B-Tree-Delete)
¯à®¨á室¨â ­ «®£¨ç­® ¤®¡ ¢«¥­¨î, å®âï ­¥¬­®£® á«®¦­¥¥. Œë ­¥
¡ã¤¥¬ ¯à¨¢®¤¨âì ¯à®æ¥¤ãàã 㤠«¥­¨ï ¯®«­®áâìî, ®¡êïá­¨¬, ª ª
®­ à ¡®â ¥â.
ãáâì ­ã¦­® 㤠«¨âì ª«îç k ¨§ ¯®¤¤¥à¥¢ á ª®à­¥¬ ¢ ¢¥à設¥ x.
 è ¯à®æ¥¤ãà ¡ã¤¥â ãáâ஥­ â ª, çâ® ¯à¨ ª ¦¤®¬ ¥¥ ४ãàᨢ­®¬ ¢ë§®¢¥ ¢¥à設 x ᮤ¥à¦¨â ¯® ¬¥­ì襩 ¬¥à¥ t ª«î祩, £¤¥ t
“¤ «¥­¨¥ í«¥¬¥­â ¨§ -¤¥à¥¢ 389
| ¬¨­¨¬ «ì­ ï á⥯¥­ì -¤¥à¥¢ . ® ¯à ¢¨« ¬ ¢¥à設 -¤¥à¥¢ ¤®«¦­ ᮤ¥à¦ âì ­¥ ¬¥­ìè¥ t ; 1 ª«îç , â ª çâ® ¢ ­ 襬 á«ãç ¥
¨¬¥¥âáï § ¯ á­®© ª«îç. â®â ¯à¨¥¬ (á«¥¤¨âì, çâ®¡ë § ¯ á­®© ª«îç
¢á¥£¤ ¡ë«) ¯®§¢®«ï¥â 㤠«¨âì í«¥¬¥­â, ¯à®©¤ï -¤¥à¥¢® ®¤¨­ à §
®â ª®à­ï ª «¨áâã ¨ ­¥ ¤¥« ï è £®¢ ¢ ®¡à â­®¬ ­ ¯à ¢«¥­¨¨ (á ¥¤¨­á⢥­­ë¬ ¨áª«î祭¨¥¬, ª®â®à®¥ ¬ë ¥£® à §¡¥à¥¬ ¯®§¦¥).
„®£®¢®à¨¬áï, çâ® ¥á«¨ ¢ १ã«ìâ ⥠㤠«¥­¨ï ª®à¥­ì ¤¥à¥¢ áâ «
¯ãáâë¬, â® ®­ 㤠«ï¥âáï, ¨ ¥£® ¥¤¨­á⢥­­ë© ॡ¥­®ª áâ ­®¢¨âáï
­®¢ë¬ ª®à­¥¬, ¯à¨ í⮬ ¢ëá®â -¤¥à¥¢ 㬥­ìè ¥âáï ­ ¥¤¨­¨æã,
¨ ª®à¥­ì 㦥 ­¥ ¯ãáâ (¥á«¨ ⮫쪮 ¢áñ ¤¥à¥¢® ­¥ ¯ãáâ®).
 à¨á. 19.8 ¯®ª § ­ë à §­ë¥ á«ãç ¨ 㤠«¥­¨ï í«¥¬¥­â ¨§ ¤¥à¥¢ .
1. …᫨ ª«îç k ­ 室¨âáï ¢ ¢¥à設¥ x, ïî饩áï «¨á⮬, ⮠㤠«ï¥¬ k ¨§ x.
2. …c«¨ ª«îç k ­ 室¨âáï ¢® ¢­ãâ७­¥© ¢¥à設¥ x, â® ¤¥« ¥¬ á«¥¤ãî饥:
…᫨ ॡ¥­®ª y ¢¥à設ë x, ¯à¥¤è¥áâ¢ãî騩 k, ᮤ¥à¦¨â ­¥ ¬¥­¥¥ t í«¥¬¥­â®¢, â® ­ 室¨¬ ª«îç k0, ­¥¯®á।á⢥­­® ¯à¥¤è¥áâ¢ãî騩 ª«îçã k. â®â ª«îç ­ 室¨âáï ¢ «¨á⥠¯®¤¤¥à¥¢ á
ª®à­¥¬ ¢ y.  ©â¨ ¥£® ¬®¦­® § ®¤¨­ ¯à®á¬®âà ¯®¤¤¥à¥¢ ®â
ª®à­ï ª «¨áâã. ¥ªãàᨢ­® ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã: 㤠«ï¥¬ k0. ‡ ¬¥­ï¥¬ ¢ x ª«îç k ­ k0.
…᫨ ॡ¥­®ª z, á«¥¤ãî騩 § k, ᮤ¥à¦¨â ­¥ ¬¥­¥¥ t í«¥¬¥­â®¢,
¯®áâ㯠¥¬ ­ «®£¨ç­®.
…᫨ ¨ y, ¨ z ᮤ¥à¦ â ¯® t ; 1 í«¥¬¥­âã, ᮥ¤¨­ï¥¬ ¢¥à設ã y,
ª«îç k, ¢¥à設ã z, ¯®¬¥é ï ¢áñ íâ® ¢ ¢¥à設ã y, ª®â®à ï ⥯¥àì
ᮤ¥à¦¨â 2t ; 1 ª«îç. ‘â¨à ¥¬ z ¨ ¢ëª¨¤ë¢ ¥¬ ¨§ x ª«îç k ¨
㪠§ â¥«ì ­ z. ¥ªãàᨢ­® 㤠«ï¥¬ k ¨§ y.
3. …᫨ x | ¢­ãâ७­ïï ¢¥à設 , ­® ª«îç k ¢ ­¥© ­¥â, ­ ©¤¥¬
á।¨ ¤¥â¥© ¢¥à設ë x ª®à¥­ì ci[x] ¯®¤¤¥à¥¢ , £¤¥ ¤®«¦¥­ «¥¦ âì
ª«îç k (¥á«¨ íâ®â ª«îç ¢®®¡é¥ ¥áâì). …᫨ ci[x] ᮤ¥à¦¨â ­¥ ¬¥­¥¥ t ª«î祩, ¬®¦­® ४ãàᨢ­® 㤠«¨âì k ¨§ ¯®¤¤¥à¥¢ . …᫨
¦¥ ci[x] ᮤ¥à¦¨â ¢á¥£® t ; 1 í«¥¬¥­â, â® ¯à¥¤¢ à¨â¥«ì­® ᤥ« ¥¬
è £ 3 ¨«¨ 3¡.
ãáâì ¢¥à設 ci[x] ᮤ¥à¦¨â t ; 1 í«¥¬¥­â, ­® ®¤¨­ ¨§ ¥ñ á®á¥¤¥© (­ ¯à¨¬¥à, ¯à ¢ë©) ᮤ¥à¦¨â ¯® ªà ©­¥© ¬¥à¥ t í«¥¬¥­â®¢.
(‡¤¥áì á®á¥¤®¬ ¬ë ­ §ë¢ ¥¬ â ª®£® ॡ¥­ª ¢¥à設ë x, ª®â®àë©
®â¤¥«¥­ ®â ci[x] ஢­® ®¤­¨¬ ª«î箬-à §¤¥«¨â¥«¥¬.) ’®£¤ ¤®¡ ¢¨¬ ॡñ­ªã ci[x] í«¥¬¥­â ¥£® த¨â¥«ï x, த¨â¥«î ¯¥à¥¤ ¤¨¬
«¥¢ë© í«¥¬¥­â í⮣® á®á¥¤ . à¨ í⮬ á ¬ë© «¥¢ë© ॡñ­®ª á®á¥¤ áâ ­¥â á ¬ë¬ ¯à ¢ë¬ ॡ¥­ª®¬ ¢¥à設ë ci[x].
ãáâì ®¡ á®á¥¤ ¢¥à設ë ci[x] ᮤ¥à¦ â ¯® t ; 1 í«¥¬¥­âã. ’®£¤ ®¡ê¥¤¨­¨¬ ¢¥à設ã ci[x] á ®¤­¨¬ ¨§ á®á¥¤¥© (ª ª ¢ á«ãç ¥ 2¢).
390
ƒ« ¢ 19 -¤¥à¥¢ìï
­ ç «ì­®¥ ¤¥à¥¢®
F 㤠«¥­ : á«ãç © 1
M 㤠«¥­ : á«ãç © 2 G 㤠«¥­ : á«ãç © 2¡
¨áã­®ª 19.8 “¤ «¥­¨¥ í«¥¬¥­â ¨§ -¤¥à¥¢ . „«ï í⮣® -¤¥à¥¢ ¬¨­¨¬ «ì­ ï á⥯¥­ì à ¢­ 3, â. ¥. ¢¥à設 ᮤ¥à¦¨â ­¥ ¬¥­¥¥ 2 í«¥¬¥­â®¢. ‘¢¥â«ë¥
¢¥àè¨­ë ¡ë«¨ ¨§¬¥­¥­ë ¯à¨ 㤠«¥­¨¨. ( ) -¤¥à¥¢® à¨áã­ª 19.7 (e). (¡) ‘«ãç © 1: 㤠«¥­¨¥ ¡ãª¢ë F ¨§ «¨áâ . (¢) “¤ «¥­¨¥ ¡ãª¢ë M . â® á«ãç © 2 : ¡ãª¢ ¯à¥¤è¥á⢥­­¨æ L ¯¥à¥è« ­ ¥ñ ¬¥áâ®. (£) “¤ «¥­¨¥ ¡ãª¢ë G. â® á«ãç © 2¢:
á­ ç « G ®â¯à ¢¨«¨ ¢­¨§, £¤¥ ®¡à §®¢ «áï «¨áâ DEGJK , ¨§ ª®â®à®£® G ¨
㤠«¨«¨ (á«ãç © 1). (¤) “¤ «¥­¨¥ ¡ãª¢ë D. â® á«ãç © 3¡: ¬ë ­¥ ¬®¦¥¬ ४ãàᨢ­® ®¡à ¡®â âì ¢¥à設ã CL, ¢ ª®â®à®© ¢á¥£® ¤¢ í«¥¬¥­â , ¯®í⮬ã á¯ã᪠¥¬
¢­¨§ P ¨ 0¯®«ãç ¥¬ ¢¥à設ã CLPTX . ®á«¥ í⮣® 㤠«ï¥¬ D ¨§ «¨áâ (á«ãç © 1). (e ) ®á«¥ 㤠«¥­¨ï D ª®à¥­ì áâ « ¯ãáâë¬ ¨ ¬ë 㤠«¨«¨ ¥£®. ‚ëá®â ¤¥à¥¢ 㬥­ì訫 áì ­ ¥¤¨­¨æã. (¥) “¤ «¨«¨ B . â® á«ãç © 3 : C á¯ãá⨫¨ ­ ¬¥áâ® B , E ¯®¤­ï«¨ ­ ¬¥áâ® C .
‡ ¤ ç¨ ª £« ¢¥ 19
391
D 㤠«¥­ : á«ãç © 3¡
㬥­ì襭¨¥ ¢ëá®âë ¤¥à¥¢ B 㤠«¥­ : á«ãç © 3 à¨ í⮬ ª«îç, à §¤¥«ï¢è¨© ¨å ¢ ¢¥à設¥ x, áâ ­¥â ª«î箬¬¥¤¨ ­®© ­®¢®© ¢¥à設ë.
Ž¯¨á ­­ ï ¯à®æ¥¤ãà âॡã¥â ¡®«¥¥ ®¤­®£® ¯à®å®¤ ⮫쪮 ¢ á«ãç ïå 2 ¨ 2¡ (ª®£¤ ®­ § ¬¥­ï¥â 㤠«ï¥¬ë© í«¥¬¥­â ¥£® ¯à¥¤è¥á⢥­­¨ª®¬ ¨«¨ ¯®á«¥¤®¢ ⥫¥¬). ‡ ¬¥â¨¬, çâ® íâ® ¯à®¨á室¨â,
⮫쪮 ¥á«¨ âॡã¥âáï 㤠«¨âì í«¥¬¥­â ¨§ ¢­ãâ७­¥© ¢¥à設ë.
®«ì設á⢮ ¢¥à設 -¤¥à¥¢ | «¨áâìï, â ª çâ® í⨠á«ãç ¨ ¡ã¤ãâ ।ª¨¬¨.
•®âï ¯à®æ¥¤ãà ¢ë£«ï¤¨â § ¯ãâ ­­®, ®­ âॡã¥â ¢á¥£® O(h)
®¡à 饭¨© ª ¤¨áªã ¤«ï -¤¥à¥¢ ¢ëá®âë h. (Œ¥¦¤ã ¤¢ã¬ï ४ãàᨢ­ë¬¨ ¢ë§®¢ ¬¨ ¢ë¯®«­ï¥âáï O(1) ª®¬ ­¤ Disk-Read ¨ DiskWrite). ‚ëç¨á«¥­¨ï âॡãî⠢६¥­¨ O(th) = O(t logt h).
“¯à ¦­¥­¨ï
19.3-1 ®ª § âì १ã«ìâ â 㤠«¥­¨ï ¢¥à設 C , P ¨ V (¢ 㪠§ ­­®¬ ¯®à浪¥) ¨§ ¤¥à¥¢ à¨á. 19.8 (f).
19.3-2  ¯¨á âì ¯à®æ¥¤ãàã B-Tree-Delete.
‡ ¤ ç¨
19-1 ‘⥪¨ ­ ¤¨áª¥
à¥¤áâ ¢¨¬ ᥡ¥, çâ® ¬ë å®â¨¬ ॠ«¨§®¢ âì á⥪ ­ ¬ 設¥ á
­¥¡®«ì让 ®¯¥à ⨢­®© ¯ ¬ïâìî ¨ ¡®«ì訬 ¦¥á⪨¬ ¤¨áª®¬ (á⥪
­¥ ¯®¬¥é ¥âáï ¢ ®¯¥à ⨢­ãî ¯ ¬ïâì, ¨ ¤®«¦¥­ ¯® ¡®«ì襩 ç áâ¨
åà ­¨âìáï ­ ¤¨áª¥).
392
ƒ« ¢ 19 -¤¥à¥¢ìï
à¨ ¯à®á⥩襩 (­® ­¥íä䥪⨢­®©) ॠ«¨§ 樨 á⥪ ­ ¤¨áª¥
åà ­¨âáï ¢áñ, ªà®¬¥ ¯¥à¥¬¥­­®© p (㪠§ ⥫ì á⥪ ), ª®â®à ï ®¯à¥¤¥«ï¥â ¬¥áâ® ¢¥à設ë á⥪ ­ ¤¨áª¥ â ª¨¬ ®¡à §®¬: ¢¥à設®©
¡ã¤¥â (p mod m)-ë© í«¥¬¥­â bp=mc-£® ᥪâ®à ¤¨áª (m | à §¬¥à
ᥪâ®à ).
—â®¡ë ¤®¡ ¢¨âì í«¥¬¥­â ¢ á⥪, ¬ë ç¨â ¥¬ ᮮ⢥âáâ¢ãî騩
ᥪâ®à, ­ ­ã¦­®¥ ¬¥áâ® ¯®¬¥é ¥¬ ­®¢ë© í«¥¬¥­â, 㢥«¨ç¨¢ ¥¬
§­ 祭¨ï 㪠§ â¥«ï ­ ¥¤¨­¨æã ¨ á­®¢ § ¯¨áë¢ ¥¬ ᥪâ®à ­ ¤¨áª.
€­ «®£¨ç­® ॠ«¨§ã¥âáï ®¯¥à æ¨ï 㤠«¥­¨ï í«¥¬¥­â ¨§ á⥪ . (Œë
ç¨â ¥¬ ᥪâ®à á ¤¨áª ¨ 㬥­ìè ¥¬ ­ ¥¤¨­¨æã §­ 祭¨¥ 㪠§ ⥫ï.
’ ª ª ª ᥪâ®à ­¥ ¬¥­ï«áï, â® § ¯¨áë¢ âì ¥£® ­ ¤¨áª ­¥ ­ã¦­®.)
ã¤¥¬ ãç¨âë¢ âì ª®«¨ç¥á⢮ ®¡à 饭¨© ª ¤¨áªã, â ª¦¥ ¢à¥¬ï
¢ëç¨á«¥­¨©, ¯à¨ ¯®¤áç¥â¥ ª®â®à®£® ª ¦¤®¥ ®¡à 饭¨¥ ª ¤¨áªã áç¨â ¥âáï âॡãî騬 (m) ¥¤¨­¨æ ¢à¥¬¥­¨.
. ‘ª®«ìª® ®¡à 饭¨© ª ¤¨áªã âॡã¥âáï ¢ åã¤è¥¬ á«ãç ¥ ¤«ï n ®¯¥à 権 á® á⥪®¬ ¯à¨ í⮩ ॠ«¨§ 樨? —¥¬ã à ¢­® ®¡é¥¥ ¢à¥¬ï?
(‡¤¥áì ¨ ¤ «¥¥ âॡã¥âáï ®â¢¥â ¢ â¥à¬¨­ å m ¨ n.)
 áᬮâਬ ¤àã£ãî ॠ«¨§ æ¨î á⥪ , ¯à¨ ª®â®à®© ®¤¨­ ᥪâ®à
楫¨ª®¬ åà ­¨âáï ¢ ¯ ¬ïâ¨. (Šà®¬¥ ⮣®, ­ ¬ âॡã¥âáï ¯®¬­¨âì
­®¬¥à åà ­¨¬®£® ᥪâ®à .) ® ¬¥à¥ ­¥®¡å®¤¨¬®á⨠¬ë ¡ã¤¥¬ ¢®§¢à é âì íâ®â ᥪâ®à ­ ¤¨áª ¨ áç¨âë¢ âì ­®¢ë©. …᫨ ­ã¦­ë©
ᥪâ®à 㦥 ­ 室¨âáï ¢ ¯ ¬ïâ¨, â® ®¡à é âìáï ª ¤¨áªã ­¥ ­ã¦­®.
¡. ‘ª®«ìª® ®¡à 饭¨© ª ¤¨áªã âॡã¥âáï ¤«ï ¤®¡ ¢«¥­¨ï n í«¥¬¥­â®¢
¢ á⥪ (¢ åã¤è¥¬ á«ãç ¥)? —¥¬ã à ¢­® ¢à¥¬ï ¢ëç¨á«¥­¨©?
¢. ‘ª®«ìª® ®¡à 饭¨© ª ¤¨áªã âॡã¥âáï ¢ åã¤è¥¬ á«ãç ¥ ¤«ï n ®¯¥à 権 á® á⥪®¬? —¥¬ã à ¢­® ¢à¥¬ï ¢ëç¨á«¥­¨©?
‘ãé¥áâ¢ã¥â ¡®«¥¥ íä䥪⨢­ ï ॠ«¨§ æ¨ï, ¯à¨ ª®â®à®© ¢ ®¯¥à ⨢­®© ¯ ¬ï⨠åà ­ïâáï ¤¢ ᥪâ®à (¨ ¥éñ ­¥áª®«ìª® ç¨á¥«).
£. Š ª ᤥ« âì â ª, çâ®¡ë ª ¦¤ ï ®¯¥à æ¨ï âॡ®¢ « (¯à¨ ¬®à⨧ 樮­­®¬ ­ «¨§¥) O(1=m) ®¡à 饭¨© ª ¤¨áªã ¨ ¢à¥¬¥­¨ O(1)?
19-2 Ž¡ê¥¤¨­¥­¨¥ ¨ à §¤¥«¥­¨¥ 2-3-4 ¤¥à¥¢ì¥¢
Ž¯¥à æ¨ï ®¡ê¥¤¨­¥­¨ï (join) ¯®«ãç ¥â ­ ¢å®¤¥ ¤¢ ¬­®¦¥á⢠S 0 ¨ S 00 ¨ í«¥¬¥­â x, ¤«ï ª®â®àëå key[x0] < key[x] < key[x00 ] ¯à¨
¢á¥å x0 2 S 0 ¨ x00 2 S 00. …¥ १ã«ìâ ⮬ ï¥âáï ¬­®¦¥á⢮
S = S 0 [ fxg [ S 00 .  §¤¥«¥­¨¥ (split) | ®¯¥à æ¨ï, ®¡à â­ ï ®¡ê¥¤¨­¥­¨î. Ž­ ¯®«ãç ¥â ­ ¢å®¤¥ ¬­®¦¥á⢮ S ¨ í«¥¬¥­â x 2 S ¨
ᮧ¤ ñâ ¤¢ ¤àã£¨å ¬­®¦¥á⢠S 0 ¨ S 00, á®áâ®ïé¨å ᮮ⢥âá⢥­­®
¨§ ¬¥­ìè¨å ¨ ¨§ ¡®«ìè¨å x í«¥¬¥­â®¢ ¬­®¦¥á⢠S . ‚ í⮩ § ¤ ç¥
âॡã¥âáï ॠ«¨§®¢ âì í⨠®¯¥à 樨 ¤«ï 2-3-4 ¤¥à¥¢ì¥¢. „«ï 㤮¡á⢠¡ã¤¥¬ áç¨â âì, çâ® í«¥¬¥­âë á®áâ®ïâ ⮫쪮 ¨§ ª«î祩, ¨ ¢á¥
ª«îç¨ à §«¨ç­ë.
. ã¤¥¬ åà ­¨âì ¢ ª ¦¤®© ¢¥à設¥ x 2-3-4 ¤¥à¥¢ ¯®«¥ height[x], åà åà ­¨âì
­ï饥 ¢ëá®âã ¯®¤¤¥à¥¢ á ª®à­¥¬ ¢ x. ®ª § âì, çâ® íâã ¨­ä®àåà ­ï饥
|
íâ®
­¥¯«®å®!
‡ ¬¥ç ­¨ï ª £« ¢¥ 19
393
¬ æ¨î ¬®¦­® ¯®¤¤¥à¦¨¢ âì, ­¥ ãåã¤è ï ᨬ¯â®â¨ªã ¢à¥¬¥­¨
¯®¨áª , ¤®¡ ¢«¥­¨ï ¨ 㤠«¥­¨ï.
¡. ¥ «¨§®¢ âì ®¯¥à æ¨î ®¡ê¥¤¨­¥­¨ï ¤¥à¥¢ì¥¢ T 0 ¨ T 00, à §¤¥«ñ­­ëå
ª«î箬 k. ‚६ï à ¡®âë ¤®«¦­® ¡ëâì O(jh0 ; h00j), £¤¥ h0; h00 |
¢ëá®âë ¤¥à¥¢ì¥¢.
¢. ãáâì p | ¯ãâì ¢ 2-3-4 ¤¥à¥¢¥ T ®â ª®à­ï ª § ¤ ­­®¬ã ª«îçã k.
 áᬮâਬ ¤¢ ¬­®¦¥á⢠ª«î祩 ¨§ T : ¬¥­ì訥 k (¬­®¦¥á⢮ S 0) ¨ ¡®«ì訥 k (¬­®¦¥á⢮ S 00). ®ª § âì, çâ® S 0 à §¡¨¢ ¥âáï
­ ¤¥à¥¢ìï T00 ; T10; : : :; Tm0 , à §¤¥«¥­­ë¥ ª«îç ¬¨ k10 ; k20 ; : : :; km0 (¤«ï
¢á¥å y 2 Ti0;1 ¨ z 2 Ti0 ¢ë¯®«­¥­® y < ki0 < z ¯à¨ i = 1; 2; : : :; m.
Š ª á¢ï§ ­ë ¢ëá®âë ¤¥à¥¢ì¥¢ Ti0;1 ¨ Ti0?  ª ª¨¥ ç á⨠¯ãâì p
¤¥«¨â S 00?
£. ¥ «¨§®¢ âì ®¯¥à æ¨î à §¤¥«¥­¨ï. „«ï í⮣® á«¥¤ã¥â ®¡ê¥¤¨­¨âì
ª«îç¨ ¨§ S 0 ¢ 2-3-4 ¤¥à¥¢® T 0 ¨ ª«îç¨ ¨§ S 00 ¢ ¤¥à¥¢® T 00. „«ï
¤¥à¥¢ á n ª«îç ¬¨ ¢à¥¬ï à ¡®âë í⮩ ®¯¥à 樨 ¤®«¦­® ¡ëâì
O(log n). (“ª § ­¨¥: ¯à¨ á«®¦¥­¨¨ á⮨¬®á⥩ ®¯¥à 権 ®¡ê¥¤¨­¥­¨ï ¯à®¨á室¨â ᮪à 饭¨¥.)
‡ ¬¥ç ­¨ï
‘¡ « ­á¨à®¢ ­­ë¥ ¤¥à¥¢ìï ¨ -¤¥à¥¢ì¥¢ ®¡á㦤 îâáï ¢
Š­ãâ [123], €å®, •®¯ªà®äâ ¨ “«ì¬ ­ [4] ¨ ‘¥¤¦¢¨ª [175]. ®¤à®¡­ë© ®¡§®à -¤¥à¥¢ì¥¢ ¤ ­ ¢ Š®¬¥à [48]. ƒ¨¡ á ¨ ‘¥¤¦¢¨ª [93]
à áᬮâ५¨ ¢§ ¨¬®á¢ï§¨ ¬¥¦¤ã à §­ë¬¨ ¢¨¤ ¬¨ á¡ « ­á¨à®¢ ­­ëå ¤¥à¥¢ì¥¢, ¢ª«îç ï ªà á­®-çñà­ë¥ ¨ 2-3-4 ¤¥à¥¢ìï.
‚ 1970 £®¤ã •®¯ªà®äâ (J. E. Hopcroft) ¯à¥¤«®¦¨« ¯®­ï⨥ 2-3
¤¥à¥¢ì¥¢, ª®â®àë¥ ï¢¨«¨áì ¯à¥¤è¥á⢥­­¨ª ¬¨ -¤¥à¥¢ì¥¢ ¨ 2-34 ¤¥à¥¢ì¥¢. ‚ íâ¨å ¤¥à¥¢ìïå ª ¦¤ ï ¢­ãâ७­ïï ¢¥à設 ¨¬¥¥â 2
¨«¨ 3 ¤¥â¥©. -¤¥à¥¢ìï ¡ë«¨ ®¯à¥¤¥«¥­ë  ©¥à®¬ ¨ Œ ªŠà¥©â®¬ ¢
1972 £®¤ã [18]. ‚ ¨å à ¡®â¥ ­¥ ®¡êïá­ñ­ ¢ë¡®à ­ §¢ ­¨ï.
20
¨­®¬¨ «ì­ë¥ ªãç¨
‚ í⮩ £« ¢¥ ¨ ¢ £« ¢¥ 21 à áᬠâਢ îâáï áâàãªâãàë ¤ ­­ëå, ¨§¢¥áâ­ë¥ ª ª ᫨¢ ¥¬ë¥ ªãç¨ (mergeable heaps). ’ ª ï áâàãªâãà åà ­¨â ­¥áª®«ìª® ¬­®¦¥á⢠(ªãç), í«¥¬¥­âë ª®â®àëå ­ §ë¢ îâ ¢¥à設 ¬¨. Š ¦¤ ï ¢¥à設 ᮤ¥à¦¨â ¯®«¥ key (ª«îç), ¢ ª®â®à®¬ åà ­¨âáï ­¥ª®â®à®¥ ç¨á«®; ªà®¬¥ ⮣®, ¢ ¢¥à設¥ ¬®¦¥â åà ­¨âìáï ­¥ª®â®à ï ¨­ä®à¬ æ¨ï, ᮯ஢®¦¤ îé ï íâ® ç¨á«®. ‘«¨¢ ¥¬ë¥ ªãç¨
¯®§¢®«ïî⠢믮«­ïâì á«¥¤ãî騥 ¯ïâì ®¯¥à 権:
Make-Heap() ᮧ¤ ñâ ¨ ¢®§¢à é ¥â ­®¢ãî ªãçã, ­¥ ᮤ¥à¦ éãî
í«¥¬¥­â®¢;
Insert(H; x) ¤®¡ ¢«ï¥â í«¥¬¥­â (¢¥à設ã) x ¢ ªãçã H (¯®«¥ key
í«¥¬¥­â x ¤®«¦­® ¡ëâì § ¯®«­¥­® § à ­¥¥);
Minimum(H ) ¢®§¢à é ¥â 㪠§ â¥«ì ­ í«¥¬¥­â ªãç¨ H á ¬¨­¨¬ «ì­ë¬ ª«î箬;
Extract-Min(H ) ¨§ë¬ ¥â í«¥¬¥­â á ¬¨­¨¬ «ì­ë¬ ª«î箬 ¨§
ªãç¨ H ¨ ¢®§¢à é ¥â 㪠§ â¥«ì ­ ¨§êïâë© í«¥¬¥­â;
Union(H1; H2) ®¡ê¥¤¨­ï¥â ªãç¨ H1 ¨ H2, â® ¥áâì ᮧ¤ ñâ ¨ ¢®§¢à é ¥â ­®¢ãî ªãçã, ᮤ¥à¦ éãî ¢á¥ í«¥¬¥­âë ªãç H1 ¨ H2. ‘ ¬¨
ªãç¨ H1 ¨ H2 ¯à¨ í⮬ ¨á祧 îâ.
‘âàãªâãàë ¤ ­­ëå, ®¯¨áë¢ ¥¬ë¥ ¢ í⮩ ¨ á«¥¤ãî饩 £« ¢ å, ¯®¤¤¥à¦¨¢ îâ ¥éñ ¤¢¥ ®¯¥à 樨:
Decrease-Key(H; x; k) 㬥­ìè ¥â ª«îç ¢¥à設ë x ªãç¨ H , ¯à¨á¢ ¨¢ ï ¥¬ã ­®¢®¥ §­ 祭¨¥ k (¯à¥¤¯®« £ ¥âáï, çâ® ­®¢®¥ §­ 祭¨¥
­¥ ¯à¥¢®á室¨â áâ ண®);
Delete(H; x) 㤠«ï¥â í«¥¬¥­â (¢¥à設ã) x ¨§ ªãç¨ H .
Š ª ¢¨¤­® ¨§ â ¡«¨æë 20.1, ¥á«¨ ¬ë ­¥ ­ã¦¤ ¥¬áï ¢ ®¯¥à 樨
Union, â® (¤¢®¨ç­ë¥) ªãç¨, á ¯®¬®éìî ª®â®àëå ¬ë á®àâ¨à®¢ «¨
¬ áᨢ ¢ £« ¢¥ 7, ¢¥áì¬ íä䥪⨢­ë. „«ï ­¨å ¢á¥ ®¯¥à 樨, ªà®¬¥
®¯¥à 樨 Union, ¢ë¯®«­ïîâáï § ¢à¥¬ï O(lg n) ¢ åã¤è¥¬ á«ãç ¥ ( ­¥ª®â®àë¥ ¨§ ®¯¥à 権 | ¥éñ ¡ëáâ॥). ® ¤«ï ¢ë¯®«­¥­¨ï ®¯¥à 樨 Union ­ ¬ ¯à¨å®¤¨âáï ¯à¨¯¨áë¢ âì ®¤¨­ ¬ áᨢ ª ¤à㣮¬ã ¨
§ ⥬ ¢ë¯®«­ïâì ¯à®æ¥¤ãàã Heapify, çâ® âॡã¥â ¢à¥¬¥­¨ (n).
‚ í⮩ £« ¢¥ ¬ë à á᪠¦¥¬ ® "¡¨­®¬¨ «ì­ëå ªãç å" (¢â®à®©
á⮫¡¥æ â ¡«¨æë). Ž¡à â¨â¥ ¢­¨¬ ­¨¥, çâ® ®¡ê¥¤¨­¥­¨¥ ¤¢ãå ¡¨-
¨­®¬¨ «ì­ë¥ ¤¥à¥¢ìï ¨ ¡¨­®¬¨ «ì­ë¥ ªãç¨
395
„¢®¨ç­ë¥ ªãç¨ ¨­®¬¨ «ì­ë¥ ªãç¨ ”¨¡®­ ç稥¢ë ªãç¨
(¢ åã¤è¥¬ á«ãç ¥) (¢ åã¤è¥¬ á«ãç ¥)
(¢ á।­¥¬)
Make-Heap
(1)
(1)
(1)
Insert
(lg n)
O(lg n)
(1)
Minimum
(1)
O(lg n)
(1)
Extract-Min
(lg n)
(lg n)
O(lg n)
Union
(n)
O(lg n)
(1)
Decrease-Key
(lg n)
(lg n)
(1)
Delete
(lg n)
(lg n)
O(lg n)
à®æ¥¤ãà ¨áã­®ª 20.1 ‚à¥¬ï ¢ë¯®«­¥­¨ï à §«¨ç­ëå ®¯¥à 権 ¤«ï âàñå ¢¨¤®¢ ᫨¢ ¥¬ëå ªãç (n | ®¡é¥¥ ç¨á«® í«¥¬¥­â®¢ ¢ ªãç å ­ ¬®¬¥­â ®¯¥à 樨).
­®¬¨ «ì­ëå ªãç, ᮤ¥à¦ é¨å ¢ á㬬¥ n í«¥¬¥­â®¢, âॡã¥â ¢á¥£®
«¨èì O(lg n) ®¯¥à 権.
‚ £« ¢¥ 21 ¬ë à áᬠâਢ ¥¬ "䨡®­ ç稥¢ë ªãç¨", ª®â®àë¥ ¥éñ
¡®«¥¥ íä䥪⨢­ë (âà¥â¨© á⮫¡¥æ). Žâ¬¥â¨¬, ¢¯à®ç¥¬, çâ® íâ®
ã«ãç襭¨¥ ¤®á⨣ ¥âáï «¨èì ¤«ï ãçñâ­®© á⮨¬®á⨠®¯¥à 権 ¯à¨
¬®à⨧ 樮­­®¬ ­ «¨§¥.
‚ ­ è¨å ¯à®æ¥¤ãà å ¬ë ­¥ § ­¨¬ ¥¬áï ¢ë¤¥«¥­¨¥¬ ¨ ®á¢®¡®¦¤¥­¨¥¬ ¯ ¬ï⨠¤«ï í«¥¬¥­â®¢ ªãç.
‚ᥠâਠ¢¨¤ ªãç, 㪠§ ­­ëå ¢ â ¡«¨æ¥, ­¥ ¯®§¢®«ïîâ íä䥪⨢­® ॠ«¨§®¢ âì ¯®¨áª í«¥¬¥­â á ¤ ­­ë¬ ª«î箬 (Search).
®í⮬㠯à®æ¥¤ãàë Decrease-Key ¨ Delete ¯®«ãç îâ ¢ ª ç¥á⢥ ¯ à ¬¥âà ­¥ ª«îç ¢¥à設ë, 㪠§ â¥«ì ­ ­¥ñ (¢® ¬­®£¨å
á«ãç ïå íâ® âॡ®¢ ­¨¥ ­¥ ᮧ¤ ñ⠯஡«¥¬).
‚ à §¤¥«¥ 20.1 ®¯à¥¤¥«ïîâáï ¡¨­®¬¨ «ì­ë¥ ¤¥à¥¢ìï ¨ ªãç¨. ’ ¬
¦¥ ®¯¨áë¢ ¥âáï ¯à¥¤áâ ¢«¥­¨¥ ¡¨­®¬¨ «ì­ëå ªãç ¢ ¯à®£à ¬¬¥. ‚
à §¤¥«¥ 20.2 ¯®ª § ­®, ª ª ॠ«¨§®¢ âì ¢á¥ ¯¥à¥ç¨á«¥­­ë¥ ®¯¥à 樨
§ 㪠§ ­­®¥ ¢ â ¡«¨æ¥ 20.1 ¢à¥¬ï.
20.1 ¨­®¬¨ «ì­ë¥ ¤¥à¥¢ìï ¨ ¡¨­®¬¨ «ì­ë¥ ªãç¨
¨­®¬¨ «ì­ ï ªãç á®á⮨⠨§ ­¥áª®«ìª¨å ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ì¥¢.
20.1.1 ¨­®¬¨ «ì­ë¥ ¤¥à¥¢ìï
¨­®¬¨ «ì­ë¥ ¤¥à¥¢ìﬨ (binomial trees) ­ §ë¢ îâáï 㯮à冷祭­ë¥ (¢ á¬ëá«¥ à §¤¥« 5.2.2) ¤¥à¥¢ìï B0 ; B1; B2; : : : , ®¯à¥¤¥«ï¥¬ë¥
¨­¤ãªâ¨¢­®.
„¥à¥¢® B0 á®á⮨⠨§ ¥¤¨­á⢥­­®© ¢¥à設ë (à¨á. 20.2 ). „¥à¥¢®
Bk ᪫¥¥­® ¨§ ¤¢ãå íª§¥¬¯«ï஢ ¤¥à¥¢ Bk;1 : ª®à¥­ì ®¤­®£® ¨§ ­¨å
®¡ê¥­ á ¬ë¬ «¥¢ë¬ ¯®â®¬ª®¬ ª®à­ï ¤à㣮£®.  à¨á. 20.2¡ ¯®ª § ­ë ¡¨­®¬¨ «ì­ë¥ ¤¥à¥¢ìï B0{B4.
396
ƒ« ¢ 20 ¨­®¬¨ «ì­ë¥ ªãç¨
depth = £«ã¡¨­ ¨áã­®ª 20.2 ( ) ¥ªãàᨢ­®¥ ®¯à¥¤¥«¥­¨¥ ¡¨­®¬¨ «ì­®£® ¤¥à¥¢ Bk (âà¥ã£®«ì­¨ª¨ | ¯®¤¤¥à¥¢ìï á ¢ë¤¥«¥­­ë¬ ª®à­¥¬). (¡) „¥à¥¢ìï B0 {B4 . –¨äàë 㪠§ë¢ îâ £«ã¡¨­ã ¢¥à設 ¢ ¤¥à¥¢¥ B4 . (¢) „à㣮¥ ¯à¥¤áâ ¢«¥­¨¥ ¤¥à¥¢ Bk .
‹¥¬¬ 20.1 (‘¢®©á⢠¡¨­®¬¨ «ì­ëå ¤¥à¥¢ì¥¢). „¥à¥¢® Bk
1. ᮤ¥à¦¨â 2k ¢¥à設;
2. ¨¬¥¥â ¢ëá®âã k;
3. ¨¬¥¥â Cki ¢¥à設 £«ã¡¨­ë i;
4. ¨¬¥¥â ª®à¥­ì, ïî騩áï ¢¥à設®© á⥯¥­¨ k; ¢á¥ ®áâ «ì­ë¥
¢¥àè¨­ë ¨¬¥îâ ¬¥­ìèãî á⥯¥­ì; ¤¥â¨ ª®à­ï ïîâáï ª®à­ï¬¨ ¯®¤¤¥à¥¢ì¥¢ Bk;1 ; Bk;2; : : :; B1; B0 (á«¥¢ ­ ¯à ¢®).
„®ª § ⥫ìá⢮. ¯à®¢®¤¨âáï ¨­¤ãªæ¨¥© ¯® k. „«ï B0 ¢áñ ®ç¥¢¨¤­®. ãáâì ã⢥ত¥­¨¥ ¢¥à­® ¤«ï Bk;1 . ’®£¤ :
1. „¥à¥¢® Bk á®á⮨⠨§ ¤¢ãå ª®¯¨© Bk;1 ¨ ¯®â®¬ã ᮤ¥à¦¨â
k
;
2 1 + 2k;1 = 2k ¢¥à設.
2. à¨ ᮥ¤¨­¥­¨¨ ¤¢ãå ª®¯¨© ®¯¨á ­­ë¬ ᯮᮡ®¬ ¢ëá®â 㢥«¨ç¨¢ ¥âáï ­ 1.
3. ãáâì D(k; i) | ç¨á«® ¢¥à設 £«ã¡¨­ë i ¢ ¤¥à¥¢¥ Bk . ® ¯®áâ஥­¨î ¤¥à¥¢ Bk (á¬. à¨á. 20.2 ) ¨¬¥¥â ¬¥áâ® à ¢¥­á⢮
D(k; i) = D(k ; 1; i) + D(k ; 1; i ; 1) = Cki ;1 + Cki;;11 = Cki :
¨­®¬¨ «ì­ë¥ ¤¥à¥¢ìï ¨ ¡¨­®¬¨ «ì­ë¥ ªãç¨
397
(Œë ¢®á¯®«ì§®¢ «¨áì ¨­¤ãªâ¨¢­ë¬ ¯à¥¤¯®«®¦¥­¨¥¬ ¨ ã¯à. 6.1-7.)
4. ® ¯à¥¤¯®«®¦¥­¨î ¨­¤ãªæ¨¨ ¢á¥ ¢¥àè¨­ë ¢ Bk;1 ¨¬¥îâ á⥯¥­ì ­¥ ¡®«ìè¥ k ; 1, â ª çâ® ª®à¥­ì ¤¥à¥¢ Bk ¡ã¤¥â ¢ ­ñ¬ ¥¤¨­á⢥­­®© ¢¥à設®© á⥯¥­¨ k. ‚ ¯à ¢®¬ ¨§ ᪫¥¨¢ ¥¬ëå ¤¥à¥¢ì¥¢
¤¥â¨ ª®à­ï ¡ë«¨ ¢¥à設 ¬¨ ¤¥à¥¢ì¥¢ Bk;2 ; Bk;3; : : :; B1; B0, ⥯¥àì
ª ­¨¬ ¤®¡ ¢¨«®áì á«¥¢ ¥é¥ ¤¥à¥¢® Bk;1 .
‘«¥¤á⢨¥ 20.2. Œ ªá¨¬ «ì­ ï á⥯¥­ì ¢¥àè¨­ë ¢ ¡¨­®¬¨ «ì­®¬
¤¥à¥¢¥ á n ¢¥à設 ¬¨ à ¢­ lg n.
„®ª § ⥫ìá⢮. ˆá¯®«ì§ã¥¬ ã⢥ত¥­¨ï 1 ¨ 4 «¥¬¬ë 20.1.
 §¢ ­¨¥ "¡¨­®¬¨ «ì­®¥ ¤¥à¥¢®" á¢ï§ ­® á ã⢥ত¥­¨¥¬ 3
«¥¬¬ë 20.1 (ç¨á«® Cki ­ §ë¢ îâ ¡¨­®¬¨ «ì­ë¬ ª®íää¨æ¨¥­â®¬).
‘¬. â ª¦¥ ã¯à. 20.1-3.
20.1.2 ¨­®¬¨ «ì­ë¥ ªãç¨
¨­®¬¨ «ì­ ï ªãç (binomial heap) | íâ® ­ ¡®à H ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ì¥¢, ¢ ¢¥à設 å ª®â®àëå § ¯¨á ­ë ª«îç¨ (ç¨á« )
¨, ¢®§¬®¦­®, ¤®¯®«­¨â¥«ì­ ï ¨­ä®à¬ æ¨ï. à¨ í⮬ ¤®«¦­ë
¡ëâì ¢ë¯®«­¥­ë â ª¨¥ ᢮©á⢠¡¨­®¬¨ «ì­®© ªãç¨ (binomial-heap
properties):
1. Š ¦¤®¥ ¤¥à¥¢® ¢ H 㯮à冷祭® ¢ á¬ëá«¥ ªãç (is heap-ordered),
â. ¥. ª«îç ª ¦¤®© ¢¥àè¨­ë ­¥ ¬¥­ìè¥, 祬 ª«îç ¥ñ த¨â¥«ï.
2. ‚ H ­¥â ¤¢ãå ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ì¥¢ ®¤­®£® à §¬¥à (á ®¤¨­ ª®¢®© á⥯¥­ìî ª®à­ï).
¥à¢®¥ ᢮©á⢮ £ à ­â¨àã¥â, çâ® ª®à¥­ì ª ¦¤®£® ¨§ ¤¥à¥¢ì¥¢
¨¬¥¥â ­ ¨¬¥­ì訩 ª«îç á।¨ ¥£® ¢¥à設.
ˆ§ ¢â®à®£® ᢮©á⢠᫥¤ã¥â, çâ® á㬬 à­®¥ ª®«¨ç¥á⢮ ¢¥à設
¢ ¡¨­®¬¨ «ì­®© ªãç¥ H ®¤­®§­ ç­® ®¯à¥¤¥«ï¥â à §¬¥àë ¢å®¤ïé¨å
¢ ­¥ñ ¤¥à¥¢ì¥¢. ‚ á ¬®¬ ¤¥«¥, ®¡é¥¥ ç¨á«® ¢¥à設, à ¢­®¥ n, ¥áâì
á㬬 à §¬¥à®¢ ®â¤¥«ì­ëå ¤¥à¥¢ì¥¢, ª®â®àë¥ áãâì à §«¨ç­ë¥ á⥯¥­¨ ¤¢®©ª¨, â ª®¥ ¯à¥¤áâ ¢«¥­¨¥ ¥¤¨­á⢥­­® (¤¢®¨ç­ ï á¨á⥬ áç¨á«¥­¨ï). Žâáî¤ ¢ë⥪ ¥â â ª¦¥, çâ® ªãç á n í«¥¬¥­â ¬¨ á®á⮨⠨§ ­¥ ¡®«¥¥ 祬 blg nc + 1 ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ì¥¢.
 à¨á. 20.3 ¯®ª § ­ ¡¨­®¬¨ «ì­ ï ªãç H á 13 ¢¥à設 ¬¨.
‚ ¤¢®¨ç­®© á¨á⥬¥ 13 § ¯¨áë¢ ¥âáï ª ª 1101 (13 = 8 + 4 + 1), ¨
H c®á⮨⠨§ ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ì¥¢ B3 , B2 ¨ B0 (á ª®«¨ç¥á⢮¬
¢¥à設 8, 4 ¨ 1).
à¥¤áâ ¢«¥­¨¥ ¡¨­®¬¨ «ì­ëå ªãç ¢ ¯à®£à ¬¬¥
Š ª ¯®ª § ­® ­ à¨á. 20.3¡, ª ¦¤®¥ ¡¨­®¬¨ «ì­®¥ ¤¥à¥¢® ¢ ¡¨­®¬¨ «ì­®© ªãç¥ åà ­¨âáï ¢ ¯à¥¤áâ ¢«¥­¨¨ "«¥¢ë© ॡñ­®ª, ¯à ¢ë©
á®á¥¤" (á¬. à §¤. 11.4). Š ¦¤ ï ¢¥à設 ¨¬¥¥â ¯®«¥ key (ª«îç), 398
ƒ« ¢ 20 ¨­®¬¨ «ì­ë¥ ªãç¨
¨áã­®ª 20.3 ¨­®¬¨ «ì­ ï ªãç H á n = 13 ¢¥à設 ¬¨. ( ) Šãç á®á⮨â
¨§ ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ì¥¢ B0 , B2 ¨ B3 , ¨¬¥îé¨å ᮮ⢥âá⢥­­® 1, 4 ¨ 8 ¢¥à設 (¢á¥£® 13 ¢¥à設). Š«îç ª ¦¤®© ¢¥àè¨­ë ­¥ ¬¥­ìè¥, 祬 ª«îç ¥ñ த¨â¥«ï. Š®à­¨ ¤¥à¥¢ì¥¢ á¢ï§ ­ë ¢ ª®à­¥¢®© ᯨ᮪ ¢ ¯®à浪¥ ¢®§à áâ ­¨ï á⥯¥­¨.
(¡) à¥¤áâ ¢«¥­¨¥ ªãç¨ ¢ ¯à®£à ¬¬¥. Š ¦¤®¥ ¡¨­®¬¨ «ì­®¥ ¤¥à¥¢® åà ­¨âáï ¢
¯à¥¤áâ ¢«¥­¨¨ "«¥¢ë© ॡñ­®ª, ¯à ¢ë© á®á¥¤", ¨ ¢ ª ¦¤®© ¢¥à設¥ åà ­¨âáï
¥ñ á⥯¥­ì (degree ).
â ª¦¥ åà ­¨â ¤®¯®«­¨â¥«ì­ãî ¨­ä®à¬ æ¨î. Šà®¬¥ ⮣®, ª ¦¤ ï
¢¥à設 x åà ­¨â 㪠§ ⥫¨ p[x] (த¨â¥«ì), child[x] (á ¬ë© «¥¢ë©
¨§ ¤¥â¥©) ¨ sibling[x] ("á«¥¤ãî騩 ¯® áâ à設áâ¢ã ¡à â"). …᫨
x | ª®à¥­ì, â® p[x] = nil; ¥á«¨ x ­¥ ¨¬¥¥â ¤¥â¥©, â® child[x] = nil,
¥á«¨ x ï¥âáï á ¬ë¬ ¯à ¢ë¬ ॡñ­ª®¬ ᢮¥£® த¨â¥«ï, â®
sibling[x] = nil. Š ¦¤ ï ¢¥à設 x ᮤ¥à¦¨â â ª¦¥ ¯®«¥ degree[x]
¢ ª®â®à®¬ åà ­¨âáï á⥯¥­ì (ç¨á«® ¤¥â¥©) ¢¥à設ë x.
 à¨á. 20.3 ¯®ª § ­® â ª¦¥, çâ® ª®à­¨ ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ì¥¢,
á®áâ ¢«ïîé¨å ¡¨­®¬¨ «ì­ãî ªãçã, á¢ï§ ­ë ¢ ᯨ᮪, ­ §ë¢ ¥¬ë©
ª®à­¥¢ë¬ ᯨ᪮¬ (root list) ¢ ¯®à浪¥ ¢®§à áâ ­¨ï á⥯¥­¥©. Š ª ¬ë
¢¨¤¥«¨, ¢ ªãç¥ á n ¢¥à設 ¬¨ á⥯¥­¨ ª®à­¥¢ëå ¢¥à設 ®¡à §ãîâ
¯®¤¬­®¦¥á⢮ ¬­®¦¥á⢠f0; 1; : : :; blg ncg.
„«ï ¯®áâ஥­¨ï ª®à­¥¢®£® ᯨ᪠¨á¯®«ì§ã¥âáï ¯®«¥ sibling : ¤«ï
ª®à­¥¢®© ¢¥àè¨­ë ®­® 㪠§ë¢ ¥â ­ á«¥¤ãî騩 í«¥¬¥­â ª®à­¥¢®£®
ᯨ᪠(¨ ᮤ¥à¦¨â nil ¤«ï ¯®á«¥¤­¥£® ª®à­ï ¢ ª®à­¥¢®¬ ᯨ᪥).
Ž¯¥à 樨 á ¡¨­®¬¨ «ì­ë¬¨ ªãç ¬¨
399
¨áã­®ª 20.4 ¨­®¬¨ «ì­®¥ ¤¥à¥¢® B4 á ¢¥à設 ¬¨, ¯à®­ã¬¥à®¢ ­­ë¬¨ ¢ ¯®à浪¥ "«¥¢®¥ ¯®¤¤¥à¥¢®, : : : , ¯à ¢®¥ ¯®¤¤¥à¥¢®, ¢¥à設 "; ­®¬¥à § ¯¨á ­ë ¢
¤¢®¨ç­®© á¨á⥬¥.
„®áâ㯠ª ¡¨­®¬¨ «ì­®© ªãç¥ H ®áãé¥á⢫ï¥âáï á ¯®¬®éìî ¯®«ï
head[H ] | 㪠§ â¥«ï ­ ¯¥à¢ë© ª®à¥­ì ¢ ª®à­¥¢®¬ ᯨ᪥ ªãç¨ H .
…᫨ ªãç H ¯ãáâ , â® head[H ] = nil.
“¯à ¦­¥­¨ï
20.1-1 ãáâì x | ¢¥à設 ®¤­®£® ¨§ ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ì¥¢ ¢
¡¨­®¬¨ «ì­®© ªãç¥, ¯à¨çñ¬ sibling[x] 6= nil. Š ª ᮮ⭮áïâáï §­ 祭¨ï degree[sibling[x]] ¨ degree[x]? (Žâ¢¥â § ¢¨á¨â ®â ⮣®, ï¥âáï
«¨ x ª®à­¥¬.)
20.1-2 ãáâì x | ­¥ª®à­¥¢ ï ¢¥à設 ¡¨­®¬¨ «ì­®£® ¤¥à¥¢ .
‘à ¢­¨âì degree[p[x]] ¨ degree[x].
20.1-3  ᯮ«®¦¨¬ ¢¥àè¨­ë ¡¨­®¬¨ «ì­®£® ¤¥à¥¢ Bk ¢ â ª®¬
¯®à浪¥, çâ®¡ë ª ¦¤ ï ¢¥à設 á«¥¤®¢ « § ᢮¨¬¨ ¯®â®¬ª ¬¨.
à¨ í⮬ á­ ç « ¨¤ãâ ¯®â®¬ª¨ ¥ñ «¥¢®£® ॡñ­ª , § ⥬ á ¬
íâ®â ॡ¥­®ª, § ⥬ ¯®â®¬ª¨ á«¥¤ãî饣® ॡ¥­ª , ®­ á ¬ ¨ â. ¤.
(postorder walk). à®­ã¬¥à㥬 ¢¥à設ë, § ¯¨á ¢ ­®¬¥à ¢ ¤¢®¨ç­®© á¨á⥬¥ áç¨á«¥­¨ï (à¨á. 20.4). ®ª ¦¨â¥, çâ® £«ã¡¨­ ¢¥à設ë
®¯à¥¤¥«ï¥âáï ç¨á«®¬ ¥¤¨­¨æ (ª®à¥­ì ¨¬¥¥â ®¤­¨ ¥¤¨­¨æë, ¥£® ¤¥â¨
­ ®¤­ã ¥¤¨­¨æã ¬¥­ìè¥ ¨ â. ¤.), á⥯¥­ì ¢¥à設ë à ¢­ï¥âáï ç¨á«ã ¥¤¨­¨æ ã ¯à ¢®£® ªà ï ¤¢®¨ç­®© § ¯¨á¨. ‘ª®«ìª® ¨¬¥¥âáï ¤¢®¨ç­ëå áâப ¤«¨­ë k, ᮤ¥à¦ é¨å ஢­® j ¥¤¨­¨æ, ¨ £¤¥ ­ 室ïâáï
ᮮ⢥âáâ¢ãî騥 ¨¬ ¢¥à設ë?
20.2 Ž¯¥à 樨 á ¡¨­®¬¨ «ì­ë¬¨ ªãç ¬¨
‚ í⮬ à §¤¥«¥ ¯à¨¢¥¤¥­ë ॠ«¨§ 樨 ®¯¥à 権 á ¡¨­®¬¨ «ì­ë¬¨ ªãç ¬¨. ‚६ï à ¡®âë íâ¨å ®¯¥à 権 㪠§ ­® ¢ â ¡«¨æ¥ 20.1.
Œë ¤®ª ¦¥¬ ⮫쪮 ¢¥àå­¨¥ ®æ¥­ª¨, ®áâ ¢«ïï ­¨¦­¨¥ ¢ ª ç¥á⢥
ã¯à. 20.2-10.
‘®§¤ ­¨¥ ­®¢®© ªãç¨
à®æ¥¤ãà Make-Binomial-Heap ᮧ¤ ñâ ¨ ¢®§¢à é ¥â ®¡ê¥ªâ H , ¤«ï ª®â®à®£® head[H ] = nil (¢à¥¬ï à ¡®âë (1)).
400
ƒ« ¢ 20 ¨­®¬¨ «ì­ë¥ ªãç¨
®¨áª ¬¨­¨¬ «ì­®£® ª«îç à®æ¥¤ãà Binomial-Heap-Minimum ¢®§¢à é ¥â 㪠§ â¥«ì ­ ¢¥à設ã á ¬¨­¨¬ «ì­ë¬ ª«î箬 ¢ ¡¨­®¬¨ «ì­®© ªãç¥ H , á®áâ®ï饩 ¨§ n ¢¥à設. Œë ¨á¯®«ì§ã¥¬ á¯¥æ¨ «ì­®¥ §­ 祭¨¥ 1, ª®â®à®¥
¡®«ìè¥ ¢á¥å §­ 祭¨© ª«î祩 (á¬. ã¯à. 20.2-5).
Binomial-Heap-Minimum(H )
1 y nil
2 x head[H ]
3 min 1
4 while x =
6 nil
5
do if key[x] < min
6
then min key[x]
7
y x
8
x sibling[x]
9 return y
‚ ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ìïå ­ ¨¬¥­ì訥 í«¥¬¥­âë áâ®ïâ ¢ ª®à­ïå, â ª çâ® ¤®áâ â®ç­® ¢ë¡à âì ¬¨­¨¬ «ì­ë© í«¥¬¥­â ª®à­¥¢®£®
ᯨ᪠. à®æ¥¤ãà Binomial-Heap-Minimum ¯à®á¬ âਢ ¥â íâ®â
ᯨ᮪, åà ­ï ¢ ¯¥à¥¬¥­­®© min ¬¨­¨¬ «ì­®¥ ¨§ ¯à®á¬®â७­ëå
§­ 祭¨©, ¢ ¯¥à¥¬¥­­®© y | ¢¥à設ã, £¤¥ ®­® ¤®á⨣ ¥âáï.
 ¯à¨¬¥à, ¤«ï ªãç¨ à¨á. 20.3 ¯à®æ¥¤ãà Binomial-HeapMinimum ¢®§¢à é ¥â 㪠§ â¥«ì ­ ¢¥à設ã á ª«î箬 1.
„«¨­ ª®à­¥¢®£® ᯨ᪠­¥ ¯à¥¢®á室¨â blg nc +1, ¯®í⮬㠢६ï
à ¡®âë ¯à®æ¥¤ãàë Binomial-Heap-Minimum ¥áâì O(lg n).
20.2.1 Ž¡ê¥¤¨­¥­¨¥ ¤¢ãå ªãç
Ž¯¥à æ¨ï Binomial-Heap-Union, ᮥ¤¨­ïîé ï ¤¢¥ ¡¨­®¬¨ «ì­ë¥ ªãç¨ ¢ ®¤­ã, ¨á¯®«ì§ã¥âáï ¢ ª ç¥á⢥ ¯®¤¯à®£à ¬¬ë ¡®«ì設á⢮¬ ®áâ «ì­ëå ®¯¥à 権.
[ˆ¤¥ï ¯à®áâ : ¯ãáâì ¥áâì ¤¢¥ ¡¨­®¬¨ «ì­ë¥ ªãç¨ á m ¨ n í«¥¬¥­â ¬¨.  §¬¥àë ¤¥à¥¢ì¥¢ ¢ ­¨å ᮮ⢥âáâ¢ãîâ á« £ ¥¬ë¬ ¢ à §«®¦¥­¨ïå ç¨á¥« m ¨ n ¢ á㬬ã á⥯¥­¥© ¤¢®©ª¨. à¨ á«®¦¥­¨¨ á⮫¡¨ª®¬ ¢ ¤¢®¨ç­®© á¨á⥬¥ ¯à®¨á室ïâ ¯¥à¥­®áë, ª®â®àë¥ á®®â¢¥âáâ¢ãîâ á«¨ï­¨ï¬ ¤¢ãå ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ì¥¢ Bk;1 ¢ ¤¥à¥¢® Bk .
 ¤® ⮫쪮 ¯®á¬®âà¥âì, ¢ ª ª®¬ ¨§ ᫨¢ ¥¬ëå ¤¥à¥¢ì¥¢ ª®à¥­ì
¬¥­ìè¥, ¨ áç¨â âì ¥£® ¢¥àå­¨¬.]
Ž¯¨è¥¬ ®¯¥à æ¨î ®¡ê¥¤¨­¥­¨ï ¯®¤à®¡­®.  ç­ñ¬ á® ¢á¯®¬®£ ⥫쭮© ®¯¥à 樨 Binomial-Link, ª®â®à ï ᮥ¤¨­ï¥â ¤¢ ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ ®¤­®£® à §¬¥à (Bk;1 ), ª®à­ï¬¨ ª®â®àëå ïîâáï
¢¥à設ë y ¨ z, ¤¥« ï ¢¥à設ã z த¨â¥«¥¬ ¢¥à設ë y ¨ ª®à­¥¬
¤¥à¥¢ Bk .
Ž¯¥à 樨 á ¡¨­®¬¨ «ì­ë¬¨ ªãç ¬¨
401
Binomial-Link(y; z )
1
2
3
4
p[y ]
z
sibling[y ] child[z ]
child[z ] y
degree[z ] degree[z ] + 1
‚६ï à ¡®âë í⮩ ¯à®æ¥¤ãàë | O(1) (㤠ç­ë¬ ®¡à §®¬ ®ª §ë¢ ¥âáï, çâ® ¢¥à設ã y ­ ¤® ¤®¡ ¢¨âì ¢ ­ ç «® ᯨ᪠¤¥â¥© ¢¥à設ë z, çâ® «¥£ª® ᤥ« âì ¢ ¯à¥¤áâ ¢«¥­¨¨ "«¥¢ë© ॡñ­®ª, ¯à ¢ë©
á®á¥¤").
’¥¯¥àì ­ ¯¨è¥¬ ¯à®æ¥¤ãàã Binomial-Heap-Union, ª®â®à ï ®¡ê¥¤¨­ï¥â ¡¨­®¬¨ «ì­ë¥ ªãç¨ H1 ¨ H2 (á ¬¨ ªãç¨ ¯à¨ í⮬ ¨á祧 îâ). ®¬¨¬® ¯à®æ¥¤ãàë Binomial-Link, ­ ¬ ¯®­ ¤®¡¨âáï ¯à®æ¥¤ãà Binomial-Heap-Merge, ª®â®à ï ᫨¢ ¥â ª®à­¥¢ë¥ ᯨ᪨
ªãç H1 ¨ H2 ¢ ¥¤¨­ë© ᯨ᮪, ¢¥àè¨­ë ¢ ª®â®à®¬ ¨¤ãâ ¢ ¯®à浪¥ ¢®§à áâ ­¨ï á⥯¥­¥©. (â ¯à®æ¥¤ãà ­ «®£¨ç­ ¯à®æ¥¤ãà¥
Merge ¨§ à §¤¥« 1.3.1, ¨ ¥ñ ¬ë ®áâ ¢«ï¥¬ ç¨â â¥«î ¢ ª ç¥á⢥
ã¯à. 20.2-2.)
Binomial-Heap-Union(H1; H2)
1 H Make-Binomial-Heap()
2 head[H ] Binomial-Heap-Merge (H1; H2)
3 ®á¢®¡®¤¨âì ¯ ¬ïâì, § ­ïâãî ¯®¤ H1 ¨ H2
(á®åà ­¨¢ ᯨ᪨, ­ ª®â®àë¥ ãª §ë¢ îâ H1 ¨ H2)
4 if head[H ] = nil
5
then return H
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
prev-x nil
x head[H ]
next-x sibling[x]
while next-x =
6 nil
do if (degree[x] 6= degree[next-x]) or
(sibling[next-x] =
6 nil
and degree[sibling[next-x]] = degree[x])
then prev-x x
. ‘«ãç ¨ 1 ¨ 2
x next-x
. ‘«ãç ¨ 1 ¨ 2
else if key[x] 6 key[next-x]
then sibling[x] sibling[next-x] . ‘«ãç © 3
Binomial-Link(next-x; x) . ‘«ãç © 3
else if prev-x = nil
. ‘«ãç © 4
then head[H ] next-x
. ‘«ãç © 4
else sibling[prev-x] next-x . ‘«ãç © 4
Binomial-Link(x; next-x) . ‘«ãç © 4
x next-x
. ‘«ãç © 4
next-x sibling[x]
return H
402
ƒ« ¢ 20 ¨­®¬¨ «ì­ë¥ ªãç¨
 à¨áã­ª¥ 20.5 ¯®ª § ­ ¯à¨¬¥à ®¡ê¥¤¨­¥­¨ï ¤¢ãå ªãç, ¢ ª®â®à®¬
¢áâà¥ç îâáï ¢á¥ ç¥âëॠá«ãç ï, ¯à¥¤ãᬮâ७­ë¥ ¢ ⥪á⥠¯à®æ¥¤ãàë.
 ¡®â ¯à®æ¥¤ãàë Binomial-Heap-Union ­ 稭 ¥âáï á ᮥ¤¨­¥­¨ï ª®à­¥¢ëå ᯨ᪮¢ ªãç H1 ¨ H2 ¢ ¥¤¨­ë© ᯨ᮪ H , ¢ ª®â®à®¬
ª®à­¥¢ë¥ ¢¥àè¨­ë ¨¤ãâ ¢ ¯®à浪¥ ¢®§à áâ ­¨ï ¨å á⥯¥­¥© (¢ë§®¢
Binomial-Heap-Merge).
‚ ¯®«ã稢襬áï ᯨ᪥ ¬®¦¥â ¡ëâì ¤® ¤¢ãå ¢¥à設 ®¤¨­ ª®¢®©
á⥯¥­¨. ®íâ®¬ã ¬ë ­ 稭 ¥¬ ᮥ¤¨­ïâì ¤¥à¥¢ìï à ¢­®© á⥯¥­¨ á
¯®¬®éìî ¯à®æ¥¤ãàë Binomial-Link ¨ ¤¥« ¥¬ íâ® ¤® â¥å ¯®à, ¯®ª ¤¥à¥¢ì¥¢ ®¤¨­ ª®¢®© á⥯¥­¨ ­¥ ®áâ ­¥âáï. â®â ¯à®æ¥áá ᮮ⢥âáâ¢ã¥â á«®¦¥­¨î á⮫¡¨ª®¬, ¨ ¢à¥¬ï ¥£® à ¡®âë ¯à®¯®à樮­ «ì­®
ç¨á«ã ª®à­¥¢ëå ¢¥à設.
Ž¯¨è¥¬ à ¡®âã ¯à®æ¥¤ãàë ¡®«¥¥ ¯®¤à®¡­®. ‘­ ç « (áâப¨ 1{3)
¯à®¨á室¨â ᫨ﭨ¥ ª®à­¥¢ëå ᯨ᪮¢ ¡¨­®¬¨ «ì­ëå ªãç H1 ¨ H2
¢ ®¤¨­ ª®à­¥¢®© ᯨ᮪ H . à®æ¥¤ãà Binomial-Heap-Merge ­ ª ¦¤®¬ è £¥ ᢮¥© à ¡®âë áà ¢­¨¢ ¥â ­ ç « ᯨ᪮¢ H1 ¨ H2 ¨
¢¥à設ã á ¬¥­ì襩 á⥯¥­ìî ¤®¡ ¢«ï¥â ¢ ª®­¥æ ᯨ᪠H . à¨ í⮬
¯®à冷ª á®åà ­ï¥âáï, â ª çâ® ¢ ᯨ᪥ H á⥯¥­¨ ª®à­¥¢ëå ¢¥à設
¨¤ãâ ¢ ­¥ã¡ë¢ î饬 ¯®à浪¥. à®æ¥¤ãà Binomial-Heap-Merge
âॡã¥â ¢à¥¬¥­¨ O(m), £¤¥ m | á㬬 à­ ï ¤«¨­ ᯨ᪮¢ H1 ¨ H2.
…᫨ ªãç¨ H1 ¨ H2 ¯ãáâë, ¡ã¤¥â ¢®§¢à 饭 ¯ãáâ ï ªãç (áâப¨
4{5). „ «¥¥ ¬ë ¯à¥¤¯®« £ ¥¬, ç⮠ᯨ᮪ H ᮤ¥à¦¨â å®âï ¡ë ®¤­ã
¢¥à設ã.
‚ 横«¥ ¨á¯®«ì§ãîâáï âਠ㪠§ ⥫ï:
x 㪠§ë¢ ¥â ­ ⥪ãéãî ª®à­¥¢ãî ¢¥à設ã;
prev-x 㪠§ë¢ ¥â ­ ¯à¥¤è¥áâ¢ãîéãî ¢¥à設ã (sibling[prev-x] =
x);
next-x 㪠§ë¢ ¥â ­ ¢¥à設ã, á«¥¤ãîéãî § x ¢ ᯨ᪥
(sibling[x] = next-x).
ˆ§­ ç «ì­® ¢ ᯨ᪥ H ¬®¦¥â ¡ëâì ­¥ ¡®«¥¥ ¤¢ãå ¢¥à設 ¤ ­­®©
á⥯¥­¨, â ª ª ª ª ¦¤ ï ¨§ ¡¨­®¬¨ «ì­ëå ªãç H1 ¨ H2 ᮤ¥à¦¨â ­¥
¡®«¥¥ ®¤­®© ¢¥àè¨­ë ¤ ­­®© á⥯¥­¨. ®áª®«ìªã á⥯¥­¨ ­¥ ã¡ë¢ îâ, ¢¥àè¨­ë ®¤¨­ ª®¢®© á⥯¥­¨ ¡ã¤ãâ á®á¥¤­¨¬¨.
à¨ á«®¦¥­¨¨ ¤¢®¨ç­ëå ç¨á¥« á⮫¡¨ª®¬ ¢ ®¤­®¬ à §à拉 ¬®¦¥â
¡ëâì âਠ¥¤¨­¨æë (¤¢¥ ¢ á« £ ¥¬ëå ¨ ®¤­ § áçñâ ¯¥à¥­®á ). ®
­ «®£¨ç­ë¬ ¯à¨ç¨­ ¬ ¢ 室¥ ¢ë¯®«­¥­¨ï ¯à®æ¥¤ãàë BinomialHeap-Union ¢ ᯨ᪥ H ¬®£ãâ ®ª § âìáï âਠ¢¥àè¨­ë ®¤¨­ ª®¢®©
á⥯¥­¨.
®í⮬ã, ¢¨¤ï ¢ áâப¥ 10 ¤¢¥ á®á¥¤­¨¥ ¢¥àè¨­ë ®¤¨­ ª®¢®© á⥯¥­¨, ¬ë ¯à®¢¥à塞, ­¥ ¨¤ñâ «¨ § ­¨¬¨ ¥éñ ®¤­ ¢¥à設 ⮩ ¦¥
á⥯¥­¨.
‡ ¬¥â¨¬, çâ® ¢ ­ ç «¥ ª ¦¤®© ¨â¥à 樨 横« while (áâப¨ 9{
21) ­¨ ®¤¨­ ¨§ 㪠§ ⥫¥© x ¨ next-x ­¥ à ¢¥­ nil.
‘«ãç © 1, ¨§®¡à ¦¥­­ë© ­ à¨áã­ª¥ 20.6 , ¢®§­¨ª ¥â, ª®£¤ Ž¯¥à 樨 á ¡¨­®¬¨ «ì­ë¬¨ ªãç ¬¨
403
¨áã­®ª 20.5 ˆá¯®«­¥­¨¥ ¯à®æ¥¤ãàë Binomial-Heap-Union. ( ) ¨­®¬¨ «ì­ë¥ ªãç¨ H1 ¨ H2 . (¡) Šãç H , ¢®§­¨ª îé ï ¯®á«¥ ¢ë¯®«­¥­¨ï BinomialHeap-Merge(H1 ; H2 ); ¢ ¯¥à¥¬¥­­®© x ­ 室¨âáï ¯¥à¢ë© ª®à¥­ì ¨§ ᯨ᪠. Ž¡¥
¢¥à設ë x ¨ next-x ¨¬¥îâ á⥯¥­ì 0, ¯à¨ç¥¬ key[x] < key[next-x] (á«ãç © 3).
(¢) ®á«¥ á¢ï§ë¢ ­¨ï ¢¥à設 (Binomial-Link) x áâ ­®¢¨âáï ¯¥à¢ë¬ ¨§ âàñå
ª®à­¥© ®¤¨­ ª®¢®© á⥯¥­¨ (á«ãç © 2) (£) “ª § ⥫¨ ¯à®¤¢¨­ãâë ¢¯¥àñ¤ ­ ®¤­ã
¯®§¨æ¨î ¢¤®«ì ª®à­¥¢®£® ᯨ᪠, x ï¥âáï ¯¥à¢ë¬ ¨§ ¤¢ãå ª®à­¥© ®¤¨­ ª®¢®©
á⥯¥­¨ (á«ãç © 4). (¤) ®á«¥ á¢ï§ë¢ ­¨ï ¢¥à設 ¢®§­¨ª ¥â á«ãç © 3. (¥) …éñ
®¤­® á¢ï§ë¢ ­¨¥ ¯à¨¢®¤¨â ª á«ãç î 1 (á⥯¥­ì ¢¥à設ë x à ¢­ 3, á⥯¥­ì
next-x à ¢­ 4). à®¤¢¨¦¥­¨¥ 㪠§ ⥫¥© ¯à¨¢¥¤¥â ª ¢ë室㠨§ 横« , â ª ª ª
next-x áâ ­¥â à ¢­ë¬ nil.
404
ƒ« ¢ 20 ¨­®¬¨ «ì­ë¥ ªãç¨
degree[x] 6= degree[next-x], â. ¥. ª®£¤ x ï¥âáï ª®à­¥¬ ¤¥à¥¢ Bk , next-x | ª®à­¥¬ ¤¥à¥¢ Bl ¤«ï ­¥ª®â®à®£® l > k. „ ­­®¬ã á«ãç î
ᮮ⢥âáâ¢ãîâ áâப¨ 11{12. ‚ í⮬ á«ãç ¥ ¬ë ¯à®áâ® ¯à®¤¢¨£ ¥¬
㪠§ ⥫¨ ­ ®¤­ã ¯®§¨æ¨î (®¡­®¢«¥­¨¥ 㪠§ ⥫ï next-x ¡ã¤¥â ¢ë¯®«­¥­® ¢ áâப¥ 21).
‘«ãç © 2, ¨§®¡à ¦¥­­ë© ­ à¨áã­ª¥ 20.6¡, ¢®§­¨ª ¥â, ª®£¤ ¢¥à-
設 x ï¥âáï ¯¥à¢®© á।¨ âàñå ª®à­¥¢ëå ¢¥à設 ®¤¨­ ª®¢®©
á⥯¥­¨ (degree[x] = degree[next-x] = degree[sibling[next-x]]). ˆ ¢ í⮬
á«ãç ¥ ¬ë ¯à®¤¢¨£ ¥¬ 㪠§ ⥫¨ ¢¤®«ì ᯨ᪠.
‚ áâப¥ 10 ¬ë ¯à®¢¥à塞, ¨¬¥¥â «¨ ¬¥áâ® ®¤¨­ ¨§ á«ãç ¥¢
1 ¨«¨ 2, ¨ ¢ áâப å 11{12 ¢ë¯®«­ï¥¬ ¯à®¤¢¨¦¥­¨¥ 㪠§ ⥫¥©.
‚ á«ãç ïå 3 ¨ 4 § ¢¥à設®© x á«¥¤ã¥â ஢­® ®¤­ ¢¥à設 ⮩
¦¥ á⥯¥­¨: degree[x] = degree[next-x] =
6 degree[sibling[next-x]]. â®
¬®¦¥â ¯à®¨§®©â¨ ¯®á«¥ ®¡à ¡®âª¨ «î¡®£® ¨§ á«ãç ¥¢ 1{4, ­® ¯®á«¥
á«ãç ï 2 ¯à®¨§®©¤ñâ ­ ¢¥à­ïª . Œë á¢ï§ë¢ ¥¬ ¢¥à設ë x ¨ next-x;
ª ª ï ¨§ ­¨å ®áâ ñâáï ª®à­¥¬, § ¢¨á¨â ®â ⮣®, ª ª ᮮ⭮áïâáï
ª«îç¨ ¢ íâ¨å ¤¢ãå ¢¥à設 å.
‚ á«ãç ¥ 3 (à¨á. 20.6¢) key[x] 6 key[next-x], ¯®í⮬㠢¥à設 next-x ¯®¤¢¥è¨¢ ¥âáï ª ¢¥à設¥ x. ‘âப 14 㤠«ï¥â ¢¥à設ã
next-x ¨§ ª®à­¥¢®£® ᯨ᪠, áâப 15 ¤¥« ¥â ¢¥à設ã next-x «¥-
Ž¯¥à 樨 á ¡¨­®¬¨ «ì­ë¬¨ ªãç ¬¨
405
¨áã­®ª 20.6 —¥âëॠá«ãç ï ¢ ¯à®æ¥¤ãॠBinomial-Heap-Union.  ¢á¥å à¨áã­ª å ¢¥à設 x | ª®à¥­ì ¤¥à¥¢ Bk ¨ l > k. ( ) ‘«ãç © 1: degree[x] 6=
degree[next-x]. “ª § ⥫¨ ¯à®¤¢¨£ îâáï ­ ®¤­ã ¯®§¨æ¨î. (¡) ‘«ãç © 2:
degree[x] = degree[next-x] = degree[sibling[next-x]]. ˆ ¢ í⮬ á«ãç ¥ 㪠§ ⥫¨
¯à®¤¢¨£ îâáï, ¨ ¯à¨ á«¥¤ãî饩 ¨â¥à 樨 横« ¢®§­¨ª­¥â á«ãç © 3 ¨«¨ 4.
(¢) ‘«ãç © 3: degree[x] = degree[next-x] 6= degree[sibling[next-x]], ¨ key[x] 6
key[next-x]. Œë 㤠«ï¥¬ ¢¥à設ã next-x ¨§ ª®à­¥¢®£® ᯨ᪠¨ ¯®¤¢¥è¨¢ ¥¬
¥ñ ª ¢¥à設¥ x, ¯®«ãç ï ¤¥à¥¢® Bk+1 . (£) ‘«ãç © 4: degree[x] = degree[next-x] 6=
degree[sibling[next-x]], ¨ key[next-x] < key[x]. Œë 㤠«ï¥¬ ¢¥à設ã x ¨§ ª®à­¥¢®£®
ᯨ᪠¨ ¯®¤¢¥è¨¢ ¥¬ ¥ñ ª ¢¥à設¥ next-x, ®¯ïâì-â ª¨ ¯®«ãç ï ¤¥à¥¢® Bk+1 .
406
ƒ« ¢ 20 ¨­®¬¨ «ì­ë¥ ªãç¨
¢ë¬ ॡñ­ª®¬ ¢¥à設ë x.
‚ á«ãç ¥ 4 (à¨á. 20.6£) ¬¥­ì訩 ª«îç ¨¬¥¥â ¢¥à設 next-x, ¯®í⮬㠢¥à設 x ¯®¤¢¥è¨¢ ¥âáï ª ¢¥à設¥ next-x. ‘âப¨ 16{18
㤠«ïîâ ¢¥à設ã x ¨§ ª®à­¥¢®£® ᯨ᪠; ¢ ¦­® à §«¨ç âì, ï¥âáï «¨ ¢¥à設 x ¯¥à¢®© ¢ ᯨ᪥ (áâப 17) ¨«¨ ­¥â (áâப 18).
‘âப 19 ¤¥« ¥â ¢¥à設ã x «¥¢ë¬ ॡñ­ª®¬ ¢¥à設ë next-x, áâப 20 ®¡­®¢«ï¥â x ¤«ï á«¥¤ãî饩 ¨â¥à 樨.
‚ á«ãç ïå 3 ¨ 4 ®¡à §®¢ «®áì ­®¢®¥ Bk+1 -¤¥à¥¢®, ­ ª®â®à®¥ 㪠§ë¢ ¥â x. ‡ ­¨¬ ¬®¦¥â ­ 室¨âìáï ®â ­ã«ï ¤® ¤¢ãå ¤¥à¥¢ì¥¢ â ª®£®
¦¥ à §¬¥à .  á«¥¤ãî饩 ¨â¥à 樨 横« íâ® ¯à¨¢¥¤ñâ ª á«ãç ï¬
1, 3{4 ¨ 2 ᮮ⢥âá⢥­­®.
‚६ï à ¡®âë ¯à®æ¥¤ãàë Binomial-Heap-Union ¥áâì O(lg n),
£¤¥ n | á㬬 à­®¥ ç¨á«® ¢¥à設 ¢ ªãç å H1 ¨ H2: ¢ á ¬®¬ ¤¥«¥,
à §¬¥àë ª®à­¥¢ëå ᯨ᪮¢ ¢ ªãç å H1 ¨ H2 áãâì O(lg n) (ª®«¨ç¥á⢮ í«¥¬¥­â®¢ ¢ ®¡¥¨å ªãç å ­¥ ¡®«ìè¥ n), ¨ ¯®á«¥ ᫨ﭨï
¢ ᯨ᪥ H ¡ã¤¥â O(lg n) í«¥¬¥­â®¢. ˆ ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë
Binomial-Merge, ¨ ç¨á«® ¨â¥à 権 横« ¢ áâப å 9{21 ¯à®¯®à樮­ «ì­® ­ ç «ì­®© ¤«¨­¥ ᯨ᪠H . Š ¦¤ ï ¨â¥à æ¨ï âॡã¥â
¢à¥¬¥­¨ O(1), â ª çâ® ®¡é¥¥ ¢à¥¬ï ¤¥©á⢨⥫쭮 ¥áâì O(lg n).
„®¡ ¢«¥­¨¥ ¢¥à設ë
‘«¥¤ãîé ï ¯à®æ¥¤ãà ¤®¡ ¢«ï¥â í«¥¬¥­â x ¢ ¡¨­®¬¨ «ì­ãî
ªãçã H . à¥¤¯®« £ ¥âáï, çâ® í«¥¬¥­â x 㦥 à §¬¥éñ­ ¢ ¯ ¬ïâ¨,
¨ ¯®«¥ ª«îç key[x] § ¯®«­¥­®.
Binomial-Heap-Insert (H; x)
1 H 0 Make-Binomial-Heap()
2 p[x] nil
3 child[x] nil
4 sibling[x] nil
5 degree[x] 0
6 head[H 0] x
7 H Binomial-Heap-Union(H; H 0)
ˆ¤¥ï ¯à®áâ : § ¢à¥¬ï O(1) ¬ë ᮧ¤ ñ¬ ¡¨­®¬¨ «ì­ãî ªãçã H 0 ¨§
®¤­®© ¢¥à設ë x ¨ § ¢à¥¬ï O(lg n) ®¡ê¥¤¨­ï¥¬ ¥ñ á ¡¨­®¬¨ «ì­®© ªã祩 H , á®áâ®ï饩 ¨§ n ¢¥à設. (®á«¥ í⮣® ¯ ¬ïâì, ¢à¥¬¥­­® ®â¢¥¤ñ­­ ï ¤«ï H 0, ®á¢®¡®¦¤ ¥âáï). ¥ «¨§ æ¨ï ¯à®æ¥¤ãàë
Binomial-Heap-Insert ¡¥§ áá뫪¨ ­ Binomial-Heap-Union á®áâ ¢«ï¥â ã¯à. 20.2-8.
Ž¯¥à 樨 á ¡¨­®¬¨ «ì­ë¬¨ ªãç ¬¨
407
“¤ «¥­¨¥ ¢¥à設ë á ¬¨­¨¬ «ì­ë¬ ª«î箬
‘«¥¤ãîé ï ¯à®æ¥¤ãà ¨§ë¬ ¥â ¨§ ¡¨­®¬¨ «ì­®© ªãç¨ H ¢¥à設ã á ¬¨­¨¬ «ì­ë¬ ª«î箬 ¨ ¢®§¢à é ¥â 㪠§ â¥«ì ­ ¨§êïâãî
¢¥à設ã. ®áª®«ìªã ¬¨­¨¬ «ì­ë© í«¥¬¥­â ­ 室¨âáï ¢ ª®à­¥¢®¬
ᯨ᪥, ­ ©â¨ ¥£® «¥£ª®; ¯®á«¥ ¥£® 㤠«¥­¨ï ᮮ⢥âáâ¢ãî饥 ¤¥à¥¢® à ááë¯ ¥âáï ¢ ­ ¡®à ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ì¥¢ ¬¥­ì襣® à §¬¥à , ª®â®àë© ­ ¤® ®¡ê¥¤¨­¨âì á ®á⠢襩áï ç áâìî ªãç¨.
Binomial-Heap-Extract-Min(H )
1 ¢ ª®à­¥¢®¬ ᯨ᪥ H ­ ©â¨ ¢¥à設ã x á ¬¨­¨¬ «ì­ë¬
ª«î箬 ¨ 㤠«¨âì x ¨§ ª®à­¥¢®£® ᯨ᪠2 H 0 Make-Binomial-Heap()
3 ®¡à â¨âì ¯®à冷ª ¢ ᯨ᪥ ¤¥â¥© ¢¥à設ë x
¨ ¯®¬¥áâ¨âì ¢ head[H 0] 㪠§ â¥«ì ­ ­ ç «®
¯®«ã稢襣®áï ᯨ᪠4 H Binomial-Heap-Union(H; H 0)
5 return x
 ¡®â ¯à®æ¥¤ãàë ¯®ª § ­ ­ à¨áã­ª¥ 20.7. ‚ᥠ¤¥©áâ¢¨ï ¢ë¯®«­ïîâáï § ¢à¥¬ï O(lg n), â ª çâ® ®¡é¥¥ ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë
Binomial-Heap-Extract-Min ¥áâì O(log n).
“¬¥­ì襭¨¥ ª«îç ‘«¥¤ãîé ï ¯à®æ¥¤ãà 㬥­ìè ¥â ª«îç í«¥¬¥­â x ¡¨­®¬¨ «ì­®© ªãç¨ H , ¯à¨á¢ ¨¢ ï ¥¬ã ­®¢®¥ §­ 祭¨¥ k (¥á«¨ k ¡®«ìè¥, 祬
⥪ã饥 §­ 祭¨¥ ª«îç , ¢ë¤ ñâáï á®®¡é¥­¨¥ ®¡ ®è¨¡ª¥).
Binomial-Heap-Decrease-Key (H; x; k)
1 if k > key[x]
2
then error "­®¢®¥ §­ 祭¨¥ ª«îç ¡®«ìè¥ â¥ªã饣®"
3 key[x] k
4 y x
5 z p[y ]
6 while z =
6 nil and key[y] < key[z]
7
do ®¡¬¥­ key[y ] $ key[z ]
8
. (¢¬¥áâ¥ á ¤®¯®«­¨â¥«ì­®© ¨­ä®à¬ 樥©).
9
y z
10
z p[y ]
‚ ¤ ­­®© ¯à®æ¥¤ãॠ¨á¯®«ì§ã¥âáï â®â ¦¥ ¯à¨ñ¬, çâ® ¨ ¢ £« ¢¥
7: ¢¥à設 , ª«îç ª®â®à®© ¡ë« 㬥­ì襭, "¢á¯«ë¢ ¥â" ­ ¢¥àå
(à¨á. 20.8).
®á«¥ ¯à®¢¥àª¨ ª®à४⭮á⨠¢å®¤­ëå ¤ ­­ëå (áâப¨ 1{2) ¢
¢¥à設¥ x ¬¥­ï¥âáï §­ 祭¨¥ ª«îç . ®á«¥ áâப 4 ¨ 5 ¯¥à¥¬¥­-
408
ƒ« ¢ 20 ¨­®¬¨ «ì­ë¥ ªãç¨
¨áã­®ª 20.7  ¡®â ¯à®æ¥¤ãàë Binomial-Heap-Extract-Min. ( ) ˆá室­ ï
¡¨­®¬¨ «ì­ ï ªãç H . (¡) Š®à­¥¢ ï ¢¥à設 x, ¨¬¥îé ï ¬¨­¨¬ «ì­ë© ª«îç,
㤠«¥­ ¨§ ª®à­¥¢®£® ᯨ᪠H . Ž­ ¡ë« ª®à­¥¬ Bk -¤¥à¥¢ , ¥ñ ¤¥â¨ ¡ë«¨
ª®à­ï¬¨ Bk;1 -, Bk;2 -, : : : , B0 -¤¥à¥¢ì¥¢. (¢) Ž¡à é ï
¯®à冷ª, ¬ë ᮡ¨à ¥¬
0 . (£) ¥§ã«ìâ â ᮥ¤¨­¥­¨ï ªãç
¯®â®¬ª®¢
¢¥à設ë
x
¢
¡¨­®¬¨ «ì­ãî
ªãçã
H
H ¨ H 0.
Ž¯¥à 樨 á ¡¨­®¬¨ «ì­ë¬¨ ªãç ¬¨
409
¨áã­®ª 20.8  ¡®â ¯à®æ¥¤ãàë Binomial-Heap-Decrease-Key. ( ) ¥à¥¤ ­ ç «®¬ 横« (ª«îç ¢¥à設ë y ¡ë« 㬥­ì襭 ¨ áâ « ¬¥­ìè¥ ª«îç த¨â¥«ì᪮© ¢¥à設ë z ). (¡) ¥à¥¤ ¢â®à®© ¨â¥à 樥© 横« . à®¨§®èñ« ®¡¬¥­
ª«îç ¬¨, 㪠§ ⥫¨ y ¨ z ¯à®¤¢¨­ãâë ¢¢¥àå, ­® ᢮©á⢮ ¯®à浪 ¯®ª ­ àã襭®. (¢) ®á«¥ á«¥¤ãî饣® ®¡¬¥­ ¨ ᤢ¨£ 㪠§ ⥫¥© y ¨ z ¢¢¥àå ᢮©á⢮
㯮à冷祭­®á⨠¢ë¯®«­¥­®, ¨ 横« ¯à¥ªà é ¥âáï.
­ ï y ᮤ¥à¦¨â ¥¤¨­á⢥­­ãî ¢¥à設ã, ¢ ª®â®à®© ª«îç ¬®¦¥â ¡ëâì
¬¥­ìè¥ ª«î祩 ¯à¥¤ª®¢, z | ¥ñ த¨â¥«ï.  稭 ¥âáï 横«: ¥á«¨
key[y ] > key[z ] ¨«¨ ¥á«¨ ¢¥à設 y ï¥âáï ª®à­¥¢®©, â® ¤¥à¥¢®
㯮à冷祭®. ‚ ¯à®â¨¢­®¬ á«ãç ¥ ¬ë ¬¥­ï¥¬ ¬¥áâ ¬¨ ᮤ¥à¦¨¬®¥
¢¥à設 y ¨ z, ⥬ á ¬ë¬ á¤¢¨£ ï ¬¥áâ® ­ àã襭¨ï ¢¢¥àå ¯® ¤¥à¥¢ã,
çâ® ®âà ¦¥­® ¢ áâப å 9{10.
à®æ¥¤ãà Binomial-Heap-Decrease-Key ¢ë¯®«­ï¥âáï § ¢à¥¬ï O(lg n), ¯®áª®«ìªã £«ã¡¨­ ¢¥à設ë x ¥áâì O(lg n) (ã⢥ত¥­¨¥ 2 «¥¬¬ë 20.1), ¯à¨ ª ¦¤®© ¨â¥à 樨 横« while ¬ë
¯®¤­¨¬ ¥¬áï ¢¢¥àå.
“¤ «¥­¨¥ ¢¥à設ë
“¤ «¥­¨¥ ¢¥à設ë ᢮¤¨âáï ª ¤¢ã¬ ¯à¥¤ë¤ã騬 ®¯¥à æ¨ï¬: ¬ë
㬥­ìè ¥¬ ª«îç ¤® ;1 (á¯¥æ¨ «ì­®¥ §­ 祭¨¥, ¯à® ª®â®à®¥ ¬ë
¯à¥¤¯®« £ ¥¬, çâ® ®­® ¬¥­ìè¥ ¢á¥å ª«î祩), § ⥬ 㤠«ï¥¬ ¢¥à-
410
ƒ« ¢ 20 ¨­®¬¨ «ì­ë¥ ªãç¨
設ã á ¬¨­¨¬ «ì­ë¬ ª«î箬.
‚ ¯à®æ¥áᥠ¢ë¯®«­¥­¨ï ¯à®æ¥¤ãàë Binomial-Heap-DecreaseKey á¯¥æ¨ «ì­®¥ §­ 祭¨¥ ;1 (¥¤¨­á⢥­­®¥ ¢ ªãç¥) ¢á¯«ë¢ ¥â
¢¢¥àå, ®âªã¤ ¨ 㤠«ï¥âáï ¯à®æ¥¤ãன Binomial-Heap-ExtractMin.
Binomial-Heap-Delete (H; x)
1 Binomial-Heap-Decrease-Key(H; x; ;1)
2 Binomial-Heap-Extract-Min(H )
(‚ ã¯à. 20.2-6 ¯à¥¤« £ ¥âáï ¯¥à¥¯¨á âì ¯à®æ¥¤ãàã Binomial-HeapDelete ¡¥§ ¨á¯®«ì§®¢ ­¨ï ¤®¯®«­¨â¥«ì­®£® §­ 祭¨ï ;1.)
à®æ¥¤ãà Binomial-Heap-Delete ¢ë¯®«­ï¥âáï § ¢à¥¬ï O(lg n).
“¯à ¦­¥­¨ï
Ž¡êïá­¨â¥, ¯®ç¥¬ã ᫨ﭨ¥ ¤¢®¨ç­ëå ªãç ¢ á¬ëá«¥
£« ¢ë 7 âॡã¥â ¢à¥¬¥­¨ (n).
20.2-2  ¯¨è¨â¥ ¯à®æ¥¤ãàã Binomial-Heap-Merge.
20.2-3  à¨áã©â¥ ¡¨­®¬¨ «ì­ãî ªãçã, ª®â®à ï ¯®«ãç ¥âáï ¯à¨
¤®¡ ¢«¥­¨¨ ¢¥à設ë á ª«î箬 24 ª ªãç¥ à¨á. 20.7£.
20.2-4  à¨áã©â¥ ¡¨­®¬¨ «ì­ãî ªãçã, ª®â®à ï ¯®«ãç ¥âáï ¯à¨
㤠«¥­¨¨ ª«îç 28 ¨§ ªãç¨ à¨á. 20.8¢.
20.2-5 ®ç¥¬ã ¯à®æ¥¤ãà Binomial-Heap-Minimum ­¥ £®¤¨âáï,
¥á«¨ ­¥ª®â®àë¥ ¨§ ª«î祩 ¨¬¥îâ §­ 祭¨¥ 1? Š ª ᤥ« âì ¥ñ ¯à¨£®¤­®© ¨ ¤«ï í⮣® á«ãç ï?
20.2-6 ¥ ¯®«ì§ãïáì á¯¥æ¨ «ì­ë¬ §­ 祭¨¥¬ ;1, ¯¥à¥¯¨è¨â¥
¯à®æ¥¤ãàã Binomial-Heap-Delete. (Žæ¥­ª O(log n) ¤«ï ¢à¥¬¥­¨
à ¡®âë ¤®«¦­ á®åà ­¨âìáï.)
20.2-7 ‚ çñ¬ á®á⮨â 㯮¬¨­ ¢è ïáï á¢ï§ì ¬¥¦¤ã ᮥ¤¨­¥­¨¥¬
¡¨­®¬¨ «ì­ëå ªãç ¨ á«®¦¥­¨¥¬ ¤¢®¨ç­ëå ç¨á¥«? Ž¡êï᭨⥠á¢ï§ì
¬¥¦¤ã ¤®¡ ¢«¥­¨¥¬ ¢¥àè¨­ë ¢ ¡¨­®¬¨ «ì­ãî ªãçã ¨ ¯à¨¡ ¢«¥­¨¥¬
¥¤¨­¨æë ª ¤¢®¨ç­®¬ã ç¨á«ã.
20.2-8 ˆ¬¥ï ¢ ¢¨¤ã ᮮ⢥âá⢨¥, 㯮¬ï­ã⮥ ¢ ã¯à. 20.2-7, ¯¥à¥¯¨è¨â¥ ¯à®æ¥¤ãàã Binomial-Heap-Insert â ª, çâ®¡ë ®­ ¤®¡ ¢«ï« ¢¥à設㠢 ¡¨­®¬¨ «ì­ãî ªãçã ­¥¯®á।á⢥­­®, ­¥ ¢ë§ë¢ « Binomial-Heap-Union.
20.2-9 ®ª ¦¨â¥, çâ® ¥á«¨ à ᯮ« £ âì ¢¥àè¨­ë ¢ ª®à­¥¢ëå
á¯¨áª å ¢ ¯®à浪¥ 㬥­ì襭¨ï ( ­¥ 㢥«¨ç¥­¨ï) á⥯¥­¥©, â® ¯®¯à¥¦­¥¬ã ¢á¥ ®¯¥à 樨 ­ ¤ ¡¨­®¬¨ «ì­ë¬¨ ªãç ¬¨ ¬®¦­® ॠ«¨20.2-1
‡ ¤ ç¨ ª £« ¢¥ 20
411
§®¢ âì á ⥬¨ ¦¥ ᨬ¯â®â¨ç¥áª¨¬¨ ®æ¥­ª ¬¨.
20.2-10 ®ª ¦¨â¥, çâ® ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãà Binomial-HeapExtract-Min, Binomial-Heap-Decrease-Key ¨ BinomialHeap-Delete ¢ åã¤è¥¬ á«ãç ¥ ­ ¢å®¤ å à §¬¥à n ¥áâì (lg n).
Ž¡êïá­¨â¥, ¯®ç¥¬ã ¢à¥¬ï ¢ë¯®«­¥­¨ï ¯à®æ¥¤ãà Binomial-HeapInsert ¨ Binomial-Heap-Minimum ¢ åã¤è¥¬ á«ãç ¥ á®áâ ¢«ï¥â
1
(lg n) (á¬. § ¤. 2-5), ­¥ (lg n).
‡ ¤ ç¨
20-1 2-3-4-ªãç¨
‚ £« ¢¥ 19 à áᬠâਢ «¨áì 2-3-4-¤¥à¥¢ìï, ¢ ª®â®àëå ª ¦¤ ï ¢¥à設 , ­¥ ïîé ïáï ª®à­¥¬ ¨«¨ «¨á⮬, ¨¬¥¥â ¤¢ãå, âà¥å ¨«¨ ç¥âëàñå ¤¥â¥©, ¨ ¢á¥ «¨áâìï à ᯮ« £ îâáï ­ ®¤¨­ ª®¢®© £«ã¡¨­¥.
Ž¯à¥¤¥«¨¬ 2-3-4-ªãç¨ (2-3-4 heaps), ­ ¤ ª®â®à묨 ¬®¦­® ¯à®¨§¢®¤¨âì ®¯¥à 樨, ¯à¥¤ãᬮâ७­ë¥ ¤«ï ᫨¢ ¥¬ëå ªãç.
’ ª ï ªãç ¯®«ãç ¥âáï, ¥á«¨ ¢ ª ¦¤®¬ «¨á⥠§ ¯¨á âì ª«îç, ¢
ª ¦¤®© ¢­ãâ७­¥© ¢¥à設¥ åà ­¨âì ­ ¨¬¥­ì襥 §­ 祭¨¥ ª«î祩
¢ «¨áâìïå, ïîé¨åáï ¯®â®¬ª ¬¨ í⮩ ¢¥à設ë. ‡­ 祭¨ï ª«î祩
¢ «¨áâìïå ¬®£ãâ ¡ëâì «î¡ë¬¨ (âॡ®¢ ­¨ï 㯮à冷祭­®á⨠­¥â).
‚ ª®à­¥ åà ­¨âáï ¢ëá®â ¤¥à¥¢ .
à¨¤ã¬ ©â¥ ᯮᮡ ॠ«¨§ 樨 ¯¥à¥ç¨á«¥­­ëå ­¨¦¥ ®¯¥à 権
­ ¤ 2-3-4-ªãç ¬¨ § ¢à¥¬ï O(lg n), £¤¥ n | ç¨á«® í«¥¬¥­â®¢ 2-34-ªãç¨. Ž¯¥à æ¨ï Union ¢ ¯ã­ªâ¥ ¥ ¤®«¦­ ¢ë¯®«­ïâìáï § ¢à¥¬ï
O(lg n), £¤¥ n | á㬬 à­®¥ ç¨á«® í«¥¬¥­â®¢ ¢ ¤¢ãå ®¡ê¥¤¨­ï¥¬ëå
ªãç å.
. Minimum ¢®§¢à é ¥â 㪠§ â¥«ì ­ «¨áâ á ­ ¨¬¥­ì訬 ª«î箬.
¡. Decrease-Key 㬥­ìè ¥â ª«îç § ¤ ­­®£® «¨áâ x, ¯à¨á¢ ¨¢ ï
ª«îçã § ¤ ­­®¥ §­ 祭¨¥ k 6 key[x].
¢. Insert ¤®¡ ¢«ï¥â «¨áâ x á ª«î箬 k.
£. Delete 㤠«ï¥â § ¤ ­­ë© «¨áâ x.
¤. Extract-Min ¨§ë¬ ¥â «¨áâ á ­ ¨¬¥­ì訬 ª«î箬.
¥. Union ®¡ê¥¤¨­ï¥â ¤¢¥ 2-3-4-ªãç¨ ¢ ®¤­ã (¨á室­ë¥ ªãç¨ ¯à®¯ ¤ îâ).
20-2 ®¨áª ¬¨­¨¬ «ì­®£® ¯®ªàë¢ î饣® ¤¥à¥¢ á ¨á¯®«ì§®¢ ­¨¥¬ ᫨¢ ¥¬ëå ªãç
‚ £« ¢¥ 24 ¯à¨¢®¤ïâáï ¤¢ «£®à¨â¬ ¯®áâ஥­¨ï ¬¨­¨¬ «ì­®£®
¯®ªàë¢ î饣® ¤¥à¥¢ ¤«ï ­¥®à¨¥­â¨à®¢ ­­®£® £à ä . ‘¥©ç á ¬ë
㪠¦¥¬ ¥éñ ®¤¨­ ᯮᮡ à¥è¥­¨ï í⮩ § ¤ ç¨, ¨á¯®«ì§ãî騩 ᫨¢ ¥¬ë¥ ªãç¨.
ãáâì G = (V; E ) | á¢ï§­ë© ­¥®à¨¥­â¨à®¢ ­­ë© £à ä, a w : E !
412
ƒ« ¢ 20 ¨­®¬¨ «ì­ë¥ ªãç¨
| ¢¥á®¢ ï äã­ªæ¨ï, áâ ¢ïé ï ¢ ᮮ⢥âá⢨¥ ª ¦¤®¬ã ॡàã
(u; v ) ¥£® ¢¥á w(u; v ). Œë å®â¨¬ ­ ©â¨ ¬¨­¨¬ «ì­®¥ ¯®ªàë¢ î饥 ¤¥à¥¢® £à ä G, â. ¥. 横«¨ç¥áª®¥ ¬­®¦¥á⢮ T E , ª®â®à®¥ ᮥ¤¨­ï¥â
¢á¥ ¢¥àè¨­ë £à ä , ¤«ï ª®â®à®£® á㬬 à­ë© ¢¥á
P
w(T ) =
w(u; v) ¬¨­¨¬ «¥­.
R
(u;v)2T
‘«¥¤ãîé ï ¯à®£à ¬¬ (¥ñ ª®à४⭮áâì ¤®ª §ë¢ ¥âáï á ¨á¯®«ì§®¢ ­¨¥¬ ¬¥â®¤®¢ à §¤¥« 24.1) áâந⠬¨­¨¬ «ì­®¥ ¯®ªàë¢ î饥
¤¥à¥¢® T . à®£à ¬¬ åà ­¨â à §¡¨¥­¨¥ fVig ¬­®¦¥á⢠¢¥à設 V ,
¨ ¤«ï ª ¦¤®£® ¨§ ¬­®¦¥á⢠Vi åà ­¨â ­¥ª®â®à®¥ ¬­®¦¥á⢮
Ei f(u; v) : u 2 Vi ¨«¨ v 2 Vig
àñ¡¥à, ¨­æ¨¤¥­â­ëå ¢¥à設 ¬ ¨§ Vi.
MST-Mergeable-Heap (G)
1 T ;
2 for (¤«ï) ª ¦¤®© ¢¥à設ë vi 2 V [G]
3
do Vi fvi g
4
Ei f(vi ; v) 2 E [G]g
5 while (¯®ª ) ¨¬¥¥âáï ¡®«¥¥ ®¤­®£® ¬­®¦¥á⢠Vi
6
do ¢ë¡à âì «î¡®¥ ¬­®¦¥á⢮ Vi
7
¨§êïâì ¨§ Ei ॡ஠(u; v), ¨¬¥î饥 ¬¨­¨¬ «ì­ë© ¢¥á
8
(¡ã¤¥¬ áç¨â âì, çâ® u 2 Vi ¨ v 2 Vj )
9
if i =
6 j
10
then T T [ f(u; v )g
11
Vi Vi [ Vj , (Vj ¯à®¯ ¤ ¥â)
12
Ei Ei [ Ej
Ž¯¨è¨â¥, ª ª ॠ«¨§®¢ âì íâ®â «£®à¨â¬ á ¯®¬®éìî ®¯¥à 権 á®
᫨¢ ¥¬ë¬¨ ªãç ¬¨, ¯¥à¥ç¨á«¥­­ëå ¢ â ¡«¨æ¥ 20.1. Žæ¥­¨â¥ ¢à¥¬ï
à ¡®âë «£®à¨â¬ , ¥á«¨ ¢ ª ç¥á⢥ ᫨¢ ¥¬ëå ªãç ¨á¯®«ì§ãîâáï
¡¨­®¬¨ «ì­ë¥ ªãç¨.
‡ ¬¥ç ­¨ï
¨­®¬¨ «ì­ë¥ ªãç¨ ¡ë«¨ ¢¢¥¤¥­ë ¢ 1978 £®¤ã ‚¨««¥¬¨­®¬ [196].
®¤à®¡­® ¨å ᢮©á⢠¨§ãç « à ã­ [36,37].
21
”¨¡®­ ç稥¢ë ªãç¨
‚ £« ¢¥ 20 ¬ë ¨§ãç «¨ ¡¨­®¬¨ «ì­ë¥ ªãç¨, á ¯®¬®éìî ª®â®àëå
¬®¦­® ॠ«¨§®¢ âì § ¢à¥¬ï O(lg n) (¢ åã¤è¥¬ á«ãç ¥) ®¯¥à 樨
Insert, Minimum, Extract-Min, Union, â ª¦¥ Decrease-Key
¨ Delete. (‘âàãªâãàë ¤ ­­ëå, ¯®¤¤¥à¦¨¢ î騥 ¯¥à¢ë¥ ç¥âëà¥
¨§ ¯¥à¥ç¨á«¥­­ëå ®¯¥à 権, ­ §ë¢ îâáï "᫨¢ ¥¬ë¬¨ ªãç ¬¨".) ‚
í⮩ £« ¢¥ ¬ë à áᬠâਢ ¥¬ 䨡®­ ç稥¢ë ªãç¨, ª®â®àë¥ ¯®¤¤¥à¦¨¢ îâ ⥠¦¥ è¥áâì ®¯¥à 権, ­® ¡®«¥¥ íä䥪⨢­®: ®¯¥à 樨, ­¥
âॡãî騥 㤠«¥­¨ï í«¥¬¥­â®¢, ¨¬¥îâ ãçñâ­ãî á⮨¬®áâì O(1).
’¥®à¥â¨ç¥áª¨ 䨡®­ ç稥¢ë ªãç¨ ®á®¡¥­­® ¯®«¥§­ë, ¥á«¨ ç¨á«®
®¯¥à 権 Extract-Min ¨ Delete ¬ «® ¯® áà ¢­¥­¨î á ®áâ «ì­ë¬¨ ®¯¥à æ¨ï¬¨. ’ ª ï á¨âã æ¨ï ¢®§­¨ª ¥â ¢® ¬­®£¨å ¯à¨«®¦¥­¨ïå.  ¯à¨¬¥à, «£®à¨â¬, ®¡à ¡ âë¢ î騩 £à ä, ¬®¦¥â ¢ë§ë¢ âì ¯à®æ¥¤ãàã Decrease-Key ¤«ï ª ¦¤®£® à¥¡à £à ä . „«ï
¯«®â­ëå £à 䮢, ¨¬¥îé¨å ¬­®£® àñ¡¥à, ¯¥à¥å®¤ ®â O(lg n) ª O(1)
¢ ®æ¥­ª¥ ¢à¥¬¥­¨ à ¡®âë ¤«ï ®¯¥à 樨 Decrease-Key ¬®¦¥â ¯à¨¢¥á⨠ª § ¬¥â­®¬ã 㬥­ì襭¨î ®¡é¥£® ¢à¥¬¥­¨ à ¡®âë.  ¨¡®«¥¥
¡ëáâàë¥ ¨§¢¥áâ­ë¥ «£®à¨â¬ë ¤«ï § ¤ ç ¯®áâ஥­¨ï ¬¨­¨¬ «ì­®£® ¯®ªàë¢ î饣® ¤¥à¥¢ (£« ¢ 24) ¨«¨ ¯®¨áª ªà âç ©è¨å ¯ã⥩ ¨§ ®¤­®© ¢¥à設ë (£« ¢ 25) áãé¥á⢥­­® ¨á¯®«ì§ãîâ 䨡®­ ç稥¢ë ªãç¨.
Š ᮦ «¥­¨î, áªàëâë¥ ª®­áâ ­âë ¢ ᨬ¯â®â¨ç¥áª®© § ¯¨á¨ ¢¥«¨ª¨, ¨ ¨á¯®«ì§®¢ ­¨¥ 䨡®­ ç稥¢ëå ªãç ।ª® ®ª §ë¢ ¥âáï 楫¥á®®¡à §­ë¬: ®¡ëç­ë¥ ¤¢®¨ç­ë¥ (¨«¨ k-¨ç­ë¥) ªãç¨ ­ ¯à ªâ¨ª¥
íä䥪⨢­¥¥. ‘ ¯à ªâ¨ç¥áª®© â®çª¨ §à¥­¨ï ¡ë«® ¡ë ®ç¥­ì ¦¥« ⥫쭮 ¯à¨¤ã¬ âì áâàãªâãàã ¤ ­­ëå á ⥬¨ ¦¥ ᨬ¯â®â¨ç¥áª¨¬¨
®æ¥­ª ¬¨, ­® á ¬¥­ì訬¨ ª®­áâ ­â ¬¨.
ˆá¯®«ì§ãï ¡¨­®¬¨ «ì­ë¥ ªãç¨ ¤«ï åà ­¥­¨ï ­ ¡®à ¬­®¦¥áâ¢,
¬ë åà ­¨«¨ ª ¦¤®¥ ¨§ ¬­®¦¥á⢠­ ¡®à ¢ ­¥áª®«ìª¨å ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ìïå, á¢ï§ ­­ëå ¢ ᯨ᮪. ‘¥©ç á ¬ë ¡ã¤¥¬ ¯®áâ㯠âì ­ «®£¨ç­ë¬ ®¡à §®¬, ¨á¯®«ì§ãï 䨡®­ ç稥¢ë ¤¥à¥¢ìï (ª®â®àë¥ ¬ë
¢áª®à¥ ®¯à¥¤¥«¨¬) ¢¬¥áâ® ¡¨­®¬¨ «ì­ëå.
…᫨ ¬ë ­¨ª®£¤ ­¥ ¢ë¯®«­ï¥¬ ®¯¥à 樨 Decrease-Key ¨
Delete, â® ¢®§­¨ª î騥 䨡®­ ç稥¢ë ¤¥à¥¢ìï ¡ã¤ãâ ¨¬¥âì âã
¦¥ áâàãªâãàã, çâ® ¨ ¡¨­®¬¨ «ì­ë¥ ¤¥à¥¢ìï. ® ¢ ®¡é¥¬ á«ãç ¥
414
ƒ« ¢ 21 ”¨¡®­ ç稥¢ë ªãç¨
䨡®­ ç稥¢ë ¤¥à¥¢ìï ®¡« ¤ îâ ¡®«ì襩 £¨¡ª®áâìî, 祬 ¡¨­®¬¨ «ì­ë¥ (¨§ ­¨å ¬®¦­® 㤠«ïâì ­¥ª®â®àë¥ ¢¥à設ë, ®âª« ¤ë¢ ï
¯¥à¥áâனªã ¤¥à¥¢ ¤® 㤮¡­®£® á«ãç ï).
Š ª ¨ ¤¨­ ¬¨ç¥áª¨¥ â ¡«¨æë à §¤¥« 18.4, 䨡®­ ç稥¢ë ªãç¨
ïîâáï ¯à¨¬¥à®¬ áâàãªâãàë ¤ ­­ëå, à §à ¡®â ­­®© á ãçñ⮬
¬®à⨧ 樮­­®£® ­ «¨§ (á¬. £«. 18, ®á®¡¥­­® à §¤. 18.3 ® ¬¥â®¤¥
¯®â¥­æ¨ « ).
Œë ¯à¥¤¯®« £ ¥¬, çâ® ¢ë ¯à®ç«¨ ¯à¥¤ë¤ãéãî £« ¢ã (® ¡¨­®¬¨ «ì­ëå ªãç å). ’ ¬ ¡ë« ¯à¨¢¥¤¥­ â ¡«¨æ (à¨á. 20.1), £¤¥
㪠§ ­ë ®æ¥­ª¨ ¢à¥¬¥­¨ à ¡®âë à §«¨ç­ëå ®¯¥à 権 á ¡¨­®¬¨ «ì­ë¬¨ ¨ 䨡®­ ç稥¢ë¬¨ ªãç ¬¨.
Š ª ¨ ¡¨­®¬¨ «ì­ë¥ ªãç¨, 䨡®­ ç稥¢ë ªãç¨ ­¥ ®¡¥á¯¥ç¨¢ îâ
íä䥪⨢­®£® ¢ë¯®«­¥­¨ï ¯®¨áª (Search). ®í⮬㠯¥à¥¤ ¢ ï
¢¥à設㠢 ª ç¥á⢥ ¯ à ¬¥âà , ¬ë 㪠§ë¢ ¥¬ ­¥ ª«îç ¢¥à設ë, 㪠§ â¥«ì ­ ­¥ñ.
‚ à §¤¥«¥ 21.1 ¬ë ®¯à¥¤¥«¨¬ 䨡®­ ç稥¢ë ªãç¨, ®¡á㤨¬ ¨å
¯à¥¤áâ ¢«¥­¨¥ ¢ ¯à®£à ¬¬¥ ¨ ¢¢¥¤ñ¬ ¯®â¥­æ¨ «ì­ãî äã­ªæ¨î. ‚
à §¤¥«¥ 21.2 ¬ë ¯®ª ¦¥¬, ª ª ॠ«¨§®¢ âì ®¯¥à 樨, ¯à¨áã騥
᫨¢ ¥¬ë¬ ªãç ¬, á ®æ¥­ª ¬¨ ãçñâ­®© á⮨¬®áâ¨, 㪠§ ­­ë¬¨ ¢
â ¡«¨æ¥ (à¨á. 20.1). Žá⠢訥áï ¤¢¥ ®¯¥à 樨 (Decrease-Key ¨
Delete) ®¯¨á ­ë ¢ à §¤¥«¥ 21.3.  ª®­¥æ, ¢ à §¤¥«¥ 21.4 ¬ë ¤®ª §ë¢ ¥¬ «¥¬¬ã, ¨á¯®«ì§®¢ ­­ãî ¯à¨ ­ «¨§¥ ¯®áâ஥­­ëå ¯à®æ¥¤ãà.
21.1 ‘â஥­¨¥ 䨡®­ ç稥¢®© ªãç¨
à¨ ¨á¯®«ì§®¢ ­¨¨ 䨡®­ ç稥¢ëå ªãç ¤«ï åà ­¥­¨ï ­ ¡®à ¬­®¦¥á⢠ª ¦¤®¥ ¬­®¦¥á⢮ § ­¨¬ ¥â ­¥áª®«ìª® ¤¥à¥¢ì¥¢, ª®à­¨ ª®â®àëå á¢ï§ ­ë ¢ ᯨ᮪. ’ ª®© ª®­£«®¬¥à â ¬ë ¡ã¤¥¬ ­ §ë¢ âì 䨡®­ ç稥¢®© ªã祩 (Fibonacci heap). ’ ª¨¬ ®¡à §®¬, ª ¦¤ ï 䨡®­ ç稥¢ ªãç á®á⮨⠨§ ­¥áª®«ìª¨å ¤¥à¥¢ì¥¢; ¤«ï ª ¦¤®£® åà ­¨¬®£®
¬­®¦¥á⢠®â¢®¤¨âáï á¢®ï ªãç .
‚ ª ¦¤®¬ ¨§ ¤¥à¥¢ì¥¢, ¢å®¤ïé¨å ¢ ªãçã, ¢ë¯®«­¥­® â ª®¥ ᢮©á⢮: ª«îç ª ¦¤®© ¢¥àè¨­ë ­¥ ¡®«ìè¥ ª«î祩 ¥ñ ¤¥â¥©. „¥à¥¢ìï,
®¤­ ª®, ¡®«¥¥ ­¥ ®¡ï§ ­ë ¡ëâì ¡¨­®¬¨ «ì­ë¬¨. à¨¬¥à 䨡®­ ç稥¢®© ªãç¨ ¯à¨¢¥¤ñ­ ­ à¨á. 21.1 .
‚ ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ìïå ­ ¤¥âïå «î¡®© ¢¥à設ë 䨪á¨à®¢ ­
¯®à冷ª; ¢ 䨡®­ ç稥¢ëå ¤¥à¥¢ìïå â ª®£® ¯®à浪 ­¥â (¤¥â¨ «î¡®©
¢¥à設ë á¢ï§ ­ë ¢ ªà㣮¢®© ¤¢ãáâ®à®­­¨© ᯨ᮪, ­® ¯®à冷ª ¢
­ñ¬ ­¥áãé¥á⢥­). Š ª ¯®ª § ­® ­ à¨á. 21.1¡, ª ¦¤ ï ¢¥à設 x
ᮤ¥à¦¨â 㪠§ ⥫ì p[x] ­ ᢮¥£® த¨â¥«ï ¨ 㪠§ ⥫ì child[x] ­ ª ª®£®-­¨¡ã¤ì ¨§ ᢮¨å ¤¥â¥©.
„¥â¨ ¢¥à設ë x á¢ï§ ­ë ¢ ¤¢ãáâ®à®­­¨© 横«¨ç¥áª¨© ᯨ᮪,
­ §ë¢ ¥¬ë© ᯨ᪮¬ ¤¥â¥© (child list) ¢¥à設ë x. Š ¦¤ ï ¢¥à設 y
í⮣® ᯨ᪠¨¬¥¥â ¯®«ï left[y] ¨ right[y], 㪠§ë¢ î騥 ­ ¥ñ á®á¥¤¥©
‘â஥­¨¥ 䨡®­ ç稥¢®© ªãç¨
415
¨áã­®ª 21.1 ( ) ”¨¡®­ ç稥¢ ªãç , ᮤ¥à¦ é ï 5 ¤¥à¥¢ì¥¢ ¨ 14 ¢¥à設.
ã­ªâ¨à­®© «¨­¨¥© ¯®ª § ­ ª®à­¥¢®© ᯨ᮪. Œ¨­¨¬ «ì­ ï ¢¥à設 ᮤ¥à¦¨â
ª«îç 3. ’ਠ®â¬¥ç¥­­ë¥ ¢¥àè¨­ë ¢ë¤¥«¥­ë çñà­ë¬ 梥⮬. ®â¥­æ¨ « í⮩
ªãç¨ à ¢¥­ 5 + 2 3 = 11. (¡) ’ ¦¥ ªãç ¢¬¥á⥠ᮠáâ५ª ¬¨, ¯®ª §ë¢ î騬¨
§­ 祭¨ï ¯®«¥© p (áâ५ª¨ ¢¢¥àå), child (áâ५ª¨ ¢­¨§) ¨ left ¨ right (áâ५ª¨ ¢
áâ®à®­ë).  ®áâ «ì­ëå à¨áã­ª å í⮩ £« ¢ë â ª¨¥ áâ५ª¨ ®¯ã饭ë, â ª ª ª
®­¨ ¢®ááâ ­ ¢«¨¢ îâáï ®¤­®§­ ç­®.
¢ ᯨ᪥ («¥¢®£® ¨ ¯à ¢®£®). …᫨ ¢¥à設 y ï¥âáï ¥¤¨­á⢥­­ë¬ ॡñ­ª®¬ ᢮¥£® த¨â¥«ï, â® left[y] = right[y] = y.
„¢ãáâ®à®­­¨¥ 横«¨ç¥áª¨¥ ᯨ᪨ (á¬. à §¤. 11.2) 㤮¡­ë ¯®
¤¢ã¬ ¯à¨ç¨­ ¬. ‚®-¯¥à¢ëå, ¨§ â ª®£® ᯨ᪠¬®¦­® 㤠«¨âì «î¡ãî ¢¥à設㠧 ¢à¥¬ï O(1). ‚®-¢â®àëå, ¤¢ â ª¨å ᯨ᪠¬®¦­®
ᮥ¤¨­¨âì ¢ ®¤¨­ § ¢à¥¬ï O(1).
®¬¨¬® 㪠§ ­­®© ¨­ä®à¬ 樨, ª ¦¤ ï ¢¥à設 ¨¬¥¥â ¯®«¥
degree[x], £¤¥ åà ­¨âáï ¥ñ á⥯¥­ì (ç¨á«® ¤¥â¥©), â ª¦¥ ¯®«¥
mark[x]. ‚ í⮬ ¯®«¥ åà ­¨âáï ¡ã«¥¢áª®¥ §­ 祭¨¥. ‘¬ëá« ¥£® â ª®¢:
mark[x] ¨á⨭­®, ¥á«¨ ¢¥à設 x ¯®â¥àï« à¥¡ñ­ª ¯®á«¥ ⮣®, ª ª
®­ ¢ ¯®á«¥¤­¨© à § ᤥ« « áì ç쨬-«¨¡® ¯®â®¬ª®¬. Œë ®¡êïá­¨¬
¯®§¦¥, ª ª ¨ ª®£¤ íâ® ¯®«¥ ¨á¯®«ì§ã¥âáï.
Š®à­¨ ¤¥à¥¢ì¥¢, á®áâ ¢«ïîé¨å 䨡®­ ç稥¢ã ªãçã, á¢ï§ ­ë á ¯®¬®éìî 㪠§ ⥫¥© left ¨ right ¢ ¤¢ãáâ®à®­­¨© 横«¨ç¥áª¨© ᯨ᮪,
­ §ë¢ ¥¬ë© ª®à­¥¢ë¬ ᯨ᪮¬ (root list).
„®áâ㯠ª 䨡®­ ç稥¢®© ªãç¥ H ®áãé¥á⢫ï¥âáï á ¯®¬®éìî
âਡãâ min[H ], ª®â®àë© ãª §ë¢ ¥â ­ ¢¥à設㠪®à­¥¢®£® á¯¨áª á ¬¨­¨¬ «ì­ë¬ ª«î箬. â ¢¥à設 ­ §ë¢ ¥âáï ¬¨­¨¬ «ì­®© ¢¥à設®© (minimum node) ªãç¨. …ñ ª«îç ¡ã¤¥â ¬¨­¨¬ «ì­ë¬ ª«î箬
¢ ªãç¥, ¯®áª®«ìªã ¬¨­¨¬ «ì­ë© ª«îç 䨡®­ ç稥¢ ¤¥à¥¢ ­ 室¨âáï ¢ ¥£® ª®à­¥. ®à冷ª ¢¥à設 ¢ ª®à­¥¢®¬ ᯨ᪥ §­ 祭¨ï ­¥
¨¬¥¥â. …᫨ 䨡®­ ç稥¢ ªãç H ¯ãáâ , â® min[H ] = nil.
416
ƒ« ¢ 21 ”¨¡®­ ç稥¢ë ªãç¨
 ª®­¥æ, âਡãâ n[H ] ᮤ¥à¦¨â ç¨á«® ¢¥à設 ¢ ªãç¥ H .
®â¥­æ¨ «
à¨ ­ «¨§¥ ãçñâ­®© á⮨¬®á⨠®¯¥à 権 ¬ë ¨á¯®«ì§ã¥¬ ¬¥â®¤
¯®â¥­æ¨ « (à §¤¥« 18.3). ãáâì t(H ) | ç¨á«® ¤¥à¥¢ì¥¢ ¢ ª®à­¥¢®¬
ᯨ᪥ ªãç¨ H , m(H ) | ª®«¨ç¥á⢮ ®â¬¥ç¥­­ëå ¢¥à設. ®â¥­æ¨ « ®¯à¥¤¥«ï¥âáï ä®à¬ã«®©
(H ) = t(H ) + 2m(H ):
(21.1)
 ¯à¨¬¥à, ¯®â¥­æ¨ « ªãç¨ à¨á. 21.1 à ¢¥­ 5 + 2 3 = 11. ‚ ª ¦¤ë© ¬®¬¥­â ¢à¥¬¥­¨ ¢ ¯ ¬ï⨠åà ­¨âáï ­¥áª®«ìª® ªãç; ®¡é¨©
¯®â¥­æ¨ « ¯® ®¯à¥¤¥«¥­¨î à ¢¥­ á㬬¥ ¯®â¥­æ¨ «®¢ ¢á¥å íâ¨å
ªãç. ‚ ¤ «ì­¥©è¥¬ ¬ë ¢ë¡¥à¥¬ "¥¤¨­¨æã ¨§¬¥à¥­¨ï ¯®â¥­æ¨ « "
â ª, çâ®¡ë ¥¤¨­¨ç­®£® ¨§¬¥­¥­¨ï ¯®â¥­æ¨ « å¢ â «® ¤«ï ®¯« âë
O(1) ®¯¥à 権 (ä®à¬ «ì­® £®¢®àï, ¬ë 㬭®¦¨¬ ¯®â¥­æ¨ « ­ ¯®¤å®¤ïéãî ª®­áâ ­âã).
‚ ­ ç «ì­®¬ á®áâ®ï­¨¨ ­¥â ­¨ ®¤­®© ªãç¨, ¨ ¯®â¥­æ¨ « à ¢¥­ 0.
Š ª ¨ ¯®«®¦¥­® (á¬. à §¤. 18.3), ¯®â¥­æ¨ « ¢á¥£¤ ­¥®âà¨æ ⥫¥­.
Œ ªá¨¬ «ì­ ï á⥯¥­ì
Œë ¡ã¤¥¬ ¯à¥¤¯®« £ âì ¨§¢¥áâ­®© ­¥ª®â®àãî ¢¥àå­îî £à ­¨æã
D(n) ¤«ï á⥯¥­¥© ¢¥à設 ¢ ªãç å, ª®â®àë¥ ¬®£ãâ ¯®ï¢¨âìáï ¯à¨
¢ë¯®«­¥­¨¨ ­ è¨å ¯à®æ¥¤ãà. (€à£ã¬¥­â®¬ ä㭪樨 D ï¥âáï
®¡é¥¥ ç¨á«® ¢á¥å ¢¥à設 ¢ ªãç¥, ®¡®§­ ç ¥¬®¥ ç¥à¥§ n.) …᫨ ¬ë
¨á¯®«ì§ã¥¬ ⮫쪮 ®¯¥à 樨, ¯à¥¤ãᬮâ७­ë¥ ¤«ï ᫨¢ ¥¬ëå ªãç,
â® ¬®¦­® ¯®«®¦¨âì D(n) = blg nc (ã¯à. 21.2-3). ‚ à §¤¥«¥ 21.3
¬ë ¤®ª ¦¥¬ (¤«ï ®¡é¥£® á«ãç ï, ª®£¤ à §à¥è¥­ë â ª¦¥ ®¯¥à 樨
Decrease-Key ¨ Delete), çâ® D(n) = O(lg n).
21.2 Ž¯¥à 樨, ¯à¥¤ãᬮâ७­ë¥ ¤«ï ᫨¢ ¥¬ëå ªãç
„«ï ­ ç « ¬ë ¡ã¤¥¬ à áᬠâਢ âì «¨èì ®¯¥à 樨 MakeHeap, Insert, Minimum, Extract-Min ¨ Union, ¯à¥¤ãᬮâ७­ë¥
¤«ï ᫨¢ ¥¬ëå ªãç. ‚ í⮬ á«ãç ¥ ªãç¨ ¡ã¤ã⠯।áâ ¢«ïâì ᮡ®©
­ ¡®à "­¥ã¯®à冷祭­ëå ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ì¥¢", ª®à­¨ ª®â®àëå
á¢ï§ ­ë ¢ 横«¨ç¥áª¨© ᯨ᮪.
¥ã¯®à冷祭­®¥ ¡¨­®¬¨ «ì­®¥ ¤¥à¥¢® (unordered binomial tree) ¯®«ãç ¥âáï ¨§ 㯮à冷祭­®£®, ¥á«¨ ¬ë ¯¥à¥áâ ñ¬ ®¡à é âì ¢­¨¬ ­¨¥ ­ ¯®à冷ª á।¨ ¢¥à設, ¨¬¥îé¨å ®¡é¥£® த¨â¥«ï. „à㣨¬¨ á«®¢ ¬¨, ­¥ã¯®à冷祭­®¥ ¡¨­®¬¨ «ì­®¥ ¤¥à¥¢® U0 á®á⮨⠨§
¥¤¨­á⢥­­®© ¢¥à設ë, ­¥ã¯®à冷祭­®¥ ¡¨­®¬¨ «ì­®¥ ¤¥à¥¢® Uk
Ž¯¥à 樨, ¯à¥¤ãᬮâ७­ë¥ ¤«ï ᫨¢ ¥¬ëå ªãç
417
¯®«ãç ¥âáï ¨§ ¤¢ãå íª§¥¬¯«ï஢ ¤¥à¥¢ì¥¢ Uk;1 , ¥á«¨ ª®à¥­ì ®¤­®£® ¤®¡ ¢¨âì ª ç¨á«ã ¤¥â¥© ª®à­ï ¤à㣮£®. (’ ª¨¬ ®¡à §®¬, ¤¥â¨
ª®à­ï ¢ ¤¥à¥¢¥ Uk ïîâáï ¢¥à設 ¬¨ ¤¥à¥¢ì¥¢ U0; U1; : : :; Uk;1.)
‹¥¬¬ 20.1 ®áâ ¥âáï ¢¥à­®© ¨ ¤«ï ­¥ã¯®à冷祭­ëå ¡¨­®¬¨ «ì­ëå
¤¥à¥¢ì¥¢ (­ ¤® ⮫쪮 ¨áª«îç¨âì ¢ ᢮©á⢥ 4 㯮¬¨­ ­¨¥ ® ¯®à浪¥).
‚ ç áâ­®áâ¨, á⥯¥­¨ ¢á¥å ¢¥à設 ¢ 䨡®­ ç稥¢®© ªãç¥ à §¬¥à n, á®áâ ¢«¥­­®© ¨§ ­¥ã¯®à冷祭­ëå ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ì¥¢,
®£à ­¨ç¥­ë ¢¥«¨ç¨­®© D(n) = lg n.
‚ ®â«¨ç¨¥ ®â ¡¨­®¬¨ «ì­ëå ªãç, ⥯¥àì á।¨ ¢å®¤ïé¨å ¢ ªãçã
¤¥à¥¢ì¥¢ ¬®¦¥â ¡ëâì ­¥áª®«ìª® ¤¥à¥¢ì¥¢ á ®¤­®© ¨ ⮩ ¦¥ á⥯¥­ìî
ª®à­ï. ˆå "ª®­á®«¨¤ æ¨ï" ®âª« ¤ë¢ ¥âáï ¤® ¬®¬¥­â ¢ë¯®«­¥­¨ï
®¯¥à 樨 Extract-Min, ª®£¤ ¤¥à¥¢ìï á ª®à­ï¬¨ ®¤¨­ ª®¢®© á⥯¥­¨ ®¡ê¥¤¨­ïîâáï.
‘®§¤ ­¨¥ ­®¢®© 䨡®­ ç稥¢®© ªãç¨
à®æ¥¤ãà Make-Fib-Heap ᮧ¤ ñâ ¨ ¢®§¢à é ¥â ®¡ê¥ªâ H , ¤«ï
ª®â®à®£® n[H ] = 0 ¨ min[H ] = nil: ª®à­¥¢®© ᯨ᮪ í⮩ ªãç¨ ¯ãáâ.
à¨ í⮬ t(H ) = 0 ¨ m(H ) = 0, â ª çâ® ¯®â¥­æ¨ « ªãç¨ à ¢¥­ 0,
á㬬 à­ë© ¯®â¥­æ¨ « ­¥ ¬¥­ï¥âáï. “çñâ­ ï á⮨¬®áâì ®¯¥à 樨
Make-Fib-Heap à ¢­ ¥ñ ä ªâ¨ç¥áª®© á⮨¬®á⨠O(1).
„®¡ ¢«¥­¨¥ ¢¥à設ë
‘«¥¤ãîé ï ¯à®æ¥¤ãà ¤®¡ ¢«ï¥â ¢¥à設ã x ¢ 䨡®­ ç稥¢ã
ªãçã H (¯à¥¤¯®« £ ¥¬, çâ® ¢¥à設 x 㦥 à §¬¥é¥­ ¢ ¯ ¬ïâ¨
¨ ¯®«¥ ª«îç key[x] § ¯®«­¥­®).
Fib-Heap-Insert (H; x)
1 degree[x] 0
2 p[x] nil
3 child[x] nil
4 left[x] x
5 right[x] x
6 mark[x] false
7 ᮥ¤¨­¨âì ¯®«ã祭­ë© ª®à­¥¢®© ᯨ᮪
(á®áâ®ï騩 ¨§ ¢¥à設ë x) á ª®à­¥¢ë¬ ᯨ᪮¬ ªãç¨ H
8 if min[H ] = nil or key[x] < key[min[H ]]
9
then min[H ] x
10 n[H ] n[H ] + 1
‘âப¨ 1{6 ä®à¬¨àãîâ 横«¨ç¥áª¨© ᯨ᮪ ¨§ ¥¤¨­á⢥­­®© ¢¥à設ë x, ¨ ¢ áâப¥ 7 íâ ¢¥à設 ¤®¡ ¢«ï¥âáï (§ ¢à¥¬ï O(1)) ª
ª®à­¥¢®¬ã ᯨáªã ªãç¨ H , ¢ ª®â®à®© ¯®ï¢«ï¥âáï ­®¢®¥ ®¤­®í«¥¬¥­â-
418
ƒ« ¢ 21 ”¨¡®­ ç稥¢ë ªãç¨
¨áã­®ª 21.2 „®¡ ¢«¥­¨¥ ¢¥à設ë. ( ) ”¨¡®­ ç稥¢ ªãç H . (¡) ’ ¦¥ ªãç H
¯®á«¥ ¤®¡ ¢«¥­¨ï ¢¥à設ë á ª«î箬 21. (âã ¢¥à設ã ᤥ« «¨ ®¤­®í«¥¬¥­â­ë¬
¤¥à¥¢®¬, § ⥬ ¤®¡ ¢¨«¨ ¢ ª®à­¥¢®© ᯨ᮪ á«¥¢ ®â ¬¨­¨¬ «ì­®© ¢¥à設ë,
ª®â®à ï ¢ ¤ ­­®¬ á«ãç ¥ ®áâ « áì ¬¨­¨¬ «ì­®©.)
­®¥ ¤¥à¥¢®. ‚¥à設 x ­¥ ¨¬¥¥â ¯®â®¬ª®¢ ¨ ­¥ ®â¬¥ç¥­ . ‚ áâப å
8{9 ®¡­®¢«ï¥âáï (¥á«¨ ­¥®¡å®¤¨¬®) 㪠§ â¥«ì ­ ¬¨­¨¬ «ì­ãî ¢¥à設ã.  ª®­¥æ, áâப 10 㢥«¨ç¨¢ ¥â §­ 祭¨¥ n[H ].
 à¨á. 21.2 ¯®ª § ­® ¤®¡ ¢«¥­¨¥ ¢¥à設ë á ª«î箬 21 ¢ 䨡®­ ç稥¢ã ªãçã à¨á. 21.1.
‚ ®â«¨ç¨¥ ®â ¯à®æ¥¤ãàë Binomial-Heap-Insert, ¯à®æ¥¤ãà FibHeap-Insert ­¥ ¯ëâ ¥âáï ᮥ¤¨­ïâì ¤¥à¥¢ìï á ®¤¨­ ª®¢®© á⥯¥­ìî ¢¥à設ë. …᫨ ¢ë¯®«­¨âì ¯®¤àï¤ k ®¯¥à 権 Fib-HeapInsert, â® ¢ ª®à­¥¢®© ᯨ᮪ ¡ã¤ãâ ¤®¡ ¢«¥­ë k ¤¥à¥¢ì¥¢ ¯® ®¤­®©
¢¥à設¥ ¢ ª ¦¤®¬.
 ©¤ñ¬ ãçñâ­ãî á⮨¬®áâì ®¯¥à 樨 Fib-Heap-Insert. …ñ ä ªâ¨ç¥áª ï á⮨¬®áâì ¥áâì| O(1), ¨ 㢥«¨ç¥­¨¥ ¯®â¥­æ¨ « â ª¦¥
¥áâì O(1) (¢ ª®à­¥¢®© ᯨ᮪ ¤®¡ ¢¨« áì ®¤­ ¢¥à設 ). ’ ª¨¬
®¡à §®¬, ãçñâ­ ï á⮨¬®áâì á®áâ ¢«ï¥â O(1).
®¨áª ¬¨­¨¬ «ì­®© ¢¥à設ë
“ª § â¥«ì ­ ­¥ñ åà ­¨âáï ¢ min[H ], â ª çâ® ä ªâ¨ç¥áª ï á⮨¬®áâì í⮩ ®¯¥à 樨 ¥áâì O(1). ®â¥­æ¨ « ¯à¨ í⮬ ­¥ ¬¥­ï¥âáï,
â ª çâ® ¨ ãçñâ­ ï á⮨¬®áâì ¥áâì O(1).
‘®¥¤¨­¥­¨¥ ¤¢ãå 䨡®­ ç稥¢ëå ªãç
‘«¥¤ãîé ï ¯à®æ¥¤ãà ¨§ ¤¢ãå 䨡®­ ç稥¢ëå ªãç H1 ¨ H2, ¤¥« ¥â ®¤­ã (¯à¨ í⮬ ¨á室­ë¥ ªãç¨ ¨á祧 îâ).
Ž¯¥à 樨, ¯à¥¤ãᬮâ७­ë¥ ¤«ï ᫨¢ ¥¬ëå ªãç
419
Fib-Heap-Union(H1; H2)
1 H Make-Fib-Heap()
min[H1 ]
ᮥ¤¨­¨âì ª®à­¥¢®© ᯨ᮪ H2 c ª®à­¥¢ë¬ ᯨ᪮¬ H
if (min[H1 ] = nil) or (min[H2] 6= nil and min[H2] < min[H1])
then min[H ] min[H2]
n[H ] n[H1] + n[H2]
®á¢®¡®¤¨âì ¯ ¬ïâì, § ­ïâãî ¯®¤ § £®«®¢ª¨ ®¡ê¥ªâ®¢ H1 ¨ H2
return H
‘âப¨ 1{3 ®¡ê¥¤¨­ïîâ ª®à­¥¢ë¥ ᯨ᪨ ªãç H1 ¨ H2 ¢ ª®à­¥¢®©
ᯨ᮪ ­®¢®© ªãç¨ H . ‘âப¨ 2, 4 ¨ 5 § ¯®«­ïîâ min[H ], áâப 6
ãáâ ­ ¢«¨¢ ¥â n[H ] à ¢­ë¬ á㬬 à­®¬ã ª®«¨ç¥áâ¢ã ¢¥à設. Ž¡ê¥ªâë H1 ¨ H2 ®á¢®¡®¦¤ îâáï ¢ áâப¥ 7, áâப 8 ¢®§¢à é ¥â १ã«ìâ¨àãîéãî 䨡®­ ç稥¢ã ªãçã H . Žâ¬¥â¨¬, çâ® (ª ª ¨ ¢ ¯à®æ¥¤ãॠFib-Heap-Insert) ᮥ¤¨­¥­¨ï ¤¥à¥¢ì¥¢ ­¥ ¯à®¨á室¨â. ®â¥­æ¨ « ­¥ ¬¥­ï¥âáï (®¡é¥¥ ç¨á«® ¢¥à設 ¢ ª®à­¥¢ëå á¯¨áª å ¨ ®¡é¥¥ ç¨á«® ¯®¬¥ç¥­­ëå ¢¥à設 ®áâ ñâáï ⥬ ¦¥). ®í⮬ã ãçñâ­ ï
á⮨¬®áâì ®¯¥à 樨 Fib-Heap-Union à ¢­ ¥ñ ä ªâ¨ç¥áª®© á⮨¬®áâ¨, â. ¥. O(1).
2
3
4
5
6
7
8
min[H ]
ˆ§êï⨥ ¬¨­¨¬ «ì­®© ¢¥à設ë
ˆ¬¥­­® ¯à¨ í⮩ ®¯¥à 樨 ¯à®¨á室¨â ¯à¥®¡à §®¢ ­¨¥ áâàãªâãàë ªãç¨ (à §­ë¥ ¤¥à¥¢ìï ᮥ¤¨­ïîâáï ¢ ®¤­®), ¯®í⮬㠮­ áãé¥á⢥­­® á«®¦­¥¥ ¯à¥¤ë¤ãé¨å ®¯¥à 権 í⮣® à §¤¥« . « ­ ¤¥©á⢨© â ª®¢: ¯®á«¥ ¨§êïâ¨ï ¬¨­¨¬ «ì­®© ¢¥à設ë â® ¤¥à¥¢®, £¤¥
®­ ¡ë« ª®à­¥¬, à ááë¯ ¥âáï ¢ ­ ¡®à ᢮¨å ¯®¤¤¥à¥¢ì¥¢, ª®â®àë¥ ¤®¡ ¢«ïîâáï ª ª®à­¥¢®¬ã ᯨáªã. ‡ ⥬ § ¯ã᪠¥âáï ¯à®æ¥¤ãà Consolidate, ᮥ¤¨­ïîé ï ¤¥à¥¢ìï, ¯®á«¥ 祣® ¢ ª®à­¥¢®¬ ᯨ᪥
®áâ ñâáï ­¥ ¡®«¥¥ ®¤­®£® ¤¥à¥¢ ª ¦¤®© á⥯¥­¨.
Œë áç¨â ¥¬, çâ® ¯à¨ 㤠«¥­¨¨ ¢¥àè¨­ë ¨§ á¢ï§ ­­®£® ᯨ᪠(áâப 6) ¯®«ï left ¨ right í⮩ ¢¥àè¨­ë ®áâ îâáï ­¥¨§¬¥­­ë¬¨
(­® ¯®«ï ¥ñ á®á¥¤¥©, ª®â®àë¥ ãª §ë¢ «¨ ­ íâã ¢¥à設ã, ®¡­®¢«ïîâáï).
420
ƒ« ¢ 21 ”¨¡®­ ç稥¢ë ªãç¨
Fib-Heap-Extract-Min(H )
1 z min[H ]
2 if z 6= nil
3
then for (¤«ï) ª ¦¤®£® ॡñ­ª x ¢¥à設ë z
4
do ¤®¡ ¢¨âì x ¢ ª®à­¥¢®© ᯨ᮪ H
5
p[x] nil
6
㤠«¨âì z ¨§ ª®à­¥¢®£® ᯨ᪠H
7
if z = right[z ]
8
then min[H ] nil
9
else min[H ] right[z ]
10
Consolidate(H )
11
n[H ] n[H ] ; 1
12 return z
à®æ¥¤ãà Fib-Heap-Extract-Min ¯¥à¥¬¥é ¥â ¢á¥å ¤¥â¥© 㤠«ï¥¬®© (¬¨­¨¬ «ì­®©) ¢¥àè¨­ë ¢ ª®à­¥¢®© ᯨ᮪ ªãç¨ H , á ¬ã ¬¨­¨¬ «ì­ãî ¢¥à設ã 㤠«ï¥â ¨§ ª®à­¥¢®£® ᯨ᪠. ‡ ⥬
¯à®¨§¢®¤¨âáï 㯫®â­¥­¨¥ ª®à­¥¢®£® á¯¨áª á ¯®¬®éìî ¯à®æ¥¤ãàë
Consolidate.
‚ áâப¥ 1 㪠§ â¥«ì ­ ¬¨­¨¬ «ì­ãî ¢¥à設ã á®åà ­ï¥âáï ¢ ¯¥à¥¬¥­­®© z (íâ®â 㪠§ â¥«ì ¢®§¢à é ¥âáï ¯à®æ¥¤ãன ¢ áâப¥ 12).
…᫨ z = nil, ¨á室­ ï ªãç ¯ãáâ , ¨ à ¡®â § ª ­ç¨¢ ¥âáï. ‚ ¯à®â¨¢­®¬ á«ãç ¥ ¬ë 㤠«ï¥¬ z ¨§ ª®à­¥¢®£® ᯨ᪠H (áâப 6),
¯à¥¤¢ à¨â¥«ì­® ¯®¬¥á⨢ ¢ ­¥£® ¢á¥å ¤¥â¥© ¢¥à設ë z (áâப¨ 3{
5). …᫨ ¯®á«¥ í⮣® z = right[z ], â® ¢¥à設 z ­¥ ⮫쪮 ¡ë« ¥¤¨­á⢥­­®© ¢¥à設®© ¢ ª®à­¥¢®¬ ᯨ᪥, ­® ¨ ­¥ ¨¬¥« ¯®â®¬ª®¢, â ª ç⮠⥯¥àì ®áâ ¥âáï «¨èì ᤥ« âì ªãçã ¯ãá⮩ (áâப 8)
¨ ¢®§¢à â¨âì z. ‚ ¯à®â¨¢­®¬ á«ãç ¥ ¬ë ¬¥­ï¥¬ §­ 祭¨¥ 㪠§ ⥫ï
min[H ] â ª, çâ®¡ë ®­ 㪠§ë¢ « ­ ª ªãî-«¨¡® ¢¥à設㠪®à­¥¢®£®
ᯨ᪠, ®â«¨ç­ãî ®â z (¢ ¤ ­­®¬ á«ãç ¥ | ­ ¢¥à設ã right[z]).
 à¨á. 21.3¡ ¯®ª § ­® á®áâ®ï­¨¥ ªãç¨ à¨á. 21.3 ¯®á«¥ ¢ë¯®«­¥­¨ï
áâப¨ 9.
Žáâ ñâáï ¢ë§¢ âì ¯à®æ¥¤ãàã Consolidate (® ª®â®à®© ¬ë £®¢®à¨¬ ¤ «ìè¥) ¤«ï 㯫®â­¥­¨ï (consolidating) ªãç¨. “¯«®â­¥­¨¥ ¯à®¨á室¨â § áçñâ ⮣®, çâ® ¤¢ ¤¥à¥¢ á ¢¥à設 ¬¨ ®¤¨­ ª®¢®© á⥯¥­¨ ᮥ¤¨­ïîâáï ¢ ®¤­® (¥£® ¢¥à設 ¡ã¤¥â ¨¬¥âì ­ ¥¤¨­¨æã
¡®«ìèãî á⥯¥­ì). â ®¯¥à æ¨ï (¯à®æ¥¤ãà Fib-Heap-Link) ¯à®¨§¢®¤¨âáï ¤® â¥å ¯®à, ¯®ª ¢ ª®à­¥¢®¬ ᯨ᪥ ­¥ ®áâ ­¥âáï ¢¥à設
®¤¨­ ª®¢®© á⥯¥­¨.
à¨ ᮥ¤¨­¥­¨¨ ¤¢ãå ¢¥à設 á ¯®¬®éìî ®¯¥à 樨 Fib-HeapLink ¢¥à設 á ¡®«ì訬 ª«î箬 (­ §®¢ñ¬ ¥ñ y ) áâ ­®¢¨âáï ॡñ­ª®¬ ¢¥à設ë á ¬¥­ì訬 ª«î箬 (­ §®¢ñ¬ ¥ñ x). à¨ í⮬ degree[x]
㢥«¨ç¨¢ ¥âáï, ¢¥à設 y ¯¥à¥áâ ñâ ¡ëâì ®â¬¥ç¥­­®© (¥á«¨ ¡ë« â ª®¢®©).
à®æ¥¤ãà Consolidate ¨á¯®«ì§ã¥â ¢á¯®¬®£ ⥫ì­ë© ¬ áᨢ
Ž¯¥à 樨, ¯à¥¤ãᬮâ७­ë¥ ¤«ï ᫨¢ ¥¬ëå ªãç
421
A[0 : :D(n[H ])]. ®§¨æ¨ï á ­®¬¥à®¬ i ¢ í⮬ ¬ áᨢ¥ ¯à¥¤­ §­ 祭 ¤«ï åà ­¥­¨ï 㪠§ â¥«ï ­ ª®à¥­ì 䨡®­ ç稥¢ ¤¥à¥¢ á⥯¥­¨ i.
‚­ ç «¥ ¬ áᨢ ¯ãáâ (¢á¥ ¥£® ï祩ª¨ ᮤ¥à¦ â nil). ®á⥯¥­­® ¢
­¥£® ¯¥à¥¯¨áë¢ îâáï ¢¥àè¨­ë ¨§ ª®à­¥¢®£® ᯨ᪠. …᫨ ¯à¨ í⮬
®ª §ë¢ ¥âáï, çâ® ï祩ª ¤«ï ¢¥àè¨­ë ­ã¦­®© á⥯¥­¨ 㦥 § ­ïâ ,
â® ã ­ á ¥áâì ¤¢ ¤¥à¥¢ í⮩ á⥯¥­¨, ®­¨ ®¡ê¥¤¨­ïîâáï, ¨ ¬ë
¯ëâ ¥¬áï § ¯¨á âì ®¡ê¥¤¨­ñ­­®¥ ¤¥à¥¢® ¢ á«¥¤ãîéãî ï祩ªã ¬ áᨢ A. …᫨ ¨ ®­ § ­ïâ , â® ¬ë á­®¢ ¯à®¨§¢®¤¨¬ ®¯¥à æ¨î ®¡ê¥¤¨­¥­¨ï, ¯®«ãç ¥¬ ¤¥à¥¢® ¥éñ ­ ¥¤¨­¨æã ¡®«ì襩 á⥯¥­¨ ¨ â. ¤.
Consolidate(H )
1 for i 0 to D(n[H ])
2
do A[i] nil
3 for (¤«ï) ª ¦¤®© ¢¥à設ë w ª®à­¥¢®£® ᯨ᪠ªãç¨ H
4
do x w
5
d degree[x]
6
while A[d] =
6 nil
7
do y A[d]
8
if key[x] > key[y ]
9
then ®¡¬¥­ x $ y
10
Fib-Heap-Link(H; y; x)
11
A[d] nil
12
d d+1
13
A[d] x
14 min[H ] nil
15 for i 0 to D(n[H ])
16
do if A[i] =
6 nil
17
then ¤®¡ ¢¨âì A[i] ¢ ª®à­¥¢®© ᯨ᮪ H
18
if min[H ] = nil or key[A[i]] < key[min[H ]]
19
then min[H ] A[i]
Fib-Heap-Link(H; y; x)
1 㤠«¨âì y ¨§ ª®à­¥¢®£® ᯨ᪠ªãç¨ H
2 ¢ª«îç¨âì y ¢ ᯨ᮪ ¤¥â¥© ¢¥à設ë x, 㢥«¨ç¨¢ degree[x]
3 mark[y ] false
Ž¯¨è¥¬ à ¡®âã ¯à®æ¥¤ãàë Consolidate ¡®«¥¥ ¯®¤à®¡­®. ‚ áâப å 1{2 ¬ áᨢ A § ¯®«­ï¥âáï §­ 祭¨ï¬¨ nil. ‚ 横«¥ for (áâப¨
3{13) ¬ë ¯¥à¥¡¨à ¥¬ ¢á¥ ª®à­¥¢ë¥ ¢¥à設ë w. Š ¦¤ãî ¨§ ­¨å
¬ë ¤®¡ ¢«ï¥¬ ª ¬ áᨢã A (ᮥ¤¨­ïï ¥ñ á ¨¬¥î騬¨áï â ¬ ¢¥à設 ¬¨, ¥á«¨ ­ã¦­®). Ž¡à ¡®âª ª ¦¤®© ¨§ ª®à­¥¢ëå ¢¥à設 w ¬®¦¥â
¯®âॡ®¢ âì ­¥áª®«ìª¨å ®¯¥à 権 Fib-Heap-Link ¨ § ª ­ç¨¢ ¥âáï
ᮧ¤ ­¨¥¬ ¤¥à¥¢ , ª®à­¥¢ ï ¢¥à設 x ª®â®à®£® ¬®¦¥â ᮢ¯ ¤ âì, ¬®¦¥â ¨ ­¥ ᮢ¯ ¤ âì á w, ­® ¢ «î¡®¬ á«ãç ¥ íâ® ¤¥à¥¢® ᮤ¥à¦¨â
¢¥à設ã w. ®á«¥ í⮣® í«¥¬¥­â ¬ áᨢ A[degree[x]] ãáâ ­ ¢«¨¢ ¥âáï â ª¨¬ ®¡à §®¬, çâ®¡ë ®­ 㪠§ë¢ « ­ x. ‚ ¯à®æ¥áᥠíâ¨å
422
ƒ« ¢ 21 ”¨¡®­ ç稥¢ë ªãç¨
¨áã­®ª 21.3  ¡®â ¯à®æ¥¤ãàë Fib-Heap-Extract-Min. ( ) ”¨¡®­ ç稥¢ ªãç H . (¡) Œ¨­¨¬ «ì­ ï ¢¥à設 z 㤠«¥­ ¨§ ª®à­¥¢®£® ᯨ᪠; ¥ñ ¯®â®¬ª¨
¢ª«îç¥­ë ¢ ª®à­¥¢®© ᯨ᮪. (¢){(¤) Œ áᨢ A ¨ ¤¥à¥¢ìï ¯®á«¥ ª ¦¤®© ¨§ ¯¥à¢ëå âàñå ¨â¥à 権 横« for (áâப¨ 3{13 ¯à®æ¥¤ãàë Consolidate). Š®à­¥¢®©
ᯨ᮪ ¯à®á¬ âਢ ¥âáï á«¥¢ ­ ¯à ¢® ¯® ªàã£ã, ­ 稭 ï á min[H ]. (¥)-(§) ‘«¥¤ãîé ï ¨â¥à æ¨ï 横« for. ¨á. (¥) ¯®ª §ë¢ ¥â á®áâ®ï­¨¥ ¯®á«¥ ¯¥à¢®£® ¨á¯®«­¥­¨ï ⥫ 横« while: ¢¥à設 á ª«î箬 23 ¯®¤¢¥è¥­ ª ¢¥à設¥ á ª«î箬 7,
­ ª®â®àãî ⥯¥àì 㪠§ë¢ ¥â x. ‡ ⥬ ¢¥à設 á ª«î箬 17 ¯®¤¢¥è¨¢ ¥âáï ª
ª ¢¥à設¥ á ª«î箬 7 (¦), ¯®â®¬ ¨ ¢¥à設 á ª«î箬 24 ¯®¤¢¥è¨¢ ¥âáï ª
¢¥à設¥ á ª«î箬 7 (§). ®áª®«ìªã ï祩ª A[3] ¡ë« ᢮¡®¤­®©, 横« for § ¢¥àè ¥âáï ¨ A[3] 㪠§ë¢ ¥â ­ ª®à¥­ì ¯®«ã祭­®£® ¤¥à¥¢ . (¨)-(«) ‘®áâ®ï­¨ï
¯®á«¥ ª ¦¤®© ¨§ á«¥¤ãîé¨å ç¥âëà¥å ¨â¥à 権 横« while. (¬) ”¨¡®­ ç稥¢ ªãç H ¯®á«¥ ¯à¥®¡à §®¢ ­¨ï ¬ áᨢ A ¢ ª®à­¥¢®© ᯨ᮪ ¨ ãáâ ­®¢ª¨ ­®¢®£®
§­ 祭¨ï 㪠§ ⥫ï min[H ].
Ž¯¥à 樨, ¯à¥¤ãᬮâ७­ë¥ ¤«ï ᫨¢ ¥¬ëå ªãç
423
¯à¥®¡à §®¢ ­¨© ¢¥à設 w ®áâ ñâáï ¯®â®¬ª®¬ ¢¥à設ë x.
ˆ­¢ ਠ­â 横« while (áâப¨ 6{12) â ª®¢: "d = degree[x]; ®áâ «®áì ¤®¡ ¢¨âì ¤¥à¥¢® á ª®à­¥¬ ¢ x ª ¬­®¦¥áâ¢ã, ¯à¥¤áâ ¢«¥­­®¬ã
¬ áᨢ®¬ A". …᫨ ¯à¨ í⮬ A[d] = nil, â® ¬ë ¢ë¯®«­ï¥¬ íâã ®¯¥à æ¨î (¤®¡ ¢«¥­¨¥) ¢ áâப¥ 13. …᫨ ¦¥ A[d] =
6 nil, â® ¬ë ¨¬¥¥¬
¤¢ ¤¥à¥¢ á⥯¥­¨ d á ª®à­ï¬¨ ¢ x ¨ y = A[d], ¨ ¢ áâப å 8{10
ᮥ¤¨­ï¥¬ ¨å ¢ ®¤­® ¤¥à¥¢® á ª®à­¥¬ ¢ x (®¤­®¢à¥¬¥­­® ®ç¨é ï
ï祩ªã A[d] ¨ á®åà ­ïï ¨­¢ ਠ­â).
 §«¨ç­ë¥ áâ ¤¨¨ í⮣® ¯à®æ¥áá ¯®ª § ­ë ­ à¨á. 21.3.
®á«¥ í⮣® ®áâ ñâáï ¯à¥®¡à §®¢ âì ¬ áᨢ A ¢ ª®à­¥¢®© ᯨ᮪:
¢ áâப¥ 14 ¬ë ᮧ¤ ñ¬ ¯ãá⮩ ᯨ᮪, ¢ 横«¥ ¢ áâப å 15{19
¤®¡ ¢«ï¥¬ ¢ ­¥£® ¯® ®ç¥à¥¤¨ ¢á¥ ¢¥à設ë, ¨¬¥î騥áï ¢ ¬ áᨢ¥ A.
¥§ã«ìâ â ¯®ª § ­ ­ à¨á. 21.3¬.
 í⮬ ¯à®æ¥áá 㯫®â­¥­¨ï § ª ­ç¨¢ ¥âáï, ¨ ã¯à ¢«¥­¨¥ ¢®§¢à é ¥âáï ¢ ¯à®æ¥¤ãàã Fib-Heap-Extract-Min, ª®â®à ï 㬥­ìè ¥â
n[H ] ­ 1 ¨ ¢®§¢à é ¥â 㪠§ â¥«ì ­ ¨§êïâãî ¢¥à設ã z (áâப¨
11{12).
‡ ¬¥â¨¬, çâ® ¥á«¨ ¯¥à¥¤ ¢ë¯®«­¥­¨¥¬ ®¯¥à 樨 Fib-HeapExtract-Min ¢á¥ ¤¥à¥¢ìï ¢ H ¡ë«¨ ­¥ã¯®à冷祭­ë¬¨ ¡¨­®¬¨ «ì­ë¬¨ ¤¥à¥¢ìﬨ, â® ¨ ¯®á«¥ ¢ë¯®«­¥­¨ï ®¯¥à 樨 H ¡ã¤¥â
á®áâ®ïâì ¨§ ­¥ã¯®à冷祭­ëå ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ì¥¢. ‚ á ¬®¬
¤¥«¥, ᮥ¤¨­¥­¨¥ ¤¢ãå ­¥ã¯®à冷祭­ëå ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ì¥¢ á
424
ƒ« ¢ 21 ”¨¡®­ ç稥¢ë ªãç¨
®¤¨­ ª®¢ë¬¨ á⥯¥­ï¬¨ ª®à­ï (¯à®æ¥¤ãà Fib-Heap-Link) ¤ ñâ
(­¥ã¯®à冷祭­®¥) ¡¨­®¬¨ «ì­®¥ ¤¥à¥¢® (á⥯¥­ì ¥£® ª®à­ï ­ ¥¤¨­¨æã ¡®«ìè¥).
 ¬ ®áâ «®áì ¯®ª § âì, çâ® ãçñâ­ ï á⮨¬®áâì ¨§êïâ¨ï ¬¨­¨¬ «ì­®© ¢¥àè¨­ë ¨§ n-í«¥¬¥­â­®© 䨡®­ ç稥¢®© ªãç¨ ¥áâì
O(D(n)). ®á¬®âਬ, ª ª¨¥ ®¯¥à 樨 ­ ¬ ¯à¨è«®áì ¢ë¯®«­¨âì.
à¥¦¤¥ ¢á¥£® ­ã¦­® O(D(n)) ¤¥©á⢨©, çâ®¡ë ¯®¬¥áâ¨âì ¢á¥å ¯®â®¬ª®¢ 㤠«ï¥¬®© ¢¥à設ë z ¢ ª®à­¥¢®© ᯨ᮪.  ç «ì­ë© ¨ ª®­¥ç­ë© íâ ¯ë à ¡®âë ¯à®æ¥¤ãàë Consolidate (áâப¨ 1{2 ¨ 15{
19) â ª¦¥ âॡã¥â ¢à¥¬¥­¨ O(D(n)). Žáâ ñâáï ãç¥áâì ¢ª« ¤ 横« for, à ᯮ«®¦¥­­®£® ¢ áâப å 3{13. â® ç¨á«® ®æ¥­¨¢ ¥âáï
ᢥàåã ª ª O(D(n)) (à §¬¥à ¬ áᨢ A) ¯«îá ª®­áâ ­â , 㬭®¦¥­­ ï ­ ç¨á«® ®¡à 饭¨© ª ¯à®æ¥¤ãॠFib-Heap-Link. ® ¯à¨ ª ¦¤®¬ â ª®¬ ®¡à 饭¨¨ ¤¢ ¤¥à¥¢ ᫨¢ îâáï, çâ® ¯à¨¢®¤¨â ¢ ¨â®£¥
ª 㬥­ì襭¨î ¤«¨­ë ª®à­¥¢®£® ᯨ᪠­ 1 ¨ ª 㬥­ì襭¨î ¯®â¥­æ¨ « ¯® ªà ©­¥© ¬¥à¥ ­ 1 (ç¨á«® ®â¬¥ç¥­­ëå ¢¥à設 ¬®¦¥â
㬥­ìè¨âìáï, ­® ­¥ 㢥«¨ç¨âìáï). ’ ª ç⮠㬭®¦¨¢ ¯®â¥­æ¨ « ­ ¯®¤å®¤ïéãî ª®­áâ ­âã, ¬ë ¬®¦¥¬ áç¨â âì, çâ® ãçñâ­ ï á⮨¬®áâì
®¯¥à 樨 㤠«¥­¨ï ¥áâì O(D(n)).
„à㣨¬¨ á«®¢ ¬¨, ®¯¥à 樨 á¢ï§ë¢ ­¨ï ¤¥à¥¢ì¥¢ ®¤¨­ ª®¢®© á⥯¥­¨ (ª®â®àëå ¬®¦¥â ¡ëâì ¬­®£®, ¥á«¨ ª®à­¥¢®© ᯨ᮪ ¤«¨­­ë©)
®¯« 稢 îâáï ª ª à § § áçñâ 㬥­ì襭¨ï ¤«¨­ë ª®à­¥¢®£® ᯨ᪠!
“¯à ¦­¥­¨ï
 à¨áã©â¥ 䨡®­ ç稥¢ã ªãçã, ª®â®à ï ¯®«ãç¨âáï ¢ १ã«ìâ ⥠¨§êïâ¨ï ¬¨­¨¬ «ì­®© ¢¥à設ë (á ¯®¬®éìî ¯à®æ¥¤ãàë
Fib-Heap-Extract-Min) ¨§ ªãç¨ à¨á. 21.3¬.
21.2-2 „®ª ¦¨â¥, çâ® «¥¬¬ 20.1 ®áâ ñâáï ¢¥à­®© ¤«ï ­¥ã¯®à冷祭­ëå ¡¨­®¬¨ «ì­ëå ¤¥à¥¢ì¥¢, ¥á«¨ ᢮©á⢮ 4 § ¬¥­¨âì ­ ᢮©á⢮ 40: ª®à¥­ì ­¥ã¯®à冷祭­®£® ¡¨­®¬¨ «ì­®£® ¤¥à¥¢ Uk ¨¬¥¥â
á⥯¥­ì k, ª®â®à ï ï¥âáï ¬ ªá¨¬ «ì­®© á⥯¥­ìî ¢¥àè¨­ë ¢ ¤¥à¥¢¥; ¤¥â¨ ª®à­ï ïîâáï ¢¥à設 ¬¨ ¤¥à¥¢ì¥¢ U0; U1; : : :; Uk;1 (¢
­¥ª®â®à®¬ ¯®à浪¥).
21.2-3 ®ª ¦¨â¥, çâ® ¥á«¨ ¢ë¯®«­ïîâáï «¨èì ®¯¥à 樨, ®¯¨á ­­ë¥ ¢ à §¤¥«¥ 21.2, â® ¢ ªãç¥ á n ¢¥à設 ¬¨ ¢á¥ ¢¥àè¨­ë ¨¬¥îâ
á⥯¥­ì ­¥ ¡®«ìè¥ blg nc.
21.2-4 à®ä¥áá®à ¯à¨¤ã¬ « ­®¢ãî áâàãªâãàã ¤ ­­ëå, ®á­®¢ ­­ãî ­ 䨡®­ ç稥¢ëå ªãç å: ®¯¥à 樨 ¢ë¯®«­ïîâáï ª ª ®¯¨á ­®
¢ à §¤¥«¥ 21.2, ­® ⮫쪮 ¯®á«¥ ¤®¡ ¢«¥­¨ï ¢¥àè¨­ë ¨ ᮥ¤¨­¥­¨ï
¤¢ãå ªãç áà §ã ¦¥ ¯à®¨§¢®¤¨âáï 㯫®â­¥­¨¥ ª®à­¥¢®£® ᯨ᪠. Š ª®¢® ¢à¥¬ï ¢ë¯®«­¥­¨ï à §«¨ç­ëå ®¯¥à 権 ­ ¤ â ª¨¬¨ ªãç ¬¨ ¢
åã¤è¥¬ á«ãç ¥? ã¤¥â «¨ â ª ï áâàãªâãà ¤ ­­ëå 祬-â® ­®¢ë¬?
21.2-1
“¬¥­ì襭¨¥ ª«îç ¨ 㤠«¥­¨¥ ¢¥à設ë
425
21.2-5 ã¤¥¬ áç¨â âì, çâ® ª«îç¨ ¬®¦­® ⮫쪮 áà ¢­¨¢ âì (¨å
¢­ãâ७­ïï áâàãªâãà ­ ¬ ­¥¤®áâ㯭 ). Œ®¦­® «¨ ⮣¤ ॠ«¨§®¢ âì ®¯¥à 樨 ­ ¤ ᫨¢ ¥¬ë¬¨ ªãç ¬¨ â ª, çâ®¡ë ª ¦¤ ï ¨§ ­¨å
¨¬¥« ãçñâ­ãî á⮨¬®áâì O(1)? (“ª § ­¨¥: ¨á¯®«ì§ã©â¥ ®æ¥­ª¨ ¤«ï
¢à¥¬¥­¨ á®àâ¨à®¢ª¨.)
21.3 “¬¥­ì襭¨¥ ª«îç ¨ 㤠«¥­¨¥ ¢¥à設ë
‚ í⮬ à §¤¥«¥ ¬ë ¯®ª ¦¥¬, ª ª ॠ«¨§®¢ âì ®¯¥à æ¨î 㬥­ì襭¨ï ª«îç § ¤ ­­®© ¢¥à設ë á ãçñâ­®© á⮨¬®áâìî O(1), â ª¦¥
®¯¥à æ¨î 㤠«¥­¨ï ¢¥àè¨­ë ¨§ 䨡®­ ç稥¢®© ªãç¨ á ãçñâ­®© á⮨¬®áâìî O(D(n)) (£¤¥ n | ç¨á«® ¢¥à設 ¢ ªãç¥), D(n) | ®æ¥­ª ¤«ï ¬ ªá¨¬ «ì­®© á⥯¥­¨ ¢¥à設ë.
®á«¥ íâ¨å ®¯¥à 権 ¢å®¤ï騥 ¢ ªãçã ¤¥à¥¢ìï ¯¥à¥áâ îâ ¡ëâì
¡¨­®¬¨ «ì­ë¬¨, ­® ­¥ ᫨誮¬ ¤ «¥ª® ®âª«®­ïîâáï ®â ­¨å, â ª
çâ® ¬ ªá¨¬ «ì­ ï á⥯¥­ì ¢¥àè¨­ë ®áâ ñâáï à ¢­®© O(lg n). ’ ª¨¬
®¡à §®¬, ®¯¥à 樨 Fib-Heap-Extract-Min ¨ Fib-Heap-Delete
¨¬¥îâ ãçñâ­ãî á⮨¬®áâì O(lg n).
“¬¥­ì襭¨¥ ª«îç ‚ á«¥¤ãî饩 ¯à®æ¥¤ãॠ㬥­ì襭¨ï ª«îç (Fib-HeapDecrease-Key) ¬ë ¯à¥¤¯®« £ ¥¬, çâ® ¯®á«¥ ¨§êïâ¨ï ¢¥àè¨­ë ¨§
ᯨ᪠áá뫪 ­ ¢¥à設ã-ॡñ­ª ­¥ ¬¥­ï¥âáï (â ª çâ® ¯à®æ¥¤ãà Cut ¢ë१ ¥â 楫®¥ ¯®¤¤¥à¥¢®, á¬. ­¨¦¥)
Fib-Heap-Decrease-Key (H; x; k)
1 if k > key[x]
2 then error "­®¢®¥ §­ 祭¨¥ ª«îç ¡®«ìè¥ áâ ண®"
3 key[x] k
4 y p[x]
5 if y =
6 nil and key[x] < key[y]
6 then Cut(H; x; y )
7
Cascading-Cut(H; y )
8 if key[x] < key[min[H ]]
9 then min[H ] x
Cut(H; x; y )
1
2
3
4
㤠«¨âì x ¨§ ᯨ᪠¤¥â¥© ¢¥à設ë y, 㬥­ì訢 degree[y] ­ 1
¤®¡ ¢¨âì x ¢ ª®à­¥¢®© ᯨ᮪ ªãç¨ H
p[x] nil
mark[x] false
426
ƒ« ¢ 21 ”¨¡®­ ç稥¢ë ªãç¨
Cascading-Cut(H; y )
1 z p[y ]
2 if z 6= nil
3 then if mark[y ] = false
4
then mark[y ] true
5
else Cut(H; y; z )
6
Cascading-Cut(H; z )
à®æ¥¤ãà Fib-Heap-Decrease-Key à ¡®â ¥â â ª. ‘­ ç « (áâப¨ 1{3) ¯à®¢¥àï¥âáï, ¤¥©á⢨⥫쭮 «¨ ­®¢®¥ §­ 祭¨¥ ª«îç ¬¥­ìè¥ áâ ண®. …᫨ ¤ , â® áâ ஥ §­ 祭¨¥ § ¬¥­ï¥âáï ­ ­®¢®¥. ‚®§¬®¦­®, ­®¢®¥ §­ 祭¨¥ ¯®-¯à¥¦­¥¬ã ¡®«ìè¥ §­ 祭¨ï ¢
¢¥à設¥-த¨â¥«¥, ⮣¤ ¢áñ ¢ ¯®à浪¥. …᫨ ¦¥ ­¥â, â® ¢ áâப å
6{7 ¯®¤¤¥à¥¢® á ª®à­¥¬ x ¢ë१ ¥âáï ¨ ¯¥à¥­®á¨âáï ¢ ª®à­¥¢®©
ᯨ᮪ á ¯®¬®éìî ¯à®æ¥¤ãà "ª ᪠¤­®£® ¢ë१ ­¨ï".
ˆ¤¥ï âãâ ¯à®áâ : ¬ë ­¥ å®â¨¬ ¯®§¢®«ïâì ¢¥à設¥ ¢á¯«ë¢ âì
¤® ª®à­ï (­ ¯®¬­¨¬: ­ ¬ ­ã¦­ ®æ¥­ª O(1) ¤«ï ãçñâ­®© á⮨¬®áâ¨). à¨å®¤¨âáï ¥ñ ¢ë१ âì 楫¨ª®¬ ¨ ¯®¬¥é âì ¢ ª®à­¥¢®© ᯨ᮪. Žâ í⮣® à áâñâ ¯®â¥­æ¨ «, ­® ¢á¥£® ­ O(1), â ª çâ® íâ® ­¥
áâà è­®. ® ¬ë ¤®«¦­ë á«¥¤¨âì § áâàãªâãன ¤¥à¥¢ , ¯®áª®«ìªã
å®â¨¬ ¨¬¥âì «®£ à¨ä¬¨ç¥áªãî ®æ¥­ªã ­ ¬ ªá¨¬ «ì­ãî á⥯¥­ì
¢¥à設ë (D(n) = O(lg n)). ‡ ¡¥£ ï ¢¯¥àñ¤, ®â¬¥â¨¬, çâ® ¢ëá®â ¤¥à¥¢ ­¥ ®¡ï§ ­ ¡ëâì «®£ à¨ä¬¨ç¥áª®© (á¬. ã¯à. 21.4-1).
Œë ¡ã¤¥¬ á«¥¤¨âì, ç⮡ë ã ®¤­®© ¨ ⮩ ¦¥ ¢¥à設ë, ­¥ ¢å®¤ï饩 ¢ ª®à­¥¢®© ᯨ᮪, ­¥ 㤠«ï«®áì ­¥áª®«ìª® ¤¥â¥©. „«ï í⮣®
¨á¯®«ì§ãîâáï ¯®¬¥âª¨ (¯®«¥ mark ): ¯®á«¥ 㤠«¥­¨ï ॡñ­ª (¯¥à¥­¥á¥­¨ï ¥£® ¢ ª®à­¥¢®© ᯨ᮪ á ¯®¬®éìî ¯à®æ¥¤ãàë Cut) ¢¥à設 ¤¥« ¥âáï ®â¬¥ç¥­­®©, ¥á«¨ ®­ à ­¥¥ ­¥ ¡ë« ®â¬¥ç¥­­®© ¨ ­¥ ¡ë« ª®à­¥¬ (áâப¨ 3{4 ¯à®æ¥¤ãàë Cascading-Cut). …᫨ ¦¥ ¢¥à設 ,
ã ª®â®à®© 㤠«ñ­ ॡñ­®ª, 㦥 ¡ë« ®â¬¥ç¥­­®©, â® ®­ á ¬ ¯¥à¥­®á¨âáï ¢ ª®à­¥¢®© ᯨ᮪, ¤«ï ¥ñ த¨â¥«ï ¯®¢â®àï¥âáï â ¦¥
¯à®æ¥¤ãà .
®á«¥ ¢ë¯®«­¥­¨ï ®¯¥à 権 ¢ë१ ­¨ï ®áâ ñâáï ⮫쪮 ᪮à४â¨à®¢ âì âਡãâ min[H ]. ‡ ¬¥â¨¬, çâ® ¬¨­¨¬ «ì­®© ¬®¦¥â ¡ëâì
«¨¡® ¢¥à設 á 㬥­ì襭­ë¬ ª«î箬, «¨¡® ¯à¥¦­ïï ¬¨­¨¬ «ì­ ï
¢¥à設 .
’ ª¨¬ ®¡à §®¬, ¦¨§­¥­­ë© 横« ¢¥àè¨­ë ¢ë£«ï¤¨â â ª. ‘­ ç « ®­ ¤®¡ ¢«ï¥âáï ¢ ¤¥à¥¢®, ¯®¯ ¤ ï ¢ ¥£® ª®à­¥¢®© ᯨ᮪. à¨
¢ë¯®«­¥­¨¨ ®¯¥à 樨 Consolidate ¤¥à¥¢ìï ¢ ª®à­¥¢®¬ ᯨ᪥ ®¡ê¥¤¨­ïîâáï. à¨ í⮬ ¢¥à設 ¬®¦¥â «¨¡® ®áâ âìáï ¢ ª®à­¥¢®¬
ᯨ᪥, ¯à¨®¡à¥âï ­®¢®£® ॡñ­ª (¥á«¨ ¥ñ ª«îç ¬¥­ìè¥ ª«îç ¤à㣮© ¢¥à設ë, á ª®â®à®© ®­ ®¡ê¥¤¨­ï¥âáï), «¨¡® áâ âì ॡñ­ª®¬
¤à㣮© ¢¥àè¨­ë ª®à­¥¢®£® ᯨ᪠. ‚¥à設 ª®à­¥¢®£® ᯨ᪠¬®¦¥â ­¥ ⮫쪮 ¯à¨®¡à¥â âì ¤¥â¥©, ­® ¨ â¥àïâì ¨å (¯à®æ¥¤ãà Cut);
®â¬¥â¨¬, çâ® ¯à¨ í⮬ ®­ ­¥ áâ ­®¢¨âáï ¯®¬¥ç¥­­®© (áâப 4 ¯à®-
“¬¥­ì襭¨¥ ª«îç ¨ 㤠«¥­¨¥ ¢¥à設ë
427
楤ãàë Cascading-Cut ¢ë¯®«­ï¥âáï, «¨èì ¥á«¨ ¢ë¯®«­¥­® ãá«®¢¨¥ ¢ áâப¥ 2).
‚ ª ª®©-â® ¬®¬¥­â ¢¥à設 ¨áª«îç ¥âáï ¨§ ª®à­¥¢®£® ᯨ᪠,
áâ ­®¢ïáì ॡñ­ª®¬ ¤à㣮© ¢¥àè¨­ë ¯à¨ ¢ë¯®«­¥­¨¨ ¯à®æ¥¤ãàë
Consolidate. à¨ í⮬ ¥ñ ¯®¬¥âª (¥á«¨ ®­ ¡ë« ) 㤠«ï¥âáï
(áâப 3 ¯à®æ¥¤ãàë Fib-Link). ‘ í⮣® ¬®¬¥­â ­®¢ëå ¤¥â¥© ã ­¥ñ
­¥ ¯à¨¡ ¢«ï¥âáï, ­® ¬®¦¥â ¡ëâì 㤠«ñ­ ®¤¨­ ॡñ­®ª, ®â祣® ®­ áâ ­¥â ¯®¬¥ç¥­­®©. à¨ 㤠«¥­¨¨ ¢â®à®£® ॡñ­ª ¢¥à設 ¢­®¢ì
¯¥à¥¬¥é ¥âáï ¢ ª®à­¥¢®© ᯨ᮪, áâ ­®¢ïáì ­¥¯®¬¥ç¥­­®©. „à㣮©
ᯮᮡ ¢¥à­ãâìáï ¢ ª®à­¥¢®© ᯨ᮪ | ®ª § âìáï ॡñ­ª®¬ ¨§ë¬ ¥¬®© ¢¥àè¨­ë ¯à¨ ®¯¥à 樨 Fib-Heap-Extract-Min (¯à¨ í⮬
¯®¬¥âª ­¥ ¬¥­ï¥âáï).
®á«¥ ¢®§¢à 饭¨ï ¢ ª®à­¥¢®© ᯨ᮪ ª ¢¥à設¥ ¢­®¢ì ¬®£ãâ ¤®¡ ¢«ïâìáï ¤¥â¨ (¯à¨ ®¯¥à 樨 Consolidate). „¥â¨ ¬®£ãâ ¨ 㤠«ïâìáï (®¯¥à æ¨ï Cut). ‚ ª ª®©-â® ¬®¬¥­â ¢¥à設 á­®¢ ¬®¦¥â
®ª § âìáï ॡñ­ª®¬ ¤à㣮© ¢¥àè¨­ë ª®à­¥¢®£® ᯨ᪠, ¨ â ª ¤ «¥¥
| ¤® â¥å ¯®à, ¯®ª íâ ¢¥à設 ­¥ ¡ã¤¥â ¨§êïâ ¨§ ¤¥à¥¢ (¨«¨ ­¥
¡ã¤¥â 㬥­ì襭 ª«îç).
 à¨á. 21.4 ¯®ª § ­ë ¤¢¥ ®¯¥à 樨 Fib-Heap-Decrease-Key,
¯¥à¢ ï ¨§ ª®â®àëå ­¥ ¢ë§ë¢ ¥â 楯®çª¨ ®¯¥à 権 Cut, ¢â®à ï
¢ë§ë¢ ¥â.
®ª ¦¥¬, çâ® ãçñâ­ ï á⮨¬®áâì ®¯¥à 樨 Fib-Heap-DecreaseKey á®áâ ¢«ï¥â O(1).  ç­¥¬ á ®¯à¥¤¥«¥­¨ï ä ªâ¨ç¥áª®© á⮨¬®áâ¨. à®æ¥¤ãàë Fib-Heap-Decrease-Key, Cut ¨ Cascading-Cut
­¥ ᮤ¥à¦ â 横«®¢, â ª çâ® ¢à¥¬ï à ¡®âë ¯à®¯®à樮­ «ì­® ¤«¨­¥
楯®çª¨ ४ãàᨢ­ëå ¢ë§®¢®¢ (ª®â®àãî ¬ë ®¡®§­ 稬 ç¥à¥§ c).
Š ª ¯à¨ í⮬ ¬¥­ï¥âáï ¯®â¥­æ¨ «? –¥¯®çª ४ãàᨢ­ëå ¢ë§®¢®¢ ᮮ⢥âáâ¢ã¥â 楯®çª¥ ¯®¬¥ç¥­­ëå ¢¥à設 ¢ ¤¥à¥¢¥, ª ¦¤ ï ¨§
ª®â®àëå ï¥âáï ॡñ­ª®¬ á«¥¤ãî饩. â¨ ¢¥àè¨­ë ¯¥à¥¬¥é îâáï ¢ ª®à­¥¢®© ᯨ᮪ ¨ áâ ­®¢ïâáï ­¥¯®¬¥ç¥­­ë¬¨. ’ ª¨¬ ®¡à §®¬, ¯®â¥­æ¨ « 㢥«¨ç¨¢ ¥âáï ¯à¨¬¥à­® ­ c § áçñâ 㢥«¨ç¥­¨ï
ç¨á« ¢¥à設 ¢ ª®à­¥¢®¬ ᯨ᪥, ­® ¨ 㬥­ìè ¥âáï ¯à¨¬¥à­® ­ 2c
§ áçñâ ⮣®, ç⮠㬥­ìè ¥âáï ç¨á«® ¯®¬¥ç¥­­ëå ¢¥à設. (à ¢¤ ,
¬®¦¥â ¯®ï¢¨âìáï ­®¢ ï ¯®¬¥ç¥­­ ï ¢¥à設 , ­® íâ ¯®¯à ¢ª ¨¬¥¥â
¯®à冷ª O(1).) ‚ ¨â®£¥ ¯®â¥­æ¨ « 㬥­ìè ¥âáï ­ c + O(1). (’¥¯¥àì
ïá­®, ¯®ç¥¬ã ¯à¨ ®¯à¥¤¥«¥­¨¨ ¯®â¥­æ¨ « ç¨á«® ¯®¬¥ç¥­­ëå ¢¥à設 ãç¨âë¢ «®áì á® ¢¤¢®¥ ¡®«ì訬 ¢¥á®¬, 祬 ç¨á«® ¢¥à設 ¢
ª®à­¥¢®¬ ᯨ᪥!)
“¬­®¦ ï ¯®â¥­æ¨ « ­ ¤®áâ â®ç­ãî ª®­áâ ­âã (¢ë¡¨à ï ¡®«ìèãî " ¥¤¨­¨æã à ¡®âë"), ¬®¦­® áç¨â âì, ç⮠㬥­ì襭¨¥ ¯®â¥­æ¨ « ª®¬¯¥­á¨àã¥â ä ªâ¨ç¥áªãî á⮨¬®áâì 楯®çª¨ ४ãàᨢ­ëå ¢ë§®¢®¢, â ª çâ® ãçñâ­ ï á⮨¬®áâì ®¯¥à 樨 Fib-HeapDecrease-Key ¥áâì O(1).
428
ƒ« ¢ 21 ”¨¡®­ ç稥¢ë ªãç¨
¨áã­®ª 21.4 „¢ ¢ë§®¢ ¯à®æ¥¤ãàë Fib-Heap-Decrease-Key. ( ) ˆá室­ ï
䨡®­ ç稥¢ ªãç . (¡) Š«îç 46 㬥­ìè ¥âáï ¤® 15, ᮮ⢥âáâ¢ãîé ï ¢¥à設 áâ ­®¢¨âáï ª®à­¥¢®©, ¥ñ த¨â¥«ì (á ª«î箬 24) | ®â¬¥ç¥­­ë¬. (¢){(¤) Š«îç
35 㬥­ìè ¥âáï ¤® 5; ¢¥à設 áâ « ª®à­¥¢®© (¢). …ñ த¨â¥«ì (á ª«î箬 26)
¡ë« ®â¬¥ç¥­, â ª çâ® ¥£® ¯à¨å®¤¨âáï â ª¦¥ ¯¥à¥­¥á⨠¢ ª®à­¥¢®© ᯨ᮪ (£); § ⥬ â® ¦¥ á ¬®¥ ¯à®¨á室¨â ¨ á ª«î箬 24.  í⮬ ª ᪠¤ ¢ë१ ­¨© § ª ­ç¨¢ ¥âáï, â ª ª ª ¢¥à設 á ª«î箬 7 | ª®à­¥¢ ï. (…᫨ ¡ë ®­ ­¥ ¡ë« ª®à­¥¢®©,
â® ®­ áâ « ¡ë ®â¬¥ç¥­­®©, ¨ ª ᪠¤ ¢áñ à ¢­® § ª®­ç¨«áï ¡ë.) ®á«¥ í⮣®
®áâ ñâáï ¯¥à¥­¥á⨠㪠§ ⥫ì min[H ] ­ ­®¢ãî ¬¨­¨¬ «ì­ãî ¢¥à設ã (¤).
“¤ «¥­¨¥ ¢¥à設ë
â ®¯¥à æ¨ï ᢮¤¨âáï ª ¤¢ã¬ à áᬮâ७­ë¬ à ­¥¥ (¬ë áç¨â ¥¬, çâ® ª«îç ;1 ¬¥­ìè¥ ¢á¥å ª«î祩 ªãç¨).
Fib-Heap-Delete (H; x)
1 Fib-Heap-Decrease-Key (H; x; ;1)
2 Fib-Heap-Extract-Min(H )
€­ «®£¨ç­ë¬ ®¡à §®¬ ¬ë ¯®áâ㯠«¨ ¨ á ¡¨­®¬¨ «ì­ë¬¨ ¤¥à¥¢ìﬨ. ‘­ ç « ¢¥à設 x ¤¥« ¥âáï ¬¨­¨¬ «ì­®©, § ⥬ 㤠«ï¥âáï. “çñâ­ ï á⮨¬®áâì â ª¨å ¤¥©á⢨© à ¢­ á㬬¥ ãçñâ­®© á⮨¬®á⨠®¯¥à 樨 Fib-Heap-Decrease-Key (ª®â®à ï ¥áâì O(1)) ¨
®¯¥à 樨 Fib-Heap-Extract-Min (ª®â®à ï ¥áâì O(D(n))).
Žæ¥­ª ¬ ªá¨¬ «ì­®© á⥯¥­¨
429
“¯à ¦­¥­¨ï
21.3-1 Š ª¨¬ ®¡à §®¬ ¬®¦¥â ¯®ï¢¨âìáï ¯®¬¥ç¥­­ ï ¢¥à設 ¢
ª®à­¥¢®¬ ᯨ᪥?
21.3-2 „®ª ¦¨â¥ ®æ¥­ªã O(1) ¤«ï ãçñâ­®© á⮨¬®á⨠®¯¥à 樨
Fib-Heap-Decrease-Key, ¨á¯®«ì§ãï ¬¥â®¤ £à㯯¨à®¢ª¨ (à §¤¥« 18.1).
21.4 Žæ¥­ª ¬ ªá¨¬ «ì­®© á⥯¥­¨
„«ï ¯®«ã祭¨ï ®¡¥é ­­ëå ®æ¥­®ª O(lg n) ¤«ï ãçñâ­®© á⮨¬®áâ¨
®¯¥à 権 Fib-Heap-Extract-Min ¨ Fib-Heap-Delete ®áâ «®áì
¯®ª § âì, çâ® ¬ ªá¨¬ «ì­ ï á⥯¥­ì D(n), ª®â®àãî ¬®¦¥â ¨¬¥âì
ª ª ï-«¨¡® ¢¥à設 ¢ 䨡®­ ç稥¢®© ªãç¥ á n ¢¥à設 ¬¨, ­¥ ¯à¥¢®á室¨â O(lg n).
Š ª ¯®ª §ë¢ ¥â ã¯à ¦­¥­¨¥ 21.2-3, ¥á«¨ ¢á¥ ¤¥à¥¢ìï ¢ 䨡®­ ç稥¢®© ªãç¥ ï¢«ïîâáï ­¥ã¯®à冷祭­ë¬¨ ¡¨­®¬¨ «ì­ë¬¨ ¤¥à¥¢ìﬨ,
â® D(n) = blg nc. ® ®¯¥à 樨 ¢ë१ ­¨ï, ª®â®àë¥ ¯à®¨á室ïâ ¢®
¢à¥¬ï ¨á¯®«­¥­¨ï ¯à®æ¥¤ãàë Fib-Heap-Decrease-Key, ¯à¨¢®¤ïâ
ª ⮬ã, çâ® ¤¥à¥¢ìï ¢ 䨡®­ ç稥¢®© ªãç¥ ¡®«¥¥ ­¥ ïîâáï ¡¨­®¬¨ «ì­ë¬¨. Œë ¯®ª ¦¥¬, ç⮠⥬ ­¥ ¬¥­¥¥ ¯à¨ ¢ë¯®«­¥­¨¨ ®¯¨á ­­ëå ®¯¥à 権 ®áâ ñâáï ¢ ᨫ¥ ®æ¥­ª D(n) =pO(lg2 n). ’®ç­¥¥,
¬ë ãáâ ­®¢¨¬, çâ® D(n) 6 blog' nc, £¤¥ ' = (1 + 5)=2.
„«ï ª ¦¤®© ¢¥à設ë 䨡®­ ç稥¢®© ªãç¨ ç¥à¥§ size(x) ®¡®§­ 稬 ç¨á«® ¢¥à設 ¢ ¯®¤¤¥à¥¢¥ á ª®à­¥¬ x, áç¨â ï á ¬ã ¢¥à設ã
x. (‚¥à設 x ­¥ ®¡ï§ ­ ¡ëâì ª®à­¥¢®© ¢¥à設®© ªãç¨.) Œë ¯®ª ¦¥¬, çâ® ¢¥«¨ç¨­ size(x) íªá¯®­¥­æ¨ «ì­® § ¢¨á¨â ®â degree[x].
( ¯®¬­¨¬, çâ® ¯®«¥ degree[x] ¯®¤¤¥à¦¨¢ ¥âáï à ¢­ë¬ á⥯¥­¨ ¢¥à設ë x.)
‹¥¬¬ 21.1. ãáâì x | ¯à®¨§¢®«ì­ ï ¢¥à設 䨡®­ ç稥¢®©
ªãç¨, ¨ ¯ãáâì degree[x] = k. ’®£¤ á⥯¥­¨ k ¤¥â¥© ¢¥à設ë x ­¥
¬¥­ìè¥ 0; 0; 1; 2; 3; : : :; k ; 2, ¥á«¨ ¨å à ᯮ«®¦¨âì ¢ ­ ¤«¥¦ 饬
¯®à浪¥.
„®ª § ⥫ìá⢮. „«ï ¢¥à設, ­¥ ¢å®¤ïé¨å ¢ ª®à­¥¢®© ᯨ᮪,
®¯à¥¤¥«¨¬ " ¬®¤¨ä¨æ¨à®¢ ­­ãî á⥯¥­ì", ª®â®à ï ­ ¥¤¨­¨æã
¡®«ìè¥ à¥ «ì­®© á⥯¥­¨ ¤«ï ¯®¬¥ç¥­­ëå (¨ ᮢ¯ ¤ ¥â á ­¥© ¤«ï ­¥¯®¬¥ç¥­­ëå). ‘¬ëá« í⮣® â ª®©: ¯®áª®«ìªã ¯à¨ 㤠«¥­¨¨ ॡñ­ª ã ¢¥àè¨­ë ¤¥« ¥âáï ¯®¬¥âª , â® ¥ñ ¬®¤¨ä¨æ¨à®¢ ­­ ï á⥯¥­ì
­¥ ¬¥­ï¥âáï, ¤®¡ ¢«¥­¨¥ ¤¥â¥© ¢®§¬®¦­® ⮫쪮 ¤«ï ¢¥à設 ¢
ª®à­¥¢®¬ ᯨ᪥. ’ ª¨¬ ®¡à §®¬, ¬®¤¨ä¨æ¨à®¢ ­­ ï á⥯¥­ì ¥áâì
á⥯¥­ì ­ ¬®¬¥­â (¯®á«¥¤­¥£®) ¢ë¡ëâ¨ï ¢¥àè¨­ë ¨§ ª®à­¥¢®£®
ᯨ᪠.
®áª®«ìªã ¬®¤¨ä¨æ¨à®¢ ­­ ï á⥯¥­ì ®â«¨ç ¥âáï ®â ॠ«ì­®©
430
ƒ« ¢ 21 ”¨¡®­ ç稥¢ë ªãç¨
­¥ ¡®«¥¥ 祬 ­ 1, ¤®áâ â®ç­® ¤®ª § âì, çâ® ã ¢¥à設ë (ॠ«ì­®©) á⥯¥­¨ k ¤¥â¨ ¨¬¥îâ ¬®¤¨ä¨æ¨à®¢ ­­ãî á⥯¥­ì ­¥ ¬¥­¥¥
0; 1; 2; : : :; k ; 1. Ÿá­®, çâ® í⮠᢮©á⢮ á®åà ­ï¥âáï ¯à¨ ã¤ «¥­¨¨
®¤­®£® ¨§ ¤¥â¥©. Šà®¬¥ ⮣®, ®­® á®åà ­ï¥âáï ¯à¨ ¤®¡ ¢«¥­¨¨ ª ¢¥à設¥ á⥯¥­¨ k ¤à㣮© ¢¥à設ë á⥯¥­¨ k (¯à¨ ¯®¤ç¨­¥­¨¨ ®¤­®©
¢¥àè¨­ë ª®à­¥¢®£® ᯨ᪠¤à㣮© ¯¥à¢ ï ¤¥« ¥âáï ­¥¯®¬¥ç¥­­®©,
â ª çâ® ¥ñ ॠ«ì­ ï á⥯¥­ì à ¢­ ¬®¤¨ä¨æ¨à®¢ ­­®©).
’¥¯¥àì ®æ¥­¨¬ ç¨á«® ¯®â®¬ª®¢ ¤«ï ¢¥à設ë á⥯¥­¨ k, ¨á¯®«ì§ãï ç¨á« ”¨¡®­ çç¨.  ¯®¬­¨¬, çâ® k-¥ ç¨á«® ”¨¡®­ çç¨ Fk ®¯à¥¤¥«ï¥âáï â ª:
8
>
<
0
¥á«¨ k = 0,
Fk = > 1
¥á«¨ k = 1,
:
Fk;1 + Fk;2 ¥á«¨ k > 2.
‹¥¬¬ 21.2.
Fk+2 = 1 +
k
X
i=0
Fi
¤«ï «î¡®£® k > 0.
„®ª § ⥫ìá⢮. à¨ k = 0 íâ® ¢¥à­®: 1 + P0i=0 Fi = 1 + F0 =
1 + 0 = 1 = F2 .
;1 F i .
 áá㦤 ï ¯® ¨­¤ãªæ¨¨, ¯à¥¤¯®« £ ¥¬, çâ® Fk+1 = 1 + Pki=0
’®£¤ Fk+2 = Fk + Fk+1 = Fk + 1 +
kX
;1
i=0
!
Fi = 1 +
k
X
i=0
Fi :
’¥¯¥àì ¬ë 㦥 ¬®¦¥¬ ®æ¥­¨âì ç¨á«® ¢¥à設 ¢ ¯®¤¤¥à¥¢¥, ¥á«¨
¨§¢¥áâ­ á⥯¥­ì ¥£® ª®à­ï.  ¯®¬­¨¬, çâ® Fk+2 > 'k , £¤¥ ' = (1 +
p
5)=2 = 1:61803 : : : | "§®«®â®¥ á¥ç¥­¨¥" (2.14). (â® ­¥à ¢¥­á⢮
¤®ª § ­® ¢ ã¯à. 2.2-8.)
‹¥¬¬ 21.3. ãáâì x | ¢¥à設 䨡®­ ç稥¢®© ªãç¨, ¨¬¥îé ï
á⥯¥­ì
p k ¨«¨ ¡®«ìè¥. ’®£¤ size(x) > Fk+2 > 'k , £¤¥ ' =
(1 + 5)=2.
„®ª § ⥫ìá⢮. ® «¥¬¬¥ 21.1 ¢¥à設 x ¨¬¥¥â á।¨ ᢮¨å ¤¥â¥© ¢¥à設ë á⥯¥­¨ ­¥ ¬¥­¥¥ 0; 0; 1; 2; 3; : : :; k ;2.  áá㦤 ï ¯® ¨­¤ãªæ¨¨, ¬ë ¬®¦¥¬ áç¨â âì, çâ® ¤«ï ¤¥â¥© ¤®ª §ë¢ ¥¬®¥ ã⢥ত¥­¨¥ ¢¥à­®. (à¨ k = 0 ç¨á«® Fk+2 à ¢­® 1 ¨ ®æ¥­ª ®ç¥¢¨¤­ .) ‘ª« ¤ë¢ ï ç¨á«® ¢¥à設 ¢ ¯®¤¤¥à¥¢ìïå ¨ ¯à¨¡ ¢«ïï á ¬ã ¢¥à設ã x,
‡ ¤ ç¨ ª £« ¢¥ 21
431
¯®«ãç ¥¬, çâ®
size(x) > (F2 + F2 + F3 + F4 + : : : + Fk ) + 1 =
= (F0 + F1 + F2 + : : : + Fk ) + 1 = Fk+2
(¬ë ¨á¯®«ì§ã¥¬ à ¢¥­á⢮ F0 + F1 = F2 ¨ «¥¬¬ã 21.2).
‘«¥¤á⢨¥ 21.4. Œ ªá¨¬ «ì­ ï á⥯¥­ì D(n) ª ª®©-«¨¡® ¢¥àè¨­ë ¢
䨡®­ ç稥¢®© ªãç¥ á n ¢¥à設 ¬¨ ¥áâì O(lg n).
„®ª § ⥫ìá⢮. ãáâì x | ¯à®¨§¢®«ì­ ï ¢¥à設 â ª®© ªãç¨ ¨
¯ãáâì k = degree[x]. ® «¥¬¬¥ 21.3 ¨¬¥¥¬ n > size(x) > 'k , ®áâ ñâáï
¢§ïâì «®£ à¨ä¬ ¯® ®á­®¢ ­¨î '.
“¯à ¦­¥­¨ï
à®ä¥áá®à ã⢥ত ¥â, çâ® ¢ëá®â 䨡®­ ç稥¢®© ªãç¨ ¨§
n í«¥¬¥­â®¢ ­¥ ¯à¥¢ëè ¥â O(lg n). ®ª ¦¨â¥, çâ® ®­ ®è¨¡ ¥âáï ¨
çâ® áãé¥áâ¢ã¥â ¯®á«¥¤®¢ ⥫쭮áâì ®¯¥à 権 à áᬮâ७­ëå ­ ¬¨
⨯®¢, ª®â®à ï ¯à¨¢®¤¨â ª ªãç¥, á®áâ®ï饩 ஢­® ¨§ ®¤­®£® ¤¥à¥¢ ,
ïî饣®áï «¨­¥©­®© 楯ìî ¨§ n ¢¥à設.
21.4-2 ˆ§¬¥­¨¬ ¯à ¢¨« ¨ ¡ã¤¥¬ áç¨â âì, çâ® ¢¥à設 ¯¥à¥¬¥é ¥âáï ¢ ª®à­¥¢®© ᯨ᮪, ª®£¤ ®­ ¯®â¥àï« k ᢮¨å ¯®â®¬ª®¢,
£¤¥ k | ­¥ª®â®à ï ª®­áâ ­â (¤® á¨å ¯®à ¬ë áç¨â «¨, çâ® k = 2).
à¨ ª ª¨å §­ 祭¨ïå k ¬®¦­® ã⢥ত âì, çâ® D(n) = O(lg n)?
21.4-1
‡ ¤ ç¨
21-1 „à㣮© ᯮᮡ 㤠«¥­¨ï í«¥¬¥­â à®ä¥áá®à ¯à¥¤«®¦¨« á«¥¤ãî騩 ¢ ਠ­â ¯à®æ¥¤ãàë Fib-HeapDelete, ã⢥ত ï, çâ® ­®¢ ï ¯à®æ¥¤ãà à ¡®â ¥â ¡ëáâ॥ ¢ ⮬
á«ãç ¥, ª®£¤ 㤠«ï¥¬ ï ¢¥à設 | ­¥ ¬¨­¨¬ «ì­ ï.
New-Delete (H; x)
1 if x = min[H ]
2 then Fib-Heap-Extract-Min(H )
3 else y p[x]
4
if y =
6 nil
5
then Cut(H; x; y )
6
Cascading-Cut(H; y )
7
¤®¡ ¢¨âì ¤¥â¥© ¢¥à設ë x ¢ ª®à­¥¢®© ᯨ᮪ ªãç¨ H
8
㤠«¨âì x ¨§ ª®à­¥¢®£® ᯨ᪠ªãç¨ H
432
ƒ« ¢ 21 ”¨¡®­ ç稥¢ë ªãç¨
a. à®ä¥áá®à £®¢®à¨â, çâ® ¤ ­­ ï ¯à®æ¥¤ãà à ¡®â ¥â ¡ëáâà®, ¯®áª®«ìªã ä ªâ¨ç¥áª®¥ ¢à¥¬ï ¨á¯®«­¥­¨ï áâப¨ 7 ¥áâì O(1). Š ª®¥
®¡áâ®ï⥫ìá⢮ ®­ ã¯ã᪠¥â ¨§ ¢¨¤ã?
¡. Žæ¥­¨â¥ ᢥàåã ¢à¥¬ï ¢ë¯®«­¥­¨ï ¯à®æ¥¤ãàë New-Delete ¤«ï
á«ãç ï x 6= min[H ] ¢ â¥à¬¨­ å degree[x] ¨ ç¨á« c ¢ë§®¢®¢ ¯à®æ¥¤ãàë Cascading-Cut.
¢. ãáâì H 0 | 䨡®­ ç稥¢ ªãç , ¯®«ãç îé ïáï ¢ १ã«ìâ ⥠¢ë¯®«­¥­¨ï ¯à®æ¥¤ãàë New-Delete(H; x). à¥¤¯®« £ ï, çâ® ¢¥à設 x ­¥ ï¥âáï ª®à­¥¬, ®æ¥­¨â¥ ¯®â¥­æ¨ « ªãç¨ H 0 ¢ â¥à¬¨­ å ¢¥«¨ç¨­ degree[x], c, t[H ] (ç¨á«® ¤¥à¥¢ì¥¢ ¢ ª®à­¥¢®¬ ᯨ᪥)
¨ m[H ] (ç¨á«® ®â¬¥ç¥­­ëå ¢¥à設).
£. ®«ãç¨â¥ ®æ¥­ªã ¤«ï ãçñâ­®© á⮨¬®á⨠¢ë¯®«­¥­¨ï NewDelete ¤«ï á«ãç ï x 6= min[H ]. ã¤¥â «¨ ®­ «ãçè¥ ¯à¥¦­¥©?
21-2 „®¯®«­¨â¥«ì­ë¥ ®¯¥à 樨 ­ ¤ 䨡®­ ç稥¢ë¬¨ ªãç ¬¨
Œë å®â¨¬ ॠ«¨§®¢ âì ¥éñ ¤¢¥ ®¯¥à 樨, ­¥ ¬¥­ïï ãçñâ­®© á⮨¬®áâ¨ à ­¥¥ à áᬮâ७­ëå ®¯¥à 権.
. à¨¤ã¬ ©â¥ íä䥪⨢­ãî ॠ«¨§ æ¨î ®¯¥à 樨 Fib-HeapChange-Key(H; x; k) ª®â®à ï ¯à¨á¢ ¨¢ ¥â ª«îçã ¢¥à設ë x
­®¢®¥ §­ 祭¨¥ k. Žæ¥­¨â¥ ãçñâ­ãî á⮨¬®áâì í⮩ ®¯¥à 樨
(¯à¨ ¢ 襩 ॠ«¨§ 樨) ¤«ï á«ãç ¥¢ k < key[x], k = key[x],
k > key[x].
¡. à¨¤ã¬ ©â¥ íä䥪⨢­ãî ॠ«¨§ æ¨î ®¯¥à 樨 Fib-HeapPrune(H; r) ª®â®à ï 㤠«ï¥â min(r; n[H ]) ¢¥à設 ¨§ H (¢áñ
à ¢­® ª ª¨å). Žæ¥­¨â¥ ãçñâ­ãî á⮨¬®áâì í⮩ ®¯¥à 樨 (¤«ï
¢ 襩 ॠ«¨§ 樨). (“ª § ­¨¥: ¬®¦¥â ¯®âॡ®¢ âìáï ¨§¬¥­¥­¨¥
áâàãªâãàë ¤ ­­ëå ¨ ¯®â¥­æ¨ «ì­®© ä㭪樨.)
‡ ¬¥ç ­¨ï
”¨¡®­ ç稥¢ë ªãç¨ ¢¢¥«¨ ”।¬ ­ ¨ ’ àìï­ [75]. ‚ ¨å áâ âì¥
®¯¨á ­ë â ª¦¥ ¯à¨«®¦¥­¨ï 䨡®­ ç稥¢ëå ªãç ª § ¤ ç ¬ ® ªà âç ©è¨å ¯ãâïå ¨§ ®¤­®© ¢¥à設ë, ® ªà âç ©è¨å ¯ãâïå ¤«ï ¢á¥å ¯ à
¢¥à設, ® ¯ à®á®ç¥â ­¨ïå á ¢¥á ¬¨ ¨ ® ¬¨­¨¬ «ì­®¬ ¯®ªàë¢ î饬
¤¥à¥¢¥.
‚¯®á«¥¤á⢨¨ „à¨áª®««, ‘ à­ ª, ‘«¥ â®à ¨ ’ àìï­ à §à ¡®â «¨
áâàãªâãàã ¤ ­­ëå, ­ §ë¢ ¥¬ãî "relaxed heaps", ª ª § ¬¥­ã ¤«ï 䨡®­ ç稥¢ëå ªãç. …áâì ¤¢¥ à §­®¢¨¤­®á⨠⠪®© áâàãªâãàë ¤ ­­ëå. Ž¤­ ¨§ ­¨å ¤ ñâ ⥠¦¥ ®æ¥­ª¨ ãçñâ­®© á⮨¬®áâ¨, çâ® ¨ 䨡®­ ç稥¢ë ªãç¨. „àã£ ï ¯®§¢®«ï¥â ¢ë¯®«­ïâì ®¯¥à æ¨î DecreaseKey § ¢à¥¬ï O(1) ¢ åã¤è¥¬ á«ãç ¥ (­¥ ãçñâ­®¥), ®¯¥à 樨
Extract-Min ¨ Delete | § ¢à¥¬ï O(lg n) ¢ åã¤è¥¬ á«ãç ¥. â áâàãªâãà ¤ ­­ëå ¨¬¥¥â â ª¦¥ ­¥ª®â®àë¥ ¯à¥¨¬ãé¥á⢠(¯® áà ¢-
‡ ¬¥ç ­¨ï ª £« ¢¥ 21
433
­¥­¨î á 䨡®­ ç稥¢ë¬¨ ªãç ¬¨) ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ¢ ¯ à ««¥«ì­ëå «£®à¨â¬ å.
22
‘¨áâ¥¬ë ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢
‚ ­¥ª®â®àëå ¯à¨«®¦¥­¨ïå ¯®«¥§­ á«¥¤ãîé ï áâàãªâãà ¤ ­­ëå:
n í«¥¬¥­â®¢ à §¡¨âë ¢ ®¡ê¥¤¨­¥­¨¥ ­¥¯ãáâëå ­¥¯¥à¥á¥ª îé¨åáï
¬­®¦¥áâ¢, ¯à¨ç¥¬ ¯®¤¤¥à¦¨¢ îâáï ®¯¥à 樨 " ®¡ê¥¤¨­¥­¨¥" (¤¢ ¤ ­­ëå ¬­®¦¥á⢠§ ¬¥­ïîâáï ­ ¨å ®¡ê¥¤¨­¥­¨¥) ¨ "­ ©â¨ ¬­®¦¥á⢮" (¯® ¤ ­­®¬ã í«¥¬¥­âã ¢ëïá­¨âì, ¢ ª ª®¬ ¨§ ¬­®¦¥á⢠®­
«¥¦¨â). ‚ í⮩ £« ¢¥ à á᪠§ ­®, ª ª ¬®¦­® ॠ«¨§®¢ âì â ªãî
áâàãªâãàã ¤ ­­ëå.
‚ à §¤¥«¥ 22.1 ¬ë ¤ ñ¬ â®ç­®¥ ®¯à¥¤¥«¥­¨¥ ¨­â¥à¥áãî饩 ­ á
áâàãªâãàë ¤ ­­ëå ¨ ¯à¨¢®¤¨¬ ¯à®á⮩ ¯à¨¬¥à ¥¥ ¯à¨¬¥­¥­¨ï. ‚
à §¤¥«¥ 22.2 ®¡á㦤 ¥âáï ¯à®á⥩è ï ॠ«¨§ æ¨ï á ¯®¬®éìî ᯨ᪮¢.  §¤¥« 22.3 ¯®á¢ïéñ­ ¡®«¥¥ íä䥪⨢­®© ॠ«¨§ 樨 á ¯®¬®éìî «¥á . „«ï ­¥ñ ¢à¥¬ï ¢ë¯®«­¥­¨ï m ®¯¥à 権 ­¥¬­®£® ¯à¥¢®á室¨â O(m) | ­ á⮫쪮 ­¥¬­®£®, çâ® ¤«ï ¢á¥å ¯à ªâ¨ç¥áª¨å 楫¥©
¬®¦­® áç¨â âì, çâ® ¢à¥¬ï ¢ë¯®«­¥­¨ï m ®¯¥à 権 ¥áâì O(m).
®«¥¥ â®ç­®, ¢à¥¬ï ¢ë¯®«­¥­¨ï m ®¯¥à 権 ­¥ ¯à¥¢®á室¨â
C (m)m, £¤¥ C (m) à áâñâ á à®á⮬ m, ­® ®ç¥­ì ¬¥¤«¥­­®: ª®íää¨æ¨¥­â C (m) ¬®¦­® ®æ¥­¨âì ᢥàåã á ¯®¬®éìî â ª ­ §ë¢ ¥¬®©
"®¡à â­®© ä㭪樨 €ªª¥à¬ ­ ". Ž¯à¥¤¥«¥­¨¥ ®¡à â­®© ä㭪樨
€ªª¥à¬ ­ ¤ ñâáï ¢ à §¤¥«¥ 22.4. ’ ¬ ¦¥ ¤®ª §ë¢ ¥âáï ¡®«¥¥ á« ¡ ï (¨ ¡®«¥¥ ¯à®áâ® ¤®ª §ë¢ ¥¬ ï) ¢¥àå­ïï ®æ¥­ª ¢à¥¬¥­¨ à ¡®âë.
22.1 Ž¯¥à 樨 á ­¥¯¥à¥á¥ª î騬¨áï ¬­®¦¥á⢠¬¨
‘¨á⥬ ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥á⢠(disjoint-set data
structure) ¥áâì ­ ¡®à ­¥¯¥à¥á¥ª îé¨åáï ­¥¯ãáâëå ¬­®¦¥áâ¢, ¢
ª ¦¤®¬ ¨§ ª®â®àëå § 䨪á¨à®¢ ­ ®¤¨­ ¨§ í«¥¬¥­â®¢ | ¯à¥¤áâ ¢¨â¥«ì (representative). à¨ í⮬ ¤®«¦­ë ¯®¤¤¥à¦¨¢ âìáï
á«¥¤ãî騥 ®¯¥à 樨:
Make-Set(x) ("ᮧ¤ âì ¬­®¦¥á⢮"). ‘®§¤ ñâ ­®¢®¥ ¬­®¦¥á⢮,
¥¤¨­á⢥­­ë¬ í«¥¬¥­â®¬ (¨ ⥬ á ¬ë¬ ¯à¥¤áâ ¢¨â¥«¥¬) ª®â®à®£®
ï¥âáï x. ®áª®«ìªã ¬­®¦¥á⢠­¥ ¤®«¦­ë ¯¥à¥á¥ª âìáï, âॡã¥âáï, ç⮡ë í«¥¬¥­â x ­¥ «¥¦ « ­¨ ¢ ®¤­®¬ ¨§ 㦥 ¨¬¥îé¨åáï
¬­®¦¥áâ¢.
Ž¯¥à 樨 á ­¥¯¥à¥á¥ª î騬¨áï ¬­®¦¥á⢠¬¨
435
Find-Set(x) ("­ ©â¨ ¬­®¦¥á⢮"). ‚®§¢à é ¥â 㪠§ â¥«ì ­ ¯à¥¤áâ ¢¨â¥«ì (¥¤¨­á⢥­­®£®) ¬­®¦¥á⢠, ᮤ¥à¦ 饣® í«¥¬¥­â
x.
Union(x; y ) ("®¡ê¥¤¨­¥­¨¥"). à¨¬¥­¨¬ , ¥á«¨ í«¥¬¥­âë x ¨ y ᮤ¥à¦ âáï ¢ à §«¨ç­ëå ¬­®¦¥á⢠å Sx ¨ Sy , ¨ § ¬¥­ï¥â í⨠¬­®¦¥á⢠­ ®¡ê¥¤¨­¥­¨¥ Sx [ Sy ; ¯à¨ í⮬ ¢ë¡¨à ¥âáï ­¥ª®â®àë©
¯à¥¤áâ ¢¨â¥«ì ¤«ï Sx [ Sy . ‘ ¬¨ ¬­®¦¥á⢠Sx ¨ Sy ¯à¨ í⮬
㤠«ïîâáï.
‚ ­¥ª®â®àëå ¯à¨«®¦¥­¨ïå ¢ë¡®à ¯à¥¤áâ ¢¨â¥«ï ¢ ¬­®¦¥á⢥ ¤®«¦¥­ ¯®¤ç¨­ïâìáï ª ª¨¬-â® ¯à ¢¨« ¬ (­ ¯à¨¬¥à, í«¥¬¥­âë ¬®£ãâ
¡ëâì 㯮àï¤®ç¥­ë ¨ ¯à¥¤áâ ¢¨â¥«¥¬ ï¥âáï ­ ¨¬¥­ì訩 í«¥¬¥­â
¬­®¦¥á⢠). ‚ «î¡®¬ á«ãç ¥ áãé¥á⢥­­®, çâ® ¯à¥¤áâ ¢¨â¥«ì ¬­®¦¥á⢠­¥ ¬¥­ï¥âáï, ¯®ª á ¬® ¬­®¦¥á⢮ ®áâ ¥âáï ­¥¨§¬¥­­ë¬.
‚ í⮩ £« ¢¥ ¬ë ®æ¥­¨¬ ¢à¥¬ï à ¡®âë ®¯¥à 権 ­ ¤ á¨á⥬ ¬¨
­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢.  à ¬¥âà ¬¨ ¡ã¤ãâ ç¨á«® ®¯¥à 権
Make-Set (â® ¥áâì ®¡é¥¥ ç¨á«® í«¥¬¥­â®¢ ¢® ¢á¥å ¬­®¦¥á⢠å),
ª®â®à®¥ ¬ë ®¡®§­ 稬 ç¥à¥§ n, â ª¦¥ á㬬 à­®¥ ç¨á«® ®¯¥à 権 Union, Make-Set ¨ Find-Set, ª®â®à®¥ ¬ë ®¡®§­ 稬 ç¥à¥§
m. à¥¦¤¥ ¢á¥£® § ¬¥â¨¬, çâ® (¯® ®¯à¥¤¥«¥­¨î) m > n, â ª¦¥
çâ® ç¨á«® ®¯¥à 権 Union ­¥ ¯à¥¢®á室¨â n ; 1 (¯®á«¥ ª ¦¤®© ¨§
­¨å ª®«¨ç¥á⢮ ¬­®¦¥á⢠㬥­ìè ¥âáï ­ ¥¤¨­¨æã).
à¨¬¥à ¨á¯®«ì§®¢ ­¨ï á¨á⥬ ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢
à¨¬¥­¨¬ á¨áâ¥¬ë ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥á⢠ª § ¤ ç¥ ® á¢ï§­ëå ª®¬¯®­¥­â å ­¥®à¨¥­â¨à®¢ ­­®£® £à ä (á¬. à §¤¥« 5.4; ¯à¨¬¥à £à ä á ç¥âëàì¬ï á¢ï§­ë¬¨ ª®¬¯®­¥­â ¬¨ ¤ ­ ­ à¨á. 22.1 ).
€«£®à¨â¬ Connected-Components (á¢ï§­ë¥ ª®¬¯®­¥­âë),
¯à¨¢¥¤ñ­­ë© ­¨¦¥, à §¡¨¢ ¥â ¬­®¦¥á⢮ ¢¥à設 £à ä ­ ­¥¯¥à¥á¥ª î騥áï ¬­®¦¥á⢠, ᮮ⢥âáâ¢ãî騥 á¢ï§­ë¬ ª®¬¯®­¥­â ¬;
¯®á«¥ í⮣® ¬®¦­® á ¯®¬®éìî ¯à®æ¥¤ãàë Same-Component ¢ëïá­¨âì, «¥¦ â «¨ ¤¢¥ ¤ ­­ë¥ ¢¥àè¨­ë ¢ ®¤­®© ª®¬¯®­¥­â¥. …᫨
£à ä § ¤ ­ § à ­¥¥ ("०¨¬ o-line"), ¡ëáâ॥ ­ ©â¨ ¥£® á¢ï§­ë¥
ª®¬¯®­¥­âë á ¯®¬®éìî ¯®¨áª ¢ £«ã¡¨­ã (ã¯à ¦­¥­¨¥ 23.3-9); ®¤­ ª® ¥á«¨ £à ä áâநâáï ¯®á⥯¥­­® ¨ ¢ «î¡®© ¬®¬¥­â ­ ¤® 㬥âì
®â¢¥ç âì ­ ¢®¯à®á, ª ª®¢ë ¥£® á¢ï§­ë¥ ª®¬¯®­¥­âë ("०¨¬
on-line"), â® ¬®¦¥â ®ª § âìáï ¢ë£®¤­¥¥ ¯à¨¬¥­¨âì ­ è «£®à¨â¬,
­¥ ¯à®¢®¤¨âì § ­®¢® ¯®¨áª ¢ £«ã¡¨­ã ¯®á«¥ ¤®¡ ¢«¥­¨ï ª ¦¤®£®
¨§ àñ¡¥à.
¨¦¥ E [G] ¨ V [G] ®¡®§­ ç îâ ¬­®¦¥á⢠ᮮ⢥âá⢥­­® àñ¡¥à
¨ ¢¥à設 £à ä G.
Connected-Components(G)
1 for (¤«ï) ª ¦¤®© ¢¥à設ë v\in V[G]
2
do Make-Set(v)
3 for (¤«ï) ª ¦¤®£® ॡà (u,v) \in E[G]
4
do if Find-Set(u)\ne Find-Set(v)
5
then Union(u,v)
436
ƒ« ¢ 22 ‘¨áâ¥¬ë ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢
¨á. 22.1 (ç áâì (¡) ï ¤ ¦¥ ¡-¬ ­ à¨á®¢ «)
®¡à ¡®â ­­®¥ ॡà®
­¥¯¥à¥á¥ª î騥áï ¬­®¦¥á⢠¢­ ç «¥
fag
fbg fcg fdg feg
ff g fgg
(b; d)
fag
fb; dg fcg
feg
ff g fgg
(e; g )
fag
fb; dg fcg
fe; gg ff g
fa; cg
fb; dg
fe; gg ff g
(a; c)
(h; i)
fa; cg
fb; dg
fe; gg ff g
fa; b; c; dg
fe; gg ff g
(a; b)
(e; f )
fa; b; c; dg
fe; f; gg
fa; b; c; dg
fe; f; gg
(b; c)
fhg
fhg
fhg
fhg
fh; ig
fh; ig
fh; ig
fh; ig
fig
fig
fig
fig
fj g
fj g
fj g
fj g
fj g
fj g
fj g
fj g
22.1 22.1 ) ƒà ä, á®áâ®ï騩 ¨§ ç¥âëà¥å á¢ï§­ëå ª®¬¯®­¥­â:
fa; b; c; dg, fe; f; gg, fh; ig ¨ fj g. ¡) ®á«¥¤®¢ ⥫ì­ë¥ á®áâ®ï­¨ï á¨áâ¥¬ë ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥á⢠¢ ¯à®æ¥áá¥ à ¡®âë «£®à¨â¬ Connected-Components.
¨áã­®ª
Same-Component(u,v)
1 if Find-Set(u)=Find-Set(v)
2
then return true
3
else return false
€«£®à¨â¬ Connected-Components à ¡®â ¥â â ª. ‘­ ç « ª ¦¤ ï ¢¥à設 à áᬠâਢ ¥âáï ª ª ®¤­®í«¥¬¥­â­®¥ ¯®¤¬­®¦¥á⢮.
„ «¥¥ ¤«ï ª ¦¤®£® à¥¡à £à ä ¬ë ®¡ê¥¤¨­ï¥¬ ¯®¤¬­®¦¥á⢠, ¢ ª®â®àë¥ ¯®¯ «¨ ª®­æë í⮣® ॡà (à¨á. 22.1¡). Š®£¤ ¢á¥ àñ¡à ®¡à ¡®â ­ë, ¬­®¦¥á⢮ ¢¥à設 à §¡¨¢ ¥âáï ­ á¢ï§­ë¥ ª®¬¯®­¥­âë
(ã¯à. 22.1-2). ’¥¯¥àì ¯à®æ¥¤ãà Same-Component ®¯à¥¤¥«ï¥â, «¥¦ â «¨ ¤¢¥ ¤ ­­ë¥ ¢¥àè¨­ë ¢ ®¤­®© á¢ï§­®© ª®¬¯®­¥­â¥, ¤¢ ¦¤ë
¢ë§¢ ¢ ¯à®æ¥¤ãàã Find-Set.
“¯à ¦­¥­¨ï
22.1-1
‘«¥¤ãï ®¡à §æã à¨á. 22.1, ®¯¨è¨â¥ ¢ë¯®«­¥­¨¥ «£®à¨â¬ Connected-Components ¤«ï £à ä G, ã ª®â®à®£® V [G] =
fa; b; c; d; e; f; g; h; i; j; kg ¨ E [G] = f (d; i); (f; k); (g; i); (b; g); (a; h); (i; j); (d; k); (b; j); (d; f );
ñ¡à ®¡à ¡ âë¢ îâáï ¢ ⮬ ¯®à浪¥, ¢ ª®â®à®¬ ®­¨ ¢ë¯¨á ­ë.
22.1-2
®ª ¦¨â¥, çâ® «£®à¨â¬ Connected-Components ¤¥©á⢨⥫쭮 ­ 室¨â á¢ï§­ë¥ ª®¬¯®­¥­âë £à ä .
22.1-3
€«£®à¨â¬ Connected-Components ¯à¨¬¥­¨«¨ ª £à äã á v ¢¥à設 ¬¨ ¨ e à¥¡à ¬¨, á®áâ®ï饬㠨§ k á¢ï§­ëå ª®¬¯®­¥­â. ‘ª®«ìª®
¯à¨ í⮬ ¡ë«® ¢ë§®¢®¢ ¯à®æ¥¤ãà Find-Set ¨ Union?
¥ «¨§ æ¨ï á ¯®¬®éìî ᯨ᪮¢
437
¨á. 22.2
®¤¯¨áì:
) à¥¤áâ ¢«¥­¨¥ ¤¢ãå ¬­®¦¥áâ¢ á ¯®¬®éìî ᯨ᪮¢. à¥¤áâ ¢¨â¥«¥¬ ¬­®¦¥á⢠fb; c; e; hg ï¥âáï í«¥¬¥­â c, ¯à¥¤áâ ¢¨â¥«¥¬
fd; f; gg ï¥âáï f . Š ¦¤ë© ®¡ê¥ªâ ¢ ᯨ᪥ ᮤ¥à¦¨â í«¥¬¥­â
¬­®¦¥á⢠, 㪠§ â¥«ì ­ á«¥¤ãî騩 í«¥¬¥­â ¨ 㪠§ â¥«ì ­ ¯à¥¤áâ ¢¨â¥«ï (â® ¥áâì ­ ­ ç «® ᯨ᪠). ¡) ¥§ã«ìâ ⠢믮«­¥­¨ï
®¯¥à 樨 Union(e; g). à¥¤áâ ¢¨â¥«ì ®¡ê¥¤¨­¥­¨ï ¬­®¦¥á⢠¥áâì
f.
22.2 ¥ «¨§ æ¨ï á ¯®¬®éìî ᯨ᪮¢
‘ ¬ë© ¯à®á⮩ ¢ ਠ­â ॠ«¨§ 樨 á¨áâ¥¬ë ­¥¯¥à¥á¥ª îé¨åáï
¬­®¦¥á⢠åà ­¨â ª ¦¤®¥ ¬­®¦¥á⢮ ¢ ¢¨¤¥ ᯨ᪠. à¨ í⮬ ¯à¥¤áâ ¢¨â¥«¥¬ ¬­®¦¥á⢠áç¨â ¥âáï ¯¥à¢ë© í«¥¬¥­â ᯨ᪠, ¨ ª ¦¤ë©
í«¥¬¥­â ᯨ᪠ᮤ¥à¦¨â áá뫪¨ ­ á«¥¤ãî騩 í«¥¬¥­â ᯨ᪠¨ ­ ¯¥à¢ë© í«¥¬¥­â ᯨ᪠(ª®â®àë© áç¨â ¥âáï ¯à¥¤áâ ¢¨â¥«¥¬
ᯨ᪠). „«ï ª ¦¤®£® ᯨ᪠¬ë åà ­¨¬ 㪠§ ⥫¨ ­ ¥£® ¯¥à¢ë©
¨ ¯®á«¥¤­¨© í«¥¬¥­âë (¢â®à®© ¨§ ­¨å ­ã¦¥­ ¯à¨ ¤®¡ ¢«¥­¨¨ í«¥¬¥­â®¢ ¢ ª®­¥æ ᯨ᪠). ®à冷ª í«¥¬¥­â®¢ ¢ ᯨ᪥ ¬®¦¥â ¡ëâì
«î¡ë¬.  à¨á. 22.2 (a) ¨§®¡à ¦¥­ë ¤¢ ¯à¥¤áâ ¢«¥­­ëå â ª¨¬
®¡à §®¬ ¬­®¦¥á⢠.
à¨ â ª®© ॠ«¨§ 樨 ®¯¥à 樨 Make-Set ¨ Find-Set âॡãîâ
¢à¥¬¥­¨ O(1): Make-Set ᮧ¤ ñâ ᯨ᮪ ¨§ ®¤­®£® í«¥¬¥­â , Find-Set ¢®§¢à é ¥â 㪠§ â¥«ì ­ ­ ç «® ᯨ᪠.
à®á⥩è ï ॠ«¨§ æ¨ï ®¡ê¥¤¨­¥­¨ï
à¨ ¥áâ¥á⢥­­®© ॠ«¨§ 樨 ®¯¥à æ¨ï Union ®ª §ë¢ ¥âáï ¤®à®£®áâ®ï饩. ‚믮«­ïï Union(x; y), ¬ë ¤®¡ ¢«ï¥¬ ᯨ᮪, ᮤ¥à¦ 騩 x, ª ª®­æã ᯨ᪠, ᮤ¥à¦ 饣® y (à¨á. 22.2 b). à¥¤áâ ¢¨â¥«¥¬ ­®¢®£® ¬­®¦¥á⢠¯à¨ í⮬ ¡ã¤¥â ­ ç «® ­®¢®£® ᯨ᪠,
â® ¥áâì ¯à¥¤áâ ¢¨â¥«ì ¬­®¦¥á⢠, ᮤ¥à¦ 饣® y. à¨ í⮬ ­ã¦­®
¥éñ ãáâ ­®¢¨âì ¯à ¢¨«ì­ë¥ 㪠§ ⥫¨ ­ ­ ç «® ᯨ᪠¤«ï ¢á¥å
¡ë¢è¨å í«¥¬¥­â®¢ ¬­®¦¥á⢠, ᮤ¥à¦ 饣® x, ¨ ¢à¥¬ï ­ ¢ë¯®«­¥­¨¥ í⮩ ®¯¥à 樨 «¨­¥©­® § ¢¨á¨â ®â à §¬¥à 㪠§ ­­®£® ¬­®¦¥á⢠.
‹¥£ª® ¯à¨¢¥á⨠¯à¨¬¥à, ¢ ª®â®à®¬ ¢à¥¬ï ¢ë¯®«­¥­¨ï ª¢ ¤à â¨ç­® § ¢¨á¨â ®â ç¨á« ®¯¥à 権 (à¨á. 22.3). ãáâì ¤ ­ë n í«¥¬¥­â®¢ x1; x2; : : :; xn. ‚믮«­¨¬ ®¯¥à 樨 Make-Set(xi) ¤«ï ¢á¥å i =
1; 2; : : :; n, § ⥬ n ; 1 ®¯¥à 権 Union(x1; x2), Union(x2; x3), : : : ,
Union(xn;1 ; xn). ®áª®«ìªã á⮨¬®áâì ®¯¥à 樨 Union(xi; xi+1)
¯à®¯®à樮­ «ì­ i, á㬬 à­ ï á⮨¬®áâì ¢ë¯®«­¥­¨ï 2n ; 1 ®¯¥à -
438
ƒ« ¢ 22 ‘¨áâ¥¬ë ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢
Ž¯¥à æ¨ï
Make-set(x1 )
Make-set(x2 )
—¨á«® § âà®­ãâëå ®¡ê¥ªâ®¢
1
1
..
.
1
1
2
3
..
.
..
.
Make-set(xn )
Union(x1; x2)
Union(x2; x3)
Union(x3; x4)
..
.
n;1
Union(xn;1 ; xn)
¨áã­®ª 22.2 22.3 ‚à¥¬ï ¢ë¯®«­¥­¨ï ª¢ ¤à â¨ç­® § ¢¨á¨â ®â ç¨á« ®¯¥à 権.
権 ¡ã¤¥â ¯à®¯®à樮­ «ì­ n+
nX
;1
i=1
i = (n2 ):
‚¥á®¢ ï í¢à¨á⨪ à®á⥩è ï ॠ«¨§ æ¨ï ®¯¥à 樨 Union à ¡®â ¥â ¬¥¤«¥­­® ¨§§ ⮣®, çâ® ¯à¨ ¤®¡ ¢«¥­¨¨ ¤«¨­­®£® ᯨ᪠ª ª®à®âª®¬ã ¯à¨å®¤¨âáï ¯à¨á¢ ¨¢ âì ­®¢ë¥ §­ 祭¨ï ¡®«ì讬㠪®«¨ç¥áâ¢ã 㪠§ ⥫¥©. „¥« ¯®©¤ãâ «ãçè¥, ¥á«¨ ¯®áâ㯨âì â ª: åà ­¨âì ¢¬¥á⥠á
ª ¦¤ë¬ ᯨ᪮¬ ¨­ä®à¬ æ¨î ® ç¨á«¥ í«¥¬¥­â®¢ ¢ ­ñ¬, ¯à¨ ¢ë¯®«­¥­¨¨ ®¯¥à 樨 Union ¤®¡ ¢«ïâì ¡®«¥¥ ª®à®âª¨© ᯨ᮪ ¢ ª®­¥æ ¡®«¥¥ ¤«¨­­®£® (¥á«¨ ¤«¨­ë à ¢­ë, ¯®à冷ª ¬®¦¥â ¡ëâì «î¡ë¬). ’ ª®© ¯à¨ñ¬ ­ §ë¢ ¥âáï ¢¥á®¢®© í¢à¨á⨪®© (weighted-union
heuristic). …᫨ ®¡ê¥¤¨­ï¥¬ë¥ ¬­®¦¥á⢠ᮤ¥à¦ ⠯ਬ¥à­® ¯®à®¢­ã í«¥¬¥­â®¢, â® ¡®«ì讣® ¢ë¨£àëè ­¥ ¡ã¤¥â, ­® ¢ 楫®¬, ª ª
¯®ª §ë¢ ¥â á«¥¤ãîé ï ⥮६ , ¬ë ¤®¡¨¢ ¥¬áï íª®­®¬¨¨.
’¥®à¥¬ 22-1
à¥¤¯®«®¦¨¬, çâ® á¨á⥬ ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥á⢠ॠ«¨§®¢ ­ á ¯®¬®éìî ᯨ᪮¢, ¢ ®¯¥à 樨 Union ¨á¯®«ì§®¢ ­ ¢¥á®¢ ï í¢à¨á⨪ . ’®£¤ á⮨¬®áâì ¯®á«¥¤®¢ ⥫쭮á⨠¨§ m ®¯¥à 権
Make-Set, Union ¨ Find-Set, á।¨ ª®â®àëå n ®¯¥à 権 MakeSet, ¥áâì O(m + n lg n) (¯®¤à §ã¬¥¢ ¥âáï, çâ® ¯¥à¢®­ ç «ì­® á¨á⥬ ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥á⢠¡ë« ¯ãáâ ).
„®ª § ⥫ìá⢮.
‘⮨¬®áâì ª ¦¤®© ¨§ ®¯¥à 権 Make-Set ¨ Find-Set, â ª¦¥
á⮨¬®áâì áà ¢­¥­¨ï à §¬¥à®¢, ᮥ¤¨­¥­¨ï ᯨ᪮¢ ¨ ®¡­®¢«¥­¨ï
§ ¯¨á¨ ® à §¬¥à¥ ¬­®¦¥á⢠(¢á¥ í⨠¤¥©áâ¢¨ï ¢ë¯®«­ïîâáï ¯à¨
®¯¥à 樨 Union), ¥áâì O(1), â ª çâ® á㬬 à­ ï á⮨¬®áâì 㪠§ ­­ëå ¤¥©á⢨© ¥áâì O(m).
Žáâ ñâáï ®æ¥­¨âì á⮨¬®áâì ®¡­®¢«¥­¨ï 㪠§ ⥫¥© ­ ­ ç «®
ᯨ᪠. „«ï í⮣® ¬ë § 䨪á¨à㥬 ®¤¨­ ¨§ í«¥¬¥­â®¢ (®¡®§­ 稬
¥ «¨§ æ¨ï á ¯®¬®éìî ᯨ᪮¢
439
¥£® x) ¨ ¯à®á«¥¤¨¬, ᪮«ìª® à § ã ­¥£® íâ®â 㪠§ â¥«ì ¬¥­ï«áï.
‚¥á®¢ ï í¢à¨á⨪ £ à ­â¨àã¥â, çâ® ¯à¥¤áâ ¢¨â¥«ì ¬¥­ï¥âáï,
«¨èì ¥á«¨ x ¢å®¤¨â ¢ ¬¥­ì襥 ¨§ ®¡ê¥¤¨­ï¥¬ëå ¬­®¦¥áâ¢. ‚ í⮬
á«ãç ¥ ç¨á«® í«¥¬¥­â®¢ ¢ ¬­®¦¥á⢥, ᮤ¥à¦ 饬 x, ¢®§à á⠥⠯®
ªà ©­¥© ¬¥à¥ ¢¤¢®¥. ®áª®«ìªã ®ª®­ç ⥫ì­ë© à §¬¥à ¬­®¦¥á⢠,
ᮤ¥à¦ 饣® x, ­¥ ¯à¥¢®á室¨â n, ª®«¨ç¥á⢮ â ª¨å 㤢®¥­¨© ­¥
¯à¥¢®á室¨â dlg ne. Ž¡é¥¥ ª®«¨ç¥á⢮ í«¥¬¥­â®¢ à ¢­® n, â ª çâ®
á㬬 à­ ï á⮨¬®áâì ®¡­®¢«¥­¨ï 㪠§ ⥫¥© ­ ­ ç «® ᯨ᪠¥áâì
O(n lg n), ®¡é¥¥ ç¨á«® ®¯¥à 権 ¥áâì O(m) + O(n lg n).
“¯à ¦­¥­¨ï
22.2-1
 ¯¨è¨â¥ ¯à®æ¥¤ãàë Make-Set, Find-Set ¨ Union, ¨á¯®«ì§ãï
ॠ«¨§ æ¨î á ¯®¬®éìî ᯨ᪮¢ ¨ ¢¥á®¢ãî í¢à¨á⨪ã. ‘ç¨â ©â¥,
çâ® ª ¦¤ë© í«¥¬¥­â x ¨¬¥¥â ¯®«ï rep[x] (㪠§ â¥«ì ­ ¯à¥¤áâ ¢¨â¥«ï), â ª¦¥ last[x] (㪠§ â¥«ì ­ ¯®á«¥¤­¨© í«¥¬¥­â ᯨ᪠) ¨
size[x] (ç¨á«® í«¥¬¥­â®¢); ¤¢ ¯®á«¥¤­¨å ¯®«ï ¢ ¦­ë ⮫쪮 ¤«ï
í«¥¬¥­â , ïî饣®áï ¯à¥¤áâ ¢¨â¥«¥¬ ¬­®¦¥á⢠.
22.2-2
ˆ§®¡à §¨â¥ ᯨ᪨, ¯®«ãç î騥áï ¢ १ã«ìâ â¥ à ¡®âë ¯à¨¢¥¤ñ­­®© ­¨¦¥ ¯à®£à ¬¬ë, ¨ ®¡êïá­¨â¥, ª ª®© ®â¢¥â ¤ ¤ã⠢맮¢ë
Find-Set (¥á«¨ ¨á¯®«ì§ã¥âáï ¯à¥¤áâ ¢«¥­¨¥ ¢ ¢¨¤¥ ᯨ᪮¢ ¨ ¢¥á®¢ ï í¢à¨á⨪ ).
1
2
3
4
5
6
7
8
9
10
11
for i \gets 1 to 16
do Make-Set(x_i)
for i \gets 1 to 15 by 2
do Union(x_i, x_{i+1})
for i \gets 1 to 13 by 4
do Union(x_i, x_{i+2})
Union(x_1, x_5)
Union(x_{11}, x_{13})
Union(x_1, x_{10})
Find-Set(x_2)
Find-Set(x_9)
22.2-3
®ª ¦¨â¥, çâ® ¯à¨ ॠ«¨§ 樨 ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢ á ¯®¬®éìî ᯨ᪮¢ á ¢¥á®¢®© í¢à¨á⨪®© ãç¥â­ãî á⮨¬®áâì ®¯¥à 権
Make-Set ¨ Find-Set ¬®¦­® áç¨â âì à ¢­®© O(1), ãçñâ­ãî á⮨¬®áâì Union ¬®¦­® áç¨â âì à ¢­®© O(lg n).
22.2-4
“ª ¦¨â¥ â®ç­ãî ᨬ¯â®â¨ç¥áªãî ®æ¥­ªã á⮨¬®á⨠¯®á«¥¤®¢ ⥫쭮á⨠®¯¥à 権 à¨á. 22.3 (¥á«¨ ¨á¯®«ì§ãîâáï ᯨ᪨ ¨ ¢¥á®¢ ï
í¢à¨á⨪ ).
22.3 ‹¥á ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢
„«ï á¨áâ¥¬ë ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥á⢠áãé¥áâ¢ã¥â ¡®«¥¥ íä䥪⨢­ ï ॠ«¨§ æ¨ï (¯® áà ¢­¥­¨î á à áᬮâ७­ë¬¨). ˆ¬¥­­®,
440
ƒ« ¢ 22 ‘¨áâ¥¬ë ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢
¨á. 22.4
¨áã­®ª 22.3 ¨á. 22.4. ‹¥á ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢. ) „¥à¥¢ìï, ¯à¥¤áâ ¢«ïî騥 ¬­®¦¥á⢠à¨á. 22.2. à¥¤áâ ¢¨â¥«ï¬¨ ¬­®¦¥á⢠ïîâáï í«¥¬¥­âë c
¨ f . ¡) ¥§ã«ìâ â ®¯¥à 樨 Union(e; g).
¯à¥¤áâ ¢¨¬ ª ¦¤®¥ ¬­®¦¥á⢮ ª®à­¥¢ë¬ ¤¥à¥¢®¬, ¢ ª®â®à®¬ ¢¥à設 ¬¨ ïîâáï í«¥¬¥­âë ¬­®¦¥á⢠, ª®à¥­ì ï¥âáï ¯à¥¤áâ ¢¨â¥«¥¬. ®«ãç ¥âáï «¥á ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥á⢠(disjoint-set
forest). Š ª ¢¨¤­® ¨§ à¨áã­ª (á¬. à¨á. 22.4 (a)), ª ¦¤ ï ¢¥à設 㪠§ë¢ ¥â ­ ᢮¥£® த¨â¥«ï, ª®à¥­ì 㪠§ë¢ ¥â á ¬ ­ ᥡï. à¨
­ ¨¢­®¬ ¯à®£à ¬¬¨à®¢ ­¨¨ ®¯¥à 権 Find-Set ¨ Union â ª ï ॠ«¨§ æ¨ï ¡ã¤¥â ­¨çãâì ­¥ «ãçè¥ á¯¨á®ç­®©; ¥á«¨, ®¤­ ª® ¨á¯®«ì§®¢ âì í¢à¨á⨪¨ " ®¡ê¥¤¨­¥­¨ï ¯® à ­£ã" ¨ "ᦠâ¨ï ¯ã⥩", â®
¯®«ãç¨âáï á ¬ ï ¡ëáâà ï (¨§ ¨§¢¥áâ­ëå ¢ ­ áâ®ï饥 ¢à¥¬ï) ॠ«¨§ æ¨ï á¨áâ¥¬ë ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢.
 ¨¢­ë¥ ॠ«¨§ 樨 ®¯¥à 権 ¢ë£«ï¤ïâ â ª: Make-Set ᮧ¤ ¥â
¤¥à¥¢® á ¥¤¨­á⢥­­®© ¢¥à設®©, Find-Set(x) á®á⮨⠢ ⮬, çâ®
¬ë ¨¤¥¬ ®â x ¯® áâ५ª ¬ (㪠§ë¢ î騬 ­ த¨â¥«ï), ¯®ª ­¥
¤®©¤¥¬ ¤® ª®à­ï (¯ãâì, ª®â®àë© ¬ë ¯à¨ í⮬ ¯à®å®¤¨¬, ­ §ë¢ ¥âáï
¯ãâì ¯®¨áª , ¯®- ­£«¨©áª¨ nd path), Union á®á⮨⠢ ⮬, çâ®
¬ë § áâ ¢«ï¥¬ ª®à¥­ì ®¤­®£® ¨§ ¤¥à¥¢ì¥¢ 㪠§ë¢ âì ­¥ ­ á ¬®£®
ᥡï, ­ ª®à¥­ì ¤à㣮£® ¤¥à¥¢ (à¨á. 22.4¡).
„¢¥ í¢à¨á⨪¨
®ª çâ® ¡®«ìè¨å ¯à¥¨¬ãé¥á⢠(¯® áà ¢­¥­¨î ᮠᯨá®ç­®© ॠ«¨§ 樥©) ­¥ ¢¨¤­®: ­ ¯à¨¬¥à, ¢ १ã«ìâ ⥠n ; 1 ®¯¥à 樨 Union
¬®¦¥â ¯®«ãç¨âìáï ¤¥à¥¢®, ïî饥áï 楯®çª®© n ¢¥à設. Ž¯¨è¥¬ ¤¢¥ í¢à¨á⨪¨, ¯®§¢®«ïîé¨å ¤®¡¨âìáï ¯®ç⨠«¨­¥©­®© ®æ¥­ª¨
¢à¥¬¥­¨.
¥à¢ ï í¢à¨á⨪ , ­ §ë¢ ¥¬ ï ®¡ê¥¤¨­¥­¨¥¬ ¯® à ­£ã (union by
rank), ­ ¯®¬¨­ ¥â ¢¥á®¢ãî í¢à¨á⨪㠢 ᯨá®ç­®© ॠ«¨§ 樨: ¬ë
®¡ê¥¤¨­ï¥¬ ¤¥à¥¢ìï ­¥ ª ª ¯®¯ «®, â ª, çâ®¡ë ª®à¥­ì " ¬¥­ì襣®"
¤¥à¥¢ 㪠§ë¢ « ­ ª®à¥­ì "¡®«ì襣®". ‚ë¡®à "¡®«ì襣®" ®¯à¥¤¥«ï¥âáï ­¥ à §¬¥à®¬ ¤¥à¥¢ , á¯¥æ¨ «ì­ë¬ ¯ à ¬¥â஬ {à ­£®¬
(rank) ¥£® ª®à­ï.  ­£ ®¯à¥¤¥«ñ­ ¤«ï ª ¦¤®© ¢¥à設ë x ¤¥à¥¢ ¨
¢ ¯¥à¢®¬ ¯à¨¡«¨¦¥­¨¨ ¬®¦¥â à áᬠâਢ âìáï ª ª £àã¡ ï ®æ¥­ª «®£ à¨ä¬ ç¨á« ¢¥à設 ¢ ¯®¤¤¥à¥¢¥ á ª®à­¥¬ ¢ x. ’®ç­®¥ ®¯à¥¤¥«¥­¨¥ à ­£ ¡ã¤¥â ¤ ­® ¢ á«¥¤ãî饬 à §¤¥«¥.
‚â®à ï í¢à¨á⨪ , ¯à¨¬¥­ï¥¬ ï ¢ ®¯¥à 樨 Find-Set, ­ §ë¢ ¥âáï ᦠ⨥¬ ¯ã⥩ (path compression). Ž­ § ª«îç ¥âáï ¢ á«¥¤ãî饬: ¯®á«¥ ⮣®, ª ª ¯ãâì ¯®¨áª ®â ¢¥àè¨­ë ª ª®à­î ¯à®©¤¥­,
¤¥à¥¢® ¯¥à¥áâà ¨¢ ¥âáï: ¢ ª ¦¤®© ¨§ ¢¥à設 ¯ã⨠㪠§ ⥫ì ãáâ ­ ¢«¨¢ ¥âáï ­¥¯®á।á⢥­­® ­ ª®à¥­ì (à¨á. 22.5). à¨ í⮬ à ­£¨
®áâ îâáï ¯à¥¦­¨¬¨.
¥ «¨§ æ¨ï á ¯®¬®éìî ᯨ᪮¢
441
¨á. 22.5
¨áã­®ª 22.4 ‘¦ ⨥ ¯ã⥩ ¢ ¯à®æ¥áᥠ®¯¥à 樨 Find-Set. ) „¥à¥¢® ¯¥à¥¤
¢ë¯®«­¥­¨¥¬ ®¯¥à 樨 Find-Set(a). ’à¥ã£®«ì­¨ª ¬¨ ®¡®§­ ç¥­ë ¯®¤¤¥à¥¢ìï á
ª®à­ï¬¨ ¢ ¨§®¡à ¦¥­­ëå ¢¥à設 å. ¡) ®á«¥ ¨á¯®«­¥­¨ï Find-Set(a).
22.2.1 à®£à ¬¬ë
à¨¢®¤¨¬ë¥ ­¨¦¥ ¯à®£à ¬¬ë ®¯¥à 権 Make-Set, Find-Set ¨
Union ¢ª«îç îâ ¢ á¥¡ï ¨­¤ãªâ¨¢­®¥ ®¯à¥¤¥«¥­¨¥ à ­£ , ­® ¤«ï
㤮¡á⢠¬ë ¯¥à¥áª ¦¥¬ ¥£® á«®¢¥á­®. à¨ ᮧ¤ ­¨¨ ¬­®¦¥á⢠á
¯®¬®éìî Make-Set ¥¤¨­á⢥­­®© ¢¥à設¥ ¤¥à¥¢ ¯à¨á¢ ¨¢ ¥âáï
à ­£ 0. Ž¯¥à æ¨ï Find-Set (ᮠᦠ⨥¬ ¯ã⥩) ­¥ ¬¥­ï¥â à ­£®¢.
à¨ ¢ë¯®«­¥­¨¨ ®¯¥à 樨 Union á ¤¥à¥¢ìﬨ, à ­£¨ ª®à­¥© ª®â®àëå à §«¨ç­ë, ¯à®¢®¤¨âáï ­®¢ ï áâ५ª ®â ª®à­ï ¬¥­ì襣® à ­£ ª ª®à­î ¡®«ì襣® à ­£ , à ­£¨ ®¯ïâì-â ª¨ ­¥ ¬¥­ïîâáï. …᫨, ­ ª®­¥æ, ®¯¥à æ¨ï Union ¯à®¢®¤¨âáï á ¤¥à¥¢ìﬨ, à ­£¨ ª®à­¥© ª®â®àëå à ¢­ë, â® ®â ®¤­®£® ¨§ ª®à­¥© (¢á¥ à ¢­®, ª ª®£®) ¯à®¢®¤¨âáï
áâ५ª ª ¤à㣮¬ã, ¨ ¯à¨ í⮬ à ­£ ª®à­ï ®¡ê¥¤¨­ñ­­®£® ¤¥à¥¢ 㢥«¨ç¨¢ ¥âáï ­ ¥¤¨­¨æã (®áâ «ì­ë¥ à ­£¨ ­¥ ¬¥­ïîâáï). ‹¥£ª®
¢¨¤¥âì, çâ® ®¯à¥¤¥«ñ­­ë© â ª¨¬ ®¡à §®¬ à ­£ ¢¥à設ë ï¥âáï
¢¥àå­¥© ®æ¥­ª®© ¤«ï ¢ëá®âë ¯®¤¤¥à¥¢ á ª®à­¥¬ ¢ í⮩ ¢¥à設¥.
¨¦¥ p[x] ®¡®§­ ç ¥â த¨â¥«ï ¢¥à設ë x, rank[x] | ¥¥ à ­£;
¯ à ¬¥âà ¬¨ ¯à®æ¥¤ãàë Link, ¢ë§ë¢ ¥¬®© ¨§ ¯à®æ¥¤ãàë Union,
ïîâáï ª®à­¨ ¤¢ãå ¤¥à¥¢ì¥¢.
Make-Set(x)
1 p[x] \gets x
2 rank[x] \gets 0
Union(x,y)
1 Link(Find-Set(x),Find-Set(y))
Link(x,y)
1 if rank[x] > rank[y]
2
then p[y] \gets x
3
else p[x] \gets y
4
if rank[x]=rank[y]
5
then rank[y] \gets rank[y]+1
Find-Set(x)
1 if x \ne p[x]
2
then p[x] \gets Find-Set(p[x])
3 return p[x]
¥ªãàᨢ­ ï ¯à®æ¥¤ãà Find-Set à ¡®â ¥â ¢ ¤¢ ¯à®å®¤ : á­ ç « ®­ ¨¤¥â ª ª®à­î ¤¥à¥¢ , § ⥬ ¯à®å®¤¨â íâ®â ¯ãâì ¢ ®¡à â­®¬ ¯®à浪¥, "¯¥à¥¢®¤ï áâ५ª¨" ã ¢áâà¥ç îé¨åáï ¢¥à設 ­ ª®à¥­ì ¤¥à¥¢ . …᫨ x | ­¥ ª®à¥­ì, â® Find-Set ¢ë§ë¢ ¥â á ¬ã ᥡï,
442
ƒ« ¢ 22 ‘¨áâ¥¬ë ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢
­® 㦥 á ¯ à ¬¥â஬ | த¨â¥«¥¬ x, ¯®á«¥ 祣® ¤¥« ¥â த¨â¥«¥¬ x ª®à¥­ì ¤¥à¥¢ , ­ ©¤¥­­ë© í⨬ ­®¢ë¬ ¢ë§®¢®¬ Find-Set
(áâப 2). …᫨ ¦¥ x | ª®à¥­ì, â® áâப 2 ­¥ ¨á¯®«­ï¥âáï, ¨
áà §ã ¢®§¢à é ¥âáï 㪠§ â¥«ì ­ x.
—â® ¤ îâ í¢à¨á⨪¨
„ ¦¥ ¡ã¤ãç¨ ¯à¨¬¥­ñ­­ë¬¨ ¯® ®â¤¥«ì­®áâ¨, ®¡ê¥¤¨­¥­¨¥ ¯®
à ­£ã ¨ ᦠ⨥ ¯ã⥩ ¤ î⠢먣àëè ¢® ¢à¥¬¥­¨. …᫨ ¯à¨¬¥­¨âì
®¡ê¥¤¨­¥­¨¥ ¯® à ­£ã ¡¥§ ᦠâ¨ï ¯ã⥩, â® ®æ¥­ª ¢à¥¬¥­¨ à ¡®âë
¡ã¤¥â ¯à¨¬¥à­® â ª®© ¦¥, ª ª ¯à¨ ᯨá®ç­®© ॠ«¨§ 樨 á ¢¥á®¢®©
í¢à¨á⨪®©, ¨¬¥­­® O(m lg n) (m | ®¡é¥¥ ª®«¨ç¥á⢮ ®¯¥à 権,
n {ª®«¨ç¥á⢮ ®¯¥à 権 Make-Set (ã¯à. 22.4-3). â ®æ¥­ª ­¥ã«ãçè ¥¬ (ã¯à. 22.3-3). …᫨ ¯à¨¬¥­¨âì ᦠ⨥ ¯ã⥩ ¡¥§ ®¡ê¥¤¨­¥­¨ï ¯® à ­£ã, â® ¢à¥¬ï ¨á¯®«­¥­¨ï ¯®á«¥¤®¢ ⥫쭮á⨠®¯¥à 権,
¢ª«îç î饩 n ®¯¥à 権 Make-Set ¨ f ®¯¥à 権 Find-Set, ¥áâì
(¢ åã¤è¥¬ á«ãç ¥) (f log1+f=n n) ¯à¨ f > n ¨ (n + f lg n) ¯à¨
f < n (í⨠®æ¥­ª¨ ¬ë ¤®ª §ë¢ âì ­¥ ¡ã¤¥¬).
…é¥ ¡®«ìè ï íª®­®¬¨ï ¯®«ãç¨âáï, ¥á«¨ ¯à¨¬¥­¨âì ®¡¥ í¢à¨á⨪¨ ᮢ¬¥áâ­®. à¨ í⮬ ¢à¥¬ï à ¡®âë ¢ åã¤è¥¬ á«ãç ¥ ¥áâì
O(m(m; n)), £¤¥ | ç१¢ëç ©­® ¬¥¤«¥­­® à áâãé ï " ®¡à â­ ï
äã­ªæ¨ï €ªª¥à¬ ­ ", ®¯à¥¤¥«ï¥¬ ï ­¨¦¥ ¢ à §¤¥«¥ 22.4. ‚ «î¡ëå
¬ë᫨¬ëå ¯à¨«®¦¥­¨ïå ¢ë¯®«­¥­® ­¥à ¢¥­á⢮ (m; n) 6 4, â ª
çâ® ­ ¯à ªâ¨ª¥ ¬®¦­® áç¨â âì ¢à¥¬ï à ¡®âë «¨­¥©­ë¬ ¯® m. ‚
à §¤. 22.4 ¬ë ¤®ª ¦¥¬ çãâì ¡®«¥¥ á« ¡ãî ®æ¥­ªã O(m lg n).
“¯à ¦­¥­¨ï
22.3-1
‘¤¥« ©â¥ ã¯à ¦­¥­¨¥ 22.2-2, ¯®«ì§ãïáì ॠ«¨§ 樥© á ¯®¬®éìî
«¥á ᮠᦠ⨥¬ ¯ã⥩ ¨ ®¡ê¥¤¨­¥­¨¥¬ ¯® à ­£ ¬.
22.3-2
 ¯¨è¨â¥ ­¥à¥ªãàᨢ­ë© ¢ ਠ­â ¯à®æ¥¤ãàë Find-Set.
22.3-3
à¨¢¥¤¨â¥ ¯à¨¬¥à ¯®á«¥¤®¢ ⥫쭮á⨠m ®¯¥à 権 Make-Set,
Union ¨ Find-Set (¢ ⮬ ç¨á«¥ n ®¯¥à 権 Make-Set, ¤«ï ª®â®à®©
¢à¥¬ï à ¡®âë (¯à¨ ¨á¯®«ì§®¢ ­¨¨ ®¡ê¥¤¨­¥­¨ï ¯® à ­£ã ¡¥§ ᦠâ¨ï
¯ã⥩) ¡ã¤¥â (m lg n).
22.3-4*
 áᬮâਬ ¯®á«¥¤®¢ ⥫쭮áâì m ®¯¥à 権 Make-Set, Link ¨
Find-Set, ¢ ª®â®à®© ¢á¥ ®¯¥à 樨 Find-Set ¨¤ãâ ¯®á«¥ ¢á¥å ®¯¥à 権 Link. „®ª ¦¨â¥, çâ® ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ®¡ê¥¤¨­¥­¨ï ¯® à ­-
£ ¬ ᮠᦠ⨥¬ ¯ã⥩ ¢à¥¬ï à ¡®âë í⮩ ¯®á«¥¤®¢ ⥫쭮á⨠®¯¥à 権 ¥áâì O(m). —â® ¡ã¤¥â, ¥á«¨ ¯®«ì§®¢ âìáï ⮫쪮 ᦠ⨥¬
¯ã⥩?
22.4* Ž¡ê¥¤¨­¥­¨¥ ¯® à ­£ ¬ ᮠᦠ⨥¬ ¯ã⥩: ­ «¨§
‚ í⮬ à §¤¥«¥ ¬ë ¤ ¤¨¬ ®¯à¥¤¥«¥­¨¥ "®¡à â­®© ä㭪樨 €ªª¥à¬ ­ " (m; n), ¢å®¤ï饩 ¢ ®æ¥­ªã O(m(m; n)) ¤«ï á⮨¬®áâ¨
m ®¯¥à 権 á á¨á⥬®© ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢, ॠ«¨§®¢ ­­®© á ¯®¬®éìî «¥á á ®¡ê¥¤¨­¥­¨¥¬ ¯® à ­£ ¬ ¨ ᦠ⨥¬ ¯ã⥩
¥ «¨§ æ¨ï á ¯®¬®éìî ᯨ᪮¢
443
¨áã­®ª 22.5 22.6. ‡­ 祭¨ï A(i; j ) ¤«ï ¬ «ëå i ¨ j .
¥à¥¢®¤ë: row | áâப , column | á⮫¡¥æ
¨áã­®ª 22.6 ¨á. 22.7. ®áâ ä㭪樨 €ªª¥à¬ ­ . ‚ â ¡«¨æ¥ §­ 祭¨©
(à¨á. 22.6) ᮥ¤¨­¥­ë à ¢­ë¥ ç¨á« . Œ áèâ ¡ ¯® £®à¨§®­â «¨ ᮡ«îá⨠­¥¢®§¬®¦­® (¨§-§ ®ç¥­ì ¡ëáâண® à®áâ ).
(§¤¥áì n | ç¨á«® ®¯¥à 権 Make-Set). â㠮業ªã ¬ë ¤®ª §ë¢ âì
­¥ ¡ã¤¥¬, ®£à ­¨ç¨¢è¨áì ¡®«¥¥ á« ¡®© ®æ¥­ª®© O(m lg n).
”ã­ªæ¨ï €ªª¥à¬ ­ ¨ ®¡à â­ ï ª ­¥©
”㭪樥© €ªª¥à¬ ­ (Ackermann's function) ­ §ë¢ ¥âáï äã­ªæ¨ï
A(i; j ) ¤¢ãå 楫ëå ¯®«®¦¨â¥«ì­ëå ¯¥à¥¬¥­­ëå, ®¯à¥¤¥«ñ­­ ï â ª:
A(1; j ) = 2j ;
¥á«¨ j > 1;
A(i; 1) = A(i ; 1; 2)
¥á«¨ i > 2;
A(i; j ) = A(i ; 1; A(i; j ; 1))
¥á«¨ i; j > 2.
‡­ 祭¨ï A(i; j ) ¤«ï ¬ «ëå i ¨ j ¨§®¡à ¦¥­ë ­ à¨á. 22.6.
‚ â ¡«¨æ¥ §­ 祭¨© ä㭪樨 €ªª¥à¬ ­ ª ¦¤ ï á«¥¤ãîé ï
áâப ¥áâì ¯®¤¯®á«¥¤®¢ ⥫쭮áâì ¯à¥¤ë¤ã饩 (­ 稭 îé ïáï
á® ¢â®à®£® ç«¥­ ); ®âáî¤ á«¥¤ã¥â, çâ® A(i; j ) 㢥«¨ç¨¢ ¥âáï ¯à¨
㢥«¨ç¥- ­¨¨ i ¨«¨ j . â äã­ªæ¨ï à áâñâ ®ç¥­ì ¡ëáâà®: 㦥 ¯¥à¢ ï áâப ¢ â ¡«¨æ¥ ¥ñ §­ 祭¨© à áâñâ íªá¯®­¥­æ¨ «ì­®, ª ¦¤ ï ¯®á«¥¤ãîé ï áâப ¥áâì (¢¥áì¬ à¥¤ª ï) ¯®¤¯®á«¥¤®¢ ⥫쭮áâì ¯à¥¤ë¤ã饩. ˆ¬¥­­®, ¢ k + 1-®© áâப¥ â ¡«¨æë § ¯¨á ­ ¯®á«¥¤®- ¢ ⥫쭮áâì, ª ¦¤ë© á«¥¤ãî騩 ç«¥­ ª®â®à®© ¯®«ãç ¥âáï ¨§ ¯à¥¤ë- ¤ã饣® ¯à¨¬¥­¥­¨¥¬ ä㭪樨, § ¯¨á ­­®© ¢ k-®©
áâப¥. ‚ ç áâ­®áâ¨, ¢® ¢â®à®© áâப¥ ª ¦¤ë© á«¥¤ãî騩 ç«¥­
¥áâì ¤¢®©ª , ¢®§¢¥¤ñ­­ ï ¢ á⥯¥­ì ¯à¥¤ë¤ã饣® ç«¥­ .
‚§ ¨¬®®â­®è¥­¨ï ¬¥¦¤ã à §«¨ç­ë¬¨ áâப ¬¨ â ¡«¨æë §­ 祭¨© ä㭪樨 €ªª¥à¬ ­ á奬 â¨ç¥áª¨ ¨§®¡à ¦¥­ë ­ à¨á. 22.7.
Ž¯à¥¤¥«¨¬, ­ ª®­¥æ, ®¡à â­ãî äã­ªæ¨î €ªª¥à¬ ­ (m; n).
‘âண® £®¢®àï, ­¥ ï¥âáï ®¡à â­®© ª ä㭪樨 €ªª¥à¬ ­ A
(⥬ ¡®«¥¥ çâ® ¯®á«¥¤­ïï ¨¬¥¥â ¤¢ à£ã¬¥­â ), ­® ¬®¦­® ᪠§ âì,
çâ® äã­ªæ¨ï à áâ¥â áâ®«ì ¦¥ ¬¥¤«¥­­®, ᪮«ì ¡ëáâà® à áâ¥â
A. („¥â «¨ ®¯à¥¤¥«¥­¨ï áãé¥á⢥­­ë ¤«ï ¤®ª § ⥫ìá⢠®æ¥­ª¨
O(m(m; n)), ª®â®à®¥ ¢ë室¨â § à ¬ª¨ ­ 襩 ª­¨£¨.) ˆâ ª, ¯à¨
m > n > 1 ¯®« £ ¥¬:
(m; n) = min f i > 1 : A(i; bm=nc) > lg n g :
‹¥£ª® ¢¨¤¥âì, çâ® ¯à¨ 䨪á¨à®¢ ­­®¬ n äã­ªæ¨ï (m; n) ¬®­®â®­­®
ã¡ë¢ ¥â á à®á⮬ m. â® ᮣ« áã¥âáï á (­¥ ¤®ª §ë¢ ¥¬ë¬ ­ ¬¨)
ã⢥ত¥­¨¥¬ ® ⮬, çâ® á⮨¬®áâì m ®¯¥à 権 á ­¥¯¥à¥á¥ª î騬¨áï ¬­®¦¥á⢠¬¨, ¢ª«îç îé¨å n ®¯¥à 権 Make-Set, ¥áâì
(m(m; n)). ‚ á ¬®¬ ¤¥«¥, í⠮業ª £®¢®à¨â, çâ® á⮨¬®áâì ¢
444
ƒ« ¢ 22 ‘¨áâ¥¬ë ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢
à áçñ⥠­ ®¤­ã ®¯¥à æ¨î ¥áâì (m; n). …᫨ n 䨪á¨à®¢ ­®, m
à áâñâ, â® ¨§-§ ᦠâ¨ï ¯ã⥩ ¤¥à¥¢ìï á ª ¦¤ë¬ è £®¬ ¢áñ ¡®«¥¥
" ã¯à®é îâáï" (¢áñ ¡®«ìè¥ áâ ­®¢¨âáï ¢¥à設, ­ ¯àï¬ãî á¢ï§ ­­ëå á ª®à­¥¬), â ª çâ® á⮨¬®áâì ®¯¥à 樨 ¯ ¤ ¥â.
‚® ¢á¥å ¯à ªâ¨ç¥áª¨å ¯à¨«®¦¥­¨ïå ¬®¦­® áç¨â âì, çâ®
(m; n) 6 4. ‚ á ¬®¬ ¤¥«¥, ¯®áª®«ìªã äã­ªæ¨ï €ªª¥à¬ ­ ï¥âáï
¢®§à áâ î饩 ¯® ª ¦¤®¬ã ¯¥à¥¬¥­­®¬ã ¨ m > n, ¨¬¥¥¬
A(4; bm=nc) > A(4; 1) = A(3; 2) =
:2
:
22:
)
17;
çâ® ¬­®£® ¡®«ìè¥ ç¨á« ⮬®¢ ¢ ­ ¡«î¤ ¥¬®© ç á⨠‚ᥫ¥­­®©
( 1080). ®í⮬㠤«ï ¢á¥å ¢áâà¥ç îé¨åáï ­ ¯à ªâ¨ª¥ §­ 祭¨©
n ¨¬¥¥¬ A(4; bm=nc) > lg n ¨ (m; n) 6 4.
Œë ­¥ ¤®ª §ë¢ ¥¬ ®æ¥­ª¨, á¢ï§ ­­®© á ä㭪樥© €ªª¥à¬ ­ , ®£à ­¨ç¨¢ ¥¬áï ¡®«¥¥ á« ¡®© ®æ¥­ª®© O(m lg n). ‚ᯮ¬­¨¬ ®¯à¥¤¥«¥­¨¥ ä㭪樨 lg (á. ??). ® ®¯à¥¤¥«¥­¨î, lg 1 = 0 ¨
lg n = min i : |lg lg{z: : : lg} n 6 1
i à §
¤«ï n > 1. ¥à ¢¥­á⢮
¢ ®¯à¥¤¥«¥­¨¨ ä㭪樨 lg ¬®¦­® ¯¥à¥¯¨)
2
::
á âì â ª: n 6 22: j (j | ç¨á«® ¤¢®¥ª ¢ ä®à¬ã«¥).
Žæ¥­ª O(m lg n), ª®â®àãî ¬ë ¤®ª ¦¥¬ ­¨¦¥, á« ¡¥¥, 祬 áä®à¬ã«¨à®¢ ­­ ï ¡¥§ ¤®ª § ⥫ìá⢠®æ¥­ª O(m(m; n)), ­® á ¯à ªâ¨ç¥áª®© â®çª¨ §à¥­¨ï à §­¨æ ­¥¢¥«¨ª . ‚ á ¬®¬ ¤¥«¥, lg 22 =
lg 265536 = 5, â ª çâ® ¢® ¢á¥å ¯à ªâ¨ç¥áª¨å ¢®¯à®á å ¬®¦­® áç¨â âì, çâ® lg n 6 5 | ¢àï¤ «¨ ­ ¬ ¢áâà¥â¨âáï ¬­®¦¥á⢮, ¢ ª®â®à®¬
¡®«¥¥ 265536 í«¥¬¥­â®¢.
‘¢®©áâ¢ à ­£®¢
—â®¡ë ¤®ª § âì ®æ¥­ªã O(m lg n) ¤«ï ¢à¥¬¥­¨ à ¡®âë á á¨á⥬®©
­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢, ­ ¬ ¯®­ ¤®¡ïâáï ­¥ª®â®àë¥ á¢®©áâ¢ à ­£®¢.  ¯®¬­¨¬, çâ® ¬ë à ¡®â ¥¬ á á¨á⥬®© ­¥¯¥à¥á¥ª îé¨åáï
¬­®¦¥áâ¢, ॠ«¨§®¢ ­­®© á ¯®¬®éìî «¥á , á ®¡ê¥¤¨­¥­¨¥¬ ¯® à ­£ ¬ ¨ ᦠ⨥¬ ¯ã⥩ (á¬. à §¤. 22.3); ç¥à¥§ m ®¡®§­ 祭® á㬬 à­®¥
ç¨á«® ®¯¥à 権 Make-Set, Find-Set ¨ Union, ç¥à¥§ n | ç¨á«®
®¯¥à 権 Make-Set.
‹¥¬¬ 22.2
„«ï ¢á类© ¢¥à設ë x, ªà®¬¥ ª®à­ï, rank[x] < rank[p[x]] (­ ¯®¬­¨¬, çâ® ¤«ï ª®à­ï p[x] = x). à¨ ᮧ¤ ­¨¨ ¬­®¦¥á⢠fxg ¨¬¥¥¬
rank[x] = 0, ¤ «¥¥ rank[x] ¬®¦¥â ⮫쪮 ¢®§à áâ âì ¨ ¯¥à¥áâ ñâ
¬¥­ïâìáï, ª®£¤ x ¯¥à¥áâ ñâ ¡ëâì ª®à­¥¬ ¢ ᢮ñ¬ ¤¥à¥¢¥.
„®ª § ⥫ìá⢮. ‚áñ íâ® ­¥¯®á।á⢥­­® á«¥¤ã¥â ¨§ ®¯¨á ­¨ï
¯à®æ¥¤ãà Make-Set, Union ¨ Find-Set ¢ à §¤¥«¥ 22.3. ®¤à®¡­®á⨠¬ë ®áâ ¢«ï¥¬ ç¨â ⥫î (ã¯à. 22.4-1).
16
¥ «¨§ æ¨ï á ¯®¬®éìî ᯨ᪮¢
445
ãáâì x | ¢¥à設 ®¤­®£® ¨§ ­ è¨å ¤¥à¥¢ì¥¢. —¨á«® ¢¥à設 ¢
¯®¤¤¥à¥¢¥ á ª®à­¥¬ x (¢ª«îç ï á ¬ã x) ­ §®¢¥¬ ¥¥ à §¬¥à®¬ (size)
¨ ®¡®§­ 稬 size(x).
‹¥¬¬ 22.3
…᫨ x | ª®à¥­ì ®¤­®£® ¨§ ¤¥à¥¢ì¥¢, â® size(x) > 2rank[x].
„®ª § ⥫ìá⢮.
„®áâ â®ç­® ¯à®¢¥à¨âì, çâ® ª ¦¤ ï ¨§ ®¯¥à 権 Make-Set,
Find-Set ¨ Link á®åà ­ï¥â ¨á⨭­®áâì ã⢥ত¥­¨ï " size(x) >
2rank[x] ¤«ï ¢á¥å ª®à­¥© x". Ž¯¥à æ¨ï Find-Set ­¥ ¬¥­ï¥â ­¨ à §¬¥à®¢ ª®à­¥©, ­¨ à ­£®¢ ª ª¨å ¡ë â® ­¨ ¡ë«® ¢¥à設. Ž¯¥à æ¨ï
Make-Set(x) â ª¦¥ ­¥ ­ àãè ¥â ã⢥ত¥­¨ï «¥¬¬ë: ­¥ ¬¥­ïï
à ­£®¢ ¨ à §¬¥à®¢ 㦥 áãé¥áâ¢ãîé¨å ¤¥à¥¢ì¥¢, ®­ ᮧ¤ ñâ ­®¢®¥
¤¥à¥¢® á ¥¤¨­á⢥­­®© ¢¥à設®©, ¤«ï ª®â®à®© ­¥à ¢¥­á⢮ ®ç¥¢¨¤­ë¬ ®¡à §®¬ ¢ë¯®«­¥­®.
 áᬮâਬ ®¯¥à æ¨î Link(x; y) (­¥ ®£à ­¨ç¨¢ ï ®¡é­®áâ¨,
¬®¦­® áç¨â âì, çâ® rank[x] 6 rank[y]). ‚ १ã«ìâ ⥠í⮩ ®¯¥à 樨 à ­£ ¨«¨ à §¬¥à ¬®¦¥â ¨§¬¥­¨âìáï ⮫쪮 ã ¢¥à設ë y. …᫨
rank[x] < rank[y ], â® à §¬¥à y 㢥«¨ç¨¢ ¥âáï, à ­£ ­¥ ¬¥­ï¥âáï,
â ª çâ® ­¥à ¢¥­á⢮ size(y) > 2rank[y] , ®áâ ñâáï ¢¥à­ë¬. …᫨ ¦¥
rank[x] = rank[y ], â®, ®¡®§­ ç ï ç¥à¥§ size0[y] ¨ rank0[y] à §¬¥à ¨
à ­£ y ¯®á«¥ ®¯¥à 樨 Link, ¨¬¥¥¬ size0[y] = size[x] + size[y] ¨
rank0[y] = rank[y ] + 1. Žâáî¤ size0[y ] = size[x] + size[y ] > 2rank[x] + 2rank[y] = 2rank[y]+1 = 2rank0 [y] :
‹¥¬¬ 22.4
—¨á«® ¢¥à設 à ­£ r ­¥ ¯à¥¢®á室¨â n=2r (¤«ï «î¡®£® 楫®£®
r > 0).
„®ª § ⥫ìá⢮.
‡ 䨪á¨à㥬 ç¨á«® r. ‚á直© à §, ª®£¤ ª ª®©-«¨¡® ¢¥à設¥ y
¯à¨á¢ ¨¢ ¥âáï à ­£ r (¢ áâப¥ 2 ¯à®æ¥¤ãàë Make-Set ¨«¨ ¢
áâப¥ 5 ¯à®æ¥¤ãàë Link), ¡ã¤¥¬ ¯à¨¢¥è¨¢ âì ¬¥âªã ª® ¢á¥¬ ¢¥à設 ¬ ¯®¤¤¥à¥¢ á ¢¥à設®© y. ®áª®«ìªã ¢¥à設 y ¢ íâ®â ¬®¬¥­â ï¥âáï ª®à­¥¬ ®¤­®£® ¨§ ¤¥à¥¢ì¥¢, «¥¬¬ 22.3 ¯®ª §ë¢ ¥â,
çâ® ç¨á«® ¯®¬¥ç ¥¬ëå ¢¥à設 ­¥ ¬¥­ìè¥ 2r.  è¨ ¯à®æ¥¤ãàë
ãáâ஥­ë â ª, çâ® ª ¦¤ ï ¢¥à設 ¡ã¤¥â ¯®¬¥ç¥­ ­¥ ¡®«¥¥ ®¤­®£®
à § . ‘â «® ¡ëâì,
n > (ç¨á«® ¬¥â®ª) > 2r (ç¨á«® ¢¥à設 à ­£ r),
®âªã¤ ¢áñ ¨ á«¥¤ã¥â.
‘«¥¤á⢨¥ 22.5
 ­£ «î¡®© ¢¥àè¨­ë ­¥ ¯à¥¢®á室¨â blg nc.
„®ª § ⥫ìá⢮.
‘¬. «¥¬¬ã 22.3 ¨«¨ 22.4
„®ª § ⥫ìá⢮ ®æ¥­ª¨ ¤«ï ¢à¥¬¥­¨ à ¡®âë
446
ƒ« ¢ 22 ‘¨áâ¥¬ë ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢
à¨ ¤®ª § ⥫ìá⢥ ®æ¥­ª¨ ­ ¬ ¡ã¤¥â 㤮¡­¥¥ à ¡®â âì á ®¯¥à 樥© Link, ­¥ Union. ãáâì ¤ ­ ¯®á«¥¤®¢ ⥫쭮áâì S1, á®áâ®ïé ï ¨§ m1 ®¯¥à 権 Make-Set, Find-Set ¨ Union. ‡ ¬¥­¨¬ ª ¦¤ãî ®¯¥à æ¨î Union ­ ¤¢¥ ®¯¥à 樨 Find-Set ¨ ®¤­ã ®¯¥à æ¨î
Link; ¯®«ãç¨âáï ¯®á«¥¤®¢ ⥫쭮áâì S2 ¨§ m2 ®¯¥à 権 Make-Set,
Find-Set ¨ Link.
‹¥¬¬ 22.6
…᫨ á⮨¬®áâì ¢ë¯®«­¥­¨ï ¯®á«¥¤®¢ ⥫쭮á⨠S2 ¢ åã¤è¥¬
á«ãç ¥ ¥áâì O(m2 lg n), â® á⮨¬®áâì ¢ë¯®«­¥­¨ï ¯®á«¥¤®¢ ⥫쭮á⨠S1 ¢ åã¤è¥¬ á«ãç ¥ ¥áâì O(m1 lg n), £¤¥ n | ç¨á«® ®¯¥à 権
Make-Set.
„®ª § ⥫ìá⢮.
¥¬¥¤«¥­­® á«¥¤ã¥â ¨§ ®ç¥¢¨¤­®£® ­¥à ¢¥­á⢠m1 6 m2 6 3m1.
’¥®à¥¬ 22.7
à¥¤¯®«®¦¨¬, çâ® ­ ¤ á¨á⥬®© ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢
(¯¥à¢®­ ç «ì­® ¯ãá⮩) ¯à®¨§¢¥«¨ m ®¯¥à 権 Make-Set, FindSet ¨ Link, ¨§ ª®â®àëå n ®¯¥à 権 ¡ë«¨ ®¯¥à æ¨ï¬¨ Make-Set.
’®£¤ ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ॠ«¨§ 樨 á ¯®¬®éìî «¥á ᮠᦠ⨥¬
¯ã⥩ ¨ ®¡ê¥¤¨­¥­¨¥¬ ¯® à ­£ ¬ ®¡é ï á⮨¬®áâì í⮩ ¯®á«¥¤®¢ ⥫쭮á⨠®¯¥à 権 ¥áâì O(m lg n).
„®ª § ⥫ìá⢮.
‘⮨¬®áâì ª ¦¤®© ¨§ ®¯¥à 権 Make-Set ¨ Link ¥áâì, ®ç¥¢¨¤­®,
O(1), ¨å á㬬 à­ ï á⮨¬®áâì ¥áâì ⥬ á ¬ë¬ O(m). ‡ ©¬¥¬áï
®¯¥à æ¨ï¬¨ Find-Set. Žç¥¢¨¤­®, á⮨¬®áâì ®¯¥à 樨 Find-Set(x)
¯à®¯®à樮­ «ì­ ¤«¨­¥ ¯ã⨠¯®¨áª ®â x ª ª®à­î (¤® ᦠâ¨ï).
‘â «® ¡ëâì, ­ ¬ ­ ¤® ®æ¥­¨âì á㬬 à­ãî ¤«¨­ã ¯ã⥩ ¯®¨áª ,
¢®§­¨ª ¢è¨å ¢ ¯à®æ¥áᥠ¢ë¯®«­¥­¨ï ¢á¥å ®¯¥à 権 Find-Set ¨ ¤®ª § âì, çâ® ®­ ¥áâì O(m lg n).
‚ ¯à®æ¥áᥠ¢ë¯®«­¥­¨ï ª ¦¤®© ¨§ ®¯¥à 権 Find-Set ¬ë ¤¢¨£ ¥¬áï ¢¢¥àå ¯® ®¤­®¬ã ¨§ ¤¥à¥¢ì¥¢, § ª ­ç¨¢ ï ¯®¨áª ¢ ¥£® ª®à­¥.
‡ ¬¥â¨¬, çâ® ­ ª ¦¤®¬ è £¥ à ­£ ¢¥à設ë áâண® ¢®§à áâ ¥â:
¥á«¨ u | ¢¥à設 , ¢áâà¥â¨¢è ïáï ­ ¯ã⨠¯®¨áª , v | á«¥¤ãîé ï ¢¥à設 , â® ¥áâì v = p[u], â® rank[v] > rank[u]. ‚¥à設 u ¬®¦¥â ­¥®¤­®ªà â­® ¢áâà¥ç âìáï ¢ ¯ãâïå ¯®¨áª ¯à¨ ¢ë¯®«­¥­¨¨ à áᬠâਢ ¥¬®© ¢ ⥮६¥ ¯®á«¥¤®¢ ⥫쭮á⨠®¯¥à 権. à¨
í⮬ § ­¥© ¬®£ãâ (¨ ᪮॥ ¢á¥£® ¡ã¤ãâ) ¨¤â¨ à §­ë¥ ¢¥à設ë:
¥á«¨ ¢ ­¥ª®â®àë© ¬®¬¥­â § u á«¥¤®¢ « ¢¥à設 v, ª®â®à ï ­¥
¡ë« ª®à­¥¢®©, â® ¯®á«¥ ᦠâ¨ï ¯ã⥩ § u ¡ã¤¥â á«¥¤®¢ âì 㦥
­¥ v, ª®à¥­ì ¤¥à¥¢ (­ ¬®¬¥­â ¯¥à¢®£® ¯®¨áª ), â® ¥áâì ¢¥à設 ¡®«ì襣® à ­£ , 祬 v. (â® ¯à®á⮥ ­ ¡«î¤¥­¨¥ ¨£à ¥â ª ¤ «ì­¥©è¥¬ ª«î祢ãî ஫ì.)
 ¡«î¤ ï § à®á⮬ à ­£ ¯à¨ ¯¥à¥å®¤¥ ®â ¢¥àè¨­ë ª ¥ñ த¨â¥«î, ¬ë ®â¤¥«ì­® ®æ¥­¨âì ª®«¨ç¥á⢮ è £®¢, ¯à¨ ª®â®àëå à ­£
ᨫ쭮 à áâñâ, ¨ ª®«¨ç¥á⢮ è £®¢, ª®£¤ ®­ à áâñâ ­¥ ᨫ쭮. ‚롥६ ¢ ª ç¥á⢥ £à ­¨æë ­¥ª®â®àãî äã­ªæ¨î (k), ®¯à¥¤¥«ñ­­ãî
¤«ï ­¥®âà¨æ ⥫ì­ëå 楫ëå k. Œë ¯à¥¤¯®« £ ¥¬, çâ® äã­ªæ¨ï ¥ «¨§ æ¨ï á ¯®¬®éìî ᯨ᪮¢
447
ï¥âáï ¬®­®â®­­® ¢®§à áâ î饩 ¨ çâ® (k) > k ¯à¨ ¢á¥å k. ã¤¥¬
£®¢®à¨âì, çâ® ¯à¨ ¯¥à¥å®¤¥ ®â ¢¥à設ë u ª ¥ñ த¨â¥«î v = p[u]
à ­£ ᨫ쭮 à áâñâ, ¥á«¨ rank[v] > (rank[u]). à¨ í⮬ ¬ë ¨áª«îç ¥¬ ¨§ à áᬮâ७¨ï á«ãç ©, ª®£¤ v ï¥âáï ª®à­¥¬ | â ª®© á«ãç © ¢áâà¥ç ¥âáï ¯® à §ã ¯à¨ ¢ë¯®«­¥­¨¨ ª ¦¤®© ®¯¥à 樨
Find-Set, ¨ ¯®â®¬ã ®¡é¥¥ ç¨á«® â ª¨å á¨âã 権 ¥áâì O(m).
 ç­ñ¬ á ®æ¥­ª¨ ç¨á« è £®¢, ¯à¨ ª®â®àëå à ­£ ­¥ ᨫ쭮
à áâñâ, ¨ á£à㯯¨à㥬 ¨å ¯® ¢¥à設 ¬, ¨§ ª®â®àëå íâ®â è £ ¤¥« ¥âáï. „«ï ¢¥à設ë à ­£ k à ­£¨ ¥ñ ¯à¥¤ª ¬®£ãâ ¬¥­ïâìáï ®â
k + 1 ¤® (k) (¯®á«¥ í⮣® à ­£ à áâñâ ᨫ쭮). ‡­ ç¨â, ç¨á«® â ª¨å è £®¢ (¨§ ¤ ­­®© ¢¥à設ë à ­£ k) § ¢¥¤®¬® ­¥ ¡®«ìè¥ (k),
¯®áª®«ìªã, ª ª ¬ë £®¢®à¨«¨, ª ¦¤ë© ­®¢ë© è £ ¢¥¤ñâ ¢ ¢¥à設ã
¡®«ì襣® à ­£ , 祬 ¯à¥¤ë¤ã騩. ®áª®«ìªã ¢¥à設 à ­£ k ­¥
¡®«¥¥ n=2k , â® ®¡é¥¥ ç¨á«® è £®¢, ¯à¨ ª®â®àëå à ­£ ­¥ ᨫ쭮
à áâñâ, ­¥ ¯à¥¢®á室¨â
X n (k)
k
2k
…᫨ ¢ë¡à âì äã­ªæ¨î â ª, ç⮡ë àï¤ P (k)=2k á室¨«áï, â®
®¡é¥¥ ç¨á«® è £®¢ â ª®£® த ¥áâì O(n).
à¥¦¤¥ 祬 ¢ë¡à âì äã­ªæ¨î , ®¡êïá­¨¬, ª ª ®æ¥­¨âì ç¨á«®
è £®¢, ¯à¨ ª®â®àëå à ­£ ᨫ쭮 à áâñâ. ’ ª¨¥ è £¨ ¬ë á£à㯯¨à㥬 ­¥ ¯® ¢¥à設 ¬, ¯® ¯ãâï¬: ­ ª ¦¤®¬ ¯ã⨠¯®¨áª â ª¨å
è £®¢ ¬ «®, â ª ª ª à ­£ ­¥ ¬®¦¥â ¬­®£®ªà â­® ᨫ쭮 à á⨠(®­
¬¥­ï¥âáï ¢á¥£® «¨èì ®â 0 ¤® lg n). ’ ª¨¬ ®¡à §®¬, ­ ª ¦¤®¬ ¯ãâ¨
ç¨á«® è £®¢, ¯à¨ ª®â®à®¬ à ­£ ᨫ쭮 à áâñâ, ­¥ ¯à¥¢®á室¨â ç¨á« ¨â¥à 権 ä㭪樨 , ª®â®àë¥ ­ã¦­® ᤥ« âì, çâ®¡ë ¤®©â¨ ®â
0 ¤® lg n.
•®â¥«®áì ¡ë ¯®«®¦¨âì (k) = 2k : ⮣¤ ç¨á«® ¨â¥à 権 ¡ã¤¥â
¯à¨¬¥à­® à ¢­® lg n. Š ᮦ «¥­¨î, ⮣¤ ­ ¯¨á ­­ë© ¢ëè¥ àï¤
à á室¨âáï. à¨¤ñâáï ¢§ïâì ­¥¬­®£® ¬¥­ìèãî
äã­ªæ¨î
,
P
P .  ¯à¨¬¥à
k
k
k
k
k
¯®«®¦¨¬ (k) = d1;9 e, ⮣¤ àï¤ d1;9 e=2 6 (1;9 + 1)=2
á室¨âáï. ‘ ¤à㣮© áâ®à®­ë, ç¨á«® ¨â¥à 権 ä㭪樨 , ª®â®àë¥
­ã¦­® ᤥ« âì, çâ®¡ë ®â 0 ¤®©â¨ ¤® ª ª®£®-â® ç¨á« , ¢®§à áâñâ
(¯® áà ¢­¥­¨î á ä㭪樥© k 7! 2k ) ­¥ ¡®«¥¥ 祬 ¢¤¢®¥, ¯®áª®«ìªã
((k)) > 2k , ¨ ¯®â®¬ã ¥áâì O(lg n). ˆâ ª, ç¨á«® è £®¢ â ª®£® த ¤«ï ¢á¥å m ®¯¥à 権 ¥áâì O(m lg n).
‘ª« ¤ë¢ ï ¢¬¥á⥠¤¥©áâ¢¨ï ¢á¥å ¢¨¤®¢ (®¯¥à 樨 Make-Set ¨
Link, ¯®á«¥¤­¨¥ è £¨ ¢ ª ¦¤®¬ ¯ãâ¨, è £¨, ­ ª®â®àëå à ­£ ­¥
ᨫ쭮 à áâñâ, ¨ è £¨, ­ ª®â®àëå à ­£ ᨫ쭮 à áâñâ), ¯®«ãç ¥¬ ®¡éãî ®æ¥­ªã O(n) + O(m lg n) = O(m lg n) (­ ¯®¬­¨¬, çâ®
m > n, â ª ª ª m | ®¡é¥¥ ç¨á«® ®¯¥à 権, n | ç¨á«® ®¯¥à 権
textscMake-Set), çâ® ¨ âॡ®¢ «®áì ¤®ª § âì.
[‡ ¬¥ç ­¨¥. „®ª § ⥫ìá⢮ í⮩ ⥮६ë á«¥£ª ¨§¬¥­¥­® ¯®
áà ¢­¥­¨î á ­£«¨©áª¨¬ ®à¨£¨­ «®¬: ¢ ¯®á«¥¤­¥¬ ¨á¯®«ì§ã¥âáï
äã­ªæ¨ï (k), à ¢­ ï ­ ¨¬¥­ì襬ã ç«¥­ã ¯®á«¥¤®¢ ⥫쭮áâ¨
448
ƒ« ¢ 22 ‘¨áâ¥¬ë ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢
1; 2; 4; 16; 65536; : : : , ¡®«ì襬ã k (ª ¦¤ë© ç«¥­ ¯®á«¥¤®¢ ⥫쭮áâ¨
¥áâì ¤¢®©ª ¢ á⥯¥­¨ ¯à¥¤ë¤ã饣® ç«¥­ ). ’®£¤ ­ ª ¦¤®¬ ¯ãâ¨
¡ã¤¥âP­¥ ¡®«¥¥ lg n è £®¢, ­ ª®â®àëå à ­£ ᨫ쭮 à áâñâ, àï¤ (k)=2k á室¨âáï, ­® ¨¬¥¥â ¤®áâ â®ç­® ¬¥¤«¥­­® à áâã騥
ç áâ¨ç­ë¥ á㬬ë.]
ˆ§ ¤®ª § ­­®© â¥®à¥¬ë ¨ «¥¬¬ë 22.6 ­¥¬¥¤«¥­­® ¢ë⥪ ¥â
‘«¥¤á⢨¥ 22.8
à¥¤¯®«®¦¨¬, çâ® ­ ¤ á¨á⥬®© ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢
(¨§­ ç «ì­® ¯ãá⮩) ¯à®¨§¢¥«¨ m ®¯¥à 権 Make-Set, Find-Set ¨
Union, n ¨§ ª®â®àëå | Make-Set. ’®£¤ ¯à¨ ¨á¯®«ì§®¢ ­¨¨ ॠ«¨§ 樨 á ¯®¬®éìî «¥á ᮠᦠ⨥¬ ¯ã⥩ ¨ ®¡ê¥¤¨­¥­¨¥¬ ¯® à ­£ ¬ á⮨¬®áâì í⮩ ¯®á«¥¤®¢ ⥫쭮á⨠®¯¥à 権 ¥áâì O(m lg n).
“¯à ¦­¥­¨ï
22.4-1
„®ª ¦¨â¥ «¥¬¬ã 22.2.
22.4-2
‘ª®«ìª® ¡¨â®¢ ­ã¦­®, ç⮡ë åà ­¨âì size[x] ¤«ï 㧫 x? ’®â ¦¥
¢®¯à®á ¤«ï rank[x].
22.4-3
®«ì§ãïáì «¥¬¬®© 22.2 ¨ á«¥¤á⢨¥¬ 22.5, ¤®ª ¦¨â¥, çâ® á⮨¬®áâì m ®¯¥à 権 á «¥á®¬ ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢ á ¨á¯®«ì§®¢ ­¨¥¬ ®¡ê¥¤¨­¥­¨ï ¯® à ­£ ¬, ­® ¡¥§ ᦠâ¨ï ¯ã⥩, ¥áâì O(m lg n),
£¤¥ n, ª ª ®¡ëç­®, ®¡®§­ ç ¥â ª®«¨ç¥á⢮ ®¯¥à 権 Make-Set.
22.4-4*
Ž¡êïá­¨â¥, ¯®ç¥¬ã ¯®á«¥¤­¨¥ è £¨ ¯ã⥩ âॡ®¢ «¨ ¢ ­ 襬 à áá㦤¥­¨¨ ®á®¡®£® à áᬮâ७¨ï ( ­ ª« áá¨ä¨æ¨à®¢ «¨áì ¢ § ¢¨á¨¬®á⨠®â à®áâ à ­£ , ª ª ¢á¥ ®áâ «ì­ë¥): ¯à¨¢¥¤¨â¥ ¯à¨¬¥à á¨âã 樨, ¢ ª®â®à®© ­¥ª®â®à ï ¢¥à設 x ¢å®¤¨â (m) à § ¢ ¯ãâì ¯®¨áª ¤«ï ®¯¥à 樨 Find-Set, ¯à¨çñ¬ ¯à¨ ¢ë室¥ ¨§ ­¥ñ à ­£ à áâñâ
­¥ ᨫ쭮. (Š ª ¢¨¤­® ¨§ ¤®ª § ⥫ìá⢠, íâ® ¢®§¬®¦­® «¨èì ¥á«¨
®­ ¯® ¡®«ì襩 ç á⨠ï¥âáï ¯à¥¤¯®á«¥¤­¥© ¢¥à設®© ¯ãâ¨.)
‡ ¤ ç¨
22-1 ®¨áª ¬¨­¨¬ã¬ ¢ ०¨¬¥ o-line.
‡ ¤ ç ® ¯®¨áª¥ ¬¨­¨¬ã¬ ¢ ०¨¬¥ o-line (o-line minimum
problem) á®á⮨⠢ á«¥¤ãî饬. ãáâì ¨¬¥¥âáï ¤¨­ ¬¨ç¥áª®¥ ¬­®¦¥á⢮ T , ¯®¤¤¥à¦¨¢ î饥 ®¯¥à 樨 Insert(x) (¤®¡ ¢¨âì í«¥¬¥­â x) ¨ Extract-Min (㤠«¨âì ¬¨­¨¬ «ì­ë© í«¥¬¥­â). ¥à¢®­ ç «ì­® ¬­®¦¥á⢮ T ¯ãáâ®, § ⥬ ¢ë¯®«­ï¥âáï ­¥ª®â®à ï ¯®á«¥¤®¢ ⥫쭮áâì ¨§ n ®¯¥à 権 Insert ¨ m ®¯¥à 権 ExtractMin, ¯à¨ç¥¬ ®¯¥à 樨 Insert ¤®¡ ¢«ïîâ ¢ ¬­®¦¥á⢮ ¯® ®¤­®¬ã
à §ã ¢á¥ ­ âãà «ì­ë¥ ç¨á« ®â 1 ¤® n (­¥ ®¡ï§ ⥫쭮 ¢ ¯®à浪¥
¢®§à áâ ­¨ï). ’ॡã¥âáï ¯® ¤ ­­®© ¯®á«¥¤®¢ ⥫쭮á⨠®¯¥à 権
Insert(x) ¨ Extract-Min ᮧ¤ âì ¬ áᨢ extracted[1::m], ¢ ª®â®à®¬ extracted[i] | ç¨á«®, ¢®§¢à é ¥¬®¥ i-®© ¯® áçñâã ®¯¥à 樥©
Extract-Min.
ƒ®¢®àï ® "०¨¬¥ o-line", ¨¬¥îâ ¢ ¢¨¤ã, çâ® ®â ­ á âॡã¥âáï
¥ «¨§ æ¨ï á ¯®¬®éìî ᯨ᪮¢
449
¤ âì ®â¢¥â ¯®á«¥ ⮣®, ª ª ¬ë §­ ¥¬ ¢áî ¯®á«¥¤®¢ ⥫쭮áâì ª®¬ ­¤ (¢ ¯à®â¨¢®¯®«®¦­®áâì í⮬ã, ¢ ०¨¬¥ "on-line" ®â ­ á âॡ®¢ «®áì ¡ë ¤ ¢ âì ®â¢¥â ­¥¬¥¤«¥­­® ¯® ¯®áâ㯫¥­¨¨ ®ç¥à¥¤­®©
ª®¬ ­¤ë, ­¥ ¤®¦¨¤ ïáì á«¥¤ãî饩).
( ) ãáâì ª®¬ ­¤ë ¯®áâ㯠«¨ ¢ â ª®© ¯®á«¥¤®¢ ⥫쭮á⨠(¬ë ¯¨è¥¬
E ¢¬¥áâ® Extract-Min ¨ i ¢¬¥áâ® Insert(i)):
4; 8; E; 3; E; 9; 2; 6; E; E; E; 1; 7; E; 5:
Š ª ¢ë£«ï¤¨â ¬ áᨢ extracted?
€«£®à¨â¬ ¤«ï à¥è¥­¨ï § ¤ ç¨ ® ¬¨­¨¬ã¬¥ ¢ ०¨¬¥ o-line ¬®¦¥â ¢ë£«ï¤¥âì á«¥¤ãî騬 ®¡à §®¬. ãáâì S | ¤ ­­ ï ¯®á«¥¤®¢ ⥫쭮áâì ª®¬ ­¤. à¥¤áâ ¢¨¬ ¥¥ ¢ ¢¨¤¥
I1 ; E; I2; E; I3; : : :; Im ; E; Im+1;
£¤¥ ª ¦¤®¥ E ®¡®§­ ç ¥â ®¯¥à æ¨î Extract-Min, ª ¦¤®¥ Ij ®¡®§­ ç ¥â ¯®á«¥¤®¢ ⥫쭮áâì ®¯¥à 権 Insert (¢®§¬®¦­®, ¯ãáâãî).
„«ï ª ¦¤®© ¯®á«¥¤®¢ ⥫쭮á⨠Ij ᮧ¤ ¤¨¬ ¬­®¦¥á⢮ Kj , á®áâ®ï饥 ¨§ ç¨á¥«, ¤®¡ ¢«ï¥¬ëå ¢ T ¯à¨ ®¯¥à æ¨ïå Insert ¨§ ¯®á«¥¤®¢ ⥫쭮á⨠Ij . € ⥯¥àì ᤥ« ¥¬ ¢®â çâ®:
Off-Line-Minimum(m,n)
1 for i \gets 1 to n
2
do ­ ©â¨ â ª®¥ $j$, çâ® $i\in K_j$
3
if j \ne m+1
4
then extracted[j] \gets i
5
l \gets (­ ¨¬¥­ì襥 ç¨á«®, ¡®«ì襥 $j$,
¤«ï ª®â®à®£® áãé¥áâ¢ã¥â ¬­®¦¥á⢮ $K_l$)
6
K_l\gets K_l\cup K_j (¬­®¦¥á⢮ $K_j$ ¨á祧 ¥â)
7 return extracted
(¡) ®ª ¦¨â¥, çâ® «£®à¨â¬ Off-Line-Minimum ¯à ¢¨«ì­® § ¯®«­ï¥â ¬ áᨢ extracted.
(¢) ¥ «¨§ã©â¥ «£®à¨â¬ Off-Line-Minimum á ¯®¬®éìî á¨áâ¥¬ë ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢. „ ©â¥ ¤®áâ â®ç­® â®ç­ãî ®æ¥­ªã ¢à¥¬¥­¨ à ¡®âë ¢ åã¤è¥¬ á«ãç ¥.
22-2 Ž¯à¥¤¥«¥­¨¥ £«ã¡¨­ë
‚ § ¤ ç¥ ®¯à¥¤¥«¥­¨ï £«ã¡¨­ë (depth-determination problem) âॡã¥âáï ॠ«¨§®¢ âì «¥á F , á®áâ®ï騩 ¨§ ª®à­¥¢ëå ¤¥à¥¢ì¥¢ Ti, ¯®¤¤¥à¦¨¢ î騩 á«¥¤ãî騥 âਠ®¯¥à 樨:
Make-Tree(v ) ‘®§¤ ¥â ­®¢®¥ ¤¥à¥¢® á ¥¤¨­á⢥­­®© ¢¥à設®© v .
Find-Depth(v ) ‚®§¢à é ¥â £«ã¡¨­ã (à ááâ®ï­¨¥ ¤® ª®à­ï) ¢¥à設ë v.
450
ƒ« ¢ 22 ‘¨áâ¥¬ë ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢
Graft(r; v ) ("¯à¨¢¨¢ª "). ‚¥à設 r ¤®«¦­ ¡ëâì ª®à­¥¬ ®¤­®£®
¨§ ¤¥à¥¢ì¥¢, ¢¥à設 v ¤®«¦­ ¯à¨­ ¤«¥¦ âì ª ª ª®¬ã-â® ¤à㣮¬ã ¤¥à¥¢ã; ¤¥à¥¢® á ª®à­¥¬ r "¯à¨¢¨¢ ¥âáï" ª ¤¥à¥¢ã, ᮤ¥à¦ 饬ã v, ¯à¨ í⮬ v áâ ­®¢¨âáï த¨â¥«¥¬ r.
( ) ãáâì ¬ë ॠ«¨§®¢ «¨ íâã áâàãªâãàã ¤ ­­ëå á«¥¤ãî騬 ®¡à §®¬. „¥à¥¢ìï ¯à¥¤áâ ¢«ïîâáï ª ª ¢ «¥á¥ ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥á⢠(p[v] | த¨â¥«ì ¢¥à設ë v, ¥á«¨ v | ­¥ ª®à¥­ì, ¨ p[v] = v,
¥á«¨ v | ª®à¥­ì), ¯à®æ¥¤ãà Graft(r; v) á®á⮨⠢ ¯à¨á¢ ¨¢ ­¨¨
p[r] v , ¯à®æ¥¤ãà Make-Tree ­ ¯¨á ­ ®ç¥¢¨¤­ë¬ ®¡à §®¬, ¨,
­ ª®­¥æ, ¤«ï ­ 宦¤¥­¨ï £«ã¡¨­ë (Find-Depth(v)) ¬ë ¨¤¥¬ ¨§ v
¢ ª®à¥­ì ¨ ¯®¤áç¨âë¢ ¥¬ ¤«¨­ã ¯ãâ¨. ®ª ¦¨â¥, çâ® ¯à¨ í⮬ á⮨¬®áâì m ®¯¥à 権 Make-Tree, Graft ¨ Find-Depth ¢ åã¤è¥¬
á«ãç ¥ ¥áâì (m2).
€«£®à¨â¬ ¬®¦­® ã᪮à¨âì, ¥á«¨ ¢®á¯®«ì§®¢ âìáï ®¡ê¥¤¨­¥­¨¥¬
¯® à ­£ ¬ ¨ ᦠ⨥¬ ¯ã⥩. ‡ ¬¥â¨¬, çâ® áâàãªâãà ¤¥à¥¢ , ­ã¦­®£® ¤«ï ᦠâ¨ï ¯ã⥩, ­¥ ®¡ï§ ­ ᮮ⢥âá⢮¢ âì áâàãªâãॠ¨á室­®£® ¤¥à¥¢ | ¢ ¦­® «¨èì, çâ®¡ë ¬®¦­® ¡ë«® ¢®ááâ ­ ¢«¨¢ âì
¨­ä®à¬ æ¨î ® £«ã¡¨­¥ (ॡ஠­®¢®£® ¤¥à¥¢ ¤®«¦­® åà ­¨âì ¨­ä®à¬ æ¨î ® à §­¨æ¥ £«ã¡¨­ ª®­æ®¢ à¥¡à ¢ áâ ஬ ¤¥à¥¢¥).
(¡) ¥ «¨§ã©â¥ ®¯¥à æ¨î Make-Tree.
(¢) ¥ «¨§ã©â¥ ®¯¥à æ¨î Find-Depth. ‚ è «£®à¨â¬ ¤®«¦¥­ ¨á¯®«ì§®¢ âì ᦠ⨥ ¯ã⥩, ¥£® ¢à¥¬ï à ¡®âë ¤®«¦­® ¡ëâì ¯à®¯®à樮­ «ì­® ¤«¨­¥ ¯ã⨠¯®¨áª .
(£) ¥ «¨§ã©â¥ ®¯¥à æ¨î Graft (¤¥©áâ¢ã©â¥ ¯® ­ «®£¨¨ á «£®à¨â¬ ¬¨ Union ¨ Link; ª®à¥­ì ¢ áâந¬®¬ ¤¥à¥¢¥ ­¥ ®¡ï§ ­ ¡ëâì
ª®à­¥¬ ¢ áâ ஬ á¬ëá«¥).
(¤) „ ©â¥ â®ç­ãî ®æ¥­ªã ­ á⮨¬®áâì ¯®á«¥¤®¢ ⥫쭮á⨠m ®¯¥à 権 Make-Tree, Graft ¨ Find-Depth, n ¨§ ª®â®àëå | ®¯¥à 樨
Make-Tree (¤«ï åã¤è¥£® á«ãç ï).
22-3 €«£®à¨â¬ ’ àìï­ ¤«ï ­ 宦¤¥­¨ï ­ ¨¬¥­ì襣® ®¡é¥£®
¯à¥¤ª ¢ ०¨¬¥ o-line.
 ¨¬¥­ì訩 ®¡é¨© ¯à¥¤®ª (least common ancestor, ᮪à éñ­­®
LCA) ¢¥à設 u ¨ v ª®à­¥¢®£® ¤¥à¥¢ T ¥áâì, ¯® ®¯à¥¤¥«¥­¨î, ¢¥à設 ­ ¨¡®«ì襩 £«ã¡¨­ë á।¨ ¢¥à設, ïîé¨åáï ¯à¥¤ª ¬¨
ª ª u, â ª ¨ v. ‡ ¤ ç ® ­ 宦¤¥­¨¨ ­ ¨¬¥­ìè¨å ®¡é¨å ¯à¥¤ª ¢ ०¨¬¥ o-line (o-line least-common-ancestors problem) á®á⮨â
¢ á«¥¤ãî饬. „ ­® ª®à­¥¢®¥ ¤¥à¥¢® T ¨ ­¥ª®â®à®¥ ¬­®¦¥á⢮ P
­¥ã¯®à冷祭­ëå ¯ à ¥£® ¢¥à設. ’ॡã¥âáï ¤«ï ª ¦¤®© ¯ àë ¢¥à設 (u; v) 2 P ­ ©â¨ ¨å ­ ¨¬¥­ì襣® ®¡é¥£® ¯à¥¤ª .
¨¦¥ ¯à¨¢¥¤ñ­ «£®à¨â¬ LCA, à¥è î騩 íâã § ¤ çã (­ ¨¬¥­ì訥 ®¡é¨¥ ¯à¥¤ª¨ ¢á¥å ¯ à (u; v) 2 P ¡ã¤ãâ ­ ¯¥ç â ­ë ¢ १ã«ìâ ⥠¢ë§®¢ LCA(root[T ]); ¢­ ç «¥ ¢á¥ ¢¥àè¨­ë ¤¥à¥¢ | ¡¥«ë¥).
LCA(u)
1 Make-Set(u)
¥ «¨§ æ¨ï á ¯®¬®éìî ᯨ᪮¢
2
3
4
5
6
7
8
9
10
451
ancestor[Find-Set(u)] \gets u
for (¤«ï) ª ¦¤®£® $v$, ïî饣®áï ॡñ­ª®¬ $u$
do LCA(v)
Union(u,v)
ancestor[Find-Set(u)] \gets u
¯®ªà á¨âì u ¢ çñà­ë© 梥â
for (¤«ï) ª ¦¤®© ¢¥à設ë v â ª®©, çâ® $(u,v)\in P$
do if ¢¥à設 v çñà­ ï
then print (`` ¨¬¥­ì訩 ®¡é¨© ¯à¥¤®ª '' $u$ `` ¨ '' $v$
`` ¥áâì '' ancestor[Find-Set(v)]
( ) ®ª ¦¨â¥, çâ® áâப 10 ¨á¯®«­ï¥âáï ¢ â®ç­®á⨠®¤¨­ à § ¤«ï
ª ¦¤®© ¯ àë (u; v) 2 P .
(¡) ®ª ¦¨â¥, çâ® ¢ १ã«ìâ ⥠¢ë§®¢ LCA(root[T ]) ª ¦¤ë© ¨§ ¯®á«¥¤ãîé¨å ¢ë§®¢®¢ LCA(u) ¯à®¨á室¨â ¢ â®â ¬®¬¥­â, ª®£¤ ª®-
«¨ç¥á⢮ ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥áâ¢ à ¢­® £«ã¡¨­¥ ¢¥à設ë u
¢ ¤¥à¥¢¥ T .
(¢) ®ª ¦¨â¥, çâ® ¢ १ã«ìâ ⥠¢ë§®¢ LCA([T ]) ¡ã¤ãâ ­ ¯¥ç â ­ë
­ ¨¬¥­ì訥 ®¡é¨¥ ¯à¥¤ª¨ ¤«ï ¢á¥å ¯ à (u; v) 2 P .
(£) Žæ¥­¨â¥ ¢à¥¬ï à ¡®âë «£®à¨â¬ LCA ¢ ¯à¥¤¯®«®¦¥­¨¨, çâ® á¨á⥬ ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥á⢠ॠ«¨§®¢ ­ á ¯®¬®éìî «¥á á
®¡ê¥¤¨­¥­¨¥¬ ¯® à ­£ ¬ ¨ ᦠ⨥¬ ¯ã⥩.
‡ ¬¥ç ­¨ï
Œ­®£¨¥ ¢ ¦­ë¥ १ã«ìâ âë ® á¨á⥬ å ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥á⢠¢ ⮩ ¨«¨ ¨­®© ¬¥à¥ ¯à¨­ ¤«¥¦ ⠒ àìï­ã. ‚ ç áâ­®áâ¨,
¨¬¥­­® ®­ ãáâ ­®¢¨« ®æ¥­ªã O(m(m; n)) [186, 188]. ®«¥¥ á« ¡ ï
®æ¥­ª O(m lg n) ¡ë« à ­¥¥ ¯®«ã祭 •®¯ªà®ä⮬ ¨ “«ì¬ ­®¬
[4, 103]. ‚ à ¡®â¥ [190] ’ àìï­ ¨ ¢ ­ ‹¥ã¢¥­ ®¡á㦤 îâ à §«¨ç­ë¥ ¢ ਠ­âë ᦠâ¨ï ¯ã⥩, ¢ ⮬ ç¨á«¥ «£®à¨â¬ë, à ¡®â î騥
"§ ®¤¨­ ¯à®å®¤" (¨­®£¤ ®­¨ à ¡®â îâ ¡ëáâ॥ "¤¢ãå¯à®å®¤­ëå").
ƒ ¡®¢ ¨ ’ àìï­ [76] ¯®ª § «¨, çâ® ¢ ­¥ª®â®àëå ¯à¨«®¦¥­¨ïå ®¯¥à 樨 á ­¥¯¥à¥á¥ª î騬¨áï ¬­®¦¥á⢠¬¨ ¬®¦­® ¢ë¯®«­¨âì § ¢à¥¬ï
O(m).
‚ à ¡®â¥ [187] ’ àìï­ ¯®ª § «, çâ® ¯à¨ ­¥ª®â®àëå ¤®¯®«­¨â¥«ì­ëå ãá«®¢¨ïå á⮨¬®áâì ®¯¥à 権 á ­¥¯¥à¥á¥ª î騬¨áï ¬­®¦¥á⢠¬¨ ­¥ ¬®¦¥â ¡ëâì ­¨¦¥, 祬 O(m(m; n)), ª ªãî ॠ«¨§ æ¨î
¬ë ¡ë ­¨ ¨§¡à «¨. ”।¬ ­ ¨ ‘ ªá [74] ¯®ª § «¨, çâ®, ªà®¬¥ ⮣®,
¢ åã¤è¥¬ á«ãç ¥ í⨠®¯¥à 樨 âॡãîâ ®¡à 饭¨ï ª (m(m; n))
á«®¢ ¬ ¤«¨­®î ¢ lg n ¡¨â®¢.
23
€«£®à¨â¬ë ­ £à ä å
‚¢¥¤¥­¨¥
ƒà äë ¢áâà¥ç îâáï ¢ á®â­ïå à §­ëå § ¤ ç, ¨ «£®à¨â¬ë ®¡à ¡®âª¨ £à 䮢 ®ç¥­ì ¢ ¦­ë. ‚ í⮩ ç á⨠ª­¨£¨ ¬ë à áᬮâਬ
­¥áª®«ìª® ®á­®¢­ëå «£®à¨â¬®¢ ®¡à ¡®âª¨ £à 䮢.
‚ £« ¢¥ 23 à áᬠâਢ îâáï á¯®á®¡ë ¯à¥¤áâ ¢«¥­¨ï £à ä ¢ ¯à®£à ¬¬¥, â ª¦¥ à §«¨ç­ë¥ ¢ ਠ­âë ®¡å®¤ £à ä (¯®¨áª ¢ è¨à¨­ã ¨ ¢ £«ã¡¨­ã). à¨¢®¤ïâáï ¤¢ ¯à¨¬¥­¥­¨ï ¯®¨áª ¢ £«ã¡¨­ã:
⮯®«®£¨ç¥áª ï á®àâ¨à®¢ª ®à¨¥­â¨à®¢ ­­®£® £à ä ¡¥§ 横«®¢ ¨
à §«®¦¥­¨¥ ®à¨¥­â¨à®¢ ­­®£® £à ä ¢ á㬬ã ᨫ쭮 á¢ï§­ëå ª®¬¯®­¥­â.
‚ £« ¢¥ 24 à áᬠâਢ ¥âáï § ¤ ç ® ¯®ªàë¢ î饬 ¤¥à¥¢¥ (­ ¡®à¥ àñ¡¥à, á¢ï§ë¢ î饬 ¢á¥ ¢¥àè¨­ë £à ä ) ¬¨­¨¬ «ì­®£® ¢¥á .
(Œë ¯à¥¤¯®« £ ¥¬, çâ® ª ¦¤®¥ ॡ஠£à ä ¨¬¥¥â ­¥ª®â®àë© ¯®«®¦¨â¥«ì­ë© ¢¥á.) „«ï í⮩ § ¤ ç¨ ¯à¨¬¥­¨¬ë ¦ ¤­ë¥ «£®à¨â¬ë
(á¬. £« ¢ã 18).
‚ £« ¢ å 25 ¨ 26 à áᬠâਢ ¥âáï § ¤ ç ® ªà âç ©è¨å ¯ãâïå.
‚­®¢ì ª ¦¤®¬ã ॡà㠯ਯ¨á ­® ­¥ª®â®à®¥ ç¨á«®, ­® ⥯¥àì ®­®
­ §ë¢ ¥âáï ¤«¨­®© ॡà . ’ॡã¥âáï ­ ©â¨ ªà âç ©è¨¥ ¯ã⨠¨§
®¤­®© ¢¥àè¨­ë ¢® ¢á¥ ®áâ «ì­ë¥ (£« ¢ 25) ¨«¨ ªà âç ©è¨¥ ¯ãâ¨
¨§ ª ¦¤®© ¢¥àè¨­ë ¢ ª ¦¤ãî (£« ¢ 26).
 ª®­¥æ, ¢ £« ¢¥ 27 à ᬠâਢ ¥âáï § ¤ ç¥ ® ¬ ªá¨¬ «ì­®¬ ¯®â®ª¥ ¢¥é¥á⢠ç¥à¥§ á¥âì âàã¡ ®£à ­¨ç¥­­®© ¯à®¯ã᪭®© ᯮᮡ­®áâ¨. Š ¦¤®¥ ॡ஠à áᬠâਢ ¥âáï ª ª âàã¡ ­¥ª®â®à®© ¯à®¯ã᪭®© ᯮᮡ®áâ¨. ‚ ­¥ª®â®à®© ¢¥à設¥ ­ 室¨âáï ¨áâ®ç­¨ª ¢¥é¥á⢠, ¢ ¤à㣮© | ¯®âॡ¨â¥«ì. ‘¯à 訢 ¥âáï, ª ª®© ¯®â®ª ¢¥é¥á⢠¬®¦­® ¯¥à¥¤ ¢ âì ®â ¨áâ®ç­¨ª ª ¯®âॡ¨â¥«î, ­¥ ¯à¥¢ëè ï
¯à®¯ã᪭®© ᯮᮡ­®á⨠âàã¡. â § ¤ ç ¢ ¦­ , ¯®áª®«ìªã ª ­¥©
᢮¤¨âáï ¬­®£¨¥ ¨­â¥à¥á­ë¥ § ¤ ç¨.
Œë ¡ã¤¥¬ ®æ¥­¨¢ âì ¢à¥¬ï ®¡à ¡®âª¨ § ¤ ­­®£® £à ä G =
(V; E ) ¢ § ¢¨á¨¬®á⨠®â ç¨á« ¥£® ¢¥à設 (jV j) ¨ àñ¡¥à (jE j); ¬ë
¡ã¤¥¬ ¤«ï ªà ⪮á⨠¯¨á âì V ¨ E ¢¬¥áâ® jV j ¨ jE j. ‚ ¯à®£à ¬¬ å
¬­®¦¥á⢮ ¢¥à設 £à ä G ¬ë ¡ã¤¥¬ ®¡®§­ ç âì V [G], ¬­®¦¥á⢮
àñ¡¥à | E [G].
Žá­®¢­ë¥ «£®à¨â¬ë ­ £à ä å
453
23.1 Žá­®¢­ë¥ «£®à¨â¬ë ­ £à ä å
‚ í⮩ £« ¢¥ ®¯¨á ­ë ®á­®¢­ë¥ á¯®á®¡ë ¯à¥¤áâ ¢«¥­¨ï £à 䮢 ¨
«£®à¨â¬ë ®¡å®¤ £à 䮢. Ž¡å®¤ï £à ä, ¬ë ¤¢¨£ ¥¬áï ¯® àñ¡à ¬ ¨
¯à®å®¤¨¬ ¢á¥ ¢¥à設ë. à¨ í⮬ ­ ª ¯«¨¢ ¥âáï ¤®¢®«ì­® ¬­®£®
¨­ä®à¬ 樨, ª®â®à ï ¯®«¥§­ ¤«ï ¤ «ì­¥©è¥© ®¡à ¡®âª¨ £à ä ,
â ª çâ® ®¡å®¤ £à ä ¢å®¤¨â ª ª á®áâ ¢­ ï ç áâì ¢® ¬­®£¨¥ «£®à¨â¬ë.
‚ à §¤¥«¥ 23.1 ®¡á㦤 îâáï ¤¢ ®á­®¢­ëå ᯮᮡ ¯à¥¤áâ ¢«¥­¨ï £à ä ¢ ¯ ¬ï⨠ª®¬¯ìîâ¥à | á ¯®¬®éìî ᯨ᪮¢ ᬥ¦­ëå
¢¥à設 ¨ á ¯®¬®éìî ¬ âà¨æë ᬥ¦­®áâ¨.  §¤¥« 23.2 ®¯¨áë¢ ¥â
«£®à¨â¬ ¯®¨áª ¢ è¨à¨­ã ¨ ᮮ⢥âáâ¢ãî饥 í⮬㠫£®à¨â¬ã
¤¥à¥¢®. ‚ à §¤¥«¥ 23.3 à áᬠâਢ ¥âáï ¤à㣮© ¯®à冷ª ®¡å®¤ ¢¥à設 ¨ ¤®ª §ë¢ îâáï ᢮©á⢠ᮮ⢥âáâ¢ãî饣® «£®à¨â¬ (­ §ë¢ ¥¬®£® ¯®¨áª®¬ ¢ £«ã¡¨­ã). ‚ à §¤¥«¥ 23.4 ¬ë ¨á¯®«ì§ã¥¬ à §à ¡®â ­­ë¥ ¬¥â®¤ë ¤«ï à¥è¥­¨ï § ¤ ç¨ ® ⮯®«®£¨ç¥áª®© á®àâ¨à®¢ª¥
®à¨¥­â¨à®¢ ­­®£® £à ä ¡¥§ 横«®¢. „à㣮¥ ¯à¨¬¥­¥­¨¥ ¯®¨áª ¢
£«ã¡¨­ã (®âë᪠­¨ï ᨫ쭮 á¢ï§­ëå ª®¬¯®­¥­â ®à¨¥­â¨à®¢ ­­®£®
£à ä ) ®¯¨á ­® ¢ à §¤¥«¥ 23.5.
23.1.1 à¥¤áâ ¢«¥­¨¥ £à 䮢
…áâì ¤¢ áâ ­¤ àâ­ëå ᯮᮡ ¯à¥¤áâ ¢¨âì £à ä G = (V; E ) |
ª ª ­ ¡®à ᯨ᪮¢ ᬥ¦­ëå ¢¥à設 ¨«¨ ª ª ¬ âà¨æã ᬥ¦­®áâ¨.
¥à¢ë© ®¡ëç­® ¯à¥¤¯®çâ¨â¥«ì­¥¥, ¨¡® ¤ ñâ ¡®«¥¥ ª®¬¯ ªâ­®¥ ¯à¥¤áâ ¢«¥­¨¥ ¤«ï à §à¥¦¥­­ëå (sparse) £à 䮢 | â¥å, ã ª®â®àëå jE j
¬­®£® ¬¥­ìè¥ jV j2. ®«ì設á⢮ ¨§¤ £ ¥¬ëå ­ ¬¨ «£®à¨â¬®¢ ¨á¯®«ì§ãîâ ¨¬¥­­® íâ® ¯à¥¤áâ ¢«¥­¨¥. Ž¤­ ª® ¢ ­¥ª®â®àëå á¨âã æ¨ïå 㤮¡­¥¥ ¯®«ì§®¢ âìáï ¬ âà¨æ¥© ᬥ¦­®á⨠| ­ ¯à¨¬¥à, ¤«ï
¯«®â­ëå (dense) £à 䮢, ã ª®â®àëå jE j áà ¢­¨¬® á jV j2. Œ âà¨æ ᬥ¦­®á⨠¯®§¢®«ï¥â ¡ëáâà® ®¯à¥¤¥«¨âì, ᮥ¤¨­¥­ë «¨ ¤¢¥ ¤ ­­ë¥
¢¥à設ë ॡ஬. „¢ «£®à¨â¬ ®âë᪠­¨ï ªà âç ©è¨å ¯ã⥩ ¤«ï
¢á¥å ¯ à ¢¥à設, ®¯¨á ­­ë¥ ¢ £« ¢¥ 26, ¨á¯®«ì§ãî⠯।áâ ¢«¥­¨¥
£à ä á ¯®¬®éìî ¬ âà¨æë ᬥ¦­®áâ¨.
à¥¤áâ ¢«¥­¨¥ £à ä G = (V; E ) ¢ ¢¨¤¥ ᯨ᪮¢ ᬥ¦­ëå ¢¥à設
(adjancency-list representation) ¨á¯®«ì§ã¥â ¬ áᨢ Adj ¨§ jV j ᯨ᪮¢ | ¯® ®¤­®¬ã ­ ¢¥à設ã. „«ï ª ¦¤®© ¢¥à設ë u 2 V ᯨ᮪
ᬥ¦­ëå ¢¥à設 Adj [u] ᮤ¥à¦¨â ¢ ¯à®¨§¢®«ì­®¬ ¯®à浪¥ (㪠§ ⥫¨ ­ ) ¢á¥ ᬥ¦­ë¥ á ­¥© ¢¥à設ë (¢á¥ ¢¥à設ë v, ¤«ï ª®â®àëå
(u; v ) 2 E ).
 à¨á. 23.1 (b) ¯®ª § ­® ¯à¥¤áâ ¢«¥­¨¥ ­¥®à¨¥­â¨à®¢ ­­®£®
£à ä à¨á. 23.1 (a) á ¯®¬®éìî ᯨ᪮¢ ᬥ¦­ëå ¢¥à設. €­ «®£¨ç­®¥ ¯à¥¤áâ ¢«¥­¨¥ ¤«ï ®à¨¥­â¨à®¢ ­­®£® £à ä à¨á. 23.2 (a)
¨§®¡à ¦¥­® ­ à¨á. 23.2 (b).
454
ƒ« ¢ 23 €«£®à¨â¬ë ­ £à ä å
¨áã­®ª 23.1 23.1 „¢ ¯à¥¤áâ ¢«¥­¨ï ­¥®à¨¥­â¨à®¢ ­­®£® £à ä . (a) ¥®à¨¥­â¨à®¢ ­­ë© £à ä G á 5 ¢¥à設 ¬¨ ¨ 7 àñ¡à ¬¨. (b) à¥¤áâ ¢«¥­¨¥ í⮣® £à ä á ¯®¬®éìî ᯨ᪮¢ ᬥ¦­ëå ¢¥à設. (c) à¥¤áâ ¢«¥­¨¥ í⮣® £à ä ¢ ¢¨¤¥
¬ âà¨æë ᬥ¦­®áâ¨.
¨áã­®ª 23.2 23.2 „¢ ¯à¥¤áâ ¢«¥­¨ï ®à¨¥­â¨à®¢ ­­®£® £à ä . (a) Žà¨¥­â¨à®¢ ­­ë© £à ä G á 6 ¢¥à設 ¬¨ ¨ 8 àñ¡à ¬¨. (b) à¥¤áâ ¢«¥­¨¥ í⮣® £à ä á ¯®¬®éìî ᯨ᪮¢ ᬥ¦­ëå ¢¥à設. (c) à¥¤áâ ¢«¥­¨¥ í⮣® £à ä ¢ ¢¨¤¥
¬ âà¨æë ᬥ¦­®áâ¨.
„«ï ®à¨¥­â¨à®¢ ­­®£® £à ä á㬬 ¤«¨­ ¢á¥å ᯨ᪮¢ ᬥ¦­ëå
¢¥à設 à ¢­ ®¡é¥¬ã ç¨á«ã àñ¡¥à: ॡàã (u; v) ᮮ⢥âáâ¢ã¥â í«¥¬¥­â v ᯨ᪠Adj [u]. „«ï ­¥®à¨¥­â¨à®¢ ­­®£® £à ä íâ á㬬 à ¢­ 㤢®¥­­®¬ã ç¨á«ã àñ¡¥à, â ª ª ª ॡ஠(u; v) ¯®à®¦¤ ¥â í«¥¬¥­â ¢ ᯨ᪥ ᬥ¦­ëå ¢¥à設 ª ª ¤«ï ¢¥à設ë u, â ª ¨ ¤«ï v. ‚
®¡®¨å á«ãç ïå ª®«¨ç¥á⢮ âॡ㥬®© ¯ ¬ï⨠¥áâì O(max(V; E )) =
O(V + E ).
‘¯¨áª¨ ᬥ¦­ëå ¢¥à設 㤮¡­ë ¤«ï åà ­¥­¨ï £à 䮢 á ¢¥á ¬¨
(weighted graphs), ¢ ª®â®àëå ª ¦¤®¬ã ॡà㠯ਯ¨á ­ ­¥ª®â®àë©
¢¥é¥á⢥­­ë© ¢¥á (weight), â® ¥áâì § ¤ ­ ¢¥á®¢ ï äã­ªæ¨ï (weight
function) w : E ! . ‚ í⮬ á«ãç ¥ 㤮¡­® åà ­¨âì ¢¥á w(u; v ) ॡà (u; v ) 2 E ¢¬¥áâ¥ á ¢¥à設®© v ¢ ᯨ᪥ ¢¥à設, ᬥ¦­ëå á u. ®¤®¡­ë¬ ®¡à §®¬ ¬®¦­® åà ­¨âì ¨ ¤àã£ãî ¨­ä®à¬ æ¨î, á¢ï§ ­­ãî
á £à 䮬.
¥¤®áâ ⮪ í⮣® ¯à¥¤áâ ¢«¥­¨ï â ª®¢: ¥á«¨ ¬ë å®â¨¬ 㧭 âì,
¥áâì «¨ ¢ £à ä¥ à¥¡à® ¨§ u ¢ v, ¯à¨å®¤¨âáï ¯à®á¬ âਢ âì ¢¥áì
ᯨ᮪ Adj [u] ¢ ¯®¨áª å v. â®£® ¬®¦­® ¨§¡¥¦ âì, ¯à¥¤áâ ¢¨¢ £à ä
¢ ¢¨¤¥ ¬ âà¨æë ᬥ¦­®á⨠| ­® ⮣¤ ¯®âॡã¥âáï ¡®«ìè¥ ¯ ¬ïâ¨.
à¨ ¨á¯®«ì§®¢ ­¨¨ ¬ âà¨æë ᬥ¦­®á⨠¬ë ­ã¬¥à㥬 ¢¥à設ë
£à ä (V; E ) ç¨á« ¬¨ 1; 2; : : : ; jV j ¨ à áᬠâਢ ¥¬ ¬ âà¨æã A =
(aij ) à §¬¥à jV j jV j, ¤«ï ª®â®à®©
1; ¥á«¨ (i; j ) 2 E ,
aij = 0 ¢ ¯à®â¨¢­®¬ á«ãç ¥
 à¨á. 23.1 (c) ¨ 23.2 (c) ¯®ª § ­ë ¬ âà¨æë ᬥ¦­®á⨠­¥®à¨¥­â¨à®¢ ­­®£® ¨ ®à¨¥­â¨à®¢ ­­®£® £à 䮢 à¨á. 23.1 (a) ¨ 23.2 (a) ᮮ⢥âá⢥­­®. Œ âà¨æ ᬥ¦­®á⨠âॡã¥â (V 2) ¯ ¬ï⨠­¥§ ¢¨á¨¬®
®â ª®«¨ç¥á⢠ॡ¥à ¢ £à ä¥.
„«ï ­¥®à¨¥­â¨à®¢ ­­®£® £à ä ¬ âà¨æ ᬥ¦­®á⨠ᨬ¬¥âà¨ç­ ®â­®á¨â¥«ì­® £« ¢­®© ¤¨ £®­ «¨ (ª ª ­ à¨á. 3.1(c)), ¯®áª®«ìªã
(u; v ) ¨ (v; u) | íâ® ®¤­® ¨ â® ¦¥ ॡà®. „à㣨¬¨ á«®¢ ¬¨, ¬ âà¨æ ᬥ¦­®á⨠­¥®à¨¥­â¨à®¢ ­­®£® £à ä ᮢ¯ ¤ ¥â ᮠ᢮¥© âà ­á¯®­¨à®¢ ­­®© (transpose). (’à ­á¯®­¨à®¢ ­¨¥¬ ­ §ë¢ ¥âáï ¯¥à¥å®¤
®â ¬ âà¨æë A = (aij ) ª ¬ âà¨æ¥ AT = (aTij ), ¤«ï ª®â®à®© aTij = aji.
« £®¤ àï ᨬ¬¥âਨ ¤®áâ â®ç­® åà ­¨âì ⮫쪮 ç¨á« ­ £« ¢R
Žá­®¢­ë¥ «£®à¨â¬ë ­ £à ä å
455
­®© ¤¨ £®­ «¨ ¨ ¢ëè¥ ­¥¥, ⥬ á ¬ë¬ ¬ë ᮪à é ¥¬ âॡ㥬ãî
¯ ¬ïâì ¯®ç⨠¢¤¢®¥.
Š ª ¨ ¤«ï ᯨ᪮¢ ᬥ¦­ëå ¢¥à設, åà ­¥­¨¥ ¢¥á®¢ ­¥ á®áâ ¢«ï¥â ¯à®¡«¥¬ë: ¢¥á w(u; v) ॡà (u; v) ¬®¦­® åà ­¨âì ¢ ¬ âà¨æ¥
­ ¯¥à¥á¥ç¥­¨¨ u-⮩ áâப¨ ¨ v-£® á⮫¡æ . „«ï ®âáãâáâ¢ãîé¨å
àñ¡¥à ¬®¦­® § ¯¨á âì á¯¥æ¨ «ì­®¥ §­ 祭¨¥ NIL (¢ ­¥ª®â®àëå § ¤ ç å ¢¬¥áâ® í⮣® ¯¨èãâ 0 ¨«¨ 1).
„«ï ­¥¡®«ìè¨å £à 䮢, ª®£¤ ¬¥áâ ¢ ¯ ¬ï⨠¤®áâ â®ç­®, ¬ âà¨æ ᬥ¦­®á⨠¡ë¢ ¥â 㤮¡­¥¥ | á ­¥© ç áâ® ¯à®é¥ à ¡®â âì.
Šà®¬¥ ⮣®, ¥á«¨ ­¥ ­ ¤® åà ­¨âì ¢¥á , â® í«¥¬¥­âë ¬¥âà¨æë ᬥ¦­®á⨠¯à¥¤áâ ¢«ïîâ ᮡ®© ¡¨âë, ¨ ¨å ¬®¦­® à §¬¥é âì ¯® ­¥áª®«ìªã ¢ ®¤­®¬ ¬ 設­®¬ á«®¢¥, çâ® ¤ ñâ § ¬¥â­ãî íª®­®¬¨î
¯ ¬ïâ¨.
“¯à ¦­¥­¨ï
23.1-1
ƒà ä åà ­¨âáï ¢ ¢¨¤¥ ᯨ᪮¢ ᬥ¦­®áâ¨. ‘ª®«ìª® ®¯¥à 権
­ã¦­®, çâ®¡ë ­ ©â¨ ç¨á«® ¢ë室ïé¨å ¨§ ¤ ­­®© ¢¥à設ë àñ¡¥à?
ç¨á«® ¢å®¤ïé¨å ¢ ¤ ­­ãî ¢¥à設ã àñ¡¥à?
23.1-2
“ª ¦¨â¥ ¯à¥¤áâ ¢«¥­¨¥ ¢ ¢¨¤¥ ᯨ᪮¢ ᬥ¦­®á⨠¨ ¬ âà¨æã
ᬥ¦­®á⨠¤«ï £à ä , ïî饣®áï ¯®«­ë¬ ¤¢®¨ç­ë¬ ¤¥à¥¢®¬ á
7 ¢¥à設 ¬¨ (¯à®­ã¬¥à®¢ ­­ë¬¨ ®â 1 ¤® 7 ª ª ¯à¨ á®àâ¨à®¢ª¥ á
¯®¬®éìî ªãç¨ ¢ £« ¢¥ 7).
23.1-3
—â® ¯à®¨§®©¤ñâ á ¬ âà¨æ¥© ᬥ¦­®á⨠®à¨¥­â¨à®¢ ­­®£® £à ä ,
¥á«¨ ®¡à â¨âì ­ ¯à ¢«¥­¨ï áâ५®ª ­ ¢á¥å ¥£® àñ¡à å, § ¬¥­¨¢ ª ¦¤®¥ ॡ஠(u; v) ­ ॡ஠(v; u)? Š ª ®¡à â¨âì ­ ¯à «¥­¨ï áâ५®ª,
¥á«¨ £à ä åà ­¨âáï ¢ ä®à¬¥ ᯨ᪮¢ ᬥ¦­®áâ¨? Žæ¥­¨â¥ âॡ㥬®¥ ¤«ï í⮣® ç¨á«® ®¯¥à 権.
23.1-4
Œã«ì⨣à ä G = (V; E ) ¯à¥¤áâ ¢«¥­ ¢ ¢¨¤¥ ᯨ᪮¢ ᬥ¦­ëå ¢¥à設. Š ª § ¢à¥¬ï O(V + E ) ¯à¥®¡à §®¢ âì ¥£® ¢ ®¡ëç­ë© ­¥®à¨¥­â¨à®¢ ­­ë© £à ä G0 = (V; E 0), § ¬¥­¨¢ ªà â­ë¥ àñ¡à ­ ®¡ëç­ë¥
¨ 㤠«¨¢ àñ¡à -横«ë?
23.1-5
Š¢ ¤à ⮬ (square) ®à¨¥­â¨à®¢ ­­®£® £à ä G = (V; E ) ­ §ë¢ ¥âáï £à ä G2 = (V; E 2), ¯®áâ஥­­ë© â ª: (u; w) 2 E 2, ¥á«¨ áãé¥áâ¢ã¥â ¢¥à設 v 2 V , ¤«ï ª®â®à®© (u; v) 2 E ¨ (v; w) 2 E (¤¢¥
¢¥à設ë ᮥ¤¨­ïîâáï ॡ஬, ¥á«¨ à ­ìè¥ ¡ë« ¯ãâì ¨§ ¤¢ãå àñ¡¥à). Š ª ¯à¥®¡à §®¢ âì G ¢ G2, ¥á«¨ £à ä åà ­¨âáï ¢ ¢¨¤¥ ᯨ᪮¢
ᬥ¦­ëå ¢¥à設? ª ª ¬ âà¨æ ᬥ¦­®áâ¨? Žæ¥­¨â¥ ¢à¥¬ï à ¡®âë
¢ è¨å «£®à¨â¬®¢.
23.1-6
®ç⨠«î¡®© «£®à¨â¬, ¨á¯®«ì§ãî騩 ¬ âà¨æë ᬥ¦­®áâ¨, âॡã¥â ¢à¥¬¥­¨ (V 2) (¯à®áâ® ­ ç⥭¨¥ í⮩ ¬ âà¨æë), ­® ¡ë¢ îâ
¨ ¨áª«î祭¨ï. ®ª ¦¨â¥, çâ® § ¢à¥¬ï O(V ) ¯® ¬ âà¨æ¥ ᬥ¦­®-
456
ƒ« ¢ 23 €«£®à¨â¬ë ­ £à ä å
á⨠¬®¦­® ¢ëïá­¨âì, ᮤ¥à¦¨â «¨ ®à¨¥­â¨à®¢ ­­ë© £à ä "á⮪"
(sink) | ¢¥à設ã, ¢ ª®â®àãî ¢¥¤ãâ àñ¡à ¨§ ¢á¥å ¤àã£¨å ¢¥à設 ¨
¨§ ª®â®à®© ­¥ ¢ë室¨â ­¨ ®¤­®£® ॡà .
23.1-7
 §®¢¥¬ ¬ âà¨æ¥© ¨­æ¨¤¥­â­®á⨠(incidence matrix) ®à¨¥­â¨à®¢ ­­®£® £à ä G = (E; V ) ¬ âà¨æã B = (bij ) à §¬¥à jV j jE j, ¢
ª®â®à®©
8
>
<
;1; ¥á«¨ ॡ஠j ¢ë室¨â ¨§ ¢¥à設ë i,
bij = > 1; ¥á«¨ ॡ஠j ¢å®¤¨â ¢ ¢¥à設ã i,
:
0 ¢ ®áâ «ì­ëå á«ãç ïå.
Š ª®¢ á¬ëá« í«¥¬¥­â®¢ ¬ âà¨æë BBT ? (‡¤¥áì BT | âà ­á¯®­¨à®¢ ­­ ï ¬ âà¨æ .)
23.1.2 ®¨áª ¢ è¨à¨­ã
®¨áª ¢ è¨à¨­ã (breadth-rst search) | ®¤¨­ ¨§ ¡ §¨á­ëå «£®à¨â¬®¢, á®áâ ¢«ïî騩 ®á­®¢ã ¬­®£¨å ¤à㣨å.  ¯à¨¬¥à, «£®à¨â¬
„¥©ªáâàë ¯®¨áª ªà âç ©è¨å ¯ã⥩ ¨§ ®¤­®© ¢¥à設ë (£« ¢ 25) ¨
«£®à¨â¬ à¨¬ ¯®¨áª ¬¨­¨¬ «ì­®£® ¯®ªàë¢ î饣® ¤¥à¥¢ (à §¤¥« 24.2) ¬®£ãâ à áᬠâਢ âìáï ª ª ®¡®¡é¥­¨ï ¯®¨áª ¢ è¨à¨­ã.
ãáâì § ¤ ­ £à ä G = (V; E ) ¨ 䨪á¨à®¢ ­ ­ ç «ì­ ï ¢¥à設 (source vertex) s. €«£®à¨â¬ ¯®¨áª ¢ è¨à¨­ã ¯¥à¥ç¨á«¨¥â ¢á¥ ¤®á⨦¨¬ë¥ ¨§ s (¥á«¨ ¨¤â¨ ¯® àñ¡à ¬) ¢¥àè¨­ë ¢ ¯®à浪¥ ¢®§à áâ ­¨ï à ááâ®ï­¨ï ®â s.  ááâ®ï­¨¥¬ áç¨â ¥âáï ¤«¨­ ¬¨­¨¬ «ì­®£®
¯ã⨠¨§ ­ ç «ì­®© ¢¥à設ë. ‚ ¯à®æ¥áᥠ¯®¨áª ¨§ £à ä ¢ë¤¥«ï¥âáï ç áâì, ­ §ë¢ ¥¬ ï "¤¥à¥¢®¬ ¯®¨áª ¢ è¨à¨­ã" á ª®à­¥¬ s. Ž­ ᮤ¥à¦¨â ¢á¥ ¤®á⨦¨¬ë¥ ¨§ s ¢¥à設ë (¨ ⮫쪮 ¨å). „«ï ª ¦¤®©
¨§ ­¨å ¯ãâì ¨§ ª®à­ï ¢ ¤¥à¥¢¥ ¯®¨áª ¡ã¤¥â ®¤­¨¬ ¨§ ªà âç ©è¨å
¯ã⥩ (¨§ ­ ç «ì­®© ¢¥à設ë) ¢ £à ä¥. €«£®à¨â¬ ¯à¨¬¥­¨¬ ¨ ª
®à¨¥­â¨à®¢ ­­ë¬, ¨ ª ­¥®à¨¥­â¨à®¢ ­­ë¬ £à ä ¬.
 §¢ ­¨¥ ®¡êïá­ï¥âáï ⥬, çâ® ¢ ¯à®æ¥áᥠ¯®¨áª ¬ë ¨¤ñ¬ ¢è¨àì,
­¥ ¢£«ã¡ì (á­ ç « ¯à®á¬ âਢ ¥¬ ¢á¥ á®á¥¤­¨¥ ¢¥à設ë, § ⥬
á®á¥¤¥© á®á¥¤¥© ¨ â.¤.).
„«ï ­ £«ï¤­®á⨠¬ë ¡ã¤¥¬ áç¨â âì, çâ® ¢ ¯à®æ¥áá¥ à ¡®âë «£®à¨â¬ ¢¥àè¨­ë £à ä ¬®£ãâ ¡ëâì ¡¥«ë¬¨, á¥à묨 ¨ çñà­ë¬¨.
‚­ ç «¥ ®­¨ ¢á¥ ¡¥«ë¥, ­® ¢ 室¥ à ¡®âë «£®à¨â¬ ¡¥« ï ¢¥à設 ¬®¦¥â áâ âì á¥à®©, á¥à ï | çñà­®© (­® ­¥ ­ ®¡®à®â). ®¢áâà¥ç ¢ ­®¢ãî ¢¥à設ã, «£®à¨â¬ ¯®¨áª ªà á¨â ¥ñ, â ª çâ® ®ªà 襭­ë¥ (á¥àë¥ ¨«¨ çñà­ë¥) ¢¥à設ë | íâ® ¢ â®ç­®á⨠â¥, ª®â®àë¥
㦥 ®¡­ à㦥­ë.  §«¨ç¨¥ ¬¥¦¤ã á¥à묨 ¨ çñà­ë¬¨ ¢¥à設 ¬¨
¨á¯®«ì§ã¥âáï «£®à¨â¬®¬ ¤«ï ã¯à ¢«¥­¨ï ¯®à浪®¬ ®¡å®¤ : á¥àë¥
¢¥àè¨­ë ®¡à §ãîâ "«¨­¨î äà®­â ", çñà­ë¥ | "âë«". ®«¥¥
â®ç­®, ¯®¤¤¥à¦¨¢ ¥âáï â ª®¥ ᢮©á⢮: ¥á«¨ (u; v) 2 E ¨ u çñà­ ï,
Žá­®¢­ë¥ «£®à¨â¬ë ­ £à ä å
457
â® v | á¥à ï ¨«¨ çñà­ ï ¢¥à設 . ’ ª¨¬ ®¡à §®¬, ⮫쪮 á¥àë¥
¢¥àè¨­ë ¬®£ãâ ¨¬¥âì ᬥ¦­ë¥ ­¥®¡­ à㦥­­ë¥ ¢¥à設ë.
‚­ ç «¥ ¤¥à¥¢® ¯®¨áª á®á⮨â ⮫쪮 ¨§ ª®à­ï | ­ ç «ì­®© ¢¥à設ë s. Š ª ⮫쪮 «£®à¨â¬ ®¡­ à㦨¢ ¥â ­®¢ãî ¡¥«ãî ¢¥à設ã
v, ᬥ¦­ãî c à ­¥¥ ­ ©¤¥­­®© ¢¥à設®© u, ¢¥à設 v (¢¬¥á⥠á ॡ஬ (u; v)) ¤®¡ ¢«ï¥âáï ª ¤¥à¥¢ã ¯®¨áª , áâ ­®¢ïáì ॡñ­ª®¬ (child)
¢¥à設ë u, u áâ ­®¢¨âáï த¨â¥«¥¬ (parent) v. Š ¦¤ ï ¢¥à設 ®¡­ à㦨¢ ¥âáï ⮫쪮 ®¤­ ¦¤ë, â ª çâ® ¤¢ãå த¨â¥«¥© ã ­¥ñ
¡ëâì ­¥ ¬®¦¥â. ®­ïâ¨ï ¯à¥¤ª (ancestor) ¨ ¯®â®¬ª (descendant)
®¯à¥¤¥«ïîâáï ª ª ®¡ëç­® (¯®â®¬ª¨ | íâ® ¤¥â¨, ¤¥â¨ ¤¥â¥©, ¨ â.¤.).
„¢¨£ ïáì ®â ¢¥àè¨­ë ª ª®à­î, ¬ë ¯à®å®¤¨¬ ¢á¥å ¥ñ ¯à¥¤ª®¢.
à¨¢¥¤¥­­ ï ­¨¦¥ ¯à®æ¥¤ãà BFS (breadth-rst search | ¯®¨áª
¢ è¨à¨­ã) ¨á¯®«ì§ã¥â ¯à¥¤áâ ¢«¥­¨¥ £à ä G = (V; E ) ᯨ᪠¬¨
ᬥ¦­ëå ¢¥à設. „«ï ª ¦¤®© ¢¥à設ë u £à ä ¤®¯®«­¨â¥«ì­®
åà ­ïâáï ¥ñ 梥â color[u] ¨ ¥ñ ¯à¥¤è¥á⢥­­¨ª [u]. …᫨ ¯à¥¤è¥á⢥­­¨ª ­¥â (­ ¯à¨¬¥à, ¥á«¨ u = s ¨«¨ u ¥éñ ­¥ ®¡­ à㦥­ ),
[u] = nil. Šà®¬¥ ⮣®, à ááâ®ï­¨¥ ®â s ¤® u § ¯¨áë¢ ¥âáï ¢ ¬ áᨢ
d[u]. à®æ¥¤ãà ¨á¯®«ì§ã¥â â ª¦¥ ®ç¥à¥¤ì Q (FIFO, à §¤¥« 11.1)
¤«ï åà ­¥­¨ï ¬­®¦¥á⢠á¥àëå ¢¥à設.
BFS$(G,s)$
1 for (¤«ï) ¢á¥å ¢¥à設 $u\in V[G]-\{s\}$
2
do $color[u] \leftarrow$ …‹›‰
3
$d[u] \leftarrow \infty$
4
$\pi [u] \leftarrow$ NIL
5 $color[s] \leftarrow$ ‘…›‰
6 $d[s] \leftarrow 0$
7 $\pi [s] \leftarrow$ NILL
8 $Q\leftarrow \{s\}$
9 while $Q\ne \emptyset$
10 do $u\leftarrow head[Q]$
11
for (¤«ï) ¢á¥å $v\in Adj[u]$
12
do if $color[v]=$ …‹›‰
13
then $color[v]\leftarrow$ ‘…›‰
14
$d[v]\leftarrow d[u]+1$
15
$\pi[v]\leftarrow u$
16
Enqueue($Q,v$)
17
Dequeue($Q$)
18
$color[u]\leftarrow$ —…›‰
 à¨á.~23.3 ¯à¨¢¥¤ñ­ ¯à¨¬¥à ¨á¯®«­¥­¨ï ¯à®æ¥¤ãàë
\textsc{BFS}.
\begin{figure}
458
ƒ« ¢ 23 €«£®à¨â¬ë ­ £à ä å
\caption{
23.3
ˆá¯®«­¥­¨¥ ¯à®æ¥¤ãàë \textsc{BFS} ¤«ï ­¥®à¨¥­â¨à®¢ ­­®£®
£à ä . ñ¡à ä®à¬¨à㥬®£® ¤¥à¥¢ ¯®ª § ­ë á¥à묨.
‚­ãâਠª ¦¤®© ¢¥à設ë $u$ 㪠§ ­® §­ 祭¨¥ $d[u]$.
®ª § ­® á®áâ®ï­¨¥ ®ç¥à¥¤¨ $Q$ ¯¥à¥¤ ª ¦¤ë¬ ¯®¢â®à¥­¨¥¬
横« ¢ áâப å 9--18. ï¤®¬ á í«¥¬¥­â ¬¨ ®ç¥à¥¤¨ ¯®ª § ­ë à ááâ®ï­¨ï
®â ª®à­ï.
}
\end{figure}
‚ áâப å 1--4 ¢á¥ ¢¥à設ë áâ ­®¢ïâáï ¡¥«ë¬¨, ¢á¥ §­ 祭¨ï $d$
¡¥áª®­¥ç­ë¬¨, ¨ த¨â¥«¥¬ ¢á¥å ¢¥à設 ®¡êï¥âáï \textsc{nil}.
‘âப¨ 5--8 ªà áïâ ¢¥à設ã $s$ ¢ á¥àë© æ¢¥â ¨ ¢ë¯®«­ïîâ
á¢ï§ ­­ë¥ á í⨬ ¤¥©á⢨ï: ¢ áâப¥ 6 à ááâ®ï­¨¥ $d[s]$
®¡êï¥âáï à ¢­ë¬ $0$, ¢ áâப¥ $7$ £®¢®à¨âáï, ç⮠த¨â¥«ï ã
$s$ ­¥â.  ª®­¥æ, ¢ áâப¥ $8$ ¢¥à設 $s$ ¯®¬¥é ¥âáï ¢ ®ç¥à¥¤ì
$Q$, ¨ á í⮣® ¬®¬¥­â ®ç¥à¥¤ì ¡ã¤¥â ᮤ¥à¦ âì ¢á¥ á¥àë¥ ¢¥à設ë
¨ ⮫쪮 ¨å.
Žá­®¢­®© 横« ¯à®£à ¬¬ë (áâப¨ 9--18) ¢ë¯®«­ï¥âáï, ¯®ª ®ç¥à¥¤ì
­¥¯ãáâ , â® ¥áâì áãé¥áâ¢ãîâ á¥àë¥ ¢¥à設ë (¢¥à設ë, ª®â®àë¥ ã¦¥
®¡­ à㦥­ë, ­® ᯨ᪨ ᬥ¦­®á⨠ª®â®àëå ¥é¥ ­¥ ¯à®á¬®â७ë). ‚
áâப¥ 10 ¯¥à¢ ï â ª ï ¢¥à設 ¯®¬¥é ¥âáï ¢ $u$. –¨ª«
\textbf{for} ¢ áâப å 11--16 ¯à®á¬ âਢ ¥â ¢á¥ ᬥ¦­ë¥ á ­¥©
¢¥à設ë. Ž¡­ à㦨¢ á।¨ ­¨å ¡¥«ãî ¢¥à設ã, ¬ë ¤¥« ¥¬ ¥ñ á¥à®©
(áâப 13), ®¡ê塞 $u$ ¥ñ த¨â¥«¥¬ (áâப 15) ¨
ãáâ ­ ¢«¨¢ ¥¬ à ááâ®ï­¨¥ à ¢­ë¬ $d[u]+1$ (áâப 14).  ª®­¥æ,
íâ ¢¥à設 ¤®¡ ¢«ï¥âáï ¢ 墮áâ ®ç¥à¥¤¨ $Q$ (áâப 16). ®á«¥
í⮣® 㦥 ¬®¦­® 㤠«¨âì ¢¥à設ã $u$ ¨§ ®ç¥à¥¤¨ $Q$, ¯¥à¥ªà ᨢ
íâã ¢¥à設㠢 çñà­ë© 梥â (áâப¨ 17--18).
€­ «¨§
 ç­ñ¬ á ¡®«¥¥ ¯à®á⮣® --- ®æ¥­¨¬ ¢à¥¬ï à ¡®âë ®¯¨á ­­®©
¯à®æ¥¤ãàë. ‚ ¯à®æ¥áá¥ à ¡®âë ¢¥à設ë ⮫쪮 ⥬­¥îâ, â ª çâ®
ª ¦¤ ï ¢¥à設 ª« ¤ñâáï ¢ ®ç¥à¥¤ì ­¥ ¡®«¥¥ ®¤­®£® à § (¡« £®¤ àï ¯à®¢¥àª¥ ¢ áâப¥ 12). ‘«¥¤®¢ ⥫쭮, ¨ ¢ë-
Žá­®¢­ë¥ «£®à¨â¬ë ­ £à ä å
459
­ãâì ¥ñ
¬®¦­® ⮫쪮 ®¤¨­ à §. Š ¦¤ ï ®¯¥à æ¨ï á ®ç¥à¥¤ìî âॡã¥â $O(1)$
è £®¢, â ª çâ® ¢á¥£® ­ ®¯¥à 樨 á ®ç¥à¥¤ìî ã室¨â ¢à¥¬ï $O(V)$.
’¥¯¥àì § ¬¥â¨¬, ç⮠ᯨ᮪ ᬥ¦­ëå ¢¥à設 ¯à®á¬ âਢ ¥âáï, «¨èì
ª®£¤ ¢¥à設 ¨§¢«¥ª ¥âáï ¨§ ®ç¥à¥¤¨, â® ¥áâì ­¥ ¡®«¥¥ ®¤­®£®
à § . ‘㬬 ¤«¨­ ¢á¥å íâ¨å ᯨ᪮¢ à ¢­ $|E|$, ¨ ¢á¥£® ­ ¨å
®¡à ¡®âªã 㩤¥â ¢à¥¬ï $O(E)$. ˆ­¨æ¨ «¨§ æ¨ï âॡã¥â $O(V)$
è £®¢, â ª çâ® ¢á¥£® ¯®«ãç ¥âáï $O(V+E)$. ’¥¬ á ¬ë¬ ¢à¥¬ï à ¡®âë
¯à®æ¥¤ãàë \textsc{BFS} ¯à®¯®à樮­ «ì­® à §¬¥à㠯।áâ ¢«¥­¨ï
£à ä $G$ ¢ ¢¨¤¥ ᯨ᪮¢ ᬥ¦­ëå ¢¥à設.
Šà âç ©è¨¥ ¯ãâ¨.
Š ª ¬ë £®¢®à¨«¨, ¯®¨áª ¢ è¨à¨­ã ­ 室¨â à ááâ®ï­¨ï ®â ­ ç «ì­®©
¢¥à設ë $s$ ¤® ª ¦¤®© ¨§ ¤®á⨦¨¬ëå ¢¥à設 £à ä $G=(V,E)$. ®¤
à ááâ®ï­¨¥¬ ¬ë ¯®­¨¬ ¥¬ \emph{¤«¨­ã ªà âç ©è¥£® ¯ãâ¨}
(shortest-path distance): $\delta (s,v)$ ®¯à¥¤¥«ï¥âáï ª ª
¬¨­¨¬ «ì­ ï ¤«¨­ ¯ãâ¨, ¢¥¤ã饣® ¨§ $s$ ¢ $v$. („«¨­ ¯ã⨠--
íâ® ç¨á«® àñ¡¥à ¢ ­ñ¬.) …᫨ ¯ã⥩ ­¥â ¢®®¡é¥, à ááâ®ï­¨¥
¡¥áª®­¥ç­®. ã⨠¤«¨­ë $\delta (s,v)$ ¨§ $s$ ¢ $v$ ­ §ë¢ îâáï
\emph{ªà âç ©è¨¬¨ ¯ãâﬨ}; ¨å ¬®¦¥â ¡ëâì ­¥áª®«ìª®. (‚ £« ¢ å 25
¨ 26 ¬ë à áᬮâਬ ¡®«¥¥ ®¡é¥¥ ¯®­ï⨥ ªà âç ©è¥£® ¯ãâ¨,
ãç¨âë¢ î饥 ¢¥á àñ¡¥à: ¤«¨­ ¯ã⨠¥áâì á㬬 ¢¥á®¢. ‘¥©ç á ¢á¥
¢¥á à ¢­ë ¥¤¨­¨æ¥, â ª çâ® ¤«¨­ ¥áâì ç¨á«® àñ¡¥à.)
„®ª ¦¥¬ ­¥áª®«ìª® ᢮©á⢠®¯à¥¤¥«ñ­­®£® â ª¨¬ ᯮᮡ®¬
à ááâ®ï­¨ï.
‹¥¬¬ 23.1
ãáâì $s$ --- ¯à®¨§¢®«ì­ ï ¢¥à設 £à ä (®à¨¥­â¨à®¢ ­­®£® ¨«¨
­¥â), $(u,v)$ --- ¥£® ॡà®. ’®£¤ $$ \delta (s,v)\le \delta
(s,u)+1.$$
„®ª § ⥫ìá⢮.
…᫨ $u$ ¤®á⨦¨¬ § $k$ è £®¢ ¨§ $s$, â® ¨ $v$ ¤®á⨦¨¬ ­¥
¡®«¥¥ 祬 § $k+1$ è £®¢ (¯à®©¤ñ¬ ¯® ॡàã $(u,v)$), ¯®í⮬ã
460
ƒ« ¢ 23 €«£®à¨â¬ë ­ £à ä å
­¥à ¢¥­á⢮ ¢ë¯®«­¥­®. …᫨ ¦¥ $u$ ­¥¤®á⨦¨¬ ¨§ $s$, â®
$\delta (s,u)=\infty$ ¨ ­¥à ¢¥­á⢮ âਢ¨ «ì­®.
% ª®­¥æ ¤®ª § ⥫ìá⢠%
%
%
%
¤ «¥¥ ⥪áâ ¯¥à¥¯¨á ­, ¨ ¤ ¦¥ ä®à¬ã«¨à®¢ª¨ «¥¬¬ ¨§¬¥­¥­ë
(á á®åà ­¥­¨¥¬ ¨§ ®¡é¥£® ç¨á« ¤«ï ¯®á«¥¤ãî饩 ­ã¬¥à 樨
- ­¥¢®§¬®¦­® ¡ë«® ®áâ ¢«ïâì â ª®¥ ¤«¨­­®¥ ¨ § ¯ãâ ­­®¥
à áá㦤¥­¨¥ ¯® â ª®¬ã ¯à®á⮬㠯®¢®¤ã...
‹¥¬¬ 23.2
…᫨ $\delta($s$,$v$)>0$, â® áãé¥áâ¢ã¥â ¢¥à設 $u$, ¤® ª®â®à®©
à ááâ®ï­¨¥ ­ ¥¤¨­¨æã ¬¥­ìè¥ ($\delta(s,v)=\delta(s,u)+1$) ¨ ¤«ï
ª®â®à®© $v$ ï¥âáï ᬥ¦­®© ¢¥à設®©.
„®ª § ⥫ìá⢮.  áᬮâਬ ªà âç ©è¨© ¯ãâì ¨§ $s$ ¢ $v$. Ž­
¡ã¤¥â ¨¬¥âì ¤«¨­ã $\delta(s,v)$. ‚®§ì¬ñ¬ ¢¥à設ã $u$, «¥¦ éãî ­ í⮬ ¯ã⨠­¥¯®á।á⢥­­® ¯¥à¥¤ $v$.  ¬ ­ ¤® ã¡¥¤¨âìáï, çâ® ¤®
­¥ñ à ááâ®ï­¨¥ ­ ¥¤¨­¨æã ¬¥­ìè¥. ‚ á ¬®¬ ¤¥«¥, ã ­ á ¥áâì
¢¥¤ã騩 ¢ ­¥ñ ¯ãâì ¤«¨­ë $\delta(s,v)-1$ (®â¡à®á¨¬ ¯®á«¥¤­¥¥
ॡà®), ¡®«¥¥ ª®à®âª®£® ¯ã⨠¡ëâì ­¥ ¬®¦¥â ¯® ¯à¥¤ë¤ã饩
«¥¬¬¥.
% ª®­¥æ ¤®ª § ⥫ìá⢠‚ ãá«®¢¨ïå «¥¬¬ë ¤«ï ­ 宦¤¥­¨ï ªà âç ©è¥£® ¯ã⨠¨§ $s$ ¢ $v$
¤®áâ â®ç­® ­ ©â¨ ªà âç ©è¨© ¯ãâì ¨§ $s$ ¢ $u$ ¨ ¤®¡ ¢¨âì ª ­¥¬ã
ॡ஠$(u,v)$.
\medskip
’¥¯¥àì ¬ë ¬®¦¥¬ ¤®ª § âì, çâ® ¯®¨áª ¢ è¨à¨­ã ¯à ¢¨«ì­® ¢ëç¨á«ï¥â
¤«¨­ë ªà âç ©è¨å ¯ã⥩.
 ¡®â ¯à®æ¥¤ãàë \textsc{BFS} ¤¥«¨âáï ­ ­ ç «ì­ë© íâ ¯
(áâப¨ 1--8) ¨ ¯®¢â®à¥­¨ï 横« ¢ áâப å 9--18.  á ¡ã¤¥â
¨­â¥à¥á®¢ âì á®áâ®ï­¨¥ ¯¥à¥¬¥­­ëå ¯®á«¥ ­¥áª®«ìª¨å â ª¨å
¯®¢â®à¥­¨©.
‹¥¬¬ 23.3
„«ï ¢á类£® 楫®£® ­¥®âà¨æ ⥫쭮£® $k$ áãé¥áâ¢ã¥â ¬®¬¥­â
¯®á«¥ ­¥áª®«ìª¨å ¯®¢â®à¥­¨© ⥫ 横« (áâப¨ 10--18),
Žá­®¢­ë¥ «£®à¨â¬ë ­ £à ä å
461
ª®£¤ ¢ë¯®«­¥­ë á«¥¤ãî騥 ã⢥ত¥­¨ï:
\begin{itemize}
\item
¢¥à設ë, ¤«ï ª®â®àëå à ááâ®ï­¨¥ ®â ­ ç «ì­®© ¬¥­ìè¥ $k$ -- çñà­ë¥,
à ¢­® $k$ --- á¥àë¥, ¡®«ìè¥ $k$ --- ¡¥«ë¥;
\item
¢ ®ç¥à¥¤¨ $Q$ ­ 室ïâáï á¥àë¥ ¢¥àè¨­ë ¨ ⮫쪮 ®­¨;
\item
¢ ¬ áᨢ¥ $d$ åà ­ïâáï ¯à ¢¨«ì­ë¥ §­ 祭¨ï à ááâ®ï-
­¨ï ®â ­ ç «ì­®©
¢¥àè¨­ë ¤«ï çñà­ëå ¨ á¥àëå ¢¥à設, ¨ ¡¥áª®­¥ç­ë¥ §­ 祭¨ï ¤«ï
¡¥«ëå;
\item
¥á«¨ $v$ --- á¥à ï ¨«¨ çñà­ ï ¢¥à設 , â®
$\delta(s,\pi(v))=\delta(s,v)-1$ ¨ ¢ £à ä¥ ¥áâì ॡà®
$(v,\pi[v])$; ¤«ï ¡¥«ëå ¢¥à設 §­ 祭¨¥ $\pi$ ¥áâì \textsc{nil}.
\end{itemize}
„®ª § ⥫ìá⢮.
ˆ­¤ãªæ¨ï ¯® $k$.
®á«¥ ¢ë¯®«­¥­¨ï áâப 1--8 ¢á¥ ¯ã­ªâë «¥¬¬ë ¢ë¯®«­¥­ë ¤«ï
$k=0$: ­ à ááâ®ï­¨¨ $k$ ­ 室¨âáï ¥¤¨­á⢥­­ ï ¢¥à設 (­ ç «ì­ ï), ®­ á¥à ï, ®áâ «ì­ë¥ ¡¥«ë¥, á¥à ï ¢¥à設 «¥¦¨â ¢
®ç¥à¥¤¨, ¤«ï ¡¥«ëå ¢¥à設 $d$ ¡¥áª®­¥ç­® ¨ $\pi$ à ¢­®
\textsc{nil}, ¤«ï á¥à®© ¢¥àè¨­ë §­ 祭¨ï $d$ ¨ $\pi$
¯à ¢¨«ì­ë.
ãáâì ⥯¥àì ¤«ï ­¥ª®â®à®£® $k$ ã⢥ত¥­¨¥ «¥¬¬ë ¢ë¯®«­¥­®, ¨
¯®á«¥ ­¥áª®«ìª¨å ¨â¥à 権 横« ¢áñ â ª, ª ª ­ ¯¨á ­® ¢ «¥¬¬¥.
—â® ¡ã¤¥â ¯à®¨á室¨âì ¯®á«¥ í⮣®? ˆ§ ®ç¥à¥¤¨ ¡ã¤ãâ § ¡¨à âìáï
«¥¦ 騥 ¢ ­¥© ¢¥à設ë, ª®â®àë¥ ¬ë ¡ã¤¥¬ ­ §ë¢ âì
\textit{¯à®á¬ âਢ ¥¬ë¬¨}. „«ï ᬥ¦­ëå á ­¨¬¨ ¡¥«ëå ¢¥à設 ¡ã¤ãâ
¢ë¯®«­ïâìáï áâப¨ 13--16; ¢ áâப¥ 16 ®­¨ ¤®¡ ¢«ïîâáï ¢ ª®­¥æ
®ç¥à¥¤¨, ¨ ¯®â®¬ã ¬ë ¡ã¤¥¬ ­ §ë¢ âì ¨å \emph{¤®¡ ¢«ï¥¬ë¬¨}. ‚
ª ª®©-â® ¬®¬¥­â ®ç¥à¥¤¨ ¡ã¤ãâ ¨§êïâë ¢á¥ ­ 室¨¢è¨¥áï â ¬
¨§­ ç «ì­® ¢¥à設ë, â® ¥áâì ¢á¥ ¢¥à設ë, ­ 室ï騥áï ­ à ááâ®ï­¨¨ $k$, ¨ ®áâ ­ãâáï ⮫쪮 ¢­®¢ì ¤®¡ ¢«¥­­ë¥.
462
ƒ« ¢ 23 €«£®à¨â¬ë ­ £à ä å
(Ž¡à â¨â¥ ¢­¨¬ ­¨¥, çâ® §¤¥áì áãé¥á⢥­­® ¨á¯®«ì§ã¥âáï
¯à ¢¨«® à ¡®âë ®ç¥à¥¤¨: ¯¥à¢ë¬ ¯à¨èñ« --- ¯¥à¢ë¬ ãèñ«.)
‚ íâ®â ¬®¬¥­â ¬ë ¬ëá«¥­­® ¯à¥à¢ñ¬ ¢ë¯®«­¥­¨¥ ¯à®æ¥¤ãàë ¨
ã¡¥¤¨¬áï, çâ® ¢ë¯®«­¥­ë ¢á¥ ãá«®¢¨ï «¥¬¬ë ¤«ï ­ ¥¤¨­¨æã
¡®«ì襣® §­ 祭¨ï $k$.
à®á¬ âਢ ¥¬ë¥ ¢¥à設ë --- íâ® ¢¥à設ë, ª®â®àë¥ ¡ë«¨ ¢ ®ç¥à¥¤¨;
¯® ¯à¥¤¯®«®¦¥­¨î ®­¨ ­ 室ïâáï ­ à ááâ®ï­¨¨ $k$.
„®¡ ¢«ï¥¬ë¥ ¢¥àè¨­ë ­ 室ïâáï ­ à ááâ®ï­¨¨ $k+1$. ‚ á ¬®¬ ¤¥«¥,
®­¨ ïîâáï ᬥ¦­ë¬¨ á ¯à®á¬ âਢ ¥¬ë¬¨ ¢¥à設 ¬¨, ­ 室ï騬¨áï
­ à ááâ®ï­¨¨ $k$, ¨ ¯®â®¬ã ¯® «¥¬¬¥ 23.1 à ááâ®ï­¨¥ ¡ã¤¥â ­¥
¡®«ìè¥ $k+1$. ‘ ¤à㣮© áâ®à®­ë, ¤®¡ ¢«ïîâáï ⮫쪮 ¡¥«ë¥
¢¥à設ë, ¨ ¯®â®¬ã ¯® ¯à¥¤¯®«®¦¥­¨î ¨­¤ãªæ¨¨ à ááâ®ï­¨¥ ¤® ­¨å
¡®«ìè¥ $k$.
ã¤ãâ ¤®¡ ¢«¥­ë ¢á¥ ¢¥à設ë, ­ 室ï騥áï ­ à ááâ®ï­¨¨ $k+1$. ‚
á ¬®¬ ¤¥«¥, ¥á«¨ ¢¥à設 $v$ ­ 室¨âáï ­ à ááâ®ï­¨¨ $k+1$, â®
¯® «¥¬¬¥ 23.2 áãé¥áâ¢ã¥â ¢¥à設 $u$ ­ à ááâ®ï­¨¨ $k$, ¤«ï
ª®â®à®© ®­ ᬥ¦­ ï. ‚¥à設 $u$ ¤®«¦­ ¡ëâì á।¨
¯à®á¬ âਢ ¥¬ëå, ¨ ¢® ¢à¥¬ï ¥ñ ®¡à ¡®âª¨ ¢¥à設 $v$ ¡ã¤¥â
¤®¡ ¢«¥­ .  ¤® ⮫쪮 ¨¬¥âì ¢ ¢¨¤ã, çâ® ¢¥à設 $u$ ¬®¦¥â ¡ëâì
­¥áª®«ìª® --- ­® íâ® ­¥ ¬¥è ¥â ¤¥«ã, â ª ª ª ¢® ¢à¥¬ï ¯à®á¬®âà ¯¥à¢®© ¨§ ­¨å ¢¥à設 $v$ ¡ã¤¥â ¤®¡ ¢«¥­ (¯®á«¥ 祣® ®­ ¡ã¤¥â
á¥à®© ¨ ãá«®¢¨¥ ¢ áâப¥ 12 ¡ã¤¥â «®¦­®, â ª çâ® ¢â®à®© à § ¥ñ
­¥ ¤®¡ ¢ïâ).
®í⮬㠢 ª®­æ¥ à áᬠâਢ ¬®£® ­ ¬¨ íâ ¯ ¢ ®ç¥à¥¤¨ ¡ã¤ãâ ¢á¥
¢¥à設ë, ­ 室ï騥áï ­ à ááâ®ï­¨¨ $k+1$. ®áª®«ìªã ¯à¨
¤®¡ ¢«¥­¨¨ ®­¨ ¤¥« îâáï á¥à묨, ¯®á«¥ ¯à®á¬®âà ¢¥à設 ¤¥« ¥âáï çñà­®©, â® ãá«®¢¨¥ ® 梥â å ¡ã¤¥â ¢ë¯®«­¥­®.
‘âப¨ 14 ¨ 15 ®¡¥á¯¥ç¨¢ î⠢믮«­¥­¨¥ ¯ã­ªâ®¢ «¥¬¬ë ®
à ááâ®ï­¨¨ ¨ ® ¬ áᨢ¥ $\pi$, çâ® § ¢¥àè ¥â ¤®ª § ⥫ìá⢮.
’¥¯¥àì ¤«ï ¤®ª § ⥫ìá⢠¯à ¢¨«ì­®á⨠¯à®æ¥¤ãàë \textsc{BFS}
¤®áâ â®ç­® ¢§ïâì ¡®«ì讥 $k$ (¡®«ìè¥ ¬ ªá¨¬ «ì­®£®
à ááâ®ï­¨ï ®â ­ ç «ì­®© ¢¥àè¨­ë ¤® ¢á¥å ¢¥à設 £à ä ). ’®£¤ ¢¥à設 ­ à ááâ®ï­¨¨ $k$ (á¥àëå, ®­¨ ¦¥ ¢¥àè¨­ë ¢ ®ç¥-
Žá­®¢­ë¥ «£®à¨â¬ë ­ £à ä å
463
।¨) ­¥
¡ã¤¥â, «£®à¨â¬ § ¢¥àè¨â à ¡®âã ¨ ¢á¥ ¬ áá¨¢ë ¡ã¤ãâ § ¯®«­¥­ë
¯à ¢¨«ì­®. Œë ¤®ª § «¨ â ªãî ⥮६ã:
’¥®à¥¬ 23.4 (€«£®à¨â¬ \textsc{BFS} ¯à ¢¨«¥­)
 ¡®â ï ­ £à ä¥ $G=(V,E)$ (®à¨¥­â¨à®¢ ­­®¬ ¨«¨
­¥®à¨¥­â¨à®¢ ­­®¬) á ­ ç «ì­®© ¢¥à設®© $s$, ¯à®æ¥¤ãà \textsc{BFS} ®¡­ à㦨â (ᤥ« ¥â çñà­ë¬¨) ¢á¥ ¤®á⨦¨¬ë¥ ¨§ $s$
¢¥à設ë, ¨ ¤«ï ¢á¥å $v\in V$ ¡ã¤¥â ¢ë¯®«­¥­® à ¢¥­á⢮
$d[v]=\delta (s,v)$. Šà®¬¥ ⮣®, ¤«ï «î¡®© ¢¥à設ë $v\ne s$,
¤®á⨦¨¬®© ¨§ $s$, ®¤¨­ ¨§ ªà âç ©è¨å ¯ã⥩ ¨§ $s$ ¢ $v$ ¬®¦­®
¯®«ãç¨âì ¤®¡ ¢«¥­¨¥¬ ॡà $(\pi [v],v)$ ª («î¡®¬ã) ªà âç ©è¥¬ã
¯ã⨠¨§ $s$ ¢ $\pi [v]$. „«ï ­¥¤®á⨦¨¬®© ¨§ $s$ ¢¥à設ë
§­ 祭¨¥ $\pi[s]$ à ¢­® \textsc{nil}.
% ª®­¥æ ¤®ª § ⥫ìá⢠„¥à¥¢ìï ¯®¨áª ¢ è¨à¨­ã.
‚ 室¥ à ¡®âë ¯à®æ¥¤ãàë \textsc{BFS} ¢ë¤¥«ï¥âáï
­¥ª®â®àë© ¯®¤£à ä --- ¤¥à¥¢® ¯®¨áª ¢ è¨à¨­ã,
§ ¤ ¢ ¥¬®¥ ¯®«ï¬¨ $\pi[v]$. ®«¥¥ ä®à¬ «ì­®, ¯à¨¬¥­¨¬ ¯à®æ¥¤ãàã
\textsc{BFS} ª £à äã $G=(V,E)$ á ­ ç «ì­®© ¢¥à設®© $s$.
 áᬮâਬ ¯®¤£à ä, ¢¥à設 ¬¨ ª®â®à®£® ïîâáï ¤®á⨦¨¬ë¥ ¨§
$s$ ¢¥à設ë, àñ¡à ¬¨ ïîâáï àñ¡à $(\pi[v],v)$ ¤«ï
¢á¥å ¤®á⨦¨¬ëå $v$, ªà®¬¥ $s$.
‹¥¬¬ 23.5.
®áâ஥­­ë© â ª¨¬ ®¡à §®¬ ¯®¤£à ä £à ä $G$ ¯à¥¤áâ ¢«ï¥â ᮡ®©
¤¥à¥¢®, ¢ ª®â®à®¬ ¤«ï ª ¦¤®© ¢¥à設ë $v$ ¨¬¥¥âáï ¥¤¨­á⢥­­ë©
¯à®á⮩ ¯ãâì ¨§ $s$ ¢ $v$. â®â ¯ãâì ¡ã¤¥â ªà âç ©è¨¬ ¯ãâñ¬ ¨§
$s$ ¢ $v$ ¢ £à ä¥ $G$.
„®ª § ⥫ìá⢮.
‘ãé¥á⢮¢ ­¨¥ ¯ã⨠¨§ $s$ ¢ $v$ (ª ª ¨ â®, çâ® ®­ ¡ã¤¥â
ªà âç ©è¨¬) á«¥¤ã¥â ¨§ ⥮६ë 23.4 (¨­¤ãªæ¨ï ¯® à ááâ®ï­¨î
®â $s$ ¤® $v$). ®í⮬㠣à ä á¢ï§¥­. ®áª®«ìªã ç¨á«®
àñ¡¥à ¢ ­ñ¬ ­ ¥¤¨­¨æã ¬¥­ìè¥ ç¨á« ¢¥à設, â® ®­
464
ƒ« ¢ 23 €«£®à¨â¬ë ­ £à ä å
ï¥âáï ¤¥à¥¢®¬ (⥮६ 5.2).
% ª®­¥æ ¤®ª § ⥫ìá⢠â® ¤¥à¥¢® ­ §ë¢ ¥âáï \emph{¯®¤£à 䮬 ¯à¥¤è¥á⢮¢ ­¨ï}
(predecessor subgraph), â ª¦¥ \emph{¤¥à¥¢®¬ ¯®¨áª ¢ è¨à¨­ã}
(breadth-first tree) ¤«ï ¤ ­­®£® £à ä ¨ ¤ ­­®© ­ ç «ì­®©
¢¥à設ë. (‡ ¬¥â¨¬, çâ® ¯®áâ஥­­®¥ ¤¥à¥¢® § ¢¨á¨â ®â ⮣®, ¢
ª ª®¬ ¯®à浪¥ ¯à®á¬ âਢ îâáï ¢¥àè¨­ë ¢ ᯨ᪠å ᬥ¦­ëå ¢¥à設.)
…᫨ §­ 祭¨ï ¢ ¬ áᨢ¥ $\pi$ 㦥 ¢ëç¨á«¥­ë á ¯®¬®éìî
¯à®æ¥¤ãàë \textsc{BFS}, â® ªà ©âç ©è¨¥ ¯ã⨠¨§ $s$ «¥£ª® ­ ©â¨:
¨å ¯¥ç ⠥⠯à®æ¥¤ãà \textsc{Print-Path}
\begin{verbatim}
Print-Path$(G,s,v)$
1 if $v=s$
2
then ­ ¯¥ç â âì $s$
3
else if $\pi[v]=NIL$
4
then ­ ¯¥ç â âì "¯ã⨠¨§ $s$ ¢ $v$ ­¥â"
5
else Print-Path$(G,s,\pi[v])$
6
­ ¯¥ç â âì $v$
‚à¥¬ï ¢ë¯®«­¥­¨ï ¯à®¯®à樮­ «ì­® ¤«¨­¥ ¯¥ç â ¥¬®£® ¯ãâ¨
(ª ¦¤ë© ४ãàᨢ­ë© ¢ë§®¢ 㬥­ìè ¥â à ááâ®ï­¨¥ ®â s ­ ¥¤¨­¨æã).
“¯à ¦­¥­¨ï
23.2-1
—â® ¤ áâ ¯®¨áª ¢ è¨à¨­ã ¤«ï ®à¨¥­â¨à®¢ ­­®£® £à ä à¨á. 23.2 (a) ¨ ¢¥à設ë 3 ¢ ª ç¥á⢥ ­ ç «ì­®©?
23.2-2
—â® ¤ áâ ¯®¨áª ¢ è¨à¨­ã ¤«ï ­¥®à¨¥­â¨à®¢ ­­®£® £à ä à¨á. 23.3
¨ ¢¥à設ë u ¢ ª ç¥á⢥ ­ ç «ì­®©?
23.2-3
‘ª®«ìª® ¢à¥¬¥­¨ ¡ã¤¥â à ¡®â âì ¯à®æ¥¤ãà BFS, ¥á«¨ £à ä ¯à¥¤áâ ¢«¥­ ¢ ¢¨¤¥ ¬ âà¨æë ᬥ¦­®á⨠(¨ ¯à®æ¥¤ãà ᮮ⢥âá⢥­­®
¨§¬¥­¥­ )?
23.2-4
®ª ¦¨â¥, çâ® ¯à¨ ¯®¨áª¥ ¢ è¨à¨­ã §­ 祭¨¥ d[u], ¤ ¢ ¥¬®¥ «£®à¨â¬®¬, ­¥ ¨§¬¥­¨âáï, ¥á«¨ ¯¥à¥áâ ¢¨âì í«¥¬¥­âë ¢ ª ¦¤®¬ ᯨ᪥
ᬥ¦­ëå ¢¥à設.
23.2-5
Žá­®¢­ë¥ «£®à¨â¬ë ­ £à ä å
465
à¨¢¥¤¨â¥ ¯à¨¬¥à ®à¨¥­â¨à®¢ ­­®£® £à ä G = (V; E ), ­ ç «ì­®© ¢¥à設ë s 2 V ¨ ­¥ª®â®à®£® ¬­®¦¥á⢠ॡ¥à E E , ¤«ï
ª®â®àëå ¤«ï ª ¦¤®© ¤®á⨦¨¬®© ¨§ s ¢¥à設ë v 2 V áãé¥áâ¢ã¥â
¥¤¨­á⢥­­ë© ¯ãâì ¨§ s ¢ v, ¯à®å®¤ï騩 ¯® àñ¡à ¬ ¨§ E , ¨ íâ®â
¯ãâì ï¥âáï ªà âç ©è¨¬ ¢ G, ­® ¬­®¦¥á⢮ ॡ¥à E ­¥ ᮢ¯ ¤ ¥â á ¤¥à¥¢®¬ ¯®¨áª ¢ è¨à¨­ã, ¤ ¢ ¥¬ë¬ á ¯®¬®éìî ¯à®æ¥¤ãàë
BFS, ª ª ­¨ ¯¥à¥áâ ¢«ï© í«¥¬¥­âë ¢ ª ¦¤®¬ ¨§ ᯨ᪮¢ ᬥ¦­ëå
¢¥à設.
23.2-6
à¨¤ã¬ ©â¥ íä䥪⨢­ë© «£®à¨â¬, ¢ëïá­ïî騩, ï¥âáï «¨
¤ ­­ë© ­¥®à¨¥­â¨à®¢ ­­ë© £à ä ¤¢ã¤®«ì­ë¬.
23.2-7*
„¨ ¬¥âà (diameter) ¤¥à¥¢ T = (V; E ) ®¯à¥¤¥«ï¥âáï ª ª
max (u; v )
u;v2V
(â® ¥áâì ª ª ¬ ªá¨¬ «ì­ ï ¤«¨­ ªà âç ©è¥£® ¯ã⨠¬¥¦¤ã ¤¢ã¬ï
¢¥à設 ¬¨). à¨¤ã¬ ©â¥ íä䥪⨢­ë© «£®à¨â¬ ¢ëç¨á«¥­¨ï ¤¨ ¬¥âà ¤¥à¥¢ , ¨ ®æ¥­¨â¥ ¢à¥¬ï ¥£® à ¡®âë.
23.2-8
ãáâì G = (V; E ) { ­¥®à¨¥­â¨à®¢ ­­ë© £à ä. à¨¤ã¬ ©â¥ «£®à¨â¬, ®âë᪨¢ î騩 § ¢à¥¬ï O(V + E ) ¯ãâì ¢ £à ä¥, ª®â®àë©
¯à®å®¤¨â ª ¦¤®¥ ॡ஠஢­® ¯® ®¤­®¬ã à §ã ¢ ª ¦¤ãî áâ®à®­ã.
Š ª ­ ©â¨ ¢ë室 ¨§ « ¡¨à¨­â , ¨¬¥ï á ᮡ®© ¡®«ì让 § ¯ á ®¤¨­ ª®¢ëå ¬®­¥â?
23.1.3 ®¨áª ¢ £«ã¡¨­ã
‘âà ⥣¨ï ¯®¨áª ¢ £«ã¡¨­ã â ª®¢ : ¨¤â¨ "¢£«ã¡ì", ¯®ª íâ® ¢®§¬®¦­® (¥áâì ­¥¯à®©¤¥­­ë¥ àñ¡à ), ¨ ¢®§¢à é âìáï ¨ ¨áª âì ¤à㣮©
¯ãâì, ª®£¤ â ª¨å àñ¡¥à ­¥â. ’ ª ¤¥« ¥âáï, ¯®ª ­¥ ®¡­ à㦥­ë
¢á¥ ¢¥à設ë, ¤®á⨦¨¬ë¥ ¨§ ¨á室­®©. …᫨ ¯®á«¥ í⮣® ®áâ îâáï
­¥®¡­ à㦥­­ë¥ ¢¥à設ë, ¬®¦­® ¢ë¡à âì ®¤­ã ¨§ ­¨å ¨ ¯®¢â®àïâì ¯à®æ¥áá, ¨ ¤¥« âì â ª ¤® â¥å ¯®à, ¯®ª ¬ë ­¥ ®¡­ à㦨¬ ¢á¥
¢¥àè¨­ë £à ä .
Š ª ¨ ¯à¨ ¯®¨áª¥ ¢ è¨à¨­ã, ®¡­ à㦨¢ (¢¯¥à¢ë¥) ¢¥à設ã v,
ᬥ¦­ãî á u, ¬ë ®â¬¥ç ¥¬ í⮠ᮡë⨥, ¯®¬¥é ï ¢ ¯®«¥ [v] §­ 祭¨¥ u. ®«ãç ¥âáï ¤¥à¥¢® | ¨«¨ ­¥áª®«ìª® ¤¥à¥¢ì¥¢, ¥á«¨ ¯®¨áª ¯®¢â®àï¥âáï ¨§ ­¥áª®«ìª¨å ¢¥à設. ƒ®¢®àï ¤ «ìè¥ ® ¯®¨áª¥ ¢
£«ã¡¨­ã, ¬ë ¢á¥£¤ ¯à¥¤¯®« £ ¥¬, çâ® â ª ¨ ¤¥« ¥âáï (¯®¨áª ¯®¢â®àï¥âáï). Œë ¯®«ãç ¥¬ ¯®¤£à ä ¯à¥¤è¥á⢮¢ ­¨ï (predecessor
subgraph), ®¯à¥¤¥«ñ­­ë© â ª: G = (V; E), £¤¥
E = f([v]; v) : v 2 V and [v ] =
6 NILg
466
ƒ« ¢ 23 €«£®à¨â¬ë ­ £à ä å
®¤£à ä ¯à¥¤è¥á⢮¢ ­¨ï ¯à¥¤áâ ¢«ï¥â ᮡ®© «¥á ¯®¨áª ¢ £«ã¡¨­ã (depth-rst forest), á®áâ®ï騩 ¨§ ¤¥à¥¢ì¥¢ ¯®¨áª ¢ £«ã¡¨­ã
(deep-rst trees).
€«£®à¨â¬ ¯®¨áª ¢ £«ã¡¨­ã â ª¦¥ ¨á¯®«ì§ã¥â 梥⠢¥à設. Š ¦¤ ï ¨§ ¢¥à設 ¢­ ç «¥ ¡¥« ï. ã¤ãç¨ ®¡­ à㦥­­®© (discovered),
®­ áâ ­®¢¨âáï á¥à®©; ®­ áâ ­¥â çñà­®©, ª®£¤ ¡ã¤¥â ¯®«­®áâìî
®¡à ¡®â ­ , â® ¥áâì ª®£¤ ᯨ᮪ ᬥ¦­ëå á ­¥© ¢¥à設 ¡ã¤¥â ¯à®á¬®â७. Š ¦¤ ï ¢¥à設 ¯®¯ ¤ ¥â ஢­® ¢ ®¤­® ¤¥à¥¢® ¯®¨áª ¢
£«ã¡¨­ã, â ª çâ® í⨠¤¥à¥¢ìï ­¥ ¯¥à¥á¥ª îâáï.
®¬¨¬® í⮣®, ¯®¨áª ¢ £«ã¡¨­ã áâ ¢¨â ­ ¢¥à設 å ¬¥âª¨ ¢à¥¬¥­¨ (timestamps). Š ¦¤ ï ¢¥à設 ¨¬¥¥â ¤¢¥ ¬¥âª¨: ¢ d[v] § ¯¨á ­®, ª®£¤ íâ ¢¥à設 ¡ë« ®¡­ à㦥­ (¨ ᤥ« ­ á¥à®©), ¢
f [v] | ª®£¤ ¡ë« § ª®­ç¥­ ®¡à ¡®âª ᯨ᪠ᬥ¦­ëå á v ¢¥à設
(¨ v áâ « çñà­®©).
â¨ ¬¥âª¨ ¢à¥¬¥­¨ ¨á¯®«ì§ãîâáï ¢® ¬­®£¨å «£®à¨â¬ å ­ £à ä å ¨ ¯®«¥§­ë ¤«ï ­ «¨§ ᢮©á⢠¯®¨áª ¢ £«ã¡¨­ã.
‚ ¯à¨¢®¤¨¬®© ¤ «¥¥ ¯à®æ¥¤ãॠDFS (Depth-First Search | ¯®¨áª
¢ £«ã¡¨­ã) ¬¥âª¨ ¢à¥¬¥­¨ d[v] ¨ f [v] ïîâáï 楫묨 ç¨á« ¬¨ ®â
1 ¤® 2jV j; ¤«ï «î¡®© ¢¥à設ë u ¢ë¯®«­¥­® ­¥à ¢¥­á⢮
d[u] < f [u]
(23:1)
‚¥à設 u ¡ã¤¥â ¡¥«®© ¤® ¬®¬¥­â d[u], á¥à®© ¬¥¦¤ã d[u] ¨ f [u]
¨ çñà­®© ¯®á«¥ f [u].
ˆá室­ë© £à ä ¬®¦¥â ¡ëâì ®à¨¥­â¨à®¢ ­­ë¬ ¨«¨ ­¥®à¨¥­â¨à®¢ ­­ë¬. ¥à¥¬¥­­ ï time | £«®¡ «ì­ ï ¯¥à¥¬¥­­ ï ⥪ã饣® ¢à¥¬¥­¨, ¨á¯®«ì§ã¥¬®£® ¤«ï ¯®¬¥â®ª.
DFS$(G)$
1
2
3
4
5
6
7
for (¤«ï) ¢á¥å ¢¥à設 $u\in V[G]$
\hspace{1cm} do $color[u]\leftarrow$ ¡¥«ë©
\hspace{2cm} $\pi[u]\leftarrow NIL$
$time\leftarrow 0$
for (¤«ï) ¢á¥å ¢¥à騭
$u\in V[G]$
\hspace{1cm} do if $color[u]=$ ¡¥«ë©
\hspace{2cm} then DFS-Visit$(u)$
DFS-Visit(u)
1 $color[u]\leftarrow$ ¡¥«ë© // ¢¥à設 $u$ ¡ë« ¡¥«®©
2 $d[u]\leftarrow time\leftarrow time+1$
3 \textsc{for} (¤«ï) ¢á¥å $v\in Adj[u]$ // ®¡à ¡®â âì ॡ஠$(u,v)$
4 \hspace{1cm} \textsc{do if} $color[v]=$ ¡¥«ë©
5 \hspace{2cm} \textsc{then} $\pi[v]\leftarrow u$
6 \hspace{3cm} DFS-Visit$(v)$
Žá­®¢­ë¥ «£®à¨â¬ë ­ £à ä å
467
¨áã­®ª 23.3 23.4 ˆá¯®«­¥­¨¥ «£®à¨â¬ DFS ¤«ï ®à¨¥­â¨à®¢ ­­®£® £à ä .
®á«¥ ¯à®á¬®âà ª ¦¤®¥ ॡ஠áâ ­®¢¨âáï «¨¡® á¥àë¬ (¥á«¨ ®­® ¢ª«îç ¥âáï
¢ ¤¥à¥¢® ¯®¨áª ) ¨«¨ ¯ã­ªâ¨à­ë¬ (®¡à â­ë¥ àñ¡à ¯®¬¥ç¥­ë ¡ãª¢®© B (back),
¯¥à¥ªàñáâ­ë¥ | ¡ãª¢®© C (cross), ¯àï¬ë¥ | ¡ãª¢®© F (forward)). “ ª ¦¤®©
¢¥àè¨­ë ¯®ª § ­ë ¢à¥¬¥­ ­ ç « ¨ ª®­æ ®¡à ¡®âª¨.
7 $color[u]\leftarrow$ çñà­ë© //¢¥à設 ®¡à ¡®â ­ , ¤¥-
« ¥¬ ¥ñ ç¥à­®©
8 $f[u]\leftarrow time\leftarrow time+1$
 à¨á. 23.4 ¯®ª § ­ à ¡®â ¯à®æ¥¤ãàë DFS ­ £à ä¥ à¨á. 23.2.
‚ áâப å 1-3 ¢á¥ ¢¥àè¨­ë ªà áïâáï ¢ ¡¥«ë© 梥â; ¢ ¯®«¥ ¯®¬¥é ¥âáï nil. ‚ áâப¥ 4 ãáâ ¢«¨¢ ¥âáï ­ ç «ì­®¥ (­ã«¥¢®¥) ¢à¥¬ï. ‚
áâப å 5{7 ¢ë§ë¢ ¥âáï ¯à®æ¥¤ãà DFS-Visit ¤«ï ¢á¥å ¢¥à設 (ª®â®àë¥ ®áâ «¨áì ¡¥«ë¬¨ ª ¬®¬¥­â㠢맮¢ | ¯à¥¤ë¤ã騥 ¢ë§®¢ë
¯à®æ¥¤ãàë ¬®£«¨ ᤥ« âì ¨å çñà­ë¬¨). â¨ ¢¥à設ë áâ ­®¢ïâáï
ª®à­ï¬¨ ¤¥à¥¢ì¥¢ ¯®¨áª ¢ £«ã¡¨­ã.
‚ ¬®¬¥­â ¢ë§®¢ DFS-Visit(u) ¢¥à設 u | ¡¥« ï. ‚ áâப¥ 1
®­ áâ ­®¢¨âáï á¥à®©. ‚ áâப¥ 2 ¢à¥¬ï ¥ñ ®¡­ à㦥­¨ï § ­®á¨âáï ¢
d[u] (¤® í⮣® áçñâ稪 ¢à¥¬¥­¨ 㢥«¨ç¨¢ ¥âáï ­ 1). ‚ áâப å 3-7
¯à®á¬ âਢ îâáï ᬥ¦­ë¥ á u ¢¥à設ë; ¯à®æ¥¤ãà DFS-Visit ¢ë§ë¢ ¥âáï ¤«ï â¥å ¨§ ­¨å, ª®â®àë¥ ®ª §ë¢ îâáï ¡¥«ë¬¨ ª ¬®¬¥­âã
¢ë§®¢ . ®á«¥ ¯à®á¬®âà ¢á¥å ᬥ¦­ëå á u ¢¥à設 ¬ë ¤¥« ¥¬ ¢¥à設ã u çñà­®© ¨ § ¯¨áë¢ ¥¬ ¢ f [u] ¢à¥¬ï í⮣® ᮡëâ¨ï.
®¤áç¨â ¥¬ ®¡é¥¥ ç¨á«® ®¯¥à 権 ¯à¨ ¢ë¯®«­¥­¨¨ ¯à®æ¥¤ãàë
DFS. –¨ª«ë ¢ áâப å 1{3 ¨ 5{7 âॡãîâ (V ) ¢à¥¬¥­¨ (¯®¬¨¬®
¢ë§®¢®¢ DFS-Visit). à®æ¥¤ãà DFS-Visit ¢ë§ë¢ ¥âáï ஢­® ®¤¨­
à § ¤«ï ª ¦¤®© ¢¥à設ë (¥© ¯¥à¥¤ ñâáï ¡¥« ï ¢¥à設 , ¨ ®­ áà §ã
¦¥ ¤¥« ¥â ¥ñ á¥à®©). ‚® ¢à¥¬ï ¢ë¯®«­¥­¨ï DFS-Visit(v) 横« ¢
áâப å 3{6 ¢ë¯®«­ï¥âáï jAdj [v]j à §. ®áª®«ìªã
X
v2V
jAdj [v]j = (E );
¢à¥¬ï ¢ë¯®«­¥­¨ï áâப 3{6 ¯à®æ¥¤ãàë DFS-Visit á®áâ ¢«ï¥â
(E ). ‚ á㬬¥ ¯®«ãç ¥âáï ¢à¥¬ï (V + E ).
‘¢®©á⢠¯®¨áª ¢ £«ã¡¨­ã.
à¥¦¤¥ ¢á¥£® ®â¬¥â¨¬, çâ® ¯®¤£à ä ¯à¥¤è¥á⢮¢ ­¨ï (á®áâ ¢«¥­­ë© ¨§ ¤¥à¥¢ì¥¢ ¯®¨áª ¢ £«ã¡¨­ã) ¢ â®ç­®á⨠ᮮ⢥âáâ¢ã¥â
áâàãªâãॠ४ãàᨢ­ëå ¢ë§®¢®¢ ¯à®æ¥¤ãàë DFS-Visit. ˆ¬¥­­®,
u = [v] ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ ¯à®¨§®èñ« ¢ë§®¢ DFSVisit(v ) ¢® ¢à¥¬ï ¯à®á¬®âà ᯨ᪠ᬥ¦­ëå á u ¢¥à設.
„à㣮¥ ¢ ¦­®¥ ᢮©á⢮ á®á⮨⠢ ⮬, çâ® ¢à¥¬¥­ ®¡­ à㦥­¨ï
¨ ®ª®­ç ­¨ï ®¡à ¡®âª¨ ®¡à §ãîâ ¯à ¢¨«ì­ãî ᪮¡®ç­ãî áâàãªâãàã (parenthesis structure). Ž¡®§­ ç ï ®¡­ à㦥­¨¥ ¢¥à設ë u
®âªàë¢ î騩áï ᪮¡ª®© á ¯®¬¥âª®© u, ®ª®­ç ­¨¥ ¥ñ ®¡à ¡®âª¨
| § ªàë¢ î饩áï á ⮩ ¦¥ ¯®¬¥âª®©, â® ¯¥à¥ç¥­ì ᮡë⨩ ¡ã¤¥â
468
ƒ« ¢ 23 €«£®à¨â¬ë ­ £à ä å
¨áã­®ª 23.4 23.5 ‘¢®©á⢠¯®¨áª ¢ £«ã¡¨­ã. (a) ¥§ã«ìâ â ¯®¨áª (¢ ®¡®§­ 祭¨ïå à¨á. 23.4). (b) à®¬¥¦ã⪨ ¬¥¦¤ã ®¡­ à㦥­¨¥¬ ¨ ®ª®­ç ­¨¥¬ ®¡à ¡®âª¨
¤«ï ª ¦¤®© ¨§ ¢¥à設, ¨§®¡à ¦ñ­­ë¥ ¢ ¢¨¤¥ ¯àאַ㣮«ì­¨ª®¢. ‘â५ª¨ 㪠§ë¢ îâ áâàãªâãàã ¤¥à¥¢ì¥¢ ¯®á¨ª ¢ £«ã¡¨­ã. (c) Žâ¬¥ç¥­ë àñ¡à ¨á室­®£®
£à ä á 㪠§ ­¨¥¬ ¨å ⨯®¢ (àñ¡à ¤¥à¥¢ ¨ ¯àï¬ë¥ àñ¡à ¢¥¤ãâ ¢­¨§, ®¡à â­ë¥
¢¥¤ãâ ¢¢¥àå).
¯à ¢¨«ì­® ¯®áâ஥­­ë¬ ¢ëà ¦¥­¨¥¬ ¢ ⮬ á¬ëá«¥ (᪮¡ª¨ á ®¤¨­ ª®¢ë¬¨ ¯®¬¥âª ¬¨ áç¨â ¥¬ ¯ à­ë¬¨).  ¯à¨¬¥à, ¯®¨áªã ¢ £«ã¡¨­ã
­ à¨á. 23.5 (a) ᮮ⢥âáâ¢ã¥â à ááâ ­®¢ª ᪮¡®ª, ¨§®¡à ¦ñ­­ ï ­ à¨áã­ª¥ 23.5(b).
—â®¡ë ¤®ª § âì í⨠¨ ¤à㣨¥ ᢮©á⢠, ¬ë ¤®«¦­ë à áá㦤 âì
¯® ¨­¤ãªæ¨¨. à¨ í⮬, ¤®ª §ë¢ ï âॡ㥬®¥ ᢮©á⢮ ४ãàᨢ­®©
¯à®æ¥¤ãàë DFS-Visit, ¬ë ¯à¥¤¯®« £ ¥¬, ç⮠४ãàᨢ­ë¥ ¢ë§®¢ë
í⮩ ¯à®æ¥¤ãàë ®¡« ¤ îâ ¢ë¡à ­­ë¬ ᢮©á⢮¬.
“¡¥¤¨¬áï ¢­ ç «¥, çâ® ¢ë§®¢ DFS-Visit(u) ¤«ï ¡¥«®© ¢¥à設ë
u ¤¥« ¥â çñà­®© íâã ¢¥à設㠨 ¢á¥ ¡¥«ë¥ ¢¥à設ë, ¤®áâã¯­ë¥ ¨§
­¥ñ ¯® ¡¥«ë¬ ¯ãâï¬ (¢ ª®â®àëå ¢á¥ ¯à®¬¥¦ãâ®ç­ë¥ ¢¥à設ë â ª¦¥
¡¥«ë¥), ¨ ®áâ ¢«ï¥â á¥àë¥ ¨ çñà­ë¥ ¢¥àè¨­ë ¡¥§ ¨§¬¥­¥­¨©.
‚ á ¬®¬ ¤¥«¥, ४ãàᨢ­ë¥ ¢ë§®¢ë ¢ áâப¥ 6 ¢ë¯®«­ïîâáï «¨èì
¤«ï ¡¥«ëå ¢¥à設, ïîé¨åáï ᬥ¦­ë¬¨ á u. …᫨ ª ª ï-â® ¢¥à設 w ¡ë« § ªà 襭 ¢ 室¥ íâ¨å ¢ë§®¢®¢, â® (¯® ¨­¤ãªâ¨¢­®¬ã
¯à¥¤¯®«®¦¥­¨î) ®­ ¡ë« ¤®áâ㯭 ¯® ¡¥«®¬ã ¯ã⨠¨§ ®¤­®© ¨§ ¡¥«ëå ¢¥à設, ᬥ¦­ëå á u, ¨ ¯®â®¬ã ¤®áâ㯭 ¯® ¡¥«®¬ã ¯ã⨠¨§
u.
 ¯à®â¨¢, ¥á«¨ ¢¥à設 w ¤®áâ㯭 ¯® ¡¥«®¬ã ¯ã⨠¨§ u, â® íâ®â
®­ ¤®áâ㯭 ¯® ¡¥«®¬ã ¯ã⨠¨§ ª ª®©-â® ¡¥«®© ¢¥à設ë v, ᬥ¦­®© á u (¯®á¬®âਬ ­ ¯¥à¢ë© è £ ¯ãâ¨). ã¤¥¬ áç¨â âì, çâ® v
| ¯¥à¢ ï ¨§ â ª¨å ¢¥à設 (¢ ¯®à浪¥ ¯à®á¬®âà ¢ áâப¥ 3). ‚
í⮬ á«ãç ¥ ¢á¥ ¢¥àè¨­ë ¡¥«®£® ¯ã⨠¨§ v ¢ w ®áâ ­ãâáï ¡¥«ë¬¨ ª
¬®¬¥­â㠢맮¢ DFS-Visit(v), ¯®áª®«ìªã ®­¨ ­¥¤®áâã¯­ë ¯® ¡¥«ë¬
¯ãâï¬ ¨§ ¯à¥¤è¥áâ¢ãîé¨å v ¢¥à設 (¨­ ç¥ w ¡ë« ¡ë â ª¦¥ ¤®áâ㯭 ). ® ¨­¤ãªâ¨¢­®¬ã ¯à¥¤¯®«®¦¥­¨î w áâ ­¥â çñà­®© ¯®á«¥
¢ë§®¢ DFS-Visit(v).
Šà®¬¥ ⮣®, á ¬ ¢¥à設 u áâ ­¥â á­ ç « á¥à®©, ¯®â®¬ çñà­®©. (‡ ¬¥â¨¬, çâ® ¬ë ¬®£«¨ ¡ë áà §ã ᤥ« âì ¥ñ çñà­®©, ¯®áª®«ìªã
¯à®£à ¬¬ ­¨ª ª ­¥ à §«¨ç ¥â á¥àë¥ ¨ çñà­ë¥ ¢¥à設ë, ®¤­ ª®
íâ® à §«¨ç¨¥ ­ ¬ ¯à¨£®¤¨âáï ¢ ¤ «ì­¥©è¥¬.)
Ÿá­® â ª¦¥, ç⮠梥â á¥àëå ¨ çñà­ëå ¢¥à設 ®áâ îâáï ¡¥§ ¨§¬¥­¥­¨© (¯®áª®«ìªã íâ® ¢¥à­® ¤«ï ४ãàᨢ­ëå ¢ë§®¢®¢ ¯® ¨­¤ãªâ¨¢­®¬ã ¯à¥¤¯®«®¦¥­¨î).
€­ «®£¨ç­ë¥ à áá㦤¥­¨ï ¯® ¨­¤ãªæ¨¨ ¯®§¢®«ïîâ ãáâ ­®¢¨âì,
çâ® ¢ë§®¢ DFS-Visit(u) ¬¥­ï¥â ¯®«ï [v] ¤«ï ¢á¥å ®ªà 訢 ¥¬ëå
¢¥à設 v, ®â«¨ç­ëå ®â u, ⥬ á ¬ë¬ ä®à¬¨àãï ¨§ ­¨å ¤¥à¥¢® á ª®à­¥¬ ¢ u, â ª¦¥ ¤®¡ ¢«ï¥â ª ®¯¨á ­­®¬ã ¢ëè¥ ¯à®â®ª®«ã ¨§ ᪮¡®ª
á ¯®¬¥âª ¬¨ ¯à ¢¨«ì­®¥ ᪮¡®ç­®¥ ¢ëà ¦¥­¨¥, ¢­¥è­¨¥ ᪮¡ª¨ ª®-
Žá­®¢­ë¥ «£®à¨â¬ë ­ £à ä å
469
â®à®£® ¨¬¥îâ ¯®¬¥âªã u, ¢­ãâਠ­ 室ïâáï ᪮¡ª¨ á ¯®¬¥âª ¬¨,
ᮮ⢥âáâ¢ãî騬¨ ®ªà 訢 ¥¬ë¬ ¢¥à設 ¬.
®¤¢®¤ï ¨â®£¨, ¬®¦­® áä®à¬ã«¨à®¢ âì â ª¨¥ ã⢥ত¥­¨ï:
’¥®à¥¬ 23.6 (® ᪮¡®ç­®© áâàãªâãà¥).
à¨ ¯®¨áª¥ ¢ £«ã¡¨­ã ¢ ®à¨¥­â¨à®¢ ­­®¬ ¨«¨ ­¥®à¨¥­â¨à®¢ ­­®¬
£à ä¥ G = (V; E ) ¤«ï «î¡ëå ¤¢ãå ¢¥à設 u ¨ v ¢ë¯®«­ï¥âáï ஢­®
®¤­® ¨§ á«¥¤ãîé¨å âàñå ã⢥ত¥­¨©:
®â१ª¨ [d[u]; f [u]] ¨ [d[v]; f [v]] ­¥ ¯¥à¥á¥ª îâáï;
®â१®ª [d[u]; f [u]] 楫¨ª®¬ ᮤ¥à¦¨âáï ¢­ãâਠ®â१ª [d[v]; f [v]]
¨ u | ¯®â®¬®ª v ¢ ¤¥à¥¢¥ ¯®¨áª ¢ £«ã¡¨­ã;
®â१®ª [d[v]; f [v]] 楫¨ª®¬ ᮤ¥à¦¨âáï ¢­ãâਠ®â१ª [d[u]; f [u]]
¨ v | ¯®â®¬®ª u ¢ ¤¥à¥¢¥ ¯®¨áª ¢ £«ã¡¨­ã;
‘«¥¤á⢨¥ 23.7 (¢«®¦¥­¨¥ ¨­â¥à¢ «®¢ ¤«ï ¯®â®¬ª®¢)
‚¥à設 v ï¥âáï (®â«¨ç­ë¬ ®â u) ¯®â®¬ª®¬ ¢¥à設ë u ¢ «¥á¥
¯®¨áª ¢ £«ã¡¨­ã ¤«ï (®à¨¥­â¨à®¢ ­­®£® ¨«¨ ­¥®à¨¥­â¨à®¢ ­­®£®)
£à ä G, ¥á«¨ ¨ ⮫쪮 ¥á«¨ d[u] < d[v] < f [v] < f [u]
’¥®à¥¬ 23.8 (® ¡¥«®¬ ¯ãâ¨)
‚¥à設 v ï¥âáï ¯®â®¬ª®¬ ¢¥à設ë u ¢ «¥á¥ ¯®¨áª ¢ £«ã¡¨­ã
(¤«ï ®à¨¥­â¨à®¢ ­­®£® ¨«¨ ­¥®à¨¥­â¨à®¢ ­­®£® £à ä G = (V; E ))
¢ ⮬ ¨ ⮫쪮 ⮬ á«ãç ¥, ¥á«¨ ¢ ¬®¬¥­â ¢à¥¬¥­¨ d[u], ª®£¤ ¢¥à設 u ®¡­ à㦥­ , áãé¥áâ¢ã¥â ¯ãâì ¨§ u ¢ v, á®áâ®ï騩 ⮫쪮
¨§ ¡¥«ëå ¢¥à設.
Š« áá¨ä¨ª æ¨ï àñ¡¥à.
ñ¡à £à ä ¤¥«ïâáï ­ ­¥áª®«ìª® ª ⥣®à¨© ¢ § ¢¨á¨¬®á⨠®â ¨å
஫¨ ¯à¨ ¯®¨áª¥ á £«ã¡¨­ã. â ª« áá¨ä¨ª æ¨ï ®ª §ë¢ ¥âáï ¯®«¥§­®© ¢ à §«¨ç­ëå § ¤ ç å.  ¯à¨¬¥à, ª ª ¬ë 㢨¤¨¬ ¢ á«¥¤ãî饬
à §¤¥«¥, ®à¨¥­â¨à®¢ ­­ë© £à ä ­¥ ¨¬¥¥â 横«®¢ ⮣¤ ¨ ⮫쪮
⮣¤ , ª®£¤ ¯®¨áª ¢ £«ã¡¨­ã ­¥ ­ 室¨â ¢ ­ñ¬ "®¡à â­ëå" ॡ¥à
(«¥¬¬ 23.10).
ˆâ ª, ¯ãáâì ¬ë ¯à®¢¥«¨ ¯®¨áª ¢ £«ã¡¨­ã ­ £à ä¥ G ¨ ¯®«ã稫¨
«¥á G .
1. ñ¡à ¤¥à¥¢ (tree edges) | íâ® àñ¡à £à ä G . (¥¡à® (u; v )
¡ã¤¥â ॡ஬ ¤¥à¥¢ , ¥á«¨ ¢¥à設 v ¡ë« ®¡­ à㦥­ ¯à¨ ®¡à ¡®âª¥ í⮣® ॡà .)
2. Ž¡à â­ë¥ àñ¡à (back edges) | í⮠ॡà (u; v ), ᮥ¤¨­ïî騥 ¢¥à設ã u á® ¥ñ ¯à¥¤ª®¬ v ¢ ¤¥à¥¢¥ ¯®¨áª ¢ £«ã¡¨­ã. (ñ¡à 横«ë, ¢®§¬®¦­ë¥ ¢ ®à¨¥­â¨à®¢ ­­ëå £à ä å, áç¨â îâáï ®¡à â­ë¬¨ àñ¡à ¬¨.)
3. àï¬ë¥ àñ¡à (forward edges) ᮥ¤¨­ïîâ ¢¥à設ã á ¥ñ ¯®â®¬ª®¬, ­® ­¥ ¢å®¤ïâ ¢ ¤¥à¥¢® ¯®¨áª ¢ £«ã¡¨­ã.
4. ¥à¥ªàñáâ­ë¥ àñ¡à (cross edges) | ¢á¥ ®áâ «ì­ë¥ àñ¡à £à ä . Ž­¨ ¬®£ãâ ᮥ¤¨­ïâì ¤¢¥ ¢¥àè¨­ë ®¤­®£® ¤¥à¥¢ ¯®¨áª ¢
£«ã¡¨­ã, ¥á«¨ ­¨ ®¤­ ¨§ íâ¨å ¢¥à設 ­¥ ï¥âáï ¯à¥¤ª®¬ ¤à㣮©,
¨«¨ ¦¥ ¢¥àè¨­ë ¨§ à §­ëå ¤¥à¥¢ì¥¢.
 à¨áã­ª å 23.4 ¨ 23.5 àñ¡à ¯®¬¥ç¥­ë ¢ ᮮ⢥âá⢨¨ ᮠ᢮¨¬
470
ƒ« ¢ 23 €«£®à¨â¬ë ­ £à ä å
⨯®¬. ¨á. 23.5(c) ¯®ª §ë¢ ¥â £à ä à¨á. 23.5(a), ­ à¨á®¢ ­­ë© â ª,
çâ®¡ë ¯àï¬ë¥ àñ¡à ¨ àñ¡à ¤¥à¥¢ì¥¢ ¢¥«¨ ¢­¨§, ®¡à â­ë¥ { ¢¢¥àå.
€«£®à¨â¬ DFS ¬®¦¥â ¡ëâì ¤®¯®«­¥­ ª« áá¨ä¨ª 樥© àñ¡¥à ¯®
¨å ⨯ ¬. ˆ¤¥ï §¤¥áì ¢ ⮬, ç⮠⨯ ॡà (u; v) ¬®¦­® ®¯à¥¤¥«¨âì
¯® 梥âã ¢¥à設ë v ¢ â®â ¬®¬¥­â, ª®£¤ ॡ஠¯¥à¢ë© à § ¨áá«¥¤ã¥âáï (¯à ¢¤ , ¯àï¬ë¥ ¨ ¯¥à¥ªà¥áâ­ë¥ à¥¡à ¯à¨ í⮬ ­¥ à §«¨ç îâáï): ¡¥«ë© 梥⠮§­ ç ¥â ॡ஠¤¥à¥¢ , á¥àë© | ®¡à â­®¥ ॡà®,
çñà­ë© | ¯àאַ¥ ¨«¨ ¯¥à¥ªàñáâ­®¥ ॡà®.
—⮡ë ã¡¥¤¨âìáï ¢ í⮬, ­ ¤® § ¬¥â¨âì, çâ® ª ¬®¬¥­â㠢맮¢ DFS-Visit(v ) á¥à묨 ïîâáï ¢¥àè¨­ë ­ ¯ã⨠®â ª®à­ï ¤¥à¥¢ ª
¢¥à設¥ v ¨ ⮫쪮 ®­¨ (¨­¤ãªæ¨ï ¯® £«ã¡¨­¥ ¢«®¦¥­­®á⨠¢ë§®¢ ).
—â®¡ë ®â«¨ç¨âì ¯àï¬ë¥ àñ¡à ®â ¯¥à¥ªàñáâ­ëå, ¬®¦­® ¢®á¯®«ì§®¢ âìáï ¯®«¥¬ d: ॡ஠(u; v) ®ª §ë¢ ¥âáï ¯àï¬ë¬, ¥á«¨ d[u] < d[v],
¨ ¯¥à¥ªàñáâ­ë¬, ¥á«¨ d[u] > d[v] (ã¯à. 23.3-4).
¥®à¨¥­â¨à®¢ ­­ë© âॡã¥â ®á®¡®£® à áᬮâ७¨ï, â ª ª ª ®¤­®
¨ â® ¦¥ ॡ஠(u; v) = (v; u) ®¡à ¡ âë¢ ¥áï ¤¢ ¦¤ë, á ¤àãå ª®­æ®¢,
¨ ¬®¦¥â ¯®¯ áâì ¢ à §­ë¥ ª ⥣®à¨¨. Œë ¡ã¤¥¬ ®â­®á¨âì ¥£® ¢ ⮩
ª ⥣®à¨¨, ª®â®à ï á⮨â à ­ìè¥ ¢ ­ 襬 ¯¥à¥ç­¥ ç¥âëàñå ª ⥣®à¨©. ’®â ¦¥ á ¬ë© à¥§ã«ìâ â ¯®«ãç¨âáï, ¥á«¨ ¬ë ¡ã¤¥¬ áç¨â âì,
ç⮠⨯ à¥¡à ®¯à¥¤¥«ï¥âáï ¯à¨ ¥£® ¯¥à¢®© ®¡à ¡®âª¥ ¨ ­¥ ¬¥­ï¥âáï
¯à¨ ¢â®à®©.
Žª §ë¢ ¥âáï, çâ® ¯à¨ â ª¨å ᮣ« 襭¨ïå ¯àï¬ëå ¨ ¯¥à¥ªàñáâ­ëå ॡ¥à ¢ ­¥®à¨¥­â¨à®¢ ­­®¬ £à ä¥ ­¥ ¡ã¤¥â.
’¥®à¥¬ 23.9
à¨ ¯®¨áª¥ ¢ £«ã¡¨­ã ¢ ­¥®à¨¥­â¨à®¢ ­­®¬ £à ä¥ G «î¡®¥ ॡà®
®ª §ë¢ ¥âáï «¨¡® ¯àï¬ë¬, «¨¡® ®¡à â­ë¬.
„®ª § ⥫ìá⢮.
ãáâì (u; v) | ¯à®¨§¢®«ì­®¥ ॡ஠£à ä G, ¨ ¯ãáâì, ­ ¯à¨¬¥à,
d[u] < d[v]. ’®£¤ ¢¥à設 v ¤®«¦­ ¡ëâì ®¡­ à㦥­ ¨ ®¡à ¡®â ­ ¯à¥¦¤¥, 祬 § ª®­ç¨âáï ®¡à ¡®âª ¢¥à設ë u, â ª ª ª v ᮤ¥à¦¨âáï ¢ ᯨ᪥ ᬥ¦­ëå á u ¢¥à設. …᫨ ॡ஠(u; v) ¯¥à¢ë©
à § ®¡à ¡ âë¢ ¥âáï ¢ ­ ¯à ¢«¥­¨¨ ®â u ª v, â® (u; v) áâ ­®¢¨âáï
ॡ஬ ¤¥à¥¢ . …᫨ ¦¥ ®­® ¯¥à¢ë© à § ®¡à ¡ âë¢ ¥âáï ¢ ­ ¯à ¢«¥­¨¨ ®â v ª u, â® ®­® áâ ­®¢¨âáï ®¡à â­ë¬ ॡ஬ (ª®£¤ ®­®
¨áá«¥¤ã¥âáï, ¢¥à設 u | á¥à ï).
â ⥮६ ¡ã¤¥â ­¥ à § ¨á¯®«ì§®¢ ­ ¢ á«¥¤ãîé¨å à §¤¥« å.
“¯à ¦­¥­¨ï.
23.3-1
 à¨áã©â¥ â ¡«¨æã 3 3, áâப¨ ¨ á⮫¡æë ª®â®à®© ®â¬¥ç¥­ë
ª ª ¡¥«ë©, á¥àë© ¨ çñà­ë©. ‚ ª ¦¤®© ª«¥âª¥ (i; j ) ¯®¬¥âìâ¥,
¬®¦¥â «¨ ¢ ¯à®æ¥áᥠ¯®¨áª ¢ £«ã¡¨­ã ­ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥
­ ©â¨áì ॡ஠¨§ ¢¥à設ë 梥â i ¢ ¢¥à設ã 梥â j , ¨ ª ª®£®
⨯ ¬®¦¥â ¡ëâì â ª®¥ ॡà®. ‘¤¥« ©â¥ ­ «®£¨ç­ãî â ¡«¨æã ¤«ï
­¥®à¨¥­â¨à®¢ ­­ëå £à 䮢.
23.3-2
à¨¬¥­¨â¥ «£®à¨â¬ ¯®¨áª ¢ £«ã¡¨­ã ¤«ï £à ä à¨á. 23.6. ‘ç¨-
Žá­®¢­ë¥ «£®à¨â¬ë ­ £à ä å
471
¨áã­®ª 23.5 23.6 Žà¨¥­â¨à®¢ ­­ë© £à ä ¤«ï ã¯à. 23.3-2 ¨ 23.3-3.
â ©â¥, ç⮠横« for ¢ áâப å 5-7 ¯à®æ¥¤ãàë DFS ¯¥à¥¡¨à ¥â ¢¥àè¨­ë ¢ «ä ¢¨â­®¬ ¯®à浪¥, ¨ çâ® ¢ ᯨ᪠å ᬥ¦­ëå ¢¥à設 ®­¨
⮦¥ ¨¤ãâ ¯® «ä ¢¨âã.  ©¤¨â¥ ¢à¥¬ï ®¡­ à㦥­¨ï ¨ ®ª®­ç ­¨ï
®¡à ¡®âª¨ ª ¦¤®© ¢¥à設ë. “ª ¦¨â¥ â¨¯ë ¢á¥å ॡ¥à.
23.3-3
 ¯¨è¨â¥ ¢ëà ¦¥­¨¥ ¨§ ᪮¡®ª, ᮮ⢥âáâ¢ãî饥 ¯®¨áªã ¢ £«ã¡¨­ã ¢ ¯à¥¤ë¤ã饬 ã¯à ¦­¥­¨¨.
23.3-4
„®ª ¦¨â¥, ç⮠ॡ஠(u; v) ï¥âáï
a. ॡ஬ ¤¥à¥¢ ¨«¨ ¯àï¬ë¬ ॡ஬, ¥á«¨ ¨ ⮫쪮 ¥á«¨ d[u] <
d[v] < f [v] < f [u];
b. ®¡à â­ë¬ ॡ஬, ¥á«¨ ¨ ⮫쪮 ¥á«¨ d[v ] < d[u] < f [u] < f [v ];
c. ¯¥à¥ªàñáâ­ë¬ ॡ஬, ¥á«¨ ¨ ⮫쪮 ¥á«¨ d[v ] < f [v ] < d[u] <
f [u].
23.3-5
®ª ¦¨â¥ çâ® ¤«ï ­¥®à¨¥­â¨à®¢ ­­ëå £à 䮢 ¢áñ à ¢­®, ®¯à¥¤¥«ï¥¬ «¨ ¬ë ¥£® ⨯ ª ª ¯¥à¢ë© ¨§ ç¥âëàñå ¢®§¬®¦­ëå ¢ ¯¥à¥ç­¥,
¨«¨ ª ª ¥£® ⨯ ¯à¨ ¯¥à¢®© ®¡à ¡®âª¥.
23.3-6
®áâன⥠ª®­âà¯à¨¬¥à ª â ª®© £¨¯®â¥§¥: ¥á«¨ ¢ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥ G áãé¥áâ¢ã¥â ¯ãâì ¨§ u ¢ v, ¨ ¥á«¨ d[u] < d[v] ¯à¨ ¯®¨áª¥
¢ £«ã¡¨­ã ­ í⮬ £à ä¥, â® v | ¯®â®¬®ª u ¢ ¯®áâ஥­­®¬ «¥áã ¯®¨áª ¢ £«ã¡¨­ã.
23.3-7
Œ®¤¨ä¨æ¨àã©â¥ «£®à¨â¬ ¯®¨áª ¢ £«ã¡¨­ã â ª, çâ®¡ë ®­ ¯¥ç â « ª ¦¤®¥ ॡ஠®à¨¥­â¨à®¢ ­­®£® £à ä ¢¬¥áâ¥ á ¥£® ⨯®¬.
Š ª¨¥ ¨§¬¥­¥­¨ï ­ã¦­ë ¤«ï ­¥®à¨¥­â¨à®¢ ­­®£® £à ä ?
23.3-8
Ž¡êïá­¨â¥, ª ª ¢¥à設 ¬®¦¥â ®ª § âìáï ¥¤¨­á⢥­­®© ¢ ¤¥à¥¢¥
¯®¨áª ¢ £«ã¡¨­ã, ¤ ¦¥ ¥á«¨ ã ­¥ñ ¥áâì ª ª ¢å®¤ï騥, â ª ¨ ¨á室ï騥 ॡà .
23.3-9
®ª ¦¨â¥, çâ® á ¯®¬®éìî ¯®¨áª ¢ £«ã¡¨­ã ¬®¦­® ­ ©â¨ á¢ï§­ë¥ ª®¬¯®­¥­âë ­¥®à¨¥­â¨à®¢ ­­®£® £à ä , ¨ çâ® «¥á ¯®¨áª ¢ £«ã¡¨­ã ¡ã¤¥â ᮤ¥à¦ âì á⮫쪮 ¦¥ ¤¥à¥¢ì¥¢, ᪮«ìª® ¥áâì á¢ï§­ëå
ª®¬¯®­¥­â. „«ï í⮣® ¨§¬¥­¨â¥ «£®à¨â¬ ¯®¨áª â ª, çâ®¡ë ª ¦¤®© ¢¥à設¥ v ®­ ¯à¨á¢ ¨¢ « ­®¬¥à ®â 1 ¤® k (k | ç¨á«® á¢ï§­ëå
ª®¬¯®­¥­â), 㪠§ë¢ î騩, ¢ ª ª®© á¢ï§­®© ª®¬¯®­¥­â¥ ­ 室¨âáï
v.
23.3-10*
ƒ®¢®àïâ, çâ® ®à¨¥­â¨à®¢ ­­ë© £à ä G = (V; E ) ®¡« ¤ ¥â ᢮©á⢮¬ ¥¤¨­á⢥­­®á⨠¯ã⨠(is singly connected), ¥á«¨ ¢ ­ñ¬ ­¥
áãé¥áâ¢ã¥â ¤¢ãå à §­ëå ¯à®áâëå ¯ã⥩, ¨¬¥îé¨å ®¡é¥¥ ­ ç «®
472
ƒ« ¢ 23 €«£®à¨â¬ë ­ £à ä å
¥à¥¢®¤ë ­ §ë¢ ­¨©: undershorts { âàãáë, pants { èâ ­ë, belt { ६¥­ì, shirt { àã¡ èª , tie { £ «áâãª, jacket { ¯¨¤¦ ª, socks { ­®áª¨,
shoes { ¡®â¨­ª¨, watch { ç áë.
¨áã­®ª 23.6 23.7 (a) à®ä¥áá®à ⮯®«®£¨ç¥áª¨ á®àâ¨àã¥â á¢®î ®¤¥¦¤ã ¯®
ãâà ¬. ¥¡à® (u; v) ®§­ ç ¥â, çâ® u ¤®«¦­® ¡ëâì ­ ¤¥â® ¤® v. ï¤®¬ á ¢¥à設 ¬¨ ¯®ª § ­ë ¢à¥¬¥­ ­ ç « ¨ ª®­æ ®¡à ¡®âª¨ ¯à¨ ¯®¨áª¥ ¢ £«ã¡¨­ã. (b)
ƒà ä ⮯®«®£¨ç¥áª¨ ®âá®àâ¨à®¢ ­ (¢¥à設ë à ᯮ«®¦¥­ë ¢ ¯®à浪¥ ã¡ë¢ ­¨ï
¢à¥¬¥­¨ ®ª®­ç ­¨ï ®¡à ¡®âª¨). ‚ᥠàñ¡à ¨¤ãâ á«¥¢ ® ­ ¯à ¢®.
¨ ®¡é¨© ª®­¥æ. ®áâன⥠íä䥪⨢­ë© «£®à¨â¬, ®¯à¥¤¥«ïî騩,
®¡« ¤ ¥â «¨ £à ä í⨬ ᢮©á⢮¬.
23.1.4 ’®¯®«®£¨ç¥áª ï á®àâ¨à®¢ª ãáâì ¨¬¥¥âáï ®à¨­¥â¨à®¢ ­­ë© £à ä ¡¥§ 横«®¢ (directed acyclic
graph; íâ® ­£«¨©áª®¥ ­ §¢ ­¨¥ ¨­®£¤ ᮪à é îâ ¤® \dag"). ‡ ¤ ç ® ⮯®«®£¨ç¥áª®© á®àâ¨à®¢ª¥ (topological sort) í⮣® £à ä á®á⮨⠢ á«¥¤ãî饬: ­ ¤® 㪠§ âì â ª®© «¨­¥©­ë© ¯®à冷ª ­ ¥£®
¢¥à設 å, çâ® «î¡®¥ ॡ஠¢¥¤¥â ®â ¬¥­ì襩 ¢¥àè¨­ë ª ¡®«ì襩
(¢ á¬ëá«¥ í⮣® ¯®à浪 ). Žç¥¢¨¤­®, çâ® ¥á«¨ ¢ £à ä¥ ¥áâì 横«ë,
â ª®£® ¯®à浪 ­¥ áãé¥áâ¢ã¥â. Œ®¦­® áä®à¬ã«¨à®¢ âì § ¤ çã ®
⮯®«®£¨ç¥áª®© á®àâ¨à®¢ª¥ ¨ â ª: à ᯮ«®¦¨âì ¢¥àè¨­ë £à ä ­ £®à¨§®­â «ì­®© ¯àאַ© â ª, çâ®¡ë ¢á¥ àñ¡à 諨 á«¥¢ ­ ¯à ¢®.
(‘«®¢® "á®àâ¨à®¢ª " ­¥ ¤®«¦­® ¢¢®¤¨âì ¢ § ¡«ã¦¤¥­¨¥: íâ § ¤ ç ¢¥áì¬ ®â«¨ç ¥âáï ®â ®¡ëç­®© § ¤ ç¨ á®àâ¨à®¢ª¨, ®¯¨á ­­®©
¢ ç á⨠II.)
‚®â ¯à¨¬¥à á¨âã 樨, ¢ ª®â®à®© ¢®§­¨ª ¥â â ª ï § ¤ ç .  áá¥ï­­ë© ¯à®ä¥áá®à ®¤¥¢ ¥âáï ¯® ãâà ¬, ¯à¨çñ¬ ª ª¨¥-â® ¢¥é¨ ®¡ï§ ⥫쭮 ­ ¤® ­ ¤¥¢ âì ¤® ª ª¨å-â® ¤à㣨å (­ ¯àਬ¥à, ­®áª¨ |
¤® ¡ è¬ ª®¢); ¢ ¤à㣨å á«ãç ïå íâ® ¢áñ à ¢­® (­®áª¨ ¨ èâ ­ë, ­ ¯à¨¬¥à).  à¨á. 23.7 (a) âà¥¡ã¥¬ë¥ á®®â­®è¥­¨ï ¯®ª § ­ë ¢ ¢¨¤¥
®à¨¥­â¨à®¢ ­­®£® £à ä : ॡ஠(u; v) ®§­ ç ¥â, çâ® ¯à¥¤¬¥â u ¤®«¦¥­ ¡ëâì ­ ¤¥â ¤® v. ’®¯®«®£¨ç¥áª ï á®àâ¨à®¢ª í⮣® £à ä , ⥬
á ¬ë¬, ®¯¨áë¢ ¥â ¢®§¬®¦­ë© ¯®à冷ª ®¤¥¢ ­¨ï. Ž¤¨­ ¨§ â ª¨å ¯®à浪®¢ ¯®ª § ­ ­ à¨á. 23.7 (b) (­ ¤® ®¤¥¢ âìáï á«¥¢ ­ ¯à ¢®).
‘«¥¤ãî騩 ¯à®á⮩ «£®à¨â¬ ⮯®«®£¨ç¥áª¨ á®àâ¨àã¥â ®à¨¥­â¨à®¢ ­­ë© 横«¨ç¥áª¨© £à ä.
Topological-Sort($G$)
1 ‚맢 âì DFS($G$), ¯à¨ í⮬,
2 § ¢¥àè ï ®¡à ¡®âªã ¢¥à設ë (\textsc{DFS-Visit}, áâப 8),
¤®¡ ¢«ïâì ¥ñ ¢ ­ ç «® ᯨ᪠3 ¢¥à­ãâì ¯®áâ஥­­ë© ᯨ᮪ ¢¥à設
 à¨áã­ª¥ 23.7 (b) ¯®ª § ­ १ã«ìâ ⠯ਬ¥­¥­¨ï â ª®£® «£®à¨â¬ : §­ 祭¨ï f [v] ã¡ë¢ îâ á«¥¢ ­ ¯à ¢®.
Žá­®¢­ë¥ «£®à¨â¬ë ­ £à ä å
473
’®¯®«®£¨ç¥áª ï á®àâ¨à®¢ª ¢ë¯®«­ï¥âáï § ¢à¥¬ï (V + E ), ¯®â®¬ã çâ® á⮫쪮 ¢à¥¬¥­¨ § ­¨¬ ¥â ¯®¨áª ¢ £«ã¡¨­ã, ¤®¡ ¢¨âì
ª ¦¤ãî ¨§ jV j ¢¥à設 ª ᯨáªã ¬®¦­® § ¢à¥¬ï O(1).
à ¢¨«ì­®áâì í⮣® «£®à¨â¬ ¤®ª §ë¢ ¥âáï á ¯®¬®éìî â ª®©
«¥¬¬ë:
‹¥¬¬ 23.10
Žà¨¥­â¨à®¢ ­­ë© £à ä ­¥ ¨¬¥¥â 横«®¢ ⮣¤ ¨ ⮫쪮 ⮣¤ ,
ª®£¤ ¯®¨áª ¢ £«ã¡¨­ã ­¥ ­ 室¨â ¢ ­ñ¬ ®¡à â­ëå àñ¡¥à.
„®ª § ⥫ìá⢮.
): Ž¡à â­® ॡ஠ᮥ¤¨­ï¥â ¯®â®¬ª á ¯à¥¤ª®¬ ¨ ¯®â®¬ã § ¬ëª ¥â 横«, ®¡à §®¢ ­­ë© àñ¡à ¬¨ ¤¥à¥¢ .
(: ãáâì ¢ £à ä¥ ¨¬¥¥âáï 横« c. „®ª ¦¥¬, çâ® ¢ í⮬ á«ãç ¥
¯®¨áª ¢ £«ã¡¨­ã ®¡ï§ ⥫쭮 ­ ©¤ñâ ®¡à â­®¥ ॡà®. ‘।¨ ¢¥à設 横« ¢ë¡¥à¥¬ ¢¥à設ã v, ª®â®à ï ¡ã¤¥â ®¡­ à㦥­ ¯¥à¢®©,
¨ ¯ãáâì (u; v) | ¢¥¤ã饥 ¢ ­¥ñ ॡ஠横« . ’®£¤ ¢ ¬®¬¥­â ¢à¥¬¥­¨ d[v] ¨§ v ¢ u ¢¥¤ñâ ¯ãâì ¨§ ¡¥«ëå ¢¥à設. ® ⥮६¥ ® ¡¥«®¬
¯ã⨠u áâ ­¥â ¯®â®¬ª®¬ v ¢ «¥á¥ ¯®¨áª ¢ £«ã¡¨­ã, ¯®í⮬ã (u; v)
¡ã¤¥â ®¡à â­ë¬ ॡ஬.
’¥®à¥¬ 23.11
à®æ¥¤ãà Topological-Sort(G) ¯à ¢¨«ì­® ¢ë¯®«­ï¥â ⮯®«®£¨ç¥áªãî á®àâ¨à®¢ªã ®à¨¥­â¨à®¢ ­­®£® £à ä G ¡¥§ 横«®¢.
„®ª § ⥫ìá⢮.
ã¦­® ¤®ª § âì, çâ® ¤«ï «î¡®£® ॡà (u; v) ¢ë¯®«­¥­® ­¥à ¢¥­á⢮ f [v] < f [u]. ‚ ¬®¬¥­â ®¡à ¡®âª¨ í⮣® à¥¡à ¢¥à設 v ­¥
¬®¦¥â ¡ëâì á¥à®© (íâ® ®§­ ç «® ¡ë, çâ® ®­ ï¥âáï ¯à¥¤ª®¬ u ¨
(u; v ) ï¥âáï ®¡à â­ë¬ ॡ஬, çâ® ¯à®â¨¢®à¥ç¨â «¥¬¬¥ 23.10).
®í⮬ã v ¢ íâ®â ¬®¬¥­â ¤®«¦­ ¡ëâì ¡¥«®© ¨«¨ çñà­®©. …᫨ v
| ¡¥« ï, â® ®­ áâ ­®¢¨âáï ॡñ­ª®¬ u, â ª çâ® f [v ] < f [u]. …᫨
®­ 㦥 çñà­ ï, ⮠⥬ ¡®«¥¥ f [v] < f [u].
“¯à ¦­¥­¨ï
23.4-1
‚ ª ª®¬ ¯®à浪¥ à ᯮ«®¦¨â ¢¥àè¨­ë £à ä à¨á. 23.8 «£®à¨â¬
Topological-Sort? (®à冷ª ¯à®á¬®âà ¢¥à設 «ä ¢¨â­ë©.)
23.4-2
¥§ã«ìâ â à ¡®âë «£®à¨â¬ Topological-Sort § ¢¨á¨â ®â ¯®à浪 ¯à®á¬®âà ¢¥à設. ®ª ¦¨â¥, çâ® à §«¨ç­ë¥ 㯮à冷祭¨ï
ᯨ᪮¢ ᬥ¦­ëå ¢¥à設 ¬®£ã⠯ਢ¥á⨠ª ®¤­®¬ã ¨ ⮬㠦¥ १ã«ìâ âã.
23.4-3
à¨¤ã¬ ©â¥ «£®à¨â¬, ®¯à¥¤¥«ïî騩, ¨¬¥¥âáï «¨ ¢ ¤ ­­®¬ ­¥®à¨¥­â¨à®¢ ­­®¬ £à ä¥ G = (V; E ) 横«. Œ®¦­® «¨ ᤥ« âì íâ® § ¢à¥¬ï O(V ) (á ª®­á⠭⮩, ­¥ § ¢¨áï饩 ®â jE j)?
23.4-4
‚¥à­® «¨, çâ® ¤«ï ®à¨¥­â¨à®¢ ­­®£® £à ä á 横« ¬¨ «£®à¨â¬
Topological-Sort ­ 室¨â ¯®à冷ª, ¯à¨ ª®â®à®¬ ç¨á«® "¯«®å¨å"
àñ¡¥à (¨¤ãé¨å ¢ ­¥¯à ¢¨«ì­®¬ ­ ¯à ¢«¥­¨¨) ¡ã¤¥â ¬¨­¨¬ «ì­®?
474
ƒ« ¢ 23 €«£®à¨â¬ë ­ £à ä å
¨áã­®ª 23.7 23.9 (a) Žà¨¥­â¨à®¢ ­­ë© £à ä G ¨ ¥£® ᨫ쭮 á¢ï§­ë¥ ª®¬¯®­¥­âë (¯®ª § ­ë á¥àë¬). (b) ’à ­á¯®­¨à®¢ ­­ë© £à ä GT . ®ª § ­® ¤¥à¥¢®
¯®¨áª ¢ £«ã¡¨­ã, ¢ëç¨á«ï¥¬®¥ ¢ áâப¥ 3 ¯à®æ¥¤ãàë Strongly-ConnectedComponents ¥¡à ¤¥à¥¢ ®¡¢¥¤¥­ë á¥àë¬. ‚¥à設ë b; c;g; h, ïî騥áï ª®à­ï¬¨ ¤¥à¥¢ì¥¢ ¯®¨áª ¢ £«ã¡¨­ã (¤«ï £à ä GT ), ¢ë¤¥«¥­ë çñà­ë¬. (c) €æ¨ª«¨ç¥áª¨© £à ä, ª®â®àë© ¯®«ãç¨âáï, ¥á«¨ áâï­ãâì ª ¦¤ãî ᨫ쭮 á¢ï§­ãî ª®¬¯®­¥­âã £à ä G ¢ â®çªã.
23.4-5
„à㣮© ᯮᮡ ⮯®«®£¨ç¥áª®© á®àâ¨à®¢ª¨ á®á⮨⠢ ⮬, ç⮡ë
¯®á«¥¤®¢ ⥫쭮 ­ 室¨âì ¢¥à設ë á ¢å®¤ï饩 á⥯¥­ìî 0, ¯¥ç â âì ¨å ¨ 㤠«ïâì ¨§ £à ä ¢¬¥á⥠ᮠ¢á¥¬¨ ¢ë室ï騬¨ ¨§ ­¨å
àñ¡à ¬¨. Š ª ॠ«¨§®¢ âì íâã ¨¤¥î, çâ®¡ë ¢à¥¬ï ¢ë¯®«­¥­¨ï á®áâ ¢¨«® O(V + E )? —â® ¯à®¨§®©¤ñâ, ¥á«¨ ¢ ¨á室­®¬ £à ä¥ ¥áâì
横«ë?
23.5 ‘¨«ì­® á¢ï§­ë¥ ª®¬¯®­¥­âë.
23.1.5 ‘¨«ì­® á¢ï§­ë¥ ª®¬¯®­¥­âë
Š« áá¨ç¥áª®¥ ¯à¨¬¥­¥­¨¥ ¯®¨áª ¢ £«ã¡¨­ã | § ¤ ç ® à §«®¦¥­¨¨ £à ä ­ ᨫ쭮 á¢ï§­ë¥ ª®¬¯®­¥­âë. Œë ¯®ª ¦¥¬, ª ª íâ®
¬®¦­® ᤥ« âì, ¤¢ ¦¤ë ¢ë¯®«­¨¢ ¯®¨áª ¢ £«ã¡¨­ã.
Œ­®£¨¥ «£®à¨â¬ë, à ¡®â î騥 ­ ®à¨¥­â¨à®¢ ­­ëå £à ä å,
­ 稭 îâ á ®âë᪠­¨ï ᨫ쭮 á¢ï§­ëå ª®¬¯®­¥­â: ¯®á«¥ í⮣® § ¤ ç à¥è ¥âáï ®â¤¥«ì­® ¤«ï ª ¦¤®© ª®¬¯®­¥­âë, ¯®â®¬ à¥è¥­¨ï ª®¬¡¨­¨àãîâáï ¢ ᮮ⢥á⢨¨ á® á¢ï§ï¬¨ ¬¥¦¤ã ª®¬¯®­¥­â ¬¨.
â¨ á¢ï§¨ ¬®¦­® ¯à¥¤áâ ¢«ïâì ¢ ¢¨¤¥ â ª ­ §ë¢ ¥¬®£® "£à ä ª®¬¯®­¥­â" (ã¯à. 23.5-4).
‚ᯮ¬­¨¬ (£« ¢ 5), ç⮠ᨫ쭮 á¢ï§­®© ª®¬¯®­¥­â®© ®à¨¥­â¨à®¢ ­­®£® £à ä G = (V; E ) ­ §ë¢ ¥âáï ¬ ªá¨¬ «ì­®¥ ¬­®¦¥á⢮
¢¥à設 U V á â ª¨¬ ᢮©á⢮¬: «î¡ë¥ ¤¢¥ ¢¥à設ë u ¨ v ¨§ U
¤®á⨦¨¬ë ¤à㣠¨§ ¤à㣠(u v ¨ v u).
à¨¬¥à £à ä á ¢ë¤¥«¥­­ë¬¨ ᨫ쭮 á¢ï§­ë¬¨ ª®¬¯®­¥­â ¬¨
¯®ª § ­ ­ à¨á. 23.9.
€«£®à¨â¬ ¯®¨áª ᨫ쭮 á¢ï§­ëå ª®¬¯®­¥­â £à ä G = (V; E )
¡ã¤¥â ¨á¯®«ì§®¢ âì "âà ­á¯®­¨à®¢ ­­ë©" £à ä GT = (V; E T )
(ã¯à. 23.1-3), ¯®«ãç ¥¬ë© ¨§ ¨á室­®£® ®¡à 饭¨¥¬ áâ५®ª ­ àñ¡à å: E T = f(u; v) : (v; u) 2 E g. ’ ª®© £à ä ¬®¦­® ¯®áâநâì § ¢à¥¬ï O(V + E ) (¬ë áç¨â ¥¬, çâ® ¨á室­ë© ¨ âà ­á¯®­¨à®¢ ­­ë©
£à äë § ¤ ­ë á ¯®¬®éìî ᯨ᪮¢ ᬥ¦­ëå ¢¥à設). ‹¥£ª® ¯®­ïâì,
çâ® G ¨ GT ¨¬¥îâ ®¤­¨ ¨ ⥠¦¥ ᨫ쭮 á¢ï§­ë¥ ª®¬¯®­¥­âë (¯®áª®«ìªã v ¤®á⨦¨¬® ¨§ u ¢ GT , ¥á«¨ ¨ ⮫쪮 ¥á«¨ u ¤®á⨦¨¬® ¨§
v ¢ GT ).  à¨áã­ª¥ 23.9 (b) ¯®ª § ­ â१ã«ìâ â âà ­á¯®­¨à®¢ ­¨ï
£à ä à¨á. 23.9 (a).
‘«¥¤ãî騩 «£®à¨â¬ ­ 室¨â ᨫ쭮 á¢ï§­ë¥ ª®¬¯®­¥­âë ®à¨¥­â¨à®¢ ­­®£® £à ä G = (V; E ), ¨á¯®«ì§ãï ¤¢ ¯®¨áª ¢ £«ã¡¨­ã
Žá­®¢­ë¥ «£®à¨â¬ë ­ £à ä å
475
| ¤«ï G ¨ ¤«ï GT ; ¢à¥¬ï à ¡®âë ¥áâì O(V + E ).
Strongly-Connected-Components($G$)
1 á ¯®¬®éìî DFS($G$) ­ ©â¨ ¢à¥¬ï ®ª®­ç ­¨ï ®¡à ¡®âª¨ $f[u]$ ¤«ï
ª ¦¤®© ¢¥à設ë $u$
2 ¯®áâநâì $G^T$
3 ¢ë§¢ âì DFS($G^T$), ¯à¨ í⮬ ¢ ¥£® ¢­¥è­¥¬ 横«¥ ¯¥à¥¡¨-
à âì ¢¥àè¨­ë ¢
¯®à浪¥ ã¡ë¢ ­¨ï ¢¥«¨ç­ë $f[u]$ (¢ëç¨á«¥­­®© ¢ áâப¥ 1)
4 ᨫ쭮 á¢ï§­ë¬¨ ª®¬¯®­¥­â ¬¨ ¡ã¤ãâ ¤¥à¥¢ìï ¯®¨áª , ¯®áâ஥­­ë¥
­ è £¥ 3.
‘ ¯¥à¢®£® ¢§£«ï¤ íâ®â «£®à¨â¬ ª ¦¥âáï ­¥áª®«ìª® § £ ¤®ç­ë¬.
…£® ­ «¨§ ¬ë ­ ç­ñ¬ á ¤¢ãå ¯®«¥§­ëå ­ ¡«î¤¥­¨©, ®â­®áïé¨åáï
ª ¯à®¨§¢®«ì­®¬ã ®à¨¥­â¨à®¢ ­­®¬ã £à äã.
‹¥¬¬ 23.12
…᫨ ¤¢¥ ¢¥àè¨­ë ¯à¨­ ¤«¥¦ â ®¤­®© ᨫ쭮 á¢ï§­®© ª®¬¯®­¥­â¥, ­¨ª ª®© ¯ãâì ¬¥¦¤ã ­¨¬¨ ­¥ ¢ë室¨â § ¯à¥¤¥«ë í⮩ ª®¬¯®­¥­âë.
„®ª § ⥫ìá⢮.
ãáâì ¢¥à設 w «¥¦¨â ­ ¯ã⨠¨§ u ¨ v, ¨ ¢¥à設ë u ¨ v
¯à¨­ ¤«¥¦ â ®¤­®© ᨫ쭮 á¢ï§­®© ª®¬¯®­¥­â¥. ’®£¤ u w, w
v ¨ v u, ®âªã¤ ¢áñ ¨ á«¥¤ã¥â.
’¥®à¥¬ 23.13
‚ ¯à®æ¥áᥠ¯®¨áª ¢ £«ã¡¨­ã ¢¥àè¨­ë ®¤­®© ᨫ쭮 á¢ï§­®© ª®¬¯®­¥­âë ¯®¯ ¤ îâ ¢ ®¤­® ¨ â® ¦¥ ¤¥à¥¢®.
„®ª § ⥫ìá⢮.
„«ï ¯à®¨§¢®«ì­®© ᨫ쭮 á¢ï§­®© ª®¬¯®­¥­âë à áᬮâਬ ¥ñ ¢¥à設ã, ®¡­ à㦥­­ãî ¯¥à¢®© (®¡®§­ 稬 ¥ñ r). ‚ íâ®â ¬®¬¥­â ¢á¥
®áâ «ì­ë¥ ¢¥àè¨­ë ª®¬¯®­¥­âë ¥éñ ¡¥«ë¥ ¨ ¯®â®¬ã ¤®áâã¯­ë ¨§
r ¯® ¡¥«ë¬ ¯ãâï¬ (¢¥¤ã騥 ¢ ­¨å ¯ã⨠­¥ ¢ë室ïâ § ¯à¥¤¥«ë
ª®¬¯®­¥­âë ¯® «¥¬¬¥ 23.12). ®í⮬㠯® ⥮६¥ ® ¡¥«®¬ ¯ã⨠®­¨
¡ã¤ãâ § ªà è¥­ë ¯à¨ ¢ë§®¢¥ DFS-Visit(r) ¨ ¢®©¤ãâ ¢ â® ¦¥ ¤¥à¥¢®
¯®¨áª .
‚®§¢à é ïáì ª ­ «¨§ã «£®à¨â¬ Strongly-ConnectedComponents, ¤®£®¢®à¨¬áï, çâ® d[u] ¨ f [u] ¡ã¤ãâ ®¡®§­ ç âì ¢à¥¬ï
®¡­ à㦥­¨ï ¨ ¢à¥¬ï ®ª®­ç ­¨ï ®¡à ¡®âª¨ ¢¥à設ë v, ­ ©¤¥­­ë¥
¢ áâப¥ 1 «£®à¨â¬ , § ¯¨áì u v ¡ã¤¥â ®§­ ç âì áãé¥á⢮¢ ­¨¥
¯ã⨠¢ G ( ­¥ ¢ GT ).
„«ï ª ¦¤®© ¢¥à設ë u £à ä ®¯à¥¤¥«¨¬ ¥ñ ¯à¥¤è¥á⢥­­¨ª (forefather) '(u) ª ª âã ¨§ ¢¥à設 w, ¤®á⨦¨¬ëå ¨§ u, ¤«ï ª®â®à®©
®¡à ¡®âª ¡ë« § ¢¥à襭 ¯®§¤­¥¥ ¢á¥å:
'(u) = â ª ï ¢¥à設 w, çâ® u w ¨ f [w] ¬ ªá¨¬ «ì­®
à¨ í⮬ ¢¯®«­¥ ¬®¦¥â ®ª § âìáï, çâ® '(u) = u.
’ ª ª ª «î¡ ï ¢¥à設 u ¤®á⨦¨¬ á ¬ ¨§ ᥡï,
f [u] 6 f ['(u)]
(23:2)
476
ƒ« ¢ 23 €«£®à¨â¬ë ­ £à ä å
„®ª ¦¥¬ ⥯¥àì, çâ® '('(u)) = '(u). ‚ á ¬®¬ ¤¥«¥, ¤«ï «î¡ëå
¤¢ãå ¢¥à設 u; v 2 V
u v ) f ['(v)] 6 f ['(u)];
(23:3)
¯®â®¬ã çâ® fw : v wg fw : u wg ¨ ¯à¥¤è¥á⢥­­¨ª «î¡®©
¢¥àè¨­ë ¨¬¥¥â ¬ ªá¨¬ «ì­®¥ ¢à¥¬ï § ¢¥à襭¨ï ®¡à ¡®âª¨ á।¨
¢á¥å ¤®á⨦¨¬ëå ¨§ ­¥ñ ¢¥à設. ®áª®«ìªã ¢¥à設 '(u) ¤®á⨦¨¬ ¨§ u, ¨§ ä®à¬ã«ë (23.3) ¯®«ãç ¥¬, çâ® f ['('(u))] 6 f ['(u)].
Šà®¬¥ ⮣®, ¨§ ­¥à ¢¥­á⢠(23.2) ¨¬¥¥¬ f ['(u)] 6 f ['('(u))]. ‘«¥¤®¢ ⥫쭮 f ['('(u))] = f ['(u)] ¨ '('(u)) = '(u), â ª ª ª ¤¢¥ ¢¥à設ë á ®¤­¨¬ ¢à¥¬¥­¥¬ § ¢¥à襭¨ï ®¡à ¡®âª¨.
Š ª ¬ë 㢨¤¨¬, ¢ ª ¦¤®© ᨫ쭮 á¢ï§­®© ª®¬¯®­¥­â¥ ¥áâì ¢¥à設 , ïîé ïáï ¯à¥¤è¥á⢥­­¨ª®¬ ¢á¥å ¢¥à設 í⮩ ª®¬¯®­¥­âë. à¨ ¯®¨áª¥ ¢ £«ã¡¨­ã ¢ G íâ ¢¥à設 ®¡­ à㦨¢ ¥âáï
¯¥à¢®© ¨ ®ª §ë¢ ¥âáï ®¡à ¡®â ­­®© ¯®á«¥¤­¥© (á।¨ ¢¥à設 í⮩
ª®¬¯®­¥­âë). à¨ ¯®¨áª¥ ¢ GT ®­ áâ ­®¢¨âáï ª®à­¥¬ ¤¥à¥¢ ¯®¨áª ¢ £«ã¡¨­ã. „ ¢ ©â¥ ¤®ª ¦¥¬ í⨠᢮©á⢠.
”¨ªá¨à㥬 ­¥ª®â®àãî ᨫ쭮 á¢ï§­ãî ª®¬¯®­¥­âã S .  áᬮâਬ ¢¥à設ã v í⮩ ª®¬¯®­¥­âë, ª®â®à ï ®¡­ à㦨¢ ¥âáï (¯à¨
¯®¨áª¥ ¢ £«ã¡¨­ã) ¯¥à¢®©, â® ¥áâì ¨¬¥¥â ¬¨­¨¬ «ì­®¥ §­ 祭¨¥ d[v]
á।¨ ¢á¥å v 2 S . ˆ§ã稬 á¨âã æ¨î, ª®â®à ï ¨¬¥¥â ¬¥áâ® ­¥¯®á।á⢥­­® ¯¥à¥¤ ¢ë§®¢®¬ DFS-Visit(V ).
1. ‚ íâ®â ¬®¬¥­â ¢á¥ ¢¥àè¨­ë ¨§ S ¡¥«ë¥. (…᫨ íâ® ­¥ â ª,
¢¥à設 v ­¥ ï¥âáï ¯¥à¢®© ®¡­ à㦥­­®© ¢¥à設®© ¨§ S .)
2. ‚ᥠ¢¥àè¨­ë ª®¬¯®­¥­âë S ¤®á⨦¨¬ë ¨§ v ¯® ¡¥«ë¬ ¯ãâï¬.
(‚ á ¬®¬ ¤¥«¥, ¯® «¥¬¬¥ 23.12 ¯ã⨠­¥ ¢ë室ïâ § ¯à¥¤¥«ë S .)
3. ¨ ®¤­ á¥à ï ¢¥à設 ­¥ ¤®á⨦¨¬ ¨§ v . (‚ á ¬®¬ ¤¥«¥, ¢ ¬®¬¥­â ¢ë§®¢ DFS-Visit(v) á¥àë¥ ¢¥àè¨­ë ®¡à §ãîâ ¯ãâì ¨§ ª®à­ï
¤¥à¥¢ ¯®¨áª ¢ v, ¯®í⮬ã v ¤®á⨦¨¬ ¨§ «î¡®© á¥à®© ¢¥à設ë.
…᫨ ¡ë ­¥ª®â®à ï á¥à ï ¢¥à設 ¡ë« ¤®á⨦¨¬ ¨§ v, â® ®­ «¥¦ « ¡ë ¢ ®¤­®© ª®¬¯®­¥­â¥ á v, ¢á¥ â ª¨¥ ¢¥àè¨­ë ¡¥«ë¥.)
4. ‹î¡ ï ¡¥« ï ¢¥à設 w, ¤®á⨦¨¬ ï ¨§ v , ¤®á⨦¨¬ ¯® ¡¥«®¬ã ¯ãâ¨. (‚ á ¬®¬ ¤¥«¥, ­ ¯ã⨠¨§ v ¢ w ­¥ ¬®¦¥â ¡ëâì á¥àëå
¢¥à設, ¯®í⮬㠢ᥠ¢¥à設ë í⮣® ¯ã⨠¨«¨ ¡¥«ë¥, ¨¨«¨ çñà­ë¥.
‘ ¤à㣮© áâ®à®­ë, ¯à¨ ¯®¨áª¥ ¢ £«ã¡¨­ã ­¨ª®£¤ ­¥ ¢®§­¨ª ¥â à¥¡à ¨§ çñà­®© ¢¥àè¨­ë ¢ ¡¥«ãî, ¯®í⮬㠭 í⮬ ¯ã⨠­¥ ¬®¦¥â
¡ëâì çñà­ëå ¢¥à設.)
5. ‚ᥠ¢¥àè¨­ë ª®¬¯®­¥­âë S ¡ã¤ãâ § ªà è¥­ë ¯à¨ ¢ë§®¢¥
DFS-Visit(v ) ¨ ¡ã¤ãâ ¯®â®¬ª ¬¨ v ¢ ¤¥à¥¢¥ ¯®¨áª . (‘«¥¤ã¥â ¨§
â¥®à¥¬ë ® ¡¥«®¬ ¯ãâ¨.)
6. ‚ᥠ¢¥à設ë, ¤®á⨦¨¬ë¥ ¨§ v , ¨¬¥îâ ¬¥­ì襥 ¢à¥¬ï § ¢¥à襭¨ï ®¡à ¡®âª¨, 祬 á ¬ v. (‚ á ¬®¬ ¤¥«¥, ¤«ï çñà­ëå ¢¥à設
íâ® ®ç¥¢¨¤­®, â ª ª ª ®­¨ 㦥 ¡ë«¨ ®¡à ¡®â ­ë ª ¬®¬¥­âã ­ ç « ®¡à ¡®âª¨ v. „«ï ¡¥«ëå í⮠⮦¥ ¢¥à­®, ¯®áª®«ìªã ®­¨ ¡ã¤ãâ ®¡à ¡®â ­ë ¢ 室¥ ¢ë§®¢ DFS-Visit(v) ¤® ®ª®­ç ­¨ï ®¡à ¡®âª¨ v.)
Žá­®¢­ë¥ «£®à¨â¬ë ­ £à ä å
477
7. ‚¥à設 v ï¥âáï ᮡá⢥­­ë¬ ¯à¥¤è¥á⢥­­¨ª®¬: '(v ) = v .
(„à㣠ï ä®à¬ã«¨à®¢ª ¯à¥¤ë¤ã饣® ã⢥ত¥­¨ï.)
8. ‚¥à設 v ï¥âáï ¯à¥¤è¥á⢥­­¨ª®¬ «î¡®© ¢¥à設ë u ª®¬¯®­¥­âë S . (‚ á ¬®¬ ¤¥«¥, ¨§ u ¤®á⨦¨¬ë ⥠¦¥ ¢¥à設ë, çâ® ¨§
v, ¨ ¯®â®¬ã ¢¥à設 á ¬ ªá¨¬ «ì­ë¬ ¢à¥¬¥­¥¬ § ¢¥à襭¨ï ¡ã¤¥â
⮩ ¦¥ á ¬®©).
Œë ¢¨¤¨¬, çâ® ¢ ª ¦¤®© ᨫ쭮 á¢ï§­®© ª®¬¯®­¥­â¥ ¥áâì ¢¥à設 , ª®â®à ï ®¡­ à㦨¢ ¥âáï ¯¥à¢®©, § ¢¥àè ¥â ®¡à ¡ âë¢ âìáï
¯®á«¥¤­¥© ¨ ï¥âáï ¯à¥¤è¥á⢥­¨ª®¬ ¢á¥å ¢¥à設 í⮩ ª®¬¯®­¥­âë.
’ ª¨¬ ®¡à §®¬, ¬ë ¤®ª § «¨ á«¥¤ãî騥 ã⢥ত¥­¨ï:
’¥®à¥¬ 23.14
‚ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥ G = (V; E ) ¯à¥¤è¥á⢥­­¨ª '(u) «î¡®© ¢¥à設ë u 2 V ®ª §ë¢ ¥âáï ¥ñ ¯à¥¤ª®¬ ¢ ¤¥à¥¢¥ ¯®¨áª ¢ £«ã¡¨­ã.
‘«¥¤á⢨¥ 23.15
à¨ «î¡®¬ ¯®¨áª¥ ¢ £«ã¡¨­ã ­ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥ G =
(V; E ) ¢¥à設ë u ¨ '(u) «¥¦ â ¢ ®¤­®© ᨫ쭮 á¢ï§­®© ª®¬¯®­¥­â¥
¤«ï «î¡®© u 2 V .
’¥®à¥¬ 23.16
‚ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥ G = (V; E ) ¤¢¥ ¢¥àè¨­ë «¥¦ â ¢ ®¤­®©
ᨫ쭮 á¢ï§­®© ª®¬¯®­¥­â¥ ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ ®­¨ ¨¬¥îâ
®¡é¥£® ¯à¥¤è¥á⢥­­¨ª ¯à¨ ¯®¨áª¥ ¢ £«ã¡¨­ã.
ˆâ ª, § ¤ ç ® ­ 宦¤¥­¨¨ ᨫ쭮 á¢ï§­ëå ª®¬¯®­¥­â ᢥ« áì ª
§ ¤¥ç¥ ®âë᪠­¨ï ¯à¥¤è¥á⢥­­¨ª®¢ ¢á¥å ¢¥à設 £à ä . ˆ¬¥­­®
¤«ï í⮣® ¨á¯®«ì§ã¥âáï ¯®¨áª ¢ £«ã¡¨­ã ¢ áâப¥ 3 «£®à¨â¬ Strongly-Connected-Components.
—â®¡ë ¯®­ïâì, ª ª íâ® ¤¥« ¥âáï, à áᬮâਬ á­ ç « ¢¥à設ã r
á ¬ ªá¨¬ «ì­ë¬ §­ 祭¨¥¬ f [v] á।¨ ¢á¥å ¢¥à設 £à ä G. (ƒ®¢®àï ® §­ 祭¨ïå f [v], ¬ë ¨¬¥¥¬ ¢ ¢¨¤ã §­ 祭¨ï, ¢ëç¨á«¥­­ë¥ ¢
áâப¥ 1 «£®à¨â¬ .) â® ¢¥à設 ¡ã¤¥â ¯à¥¤è¥á⢥­­¨ª®¬ «î¡®©
¢¥à設ë, ¨§ ª®â®à®© ®­ ¤®á⨦¨¬ (­¨ ®¤­ ¢¥à設 £à ä ­¥
¨¬¥¥â ¡®«ì襣® §­ 祭¨ï f [v]). ’ ª¨¬ ®¡à §®¬, ®¤­ã ᨫ쭮 á¢ï§­ãî ª®¬¯®­¥­âã ¬ë ­ 諨 | íâ® ¢¥à設ë, ¨§ ª®â®àëå ¤®á⨦¨¬ r. „à㣨¬¨ á«®¢ ¬¨, íâ® ¢¥à設ë, ¤®á⨦¨¬ë¥ ¨§ v ¢ âà ­á¯®­¨à®¢ ­­®¬ £à ä¥.
Žâ¡à®á¨¢ ¢á¥ ¢¥àè¨­ë ­ ©¤¥­­®© ª®¬¯®­¥­âë, ¢®§ì¬ñ¬ á।¨
®áâ ¢è¨åáï ¢¥à設ã r0 á ¬ ªá¨¬ «ì­ë¬ §­ 祭¨¥¬ f [v]. ‹î¡ ï
®áâ ¢è ïáï ¢¥à設 u, ¨§ ª®â®à®© ¤®á⨦¨¬ r0, ¡ã¤¥â ¨¬¥âì r0
᢮¨¬ ¯à¥¤è¥á⢥­­¨ª®¬ (­¨ ®¤­ ¨§ ®â¡à®è¥­­ëå ¢¥à設 ­¥ ¤®á⨦¨¬ ¨§ u, ¨­ ç¥ ¨ r ¡ë« ¡ë ¤®á⨦¨¬ ¨§ u ¨ ¢¥à設 u
¯®¯ « ¡ë ¢ ç¨á«® ®â¡à®è¥­­ëå). ’ ª¨¬ ®¡à §®¬ ¬ë ­ ©¤ñ¬ ¢â®àãî ᨫ쭮 á¢ï§­ãî ª®¬¯®­¥­âã | ¢ ­¥ñ ¢å®¤ïâ ⥠¨§ ®áâ ¢è¨åáï
¢¥à設, ¨§ ª®â®àëå ¤®á⨦¨¬ ¢¥à設 r0 (¤à㣨¬¨ á«®¢ ¬¨, â¥
¨§ ®áâ ¢è¨åáï, ª®â®àë¥ ¤®á⨦¨¬ë ¨§ r0 ¢ âà ­á¯®­¨à®¢ ­­®¬
£à ä¥).
478
ƒ« ¢ 23 €«£®à¨â¬ë ­ £à ä å
’¥¯¥àì ¯®­ï⥭ á¬ëá« áâப¨ 3 «£®à¨â¬ StronglyConnected-Components: ¯®¨áª ¢ £«ã¡¨­ã ¢ âà ­á¯®­¨à®¢ ­­®¬
£à ä¥ ¯®®ç¥àñ¤­® "®âá« ¨¢ ¥â" ᨫ쭮 á¢ï§­ë¥ ª®¬¯®­¥­âë.
‘ª ¦¥¬ â® ¦¥ á ¬®¥ ¡®«¥¥ ä®à¬ «ì­®:
’¥®à¥¬ 23.17
€«£®à¨â¬ Strongly-Connected-Components ¯à ¢¨«ì­® ­ 室¨â ᨫ쭮 á¢ï§­ë¥ ª®¬¯®­¥­âë ®à¨¥­â¨à®¢ ­­®£® £à ä .
„®ª § ⥫ìá⢮.
‚ áâப¥ 3 «£®à¨â¬ ¯à®¨á室¨â ¢ë§®¢ «£®à¨â¬ DFS ­ âà ­á¯®­¨à®¢ ­­®¬ £à ä¥. â®â «£®à¨â¬ ¯à®á¬ âਢ ¥â ¢¥àè¨­ë ¢ ¯®à浪¥ ã¡ë¢ ­¨ï ¯ à ¬¥âà f [v], ¢ëç¨á«¥­­®£® ¢ áâப¥
1. à¨ í⮬ áâà®ïâáï ¤¥à¥¢ìï ¯®¨áª , ¯à® ª®â®àë¥ ¬ë å®â¨¬ ¤®ª § âì, çâ® ®­¨ ¡ã¤ãâ ᨫ쭮 á¢ï§­ë¬¨ ª®¬¯®­¥­â ¬¨.
 ª ¦¤®¬ è £¥ 横« à áᬠâਢ ¥âáï ®ç¥à¥¤­ ï (¢ ¯®à浪¥
ã¡ë¢ ­¨ï ¯ à ¬¥âà f ) ¢¥à設 v. ‚¥à設ë 㦥 ¯®áâ஥­­ëå ¤¥à¥¢ì¥¢ ¯®¨áª ¢ íâ®â ¬®¬¥­â çñà­ë¥, ®áâ «ì­ë¥ ¢¥à設ë | ¡¥«ë¥. (‡ ¬¥â¨¬, çâ® ¯à¨ í⮬ ¢áïª ï ¢¥à設 , ¤®á⨦¨¬ ï ¢ £à ä¥
GT ¨§ çñà­®©, á ¬ ¡ã¤¥â çñà­®©.)
…᫨ ®ç¥à¥¤­ ï ¢¥à設 u ®ª §ë¢ ¥âáï çñà­®©, â® «£®à¨â¬
DFS ­¥ ¤¥« ¥â ­¨ç¥£®. …᫨ ¦¥ ®­ ¡¥« ï, â® ¢ë§®¢ ¯à®æ¥¤ãàë
DFS-Visit(u) ¢ áâப¥ 7 «£®à¨â¬ DFS ᤥ« ¥â ¥ñ ¨ ¢á¥ ¤®á⨦¨¬ë¥ ¨§ ­¥ñ ¢ £à ä¥ GT ¢¥à設ë çñà­ë¬¨. Œë ¤®«¦­ë ¯®ª § âì,
çâ® í⨠¢¥àè¨­ë ®¡à §ãîâ ᨫ쭮 á¢ï§­ãî ª®¬¯®­¥­âã.
…᫨ ª ª ï-â® ¡¥« ï ¢¥à設 v ¤®á⨦¨¬ ¨§ u ¢ £à ä¥ GT , â®
u ¡ã¤¥â ¯à¥¤è¥á⢥­­¨ª®¬ v , ¯®áª®«ìªã u ¤®á⨦¨¬ ¨§ v ¢ G,
­¨ª ª¨¥ çñà­ë¥ ¢¥àè¨­ë ­¥ ¤®á⨦¨¬ë ¨§ v ¢ G ¨ u ¨¬¥¥â ¬ ªá¨¬ «ì­®¥ §­ 祭¨¥ ¯ à ¬¥âà f á।¨ ¢á¥å ¡¥«ëå ¢¥à設. ‘ ¤à㣮©
áâ®à®­ë, ¥á«¨ ¡¥« ï ¢¥à設 v ­¥ ¤®á⨦¨¬ ¨§ u ¢ £à ä¥ GT , â®
®­ ­¥ ¬®¦¥â ¨¬¥âì u ᢮¨¬ ¯à¥¤è¥á⢥­­¨ª®¬. —ñà­ë¥ ¢¥à設ë
â ª¦¥ ­¥ ¬®£ãâ ¨¬¥âì u ᢮¨¬ ¯à¥¤è¥á⢥­­¨ª®¬ (¨å ¯à¥¤è¥á⢥­­¨ª¨ ­ ©¤¥­ë ­ ¯à¥¤ë¤ãé¨å è £ å). ®í⮬㠬­®¦¥á⢮ ¡¥«ëå
¢¥à設, ¤®á⨦¨¬ëå ¨§ u ¢ £à ä¥ GT , ᮢ¯ ¤ ¥â á ¬­®¦¥á⢮¬ ¢¥à設, ¨¬¥îé¨å u ᢮¨¬ ¯à¥¤è¥á⢥­­¨ª®¬, â® ¥áâì ï¥âáï ᨫ쭮
á¢ï§­®© ª®¬¯®­¥­â®©.
“¯à ¦­¥­¨ï
23.5-1
Š ª ¬®¦¥â ¨§¬¥­¨âáï ª®«¨ç¥á⢮ ᨫ쭮 á¢ï§­ëå ª®¬¯®­¥­â
£à ä ¯à¨ ¤®¡ ¢«¥­¨¨ ª ­¥¬ã ®¤­®£® ॡà ?
23.5-2
à¨¬¥­â¥ «£®à¨â¬ Strongly-Connected-Components ª
£à äã à¨á. 23.6.  ©¤¨â¥ ¢à¥¬¥­ § ¢¥à襭¨ï, ¢ëç¨á«ï¥¬ë¥ ¢
áâப¥ 1, ¨ «¥á, ᮧ¤ ¢ ¥¬ë© áâப®© 7. ‘ç¨â ©â¥, ç⮠横« ¢
áâப å 5-7 «£®à¨â¬ DFS ¯¥à¥¡¨à ¥â ¢¥àè¨­ë ¢ «ä ¢¨â­®¬
¯®à浪¥ ¨ ç⮠ᯨ᪨ ᬥ¦­ëå ¢¥à設 â ª¦¥ 㯮àï¤®ç¥­ë ¯®
«ä ¬¨âã.
23.5-3
Žá­®¢­ë¥ «£®à¨â¬ë ­ £à ä å
479
à®ä¥áá®à à¥è¨«, çâ® «£®à¨â¬ ¯®¨áª ᨫ쭮 á¢ï§­ëå ª®¬¯®­¥­â ¬®¦­® ã¯à®áâ¨âì, ¥á«¨ ¨á¯®«ì§®¢ âì ¨á室­ë© ( ­¥ âà ­á¯®­¨à®¢ ­­®ë©) £à ä ¯à¨ ¢â®à®¬ ¯®¨áª¥, ­® ¢¥à設ë á®àâ¨à®¢ âì ¢
¯®à浪¥ 㢥«¨ç¥­¨ï ¢à¥¬ñ­ § ¢¥à襭¨ï. à ¢ «¨ ®­?
23.5-4
ãáâì G | ®à¨¥­â¨à®¢ ­­ë© £à ä. …᫨ áâï­ãâì ª ¦¤ãî ¥£®
ᨫ쭮 á¢ï§­ãî ª®¬¯®­¥­âã ¢ â®çªã, ¨ ¯®á«¥ í⮣® ®â®¦¤¥á⢨âì
àñ¡à á ®¤¨­ ª®¢ë¬¨ ­ ç « ¬¨ ¨ ª®­æ ¬¨, ¯®«ãç¨âáï £à ä ª®¬¯®­¥­â (component graph) GSCC = (V SCC ; E SCC ). „à㣨¬¨ á«®¢ ¬¨,
í«¥¬¥­â ¬¨ V SCC ïîâáï ᨫ쭮 á¢ï§­ë¥ ª®¬¯®­¥­âë G, ¨ E SCC
ᮤ¥à¦¨â ॡ஠(u; v) ¢ ⮬ ¨ ⮫쪮 ¢ ⮬ á«ãç ¥, ¥á«¨ ¢ G ¥áâì
®à¨¥­â¨à®¢ ­­®¥ ॡà®, ­ ç «® ª®â®à®£® ¯à¨­ ¤«¥¦¨â u, ª®­¥æ
| v (á¬. ¯à¨¬¥à ­ à¨á. 23.9 (c)). „®ª ¦¨â¥, çâ® £à ä ª®¬¯®­¥­â
­¥ ¨¬¥¥â 横«®¢.
23.5-5
®áâன⥠«£®à¨â¬, ­ 室ï騩 § ¢à¥¬ï O(E + V ) £à ä ª®¬¯®­¥­â ¤ ­­®£® ®à¨¥­â¨à®¢ ­­®£® £à ä . (‚ áâந¬®¬ £à ä¥ «î¡ë¥
¤¢¥ ¢¥àè¨­ë ¤®«¦­ë ¡ëâì ᮥ¤¨­¥­ë ­¥ ¡®«¥¥ 祬 ®¤­¨¬ ॡ஬.)
23.5-6
„ ­ ®à¨¥­â¨à®¢ ­­ë© £à ä G = (V; E ). Š ª ¯®áâநâì ª ª
¬®¦­® ¬¥­ì訩 £à ä G0 = (V; E 0), ª®â®àë© ¨¬¥« ¡ë ⥠¦¥ á ¬ë¥
ᨫ쭮 á¢ï§­ë¥ ª®¬¯®­¥­âë ¨ â®â ¦¥ £à ä ª®¬¯®­¥­â? ®áâனâ¥
íä䥪⨢­ë© «£®à¨â¬ à¥è¥­¨ï í⮩ § ¤ ç¨.
23.5-7
Žà¨¥­â¨à®¢ ­­ë© £à ä ­ §ë¢ ¥âáï G = (V; E ) ­ §ë¢ ¥âáï ¯®«ãá¢ï§­ë¬ (semiconnected), ¥á«¨ ¤«ï «î¡ëå ¤¢ãå ¥£® ¢¥à設 u ¨ v
«¨¡® v ¤®á⨦¨¬ ¨§ u, «¨¡® u ¤®á⨦¨¬ ¨§ v. à¨¤ã¬ ©â¥ íä䥪⨢­ë© «£®à¨â¬, ®¯à¥¤¥«ïî騩, ¡ã¤¥â «¨ £à ä ¯®«ãá¢ï§­ë¬.
Š ª®¢® ¢à¥¬ï ¥£® à ¡®âë?
‡ ¤ ç¨
23-1 Š« áá¨ä¨ª æ¨ï ॡ¥à ¯à¨ ¯®¨áª¥ ¢ è¨à¨­ã
Š« áá¨ä¨æ¨àãï àñ¡à £à ä ¯® ⨯ ¬, ¬ë ¨á室¨«¨ ¨§ ¤¥à¥¢ ¯®¨áª ¢ £«ã¡¨­ã. €­ «®£¨ç­ ï ª« áá¨ä¨ª ¨ï ¢®§¬®¦­® ¨ ¤«ï ¤¥à¥¢ ¯®¨áª ¢ è¨à¨­ã (¤«ï àñ¡¥à, ¤®á⨦¨¬ëå ¨§ ­ ç «ì­®© ¢¥à設ë).
a. „®ª ¦¨â¥ á«¥¤ãî騥 ᢮©á⢠¤«ï á«ãç ï ¯®¨áª ¢ è¨à¨­ã ¢
­¥®à¨¥­â¨à®¢ ­­®¬ £à ä¥:
1. ¥ ¡ë¢ ¥â ¯àï¬ëå ¨ ®¡à â­ëå àñ¡¥à.
2. …᫨ (u; v ) | ॡ஠¤¥à¥¢ , â® d[v ] = d[u] + 1.
3. …᫨ (u; v ) | ¯¥à¥ªàñáâ­®¥ ॡà®, â® d[v ] = d[u] ¨«¨ d[v ] =
d[u] + 1.
b. „®ª ¦¨â¥ á«¥¤ãî騥 ᢮©á⢠¤«ï á«ãç ï ¯®¨áª ¢ è¨à¨­ã ¢
®à¨¥­â¨à®¢ ­­®¬ £à ä¥:
1. ¥ ¡ë¢ ¥â ¯àï¬ëå àñ¡¥à.
2. …᫨ (u; v ) { ॡ஠¤¥à¥¢ , â® d[v ] = d[u] + 1.
3. …᫨ (u; v ) { ¯¥à¥ªàñáâ­®¥ ॡà®, â® d[v ] 6 d[u] + 1.
4. …᫨ (u; v ) { ®¡à â­®¥ ॡà®, â® 0 6 d[v ] < d[u].
480
ƒ« ¢ 23 €«£®à¨â¬ë ­ £à ä å
¨áã­®ª 23.8 23.10 ’®çª¨ à §¤¥« , ¬®áâë ¨ ¤¢ãá¢ï§­ë¥ ª®¬¯®­¥­âë á¢ï§­®£®
­¥®à¨¥­â¨à®¢ ­­®£® £à ä (§ ¤ ç 23-2). ’®çª¨ à §¤¥« ¨ ¬®áâë | âñ¬­®á¥àë¥, ¤¢ãá¢ï§­ë¥ ª®¬¯®­¥­âë | ­ ¡®àë àñ¡¥à ¢ ¯à¥¤¥« å ®¤­®© á¥à®© ®¡« áâ¨
(¢­ãâਠª®â®à®© 㪠§ ­® bcc).
23-2 ’®çª¨ à §¤¥« , ¬®áâë ¨ ¤¢ãá¢ï§­ë¥ ª®¬¯®­¥­âë
ãáâì G = (V; E ) { á¢ï§­ë© ­¥®à¨¥­â¨à®¢ ­­ë© £à ä. ’®çª à §¤¥« (articulation point) £à ä G | íâ® ¢¥à設 , ¯à¨ 㤠«¥­¨¨ ª®â®à®© £à ä G ¯¥à¥áâ ñâ ¡ëâì á¢ï§­ë¬. Œ®áâ (bridge)
| íâ® à¥¡à® á ­ «®£¨ç­ë¬ ᢮©á⢮¬. „¢ãá¢ï§­ ï ª®¬¯®­¥­â (biconnected component) | íâ® ¬ ªá¨¬ «ì­ë© ­ ¡®à àñ¡¥à, «î¡ë¥
¤¢ à¥¡à ª®â®à®£® ¯à¨­ ¤«¥¦ â ®¡é¥¬ã ¯à®á⮬ã 横«ã (á¬. ¯à¨¬¥à ­ à¨á. 23.10). ’®çª¨ à §¤¥« , ¬®áâë ¨ ¤¢ãá¢ï§­ë¥ ª®¬¯®­¥­âë
¬®¦­® ­ ©â¨ á ¯®¬®éìî ¯®¨áª ¢ £«ã¡¨­ã.
ãáâì G = (V; E) | ¤¥à¥¢® ¯®¨áª ¢ £«ã¡¨­ã ¢ £à ä¥ G.
a. „®ª ¦¨â¥, çâ® ª®à¥­ì G ï¥âáï â®çª®© à §¤¥« , ¥á«¨ ¨
⮫쪮 ¥á«¨ ã ­¥£® ¡®«¥¥ ®¤­®£® áë­ ¢ G .
b. ãáâì v | ®â«¨ç­ ï ®â ª®à­ï ¢¥à設 G . „®ª ¦¨â¥, çâ® v
| â®çª à §¤¥« G, ¥á«¨ ¨ ⮫쪮 ¥á«¨ ­¥ áãé¥áâ¢ã¥â ®¡à â­®£®
ॡà (u; w), ¤«ï ª®â®à®£® u | ¯®â®¬®ª v ¨ w | ¯à¥¤®ª v ¢ G ,
®â«¨ç­ë© ®â w.
c. ãáâì low [v ] | ¬¨­¨¬ «ì­®¥ ç¨á«® á।¨ d[v ] ¨ ç¨á¥« d[w] ¤«ï
¢á¥å w, ¤«ï ª®â®àëå ¨¬¥¥âáï ®¡à â­®¥ ॡ஠(u; w) ¤«ï ­¥ª®â®à®©
¢¥à設ë u, ïî饩áï ¯®â®¬ª®¬ v. ®ª ¦¨â¥, ª ª ¬®¦­® ¢ëç¨á«¨âì low [v] ¤«ï ¢á¥å v 2 V § ¢à¥¬ï O(V ).
d. Š ª ­ ©â¨ ¢á¥ â®çª¨ à §¤¥« § ¢à¥¬ï O(E )?
e. „®ª ¦¨â¥, ç⮠ॡ஠£à ä G ï¥âáï ¬®á⮬ ¢ ⮬ ¨ ⮫쪮
⮬ á«ãç ¥, ª®£¤ ®­® ­¥ ¢å®¤¨â ­¨ ¢ ª ª®© ¯à®á⮩ 横«.
f. Š ª ­ ©â¨ ¢á¥ ¬®áâë £à ä G § ¢à¥¬ï O(E )?
g. „®ª ¦¨â¥, çâ® ¤¢ãá¢ï§­ë¥ ª®¬¯®­¥­âë £à ä á®áâ ¢«ïîâ à §¡¨¥­¨¥ ¬­®¦¥á⢠¢á¥å àñ¡¥à £à ä , ­¥ ïîé¨åáï ¬®áâ ¬¨.
h. à¨¤ã¬ ©â¥ «£®à¨â¬, ª®â®àë© § ¢à¥¬ï O(E ) ¯®¬¥ç ¥â ª ¦¤®¥ ॡ஠e £à ä G ­¥ª®â®àë¬ æ¥«ë¬ ç¨á«®¬ bcc[e], ¯à¨ í⮬
¬¥âª¨ ¤¢ãå àñ¡¥à ᮢ¯ ¤ îâ, ¥á«¨ ¨ ⮫쪮 ¥á«¨ àñ¡à ¯à¨­ ¤«¥¦ â ®¤­®© ¤¢ãá¢ï§­®© ª®¬¯®­¥­â¥.
23-3 ©«¥à®¢ 横«
©«¥à®¢ë¬ 横«®¬ (Euler tour) á¢ï§­®£® ®à¨¥­â¨à®¢ ­­®£® £à ä G = (V; E ) ­ §ë¢ ¥âáï 横«, ¯à®å®¤ï騩 ¯® ª ¦¤®¬ã ॡàã G
஢­® ®¤¨­ à § (¢ ®¤­®© ¨ ⮩ ¦¥ ¢¥à設¥ ¬®¦­® ¡ë¢ âì ¬­®£®ªà â­®).
a. ®ª ¦¨â¥, çâ® ¢ G ¥áâì í©«¥à®¢ 横« ⮣¤ ¨ ⮫쪮 ⮣¤ ,
ª®£¤ ¢å®¤ïé ï á⥯¥­ì ª ¦¤®© ¢¥à設ë à ¢­ ¥¥ ¨á室ï饩 á⥯¥­¨.
b. à¨¤ã¬ ©â¥ «£®à¨â¬, ª®â®àë© § ¢à¥¬ï O(E ) ­ 室¨â ¢ £à ä¥
í©«¥à®¢ 横« (¥á«¨ â ª®¢®© ¨¬¥¥âáï). (“ª § ­¨¥: ®¡ê¥¤¨­ï©â¥ æ¨-
Žá­®¢­ë¥ «£®à¨â¬ë ­ £à ä å
481
ª«ë, ã ª®â®àëå ­¥â ®¡é¨å àñ¡¥à.)
‡ ¬¥ç ­¨ï
à¥ªà á­ë¥ à㪮¢®¤á⢠¯® «£®à¨â¬ ¬ ­ £à ä å ­ ¯¨á «¨
ˆ¢¥­ [65] ¨ ’ àìï­ [188].
®¨áª ¢ è¨à¨­ã à áᬮâ५ Œãà [150] ¯à¨ ¨§ã祭¨¨ ¯ã⥩ ¢ « ¡¨à¨­â å. ‹¨ [134] ­¥§ ¢¨á¨¬® ®âªàë« â®â ¦¥ «£®à¨â¬ ¯à¨¬¥­¨â¥«ì­® ª ᮥ¤¨­¥­¨ï¬ ª®­â ªâ®¢ ¢ í«¥ªâà®­­ëå á奬 å.
•®¯ªà®äâ ¨ ’ àìï­ [102] 㪠§ «¨ ­ ¯®«ì§ã ¯à¥¤áâ ¢«¥­¨ï ¢ ¢¨¤¥
ᯨ᪮¢ ᬥ¦­ëå ¢¥à設 ¤«ï ।ª¨å £à 䮢 ¨ ®¡­ à㦨«¨ ¢ ¦­®áâì ¯®¨áª ¢ £«ã¡¨­ã ¤«ï ¯®áâ஥­¨ï «£®à¨â¬®¢ ­ £à ä å. ‘ ¬
¯® ᥡ¥ ¯®¨áª ¢ £«ã¡¨­ã ­ ç « ¨á¯®«ì§®¢ âìáï ­¥§ ¤®«£® ¤® 1960
£®¤ , ¢ ¯à¥¢ãî ®ç¥à¥¤ì ¢ ¯à®£à ¬¬ å, á¢ï§ ­­ëå á "¨áªãáá⢥­­ë¬ ¨­â¥««¥ªâ®¬".
’ àìï­ [185] ¯à¨¤ã¬ « «£®à¨â¬ ¯®¨áª ᨫ쭮 á¢ï§­ëå ª®¬¯®­¥­â § «¨­¥©­®¥ ¢à¥¬ï. €«£®à¨â¬ à §¤¥« 23.5 ¢§ïâ ¨§ ª­¨£¨
€å®, •®¯ªà®äâ ¨ “«ì¬ ­ [5], ª®â®àë¥ ááë« îâáï ­ Š®á à î
(S.R. Kosaraju) ¨ ˜ à¨à (M. Sharir). Š­ãâ [121] ¯¥à¢ë¬ ¯®áâந«
«£®à¨â¬ ⮯®«¨£¨ç¥áª®© á®àâ¨à®¢ª¨ § «¨­¥©­®¥ ¢à¥¬ï.
24
Œ¨­¨¬ «ì­ë¥ ¯®ªàë¢ î騥 ¤¥à¥¢ìï
ãáâì ¤ ­ë n ª®­â ªâ®¢ ­ ¯¥ç â­®© ¯« â¥, ª®â®àë¥ ¬ë å®â¨¬
í«¥ªâà¨ç¥áª¨ ᮥ¤¨­¨âì. „«ï í⮣® ¤®áâ â®ç­® ¨á¯®«ì§®¢ âì n ; 1
¯à®¢®¤®¢, ª ¦¤ë© ¨§ ª®â®àëå ᮥ¤¨­ï¥â ¤¢ ª®­â ªâ . à¨ í⮬ ¬ë
®¡ëç­® áâ६¨¬áï ᤥ« âì á㬬 à­ãî ¤«¨­ã ¯à®¢®¤®¢ ª ª ¬®¦­®
¬¥­ìè¥.
“¯à®é ï á¨âã æ¨î, ¬®¦­® áä®à¬ã«¨à®¢ âì § ¤ çã â ª. ãáâì
¨¬¥¥âáï á¢ï§­ë© ­¥®à¨¥­â¨à®¢ ­­ë© £à ä G = (V; E ), ¢ ª®â®à®¬ V
| ¬­®¦¥á⢮ ª®­â ªâ®¢, E | ¬­®¦¥á⢮ ¨å ¢®§¬®¦­ëå ¯®¯ à­ëå ᮥ¤¨­¥­¨©. „«ï ª ¦¤®®£® à¥¡à £à ä (u; v) § ¤ ­ ¢¥á w(u; v)
(¤«¨­ ¯à®¢®¤ , ­¥®¡å®¤¨¬®£® ¤«ï ᮥ¤¨­¥­¨ï u ¨ v ). ‡ ¤ ç á®á⮨⠢ ­ 宦¤¥­¨¨ ¯®¤¬­®¦¥á⢠T E; á¢ï§ë¢ î饣® ¢á¥ ¢¥à設ë, ¤«ï ª®â®à®£® á㬬 à­ë© ¢¥á
w (T ) =
X
(u;v)2T
w(u; v )
¬¨­¨¬ «¥­. ’ ª®¥ ¯®¤¬­®¦¥á⢮ T ¡ã¤¥â ¤¥à¥¢®¬ (¯®áª®«ìªã ­¥
¨¬¥¥â 横«®¢: ¢ «î¡®¬ 横«¥ ®¤¨­ ¨§ ¯à®¢®¤®¢ ¬®¦­® 㤠«¨âì,
­¥ ­ àãè ï á¢ï§­®áâ¨). ‘¢ï§­ë© ¯®¤£à ä £à ä G, ïî騩áï
¤¥à¥¢®¬ ¨ ᮤ¥à¦ 騩 ¢á¥ ¥£® ¢¥à設ë, ­ §ë¢ îâ ¯®ªàë¢ î騬 ¤¥à¥¢®¬ (spanning tree) í⮣® £à ä . (ˆ­®£¤ ¨á¯®«ì§ãîâ â¥à¬¨­ "®á⮢­®¥ ¤¥à¥¢®"; ¤«ï ªà ⪮á⨠¬ë ¡ã¤¥¬ £®¢®à¨âì ¯à®áâ®
"®á⮢". )
‚ í⮩ £« ¢¥ ¬ë à áᬠâਢ ¥¬ § ¤ çã ® ¬¨­¨¬ «ì­®¬ ¯®ªàë¢ î饬 ¤¥à¥¢¥ (minimum-spanning-tree problem). (‡¤¥áì á«®¢® "¬¨­¨¬ «ì­®¥" ®§­ ç ¥â "¨¬¥î饥 ¬¨­¨¬ «ì­® ¢®§¬®¦­ë© ¢¥á".)
 à¨áã­ª¥ 24.1 ¯à¨¢¥¤ñ­ ¯à¨¬¥à á¢ï§­®£® £à ä ¨ ¥£® ¬¨­¨¬ «ì­®£® ®á⮢ .
[‚®§¢à é ïáì ª ¯à¨¬¥àã á ¯à®¢®¤­¨ª ¬¨ ­ ¯¥ç â­®© ¯« â¥, ®¡êïá­¨¬, ¯®ç¥¬ã § ¤ ç ® ¬¨­¨¬ «ì­®¬ ¤¥à¥¢¥ ï¥âáï ã¯à®é¥­¨¥¬
ॠ«ì­®© á¨âã 樨. ‚ á ¬®¬ ¤¥«¥, ¥á«¨ ᮥ¤¨­ï¥¬ë¥ ª®­â ªâë ­ 室ïâáï ¢ ¢¥à設 å ¥¤¨­¨ç­®£® ª¢ ¤à â , à §à¥è ¥âáï ᮥ¤¨­ïâì
¥£® «î¡ë¥ ¢¥àè¨­ë ¨ ¢¥á ᮥ¤¨­¥­¨ï à ¢¥­ ¥£® ¤«¨­¥, â® ¬¨­¨¬ «ì­®¥ ¯®ªàë¢ î饥 ¤¥à¥¢® ¡ã¤¥â á®áâ®ïâì ¨§ âàñå áâ®à®­ ª¢ ¤à â .
Œ¥¦¤ã ⥬ ¢á¥ ¥£® ç¥âëॠ¢¥àè¨­ë ¬®¦­® í«¥ªâà¨ç¥áª¨ ᮥ¤¨­¨âì
®áâ஥­¨¥ ¬¨­¨¬ «ì­®£® ®á⮢ 483
¨áã­®ª 24.1 24.1 Œ¨­¨¬ «ì­®¥ ¯®ªàë¢ î饥 ¤¥à¥¢®.  ª ¦¤®¬ ॡॠ£à ä 㪠§ ­ ¢¥á. ‚뤥«¥­ë à¥¡à ¬¨­¨¬ «ì­®£® ¯®ªàë¢ î饣® ¤¥à¥¢ (á㬬 à­ë©
¢¥á 37). ’ ª®¥ ¤¥à¥¢® ­¥ ¥¤¨­á⢥­­®: § ¬¥­ïï ॡ஠(b; c) ॡ஬ (a; h); ¯®«ãç ¥¬ ¤à㣮¥ ¤¥à¥¢® ⮣® ¦¥ ¢¥á 37.
p
¤¢ã¬ï ¯¥à¥á¥ª î騬¨áï ¤¨ £®­ «ï¬¨ (á㬬 à­ ï ¤«¨­ 2 2 < 3)
¨ ¤ ¦¥ ¥éñ ª®à®ç¥ (¢¢¥¤ï ¤¢¥ ¯à®¬¥¦ãâ®ç­ë¥ â®çª¨, ¢ ª®â®àëå
¯à®¢®¤­¨ª¨ á室ïâáï ¯®¤ 㣫®¬ 120.).]
‚ í⮩ £« ¢¥ ¬ë à áᬮâਬ ¤¢ ᯮᮡ à¥è¥­¨ï § ¤ ç¨ ® ¬¨­¨¬ «ì­®¬ ¯®ªàë¢ î饬 ¤¥à¥¢¥: «£®à¨â¬ë Šàã᪠« ¨ à¨¬ .
Š ¦¤ë© ¨å ­¨å «¥£ª® ॠ«¨§®¢ âì á ¢à¥¬¥­¥¬ à ¡®âë O(E lg V ),
¨á¯®«ì§ãï ®¡ëç­ë¥ ¤¢®¨ç­ë¥ ªãç¨. à¨¬¥­¨¢ 䨡®­ ç稥¢ë ªãç¨,
¬®¦­® ᮪à â¨âì ¢à¥¬ï à ¡®âë «£®à¨â¬ à¨¬ ¤® O(E + V lg V )
(çâ® ¬¥­ìè¥ E + lg V , ¥á«¨ jV j ¬­®£® ¬¥­ìè¥ jE j).
Ž¡ «£®à¨â¬ (Šàã᪠« ¨ à¨¬ ) á«¥¤ãîâ "¦ ¤­®©" áâà ⥣¨¨: ­ ª ¦¤®¬ è £¥ ¢ë¡¨à ¥âáï "«®ª «ì­® ­ ¨«ãç訩" ¢ ਠ­â.
¥ ¤«ï ¢á¥å § ¤ ç â ª®© ¢ë¡®à ¯à¨¢¥¤ñâ ª ®¯â¨¬ «ì­®¬ã à¥è¥­¨î,
­® ¤«ï § ¤ ç¨ ® ¯®ªàë¢ î饬 ¤¥à¥¢¥ íâ® â ª. (Œë ®¡á㦤 «¨ íâ®
¢ £« ¢¥ 17; § ¤ ç ® ¯®ªàë¢ î饬 ¤¥à¥¢¥ ï¥âáï ¯à¥¢®á室­®©
¨««îáâà 樥© ¢¢¥¤ñ­­ëå â ¬ ¯®­ï⨩.)
‚ à §¤¥«¥ 24.1 ®¯¨á ­ ®¡é ï á奬 «£®à¨â¬ ¯®áâ஥­¨ï ¬¨­¨¬ «ì­®£® ®á⮢ (¤®¡ ¢«¥­¨¥ àñ¡¥à ®¤­®£® § ¤à㣨¬). ‚ à §¤¥«¥ 24.2 㪠§ ­ë ¤¢¥ ª®­ªà¥â­ëå ॠ«¨§ 樨 ®¡é¥© á奬ë. ¥à¢ë© «£®à¨â¬, ¢®á室ï騩 ª Šàã᪠«ã, ­ «®£¨ç¥­ «£®à¨â¬ã ¯®¨áª á¢ï§­ëå ª®¬¯®­¥­â ¨§ à §¤¥« 22.1. „à㣮© ( «£®à¨â¬ à¨¬ )
­ «®£¨ç¥­ «£®à¨â¬ã „¥©ªáâàë ¯®¨áª ªà âç ©è¨å ¯ã⥩ (à §¤¥« 25.2).
24.1 ®áâ஥­¨¥ ¬¨­¨¬ «ì­®£® ®á⮢ ˆâ ª, ¯ãáâì ¤ ­ á¢ï§­ë© ­¥®à¨¥­â¨à®¢ ­­ë© £à ä G = (V; E )
¨ ¢¥á®¢ ï ä㭪樥© w : E ! . Œë å®â¨¬ ­ ©â¨ ¬¨­¨¬ «ì­®¥
¯®ªàë¢ î饥 ¤¥à¥¢® (®á⮢), á«¥¤ãï ¦ ¤­®© áâà ⥣¨¨.
Ž¡é ï á奬 ¢á¥å ­ è¨å «£®à¨â¬®¢ ¡ã¤¥â â ª®¢ . ˆáª®¬ë©
®á⮢ áâநâáï ¯®á⥯¥­­®: ª ¨§­ ç «ì­® ¯ãá⮬㠬­®¦¥áâ¢ã A
­ ª ¦¤®¬ è £¥ ¤®¡ ¢«ï¥âáï ®¤­® ॡà®. Œ­®¦¥á⢮ A ¢á¥£¤ ï¥âáï ¯®¤¬­®¦¥á⢮¬ ­¥ª®â®à®£® ¬¨­¨¬ «ì­®£® ®á⮢ . ¥¡à® (u; v);
¤®¡ ¢«ï¥¬®¥ ­ ®ç¥à¥¤­®¬ è £¥, ¢ë¡¨à ¥âáï â ª, çâ®¡ë ­¥ ­ àãè¨âì í⮣® ᢮©á⢠: A [f(u; v)g ⮦¥ ¤®«¦­® ¡ëâì ¯®¤¬­®¦¥á⢮¬
¬¨­¨¬ «ì­®£® ®á⮢ . Œë ­ §ë¢ ¥¬ â ª®¥ ॡ஠¡¥§®¯ á­ë¬ ॡ஬ (safe edge) ¤«ï A.
R
\textsc{Generic-MST} $(G,w)$
1 $A \leftarrow \emptyset$
2 {\bf while} $A$ ­¥ ï¥âáï ®á⮢®¬
484
ƒ« ¢ 24 Œ¨­¨¬ «ì­ë¥ ¯®ªàë¢ î騥 ¤¥à¥¢ìï
¨áã­®ª 24.2 24.2 „¢ ¨§®¡à ¦¥­¨ï ®¤­®£® ¨ ⮣® ¦¥ à §à¥§ £à ä á à¨áã­ª 24.1. (a) ‚¥àè¨­ë ¬­®¦¥á⢠S ¨§®¡à ¦¥­ë ¡¥«ë¬ 梥⮬, ¥£® ¤®¯®«­¥­¨ï V n S
| ç¥à­ë¬. ñ¡à , ¯¥à¥á¥ª î騥 à §à¥§, ᮥ¤¨­ïîâ ¡¥«ë¥ ¢¥à設ë á ç¥à­ë¬¨.
…¤¨­á⢥­­®¥ «ñ£ª®¥ ॡà®, ¯¥à¥á¥ª î饥 à §à¥§ | ॡ஠(d; c): Œ­®¦¥á⢮ A
á®á⮨⠨§ ¢ë¤¥«¥­­ëå á¥àë¬ æ¢¥â®¬ ¢ë¤¥«¥­®.  §à¥§ (S; V n S ) ᮣ« ᮢ ­ á
A (­¨ ®¤­® ॡ஠¨§ A ­¥ ¯¥à¥á¥ª ¥â à §à¥§). (b) ‚¥àè¨­ë ¬­®¦¥á⢠S ¨§®¡à ¦¥­ë á«¥¢ , ¢¥à設ë V n S | á¯à ¢ . ¥¡à® ¯¥à¥á¥ª ¥â à §à¥§, ¥á«¨ ®­®
¯¥à¥á¥ª ¥â ¢¥à⨪ «ì­ãî ¯àï¬ãî.
3
{\bf do} ­ ©â¨ ¡¥§®¯ á­®¥ ॡ஠$(u,v)$ ¤«ï $A$
4
$A \leftarrow A \cup \{(u,v)\}$
5 {\bf return} $A$
® ®¯à¥¤¥«¥­¨î ¡¥§®¯ á­®£® ॡà 横« ­¥ ­ àãè ¥âáï ᢮©á⢠" A ï¥âáï ¯®¤¬­®¦¥á⢮¬ ­¥ª®â®à®£® ¬¨­¨¬ «ì­®£® ®á⮢ "
(¤«ï ¯ãá⮣® ¬­®¦¥á⢠í⮠᢮©á⢮, ®ç¥¢¨¤­®, ¢ë¯®«­¥­®), â ª
çâ® ¢ áâப¥ 5 «£®à¨â¬ ¢ë¤ ñâ ¬¨­¨¬ «ì­ë© ®á⮢. Š®­¥ç­®,
£« ¢­ë© ¢®¯à®á ¢ ⮬, ª ª ¨áª âì ¡¥§®¯ á­®¥ ॡ஠¢ áâப¥ 3.
’ ª®¥ ॡ஠áãé¥áâ¢ã¥â (¥á«¨ A ï¥âáï ¯®¤¬­®¦¥á⢮¬ ¬¨­¨¬ «ì­®£® ®á⮢ , â® «î¡®¥ ॡ஠í⮣® ®á⮢ , ­¥ ¢å®¤ï饥 ¢ A,
ï¥âáï ¡¥§®¯ á­ë¬).
‡ ¬¥â¨¬, çâ® ¬­®¦¥á⢮ A ­¥ ¬®¦¥â ᮤ¥à¦ âì 横«®¢ (¯®áª®«ìªã ï¥âáï ç áâìî ¬¨­¨¬ «ì­®£® ®á⮢ ). ®í⮬㠤®¡ ¢«ï¥¬®¥ ¢ áâப¥ 4 ॡ஠ᮥ¤¨­ï¥â à §«¨ç­ë¥ ª®¬¯®­¥­âë £à ä GA = (V; A), ¨ á ª ¦¤®© ¨â¥à 樥© 横« ç¨á«® ª®¬¯®­¥­â 㬥­ìè ¥âáï ­ 1. ‚­ ç «¥ ª ¦¤ ï â®çª ¯à¥¤áâ ¢«ï¥â ᮡ®© ®â¤¥«ì­ãî
ª®¬¯®­¥­âã; ¢ ª®­æ¥ ¢¥áì ®á⮢ | ®¤­ ª®¬¯®­¥­â , â ª ç⮠横«
¯®¢â®àï¥âáï jV j ; 1 à §.
‚ ®á⠢襩áï ç á⨠í⮣® à §¤¥« ¬ë ¯à¨¢¥¤¥¬ ¯à ¢¨«® ®âë᪠­¨ï ¡¥§®¯ á­ëå ॡ¥à (⥮६ 24.1). ‚ á«¥¤ãî饬 à §¤¥«¥ ¡ã¤ãâ
®¯¨á ­ë ¤¢ «£®à¨â¬ , ¨á¯®«ì§ãîé¨å íâ® ¯à ¢¨«® ¤«ï íä䥪⨢­®£® ¯®¨áª ¡¥§®¯ á­ëå ॡ¥à.
 ç­ñ¬ á ®¯à¥¤¥«¥­¨©.  §à¥§®¬ (cut) (S; V n S ) ­¥®à¨¥­â¨à®¢ ­­®£® £à ä G = (V; E ) ­ §ë¢ ¥âáï à §¡¨¥­¨¥ ¬­®¦¥á⢠¥£® ¢¥à設
­ ¤¢ ¯®¤¬­®¦¥á⢠(à¨á. 24.2).
ƒ®¢®àïâ, ç⮠ॡ஠(u; v) 2 E ¯¥à¥á¥ª ¥â (crosses) à §à¥§ (S; V n
S ), ¥á«¨ ®¤¨­ ¨§ ¥£® ª®­æ®¢ «¥¦¨â ¢ S; ¤à㣮© | ¢ V n S:  §à¥§
ᮣ« ᮢ ­ á ¬­®¦¥á⢮¬ àñ¡¥à A (respects the set A), ¥á«¨ ­¨ ®¤­®
ॡ஠¨§ A ­¥ ¯¥à¥á¥ª ¥â íâ®â à §à¥§. ‘।¨ ¯¥à¥á¥ª îé¨å à §à¥§
àñ¡¥à ¢ë¤¥«ïîâ àñ¡à ­ ¨¬¥­ì襣® ¢¥á (á।¨ ¯¥à¥á¥ª îé¨å íâ®â
à §à¥§), ­ §ë¢ ï ¨å «ñ£ª¨¬¨ (light edges).
’¥®à¥¬ 24.1
ãáâì G = (V; E ) | á¢ï§­ë© ­¥®à¨¥­â¨à®¢ ­­ë© £à ä, ­ ¬­®¦¥á⢥ ¢¥à設 ª®â®à®£® ®¯à¥¤¥«¥­ ¢¥é¥á⢥­­ ï äã­ªæ¨ï w. ãáâì
A | ¬­®¦¥á⢮ àñ¡¥à, ïî饥áï ¯®¤¬­®¦¥á⢮¬ ­¥ª®â®à®£® ¬¨­¨¬ «ì­®£® ®á⮢ £à ä G. ãáâì (S; V n S ) | à §à¥§ £à ä G,
ᮣ« ᮢ ­­ë© á A, (u; v) | «ñ£ª®¥ ॡ஠¤«ï í⮣® à §à¥§ . ’®-
®áâ஥­¨¥ ¬¨­¨¬ «ì­®£® ®á⮢ 485
¨áã­®ª 24.3 24.3 (ª ¤®ª § ⥫ìáâ¢ã ⥮६ë 24.1). ‚¥à設ë S | çñà­ë¥, ¢¥à設ë V n S | ¡¥«ë¥. ˆ§®¡à ¦¥­ë ⮫쪮 àñ¡à ¬¨­¨¬ «ì­®£® ®á⮢ (­ §®¢ñ¬
¥£® T ). ñ¡à ¬­®¦¥á⢠A ¢ë¤¥«¥­ë á¥àë¬ æ¢¥â®¬; (u; v) | «ñ£ª®¥ ॡà®, ¯¥à¥á¥ª î饥 à §à¥§ (S; V n S ); (x; y) | ॡ஠¥¤¨­á⢥­­®£® ¯ã⨠p ®â u ª v ¢
T.
£¤ ॡ஠(u; v) ï¥âáï ¡¥§®¯ á­ë¬ ¤«ï A:
„®ª § ⥫ìá⢮
ãáâì T | ¬¨­¨¬ «ì­ë© ®á⮢, ᮤ¥à¦ 騩 A. à¥¤¯®«®¦¨¬,
çâ® T ­¥ ᮤ¥à¦¨â ॡà (u; v); ¯®áª®«ìªã ¢ ¯à®â¨¢­®¬ á«ãç ¥ ¤®ª §ë¢ ¥¬®¥ ã⢥ত¥­¨¥ ®ç¥¢¨¤­®. ®ª ¦¥¬, çâ® ¢ í⮬ á«ãç ¥ áãé¥áâ¢ã¥â ¤à㣮© ¬¨­¨¬ «ì­ë© ®á⮢ T 0, ᮤ¥à¦ 騩 ॡ஠(u; v),
â ª çâ® í⮠ॡ஠ï¥âáï ¡¥§®¯ á­ë¬.
Žá⮢ T á¢ï§¥­ ¨ ¯®â®¬ã ᮤ¥à¦¨â ­¥ª®â®àë© ¯ãâì p ¨§ u ¢ v
(à¨á. 24.3). ®áª®«ìªã ¢¥à設ë u ¨ v ¯à¨­ ¤«¥¦ â à §­ë¬ ç áâï¬
à §à¥§ (S; V n S ), ¢ ¯ã⨠p ¥áâì ¯® ªà ©­¥© ¬¥à¥ ®¤­® ॡ஠(x; y),
¯¥à¥á¥ª î饥 à §à¥§. â® ॡ஠­¥ «¥¦¨â ¢ A, â ª ª ª à §à¥§ ᮣ« ᮢ ­ á A. “¤ «¥­¨¥ ¨§ ¤¥à¥¢ T ॡà (x; y) à §¡¨¢ ¥â ¥£® ­ ¤¢¥
ª®¬¯®­¥­âë. „®¡ ¢«¥­¨¥ (u; v) ®¡ê¥¤¨­ï¥â í⨠ª®¬¯®­¥­âë ¢ ­®¢ë©
®á⮢ T 0 = T n f(x; y)g [ f(u; v)g:
®ª ¦¥¬, çâ® T 0 | ¬¨­¨¬ «ì­ë© ®á⮢. ®áª®«ìªã (u; v) | «ñ£ª®¥ ॡà®, ¯¥à¥á¥ª î饥 à §à¥§ (S; V n S ), ¨§êï⮥ ¨§ T ॡ஠(x; y)
¨¬¥¥â ­¥ ¬¥­ì訩 ¢¥á, 祬 ¤®¡ ¢«¥­­®¥ ¢¬¥áâ® ­¥£® ॡ஠(u; v),
â ª çâ® ¢á¥ ®á⮢ ¬®£ ⮫쪮 㬥­ìè¨âìáï. ® ®á⮢ ¡ë« ¬¨­¨¬ «ì­ë¬, §­ ç¨â, ¢¥á ¥£® ®áâ «áï ¯à¥¦­¨¬, ¨ ­®¢ë© ®á⮢ T 0 ¡ã¤¥â
¤à㣨¬ ¬¨­¨¬ «ì­ë¬ ®á⮢®¬ (⮣® ¦¥ ¢¥á ). ®í⮬ã ॡ஠(u; v),
ᮤ¥à¦ 饥áï ¢ T 0, ï¥âáï ¡¥§®¯ á­ë¬.
‘«¥¤ãî饥 á«¥¤á⢨¥ ⥮६ë 24.1 ¡ã¤¥â ¨á¯®«ì§®¢ ­® ¢ à §¤¥«¥ 24.2.
‘«¥¤á⢨¥ 24.2
ãáâì G = (V; E ) | á¢ï§­ë© ­¥®à¨¥­â¨à®¢ ­­ë© £à ä ¨ ­ ¬­®¦¥á⢥ E ®¯à¥¤¥«¥­ ¢¥é¥á⢥­­ ï äã­ªæ¨ï w. ãáâì A | ¬­®¦¥á⢮ àñ¡¥à £à ä , ïî饥áï ¯®¤¬­®¦¥á⢮¬ ­¥ª®â®à®£® ¬¨­¨¬ «ì­®£® ®á⮢ .  áᬮâਬ «¥á GA = (V; A). ãáâì ¤¥à¥¢® C |
®¤­ ¨§ á¢ï§­ëå ª®¬¯®­¥­â «¥á GA = (V; A).  áᬮâਬ ¢á¥ àñ¡à £à ä , ᮥ¤¨­ï騥 ¢¥àè¨­ë ¨§ C á ¢¥à設 ¬¨ ­¥ ¨§ C , ¨ ¢®§ì¬ñ¬ á।¨ ­¨å ॡ஠­ ¨¬¥­ì襣® ¢¥á . ’®£¤ í⮠ॡ஠¡¥§®¯ á­®
¤«ï A:
„®ª § ⥫ìá⢮
®ç¥¢¨¤­®: à §à¥§ (C; V n C ) ᮣ« ᮢ ­ á A, ॡ஠(u; v) | «ñ£ª®¥
ॡ஠¤«ï í⮣® à §à¥§ .
“¯à ¦­¥­¨ï
24.1-1
ãáâì (u; v) | ॡ஠¬¨­¨¬ «ì­®£® ¢¥á ¢ £à ä¥ G: ®ª ¦¨â¥,
çâ® (u; v) ¯à¨­ ¤«¥¦¨â ­¥ª®â®à®¬ã ¬¨­¨¬ «ì­®¬ã ®á⮢ã í⮣®
£à ä .
486
ƒ« ¢ 24 Œ¨­¨¬ «ì­ë¥ ¯®ªàë¢ î騥 ¤¥à¥¢ìï
24.1-2
à®ä¥áá®à ã⢥ত ¥â, çâ® ¢¥à­® á«¥¤ãî饥 ®¡à 饭¨¥ ⥮६ë 24.1. ãáâì G = (V; E ) | á¢ï§­ë© ­¥®à¨¥­â¨à®¢ ­­ë© £à ä,
¨ ­ ¬­®¦¥á⢥ E ®¯à¥¤¥«¥­ ¢¥é¥á⢥­­ ï äã­ªæ¨ï w. ãáâì A
| ¯®¤¬­®¦¥á⢮ E , ïî饥áï ¯®¤¬­®¦¥á⢮¬ ­¥ª®â®à®£® ¬¨­¨¬ «ì­®£® ®á⮢ G. ãáâì (S; V n S ) | «î¡®© à §à¥§ G, ᮣ« ᮢ ­­ë© á A, (u; v) | ¡¥§®¯ á­®¥ ॡ஠¤«ï A, ¯¥à¥á¥ª î饥 (S; V n S ).
’®£¤ ॡ஠(u; v) ï¥âáï «ñ£ª¨¬ ॡ஬, ¯¥à¥á¥ª î騬 íâ®â
à §à¥§. ®áâன⥠ª®­âà¯à¨¬¥à ª ã⢥ত¥­¨î ¯à®ä¥áá®à .
24.1-3
®ª ¦¨â¥, çâ® ¥á«¨ ॡ஠(u; v) ᮤ¥à¦¨âáï ¢ ­¥ª®â®à®¬ ¬¨­¨¬ «ì­®¬ ®á⮢¥, â® áãé¥áâ¢ã¥â ­¥ª®â®àë© à §à¥§ £à ä , ¤«ï ª®â®à®£® ®­® ï¥âáï «ñ£ª¨¬ ॡ஬, ¯¥à¥á¥ª î騬 íâ®â à §à¥§.
24.1-4
 áᬮâਬ ¬­®¦¥á⢮ ¢á¥å àñ¡¥à, ª®â®àë¥ ï¢«ïîâáï «ñ£ª¨¬¨
àñ¡à ¬¨ ¢á¥¢®§¬®¦­ëå à §à¥§®¢ £à ä . à¨¢¥¤¨â¥ ¯à®á⮩ ¯à¨¬¥à,
ª®£¤ íâ® ¬­®¦¥á⢮ ­¥ ï¥âáï ¬¨­¨¬ «ì­ë¬ ®á⮢®¬.
24.1-5
ãáâì e | ॡ஠¬ ªá¨¬ «ì­®£® ¢¥á ¢ ­¥ª®â®à®¬ 横«¥ £à ä G = (V; E ). „®ª ¦¨â¥, çâ® áãé¥áâ¢ã¥â ¬¨­¨¬ «ì­ë© ®á⮢ £à ä G = (V; E n feg), ª®â®àë© ï¢«ï¥âáï â ª¦¥ ¬¨­¨¬ «ì­ë¬ ®á⮢®¬
£à ä G.
24.1-6
®ª ¦¨â¥, çâ® ¥á«¨ ¤«ï «î¡®£® à §à¥§ £à ä áãé¥áâ¢ã¥â ¥¤¨­á⢥­­®¥ «ñ£ª®¥ ॡà®, ¯¥à¥á¥ª î饥 íâ®â à §à¥§, â® ¢ £à ä¥ ¥áâì
⮫쪮 ®¤¨­ ¬¨­¨¬ «ì­ë© ®á⮢. ®ª ¦¨â¥, çâ® ®¡à â­®¥ ã⢥ত¥­¨¥ ­¥¢¥à­®.
24.1-7
Ž¡êïá­¨â¥, ¯®ç¥¬ã ¢ £à ä¥ á ¯®«®¦¨â¥«ì­ë¬¨ ¢¥á ¬¨ àñ¡¥à «î¡®¥ ¯®¤¬­®¦¥á⢮ àñ¡¥à, á¢ï§ë¢ î饥 ¢á¥ ¢¥àè¨­ë ¨ ®¡« ¤ î饥
¬¨­¨¬ «ì­ë¬ á㬬 à­ë¬ ¢¥á®¬ (á।¨ â ª¨å ¯®¤¬­®¦¥áâ¢), ï¥âáï ¤¥à¥¢®¬. à¨¢¥¤¨â¥ ¯à¨¬¥à, ¯®ª §ë¢ î騩, çâ® íâ® § ª«î祭¨¥ ¯¥à¥áâ ñâ ¡ëâì ¢¥à­ë¬, ¥á«¨ ¢¥á àñ¡¥à ¬®£ãâ ¡ëâì ®âà¨æ ⥫ì­ë¬¨.
24.1-8
ãáâì T | ¬¨­¨¬ «ì­ë© ®á⮢ £à ä G. ‘®áâ ¢¨¬ 㯮à冷祭­ë© ᯨ᮪ ¢¥á®¢ ¢á¥å àñ¡¥à ®á⮢ T . ®ª ¦¨â¥, çâ® ¤«ï «î¡®£®
¤à㣮£® ¬¨­¨¬ «ì­®£® ®á⮢ ¯®«ãç¨âáï â®â ¦¥ á ¬ë© á¯¨á®ª.
24.1-9
ãáâì T | ¬¨­¨¬ «ì­ë© ®á⮢ £à ä G = (V; E ). ãáâì V 0 |
¯®¤¬­®¦¥á⢮ V . —¥à¥§ T 0 ®¡®§­ 稬 ¯®¤£à ä T , ¯®à®¦¤ñ­­ë© V 0,
ç¥à¥§ G0 | ¯®¤£à ä G, ¯®à®¦¤ñ­­ë© V 0. ®ª ¦¨â¥, çâ® ¥á«¨ T 0
á¢ï§¥­, â® T 0 | ¬¨­¨¬ «ì­ë© ®á⮢ G0.
€«£®à¨â¬ë Šàã᪠« ¨ à¨¬ 487
24.2 €«£®à¨â¬ë Šàã᪠« ¨ à¨¬ Ž¡ íâ¨å «£®à¨â¬ á«¥¤ãîâ ®¯¨á ­­®© á奬¥, ­® ¯®-à §­®¬ã ¢ë¡¨à îâ ¡¥§®¯ á­®¥ ॡà®. ‚ «£®à¨â¬¥ Šàã᪠« ¬­®¦¥á⢮ àñ¡¥à
A ¯à¥¤áâ ¢«ï¥â ᮡ®© «¥á, á®áâ®ï騩 ¨§ ­¥áª®«ìª¨å á¢ï§­ëå ª®¬¯®­¥­â (¤¥à¥¢ì¥¢). „®¡ ¢«ï¥âáï ॡ஠¬¨­¨¬ «ì­®£® ¢¥á á।¨ ¢á¥å
àñ¡¥à, ª®­æë ª®â®àëå «¥¦ â ¢ à §­ëå ª®¬¯®­¥­â å.
‚ «£®à¨â¬¥ à¨¬¥ ¬­®¦¥á⢮ A ¯à¥¤áâ ¢«ï¥â ᮡ®© ®¤­® ¤¥à¥¢®, ¥§®¯ á­®¥ ॡà®, ¤®¡ ¢«ï¥¬®¥ ª A; ¢ë¡¨à ¥âáï ª ª ॡà®
­ ¨¬¥­ì襣® ¢¥á , ᮥ¤¨­ïî饥 í⮠㦥 ¯®áâ஥­­®¥ ¤¥à¥¢® á ­¥ª®â®à®© ­®¢®© ¢¥à設®©.
€«£®à¨â¬ Šàã᪠« ‚ «î¡®© ¬®¬¥­â à ¡®âë «£®à¨â¬ Šàã᪠« ¬­®¦¥á⢮ A ¢ë¡à ­­ëå àñ¡¥à (ç áâì ¡ã¤ã饣® ®á⮢ ) ­¥ ᮤ¥à¦¨â 横«®¢. Ž­®
ᮥ¤¨­ï¥â ¢¥àè¨­ë £à ä ¢ ­¥áª®«ìª® á¢ï§­ëå ª®¬¯®­¥­â, ª ¦¤ ï
¨§ ª®â®àëå ï¥âáï ¤¥à¥¢®¬. ‘।¨ ¢á¥å àñà¥, ᮥ¤¨­ïîé¨å ¢¥àè¨­ë ¨§ à §­ëå ª®¬¯®­¥­â, ¡¥àñâáï ॡ஠­ ¨¬¥­ì襣® ¢¥á .  ¤®
¯à®¢¥à¨âì, çâ® ®­® ï¥âáï ¡¥§®¯ á­ë¬.
ãáâì (u; v) | â ª®¥ ॡà®, ᮥ¤¨­ïî饥 ¢¥àè¨­ë ¨§ ª®¬¯®­¥­â
C1 ¨ C2 . â® ॡ஠ï¥âáï «ñ£ª¨¬ ॡ஬ ¤«ï à §à¥§ C1; V n C1, ¨
¬®¦­® ¢®á¯®«ì§®¢ âìáï ⥮६®© 24.1 (¨«¨ ¯àאַ á«¥¤á⢨¥¬ 24.2).
¥ «¨§ æ¨ï «£®à¨â¬ Šàã᪠« ­ ¯®¬¨­ ¥â «£®à¨â¬ ¢ëç¨á«¥­¨ï á¢ï§­ëå ª®¬¯®­¥­â (à §¤. 22.1) ¨ ¨á¯®«ì§ã¥â áâàãªâãàë ¤ ­­ëå ¤«ï ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥á⢠(£«. 22), «¥¬¥­â ¬¨ ¬­®¦¥á⢠ïîâáï ¢¥àè¨­ë £à ä .  ¯®¬­¨¬, çâ® Find-Set(u) ¢®§¢à é ¥â ¯à¥¤áâ ¢¨â¥«ï ¬­®¦¥á⢠, ᮤ¥à¦ 饣® í«¥¬¥­â u: „¢¥
¢¥à設ë u ¨ v ¯à¨­ ¤«¥¦ â ®¤­®¬ã ¬­®¦¥áâ¢ã (ª®¬¯®­¥­â¥), ¥á«¨
Find-Set(u) = Find-Set(v ). Ž¡ê¥¤¨­¥­¨¥ ¤¥à¥¢ì¥¢ ¢ë¯®«­ï¥âáï
¯à®æ¥¤ãன Union.
\textsc{MST-Kruskal}$(G,w)$
1 $A \leftarrow \emptyset$
2 {\bf for} $v\in V[G]$
3
{\bf do} \textsc{Make-Set}$(v)$
4 㯮à冷ç¨âì àñ¡à $E$ ¯® ¢¥á ¬
5 {\bf for} $(u,v)\in E$ (¢ ¯®à浪¥ ¢®§à áâ ­¨ï ¢¥á )
6
{\bf do if} \textsc{Find-Set}$(u) \noteq$ \textsc{FindSet}$(v)$
7
{\bf then} $A \leftarrow A \cup \{(u,v)\}$
8
\textsc{Union} $(u,v)$
9 {\bf return} $A$
 à¨áã­ª¥ 24.4 ¯®ª § à ¡®â «£®à¨â¬ . ‘­ ç « (áâப¨ 1{3)
¬­®¦¥á⢮ A ¯ãáâ®, ¨ ¥áâì jV j ¤¥à¥¢ì¥¢, ª ¦¤®¥ ¨§ ª®â®àëå ᮤ¥à¦¨â ¯® ®¤­®© ¢¥à設¥. ‚ áâப¥ 4 àñ¡à ¨§ E 㯮à冷稢 îâáï
¯® ­¥ã¡ë¢ ­¨î ¢¥á . ‚ 横«¥ (áâப¨ 5{8) ¬ë ¯à®¢¥à塞, «¥¦ â «¨
488
ƒ« ¢ 24 Œ¨­¨¬ «ì­ë¥ ¯®ªàë¢ î騥 ¤¥à¥¢ìï
¨áã­®ª 24.4 24.4  ¡®â «£®à¨â¬ Šàã᪠« ­ £à ä¥ à¨á. 24.1. ñ¡à à áâã饣® «¥á (A) ¢ë¤¥«¥­ë á¥àë¬ æ¢¥â®¬. ñ¡à à áᬠâਢ îâáï ¢ ¯®à浪¥
­¥ã¡ë¢ ­¨ï ¢¥á®¢ (⥪ã饥 ॡ஠¯®ª § ­® áâ५ª®©). …᫨ ॡ஠ᮥ¤¨­ï¥â ¤¢ à §«¨ç­ëå ¤¥à¥¢ , ®­® ¤®¡ ¢«ï¥âáï ª «¥áã, ¤¥à¥¢ìï ᫨¢ îâáï.
ª®­æë à¥¡à ¢ ®¤­®¬ ¤¥à¥¢¥. …᫨ ¤ , ⮠ॡ஠­¥«ì§ï ¤®¡ ¢¨âì ª
«¥áã (­¥ ᮧ¤ ¢ ï 横« ), ¨ ®­® ®â¡à áë¢ ¥âáï. …᫨ ­¥â, ⮠ॡà®
¤®¡ ¢«ï¥âáï ª A (áâப 7), ¨ ¤¢ ᮥ¤¨­ñ­­ëå ¨¬ ¤¥à¥¢ ®¡ê¥¤¨­ïîâáï ¢ ®¤­® (áâப 8).
®¤áç¨â ¥¬ ¢à¥¬ï à ¡®âë «£®à¨â¬ Šàã᪠« . ã¤¥¬ áç¨â âì,
çâ® ¤«ï åà ­¥­¨ï ­¥¯¥à¥á¥ª îé¨åáï ¬­®¦¥á⢠¨á¯®«ì§ã¥âáï ¬¥â®¤
à §¤¥« 22.3 (á ®¡ê¥¤¨­¥­¨¥¬ ¯® à ­£ã ¨ ᦠ⨥¬ ¯ã⥩ | á ¬ë©
¡ëáâàë© ¨§ ¨§¢¥áâ­ëå). ˆ­¨æ¨ «¨§ æ¨ï § ­¨¬ ¥â ¢à¥¬ï O(V ), 㯮à冷祭¨¥ àñ¡¥à ¢ áâப¥ 4 | O(E lg E ): „ «¥¥ ¯à®¨§¢®¤¨âáï O(E )
®¯¥à 権, ¢ ᮢ®ªã¯­®á⨠§ ­¨¬ îé¨å ¢à¥¬ï O(E(E; V )); £¤¥ | äã­ªæ¨ï, ®¡à â­ ï ª ä㭪樨 €ªª¥à¬ ­ (á¬. à §¤¥« 22.4). ®áª®«ìªã (E; V ) = o(lg E ); ®¡é¥¥ ¢à¥¬ï à ¡®âë «£®à¨â¬ Šàã᪠« á®áâ ¢«ï¥â O(E lg E ) (®á­®¢­®¥ ¢à¥¬ï ã室¨â ­ á®àâ¨à®¢ªã).
€«£®à¨â¬ à¨¬ Š ª ¨ «£®à¨â¬ Šàã᪠« , «£®à¨â¬ à¨¬ á«¥¤ã¥â ®¡é¥© á奬¥
«£®à¨â¬ ¯®áâ஥­¨ï ¬¨­¨¬ «ì­®£® ®á⮢ ¨§ à §¤¥« 24.1. Ž­ ¯®å®¦ ­ «£®à¨â¬ „¥©ªáâàë ¯®¨áª ªà âç ©è¥£® ¯ã⨠¢ £à ä¥ (à §¤¥« 25.2). ‚ í⮬ «£®à¨â¬¥ à áâãé ï ç áâì ®á⮢ ¯à¥¤áâ ¢«ï¥â
ᮡ®© ¤¥à¥¢® (¬­®¦¥á⢮ àñ¡¥à ª®â®à®£® ¥áâì A). Š ª ¯®ª § ­® ­ à¨á. 24.5, ä®à¬¨à®¢ ­¨¥ ¤¥à¥¢ ­ 稭 ¥âáï á ¯à®¨§¢®«ì­®© ª®à­¥¢®© ¢¥à設ë r.  ª ¦¤®¬ è £¥ ¤®¡ ¢«ï¥âáï ॡ஠­ ¨¬¥­ì襣®
¢¥á á।¨ àñ¡¥à ᮥ¤¨­ïîé¨å ¢¥à設ë í⮣® ¤¥à¥¢ á ¢¥à設 ¬¨
­¥ ¨§ ¤¥à¥¢ . ® á«¥¤á⢨î 24.2 â ª¨¥ àñ¡à ïîâáï ¡¥§®¯ á­ë¬¨
¤«ï A, â ª çâ® ¢ १ã«ìâ ⥠¯®«ãç ¥âáï ¬¨­¨¬ «ì­ë© ®á⮢.
à¨ ॠ«¨§ 樨 ¢ ¦­® ¡ëáâà® ¢ë¡¨à âì «ñ£ª®¥ ॡà®. €«£®à¨â¬
¯®«ãç ¥â ­ ¢å®¤ á¢ï§­ë© £à ä G ¨ ª®à¥­ì r ¬¨­¨¬ «ì­®£® ¯®ªàë¢ î饣® ¤¥à¥¢ . ‚ 室¥ «£®à¨â¬ ¢á¥ ¢¥à設ë, ¥éñ ­¥ ¯®¯ ¢è¨¥ ¢
¤¥à¥¢®, åà ­ïâáï ¢ ®ç¥à¥¤¨ á ¯à¨®à¨â¥â ¬¨. à¨®à¨â¥â ¢¥à設ë v
®¯à¥¤¥«ï¥âáï §­ 祭¨¥¬ key[v], ª®â®à®¥ à ¢­® ¬¨­¨¬ «ì­®¬ã ¢¥áã
àñ¡¥à, ᮥ¤¨­ïîé¨å v c ¢¥à設 ¬¨ ¤¥à¥¢ A. (…᫨ â ª¨å àñ¡¥à
­¥â, ¯®« £ ¥¬ key[v] = 1:) ®«¥ [v] ¤«ï ¢¥à設 ¤¥à¥¢ 㪠§ë¢ ¥â
­ த¨â¥«ï, ¤«ï ¢¥à設ë v 2 Q 㪠§ë¢ ¥â ­ ¢¥à設㠤¥à¥¢ ,
¢ ª®â®àãî ¢¥¤ñâ ॡ஠¢¥á key[v] (®¤­® ¨§ â ª¨å àñ¡¥à, ¥á«¨ ¨å
­¥áª®«ìª®). Œë ­¥ åà ­¨¬ ¬­®¦¥á⢮ A ¢¥à設 áâந¬®£® ¤¥à¥¢ ®; ¥£® ¬®¦­® ¢®ááâ ­®¢¨âì ª ª
A = f(v; [v ]) : v 2 V n frg n Qg:
‚ ª®­¥æ à ¡®âë «£®à¨â¬ ®ç¥à¥¤ì Q ¯ãáâ , ¨ ¬­®¦¥á⢮
A = f(v; [v]) : v 2 V n frgg:
¥áâì ¬­®¦¥á⢮ ¢¥à設 ¯®ªàë¢ î饣® ¤¥à¥¢ .
€«£®à¨â¬ë Šàã᪠« ¨ à¨¬ 489
¨áã­®ª 24.5 24.5  ¡®â «£®à¨â¬ à¨¬ ­ £à ä¥ à¨á. 24.1 á ª®à­¥¢®© ¢¥à設®© a ñ¡à , ¢å®¤ï騥 ¢ ¤¥à¥¢® A. ¢ë¤¥«¥­ë á¥àë¬; ¢¥àè¨­ë ¤¥à¥¢ |
çñà­ë¬.  ª ¦¤®¬ è £¥ ª A ¤®¡ ¢«ï¥âáï ॡà®, ¯¥à¥á¥ª î饥 à §à¥§ ¬¥¦¤ã
¤¥à¥¢®¬ ¨ ¥£® ¤®¯®«­¥­¨¥¬.  ¯à¨¬¥à, ­ ¢â®à®¬ è £¥ ¬®¦­® ¡ë«® ¡ë ¤®¡ ¢¨âì
«î¡®¥ ¨§ àñ¡¥à (b; c) ¨ (a; h):
\textsc{MST-Prim}$(G,W,r)$
1 $Q \leftarrow V[G]$
2 {\bf for} $u\in Q$
3
{\bf do} $key[u] \gets \infty$
4 $key[r] \gets 0$
5 $\pi[r] \gets \textsc{nil}$
6 {\bf while} $Q \noteq \emptyset$
7
{\bf do} $u \leftarrow \textsc{Extract-Min}(Q)$
8
{\bf for} $v\in Adj[u]$
9
{\bf do if} $v\in Q$ ¨ $w(u,v)<key[v]$
10
{\bf then} $\pi(v) \leftarrow u$
11
$key(v) \leftarrow w(u,v)$
 à¨á. 24.5 ¯®ª § ­ à ¡®â «£®à¨â¬ à¨¬ . ®á«¥ ¨á¯®«­¥­¨ï áâப 1{5 ¨ ¯¥à¢®£® ¯à®å®¤ 横« ¢ áâப å 6 ; ;11 ¤¥à¥¢®
á®á⮨⠨§ ¥¤¨­á⢥­­®© ¢¥à設ë r, ¢á¥ ®áâ «ì­ë¥ ¢¥àè¨­ë ­ 室ïâáï ¢ ®ç¥à¥¤¨, ¨ §­ 祭¨¥ key[v] ¤«ï ­¨å à ¢­® ¤«¨­¥ à¥¡à ¨§ r ¢
v ¨«¨ +1, ¥á«¨ â ª®£® à¥¡à ­¥â (¢ ¯¥à¢®¬ á«ãç ¥ [v] = r. ’ ª¨¬
®¡à §®¬, ¢ë¯®«­¥­ ®¯¨á ­­ë© ¢ëè¥ ¨­¢ ਠ­â (¤¥à¥¢® ¥áâì ç áâì
­¥ª®â®à®£® ®á⮢ , ¤«ï ¢¥à設 ¤¥à¥¢ ¯®«¥ 㪠§ë¢ ¥â ­ த¨â¥«ï, ¤«ï ®áâ «ì­ëå ¢¥à設 ­ "¡«¨¦ ©èãî" ¢¥à設㠤¥à¥¢ | ¢¥á à¥¡à ¤® ­¥ñ åà ­¨âáï ¢ keu[v ].
‚६ï à ¡®âë «£®à¨â¬ à¨¬ § ¢¨á¨â ®â ⮣®, ª ª à ¢«¨§®¢ ­ ®ç¥à¥¤ì Q: …᫨ ¨á¯®«ì§®¢ âì ¤¢®¨ç­ãî ªãçã (£« ¢ 7), ¨­¨æ¨ «¨§ æ¨î ¢ áâப å 1{4 ¬®¦­® ¢ë¯®«­¨âì á ¯®¬®éìî ¯à®æ¥¤ãàë Build-Heap § ¢à¥¬ï O(V ). „ «¥¥ 横« ¢ë¯®«­ï¥âáï jV j à §,
¨ ª ¦¤ ï ®¯¥à æ¨ï Extract-Min § ­¨¬ ¥â ¢à¥¬ï O(lg V ), ¢á¥£®
O(V lg V ). –¨ª« for ¢ áâப å 8{11 ¢ë¯®«­ï¥âáï ¢ ®¡é¥© á«®¦­®áâ¨
O(E ) à §, ¯®áª®«ìªã á㬬 á⥯¥­¥© ¢¥à設 £à ä à ¢­ 2jE j. à®¢¥àªã ¯à¨­ ¤«¥¦­®á⨠¢ áâப¥ 9 ¢­ãâਠ横« for ¬®¦­® ॠ«¨§®¢ âì § ¢à¥¬ï O(1), ¥á«¨ åà ­¨âì á®áâ®ï­¨¥ ®ç¥à¥¤¨ ¥éñ ¨ ª ª ¡¨â®¢ë© ¢¥ªâ®à à §¬¥à jV j. à¨á¢ ¨¢ ­¨¥ ¢ áâப¥ 11 ¯®¤à §ã¬¥¢ ¥â
¢ë¯®«­¥­¨¥ ®¯¥à 樨 㬥­ì襭¨ï ª«îç (Decrease-Key), ª®â®à ï ¤«ï ¤¢®¨ç­®© ªãç¨ ¬®¦¥â ¡ëâì ¢ë¯®«­¥­ § ¢à¥¬ï O(lg V ):
’ ª¨¬ ®¡à §®¬, ¢á¥£® ¯®«ãç ¥¬ O(V lg V + E lg V ) = O(E lg V ) |
â ¦¥ á ¬ ï ®æ¥­ª , çâ® ¡ë« ¤«ï «£®à¨â¬ Šàã᪠« .
Ž¤­ ª® í⠮業ª ¬®¦¥â ¡ëâì ã«ãç襭 , ¥á«¨ ¨á¯®«ì§®¢ âì ¢
«£®à¨â¬¥ à¨¬ 䨡®­ ç稥¢ë ªãç¨. Š ª ¬ë ¢¨¤¥«¨ ¢ £« ¢¥ 21,
á ¯®¬®éìî 䨡¡®­ 稥¢®© ªãç¨ ¬®¦­® ¢ë¯®«­ïâì ®¯¥à æ¨î
Extract-Min § ãçñâ­®¥ ¢à¥¬ï O(lg V ); ®¯¥à æ¨î Decrease-
490
ƒ« ¢ 24 Œ¨­¨¬ «ì­ë¥ ¯®ªàë¢ î騥 ¤¥à¥¢ìï
Key | § (ãçñâ­®¥) ¢à¥¬ï O(1). ( á ¨­â¥à¥áã¥â ¨¬¥­­® á㬬 à­®¥
¢à¥¬ï ¢ë¯®«­¥­¨ï ¯®á«¥¤®¢ ⥫쭮á⨠®¯¥à 権, â ª çâ® ¬®à⨧¨à®¢ ­­ë© ­ «¨§ âãâ ¢ á ¬ë© à §.) ®í⮬㠯ਠ¨á¯®«ì§®¢ ­¨¨
䨡®­ ç稥¢ëå ªãç ¤«ï ॠ«¨§ 樨 ®ç¥à¥¤¨ ¢à¥¬ï à ¡®âë «£®à¨â¬ à¨¬ á®áâ ¢¨â O(E + V lg V ).
“¯à ¦­¥­¨ï
24.2-1
„«ï ®¤­®£® ¨ ⮣® ¦¥ £à ä G «£®à¨â¬ Šàã᪠« ¬®¦¥â ¤ ¢ âì à §­ë¥ १ã«ìâ âë (¥á«¨ ¯®-à §­®¬ã 㯮à冷ç¨âì àñ¡à ®¤¨­ ª®¢®£® ¢¥á ). ®ª ¦¨â¥, çâ® ¤«ï ª ¦¤®£® ¬¨­¨¬ «ì­®£® ®á⮢ T £à ä G áãé¥áâ¢ã¥â 㯮à冷祭¨¥ àñ¡¥à £à ä G, ¯à¨ ª®â®à®¬
«£®à¨â¬ Šàã᪠« ¤ áâ ª ª à § T:
24.2-2
ƒà ä (V; E ) § ¤ ­ ¬ âà¨æ¥© ᬥ¦­®áâ¨. ®áâன⥠¯à®áâãî ॠ«¨§ æ¨î «£®à¨â¬ à¨¬ , ¢à¥¬ï à ¡®âë ª®â®à®© ¥áâì O(V 2):
24.2-3
ˆ¬¥¥âáï «¨ ¢ë¨£àëè ¯à¨ ¯¥à¥å®¤¥ ®â ¤¢®¨ç­ëå ªãç ª 䨡®­ ç稥¢ë¬ ¤«ï à §à¥¦¥­­®£® £à ä G = (V; E ) ¤«ï ª®â®à®£® jE j = (V )?
¤«ï ¯«®â­®£® £à ä¥, £¤¥ jE j = (V 2)? à¨ ª ª®¬ ᮮ⭮襭¨¨
¬¥¦¤ã jE j ¨ jV j ¯¥à¥å®¤ ª 䨡®­ ç稥¢ë¬ ªãç ¬ ¯à¨¢®¤¨â ª ᨬ¯â®âç¥áª®¬ã ã«ãç襭¨î íä䥪⨢­®áâ¨?
24.2-4
ãáâì ¢¥á àñ¡¥à £à ä G = (V; E ) | æ¥«ë¥ ç¨á« ¢ ¨­â¥à¢ «¥
®â 1 ¤® jV j. Š ª®© ᪮à®áâ¨ à ¡®âë «£®à¨â¬ Šàã᪠« ¬®¦­®
¤®¡¨âìáï? € ¥á«¨ ¢¥á | æ¥«ë¥ ç¨á« ®â 1 ¤® W (£¤¥ W | ­¥ª®â®à ï
ª®­áâ ­â )?
24.2-5
ãáâì ¢¥á àñ¡¥à £à ä G = (V; E ) | æ¥«ë¥ ç¨á« ¢ ¨­â¥à¢ «¥
®â 1 ¤® jV j. Š ª®© ᪮à®áâ¨ à ¡®âë «£®à¨â¬ à¨¬ ¬®¦­® ¤®¡¨âìáï? € ¥á«¨ ¢¥á | æ¥«ë¥ ç¨á« ®â 1 ¤® W (£¤¥ W | ­¥ª®â®à ï
ª®­áâ ­â )?
24.2-6
“ª ¦¨â¥ íä䥪⨢­ë© «£®à¨â¬ ¤«ï â ª®© § ¤ ç¨: ¤«ï ¤ ­­®£®
£à ä G ¨ ¢¥á®¢®© ä㭪樥© w ­ ©â¨ ­ ¨«ãç襥 ¯®ªàë¢ î饥 ¤¥à¥¢®, ¥á«¨ ªà¨â¥à¨¥¬ "ª ç¥á⢠" ¤¥à¥¢ áç¨â âì ­¥ á㬬㠢¥á®¢,
¢¥á á ¬®£® âï¦ñ«®£® ॡà .
24.2-7*
ãáâì ¨§¢¥áâ­®, çâ® ¢¥á àñ¡¥à £à ä | ­¥§ ¢¨á¨¬ë¥ á«ãç ©­ë¥
ç¨á« , à ¢­®¬¥à­® à á¯à¥¤¥«¥­­ë¥ ­ ¯®«ã¨­â¥à¢ «¥ [0; 1). Š ª íâ®
¨á¯®«ì§®¢ âì ¤«ï ã᪮७¨ï à ¡®âë ®¤­®£® ¨§ «£®à¨â¬®¢ (Šàã᪠« ¨«¨ à¨¬ )?
24.2-8*
ãáâì ¬¨­¨¬ «ì­ë© ®á⮢ £à ä G 㦥 ¯®áâ஥­. Š ª ¡ëáâà®
¬®¦­® ­ ©â¨ ­®¢ë© ¬¨­¨¬ «ì­ë© ®á⮢, ¥á«¨ ¤®¡ ¢¨âì ª £à äã G
­®¢ãî ¢¥à設㠨 ¨­æ¨¤¥­â­ë¥ ¥© àñ¡à ?
‡ ¤ ç¨
€«£®à¨â¬ë Šàã᪠« ¨ à¨¬ 491
24-1 ‚â®à®© ¯® ¢¥«¨ç¨­¥ ®á⮢
ãáâì G = (V; E ) | ­¥®à¨¥­â¨à®¢ ­­ë© á¢ï§­ë© £à ä á ¢¥á®¢®© ä㭪樥© w : E ! R, ¨ ¯ãáâì jE j > jV j (ç¨á«® àñ¡¥à ¡®«ìè¥
¬¨­¨¬ «ì­® ¢®§¬®¦­®£®). “¯®à冷稬 ¢á¥ ¯®ªàë¢ î騥 ¤¥à¥¢ìï ¢
¯®à浪¥ ­¥ã¡ë¢ ­¨ï ¢¥á®¢; ­ á ¡ã¤¥â ¨­â¥à¥á®¢ âì ¢â®à®¥ ¯® ¢¥«¨ç¨­¥ ¢ í⮬ ¯®à浪¥. (ã¤¥¬ áç¨â âì ¤«ï ¯à®áâ®âë, çâ® ¢á¥ ¤¥à¥¢ìï
¢ í⮬ ᯨ᪥ ¨¬¥îâ à §«¨ç­ë¥ áã¬¬ë ¢¥á®¢.)
a. ãáâì T | ¬¨­¨¬ «ì­®¥ ¯®ªàë¢ î饥 ¤¥à¥¢® £à ä G: „®ª ¦¨â¥, çâ® ¢â®à®¥ ¯® ¢¥«¨ç¨­¥ ¤¥à¥¢® ¯®«ãç ¥âáï ¨§ T § ¬¥­®©
­¥ª®â®à®£® ॡà (u; v) 2 T ­ ¤à㣮¥ ॡ஠(x; y) 2= T .
b. ãáâì T | ¯®ªàë¢ î饥 ¤¥à¥¢® £à ä G. „«ï «î¡ëå ¤¢ãå ¢¥à設 u; v 2 V ç¥à¥§ max[u; v] ®¡®§­ 稬 ॡ஠¬ ªá¨¬ «ì­®£® ¢¥á ­ ¥¤¨­á⢥­­®¬ ¯ãâ¨, ᮥ¤¨­ïî饬 u ¨ v ¢ T . “ª ¦¨â¥ «£®à¨â¬
á ¢à¥¬¥­¥¬ à ¡®âë O(V 2), ª®â®àë© ª®â®àë© ¤«ï «î¡®£® § ¤ ­­®£®
T ­ 室¨â max[u; v] ¤«ï ¢á¥å ¯ à ¢¥à設 u; v 2 V .
c. “ª ¦¨â¥ íä䥪⨢­ë© «£®à¨â¬ ¯®¨áª ¢â®à®£® ¯® ¢¥«¨ç¨­¥
¯®ªàë¢ î饣® ¤¥à¥¢ .
24-2 Œ¨­¨¬ «ì­ë© ®á⮢ ¢ à §à¥¦¥­­®¬ £à ä¥
„«ï ®ç¥­ì à §à¥¦¥­­®£® á¢ï§­®£® £à ä G = (V; E ) ¢à¥¬ï à ¡®âë O(E + V lg V ) «£®à¨â¬ à¨¬ (á 䨡®­ ç稥¢ë¬¨ ªãç ¬¨)
¬®¦­® ¥éñ ᮪à â¨âì, ¥á«¨ ¯à¥¤¢ à¨â¥«ì­® ¯à¥®¡à §®¢ âì £à ä G,
㬥­ì訢 ç¨á«® ¥£® ¢¥à設. Ž¯¨á ­­ ï ­¨¦¥ ¯à®æ¥¤ãà ¯à¥®¡à -
§®¢ ­¨ï MST-Reduce ¯®«ãç ¥â ­ ¢å®¤ £à ä G á ¢¥á®¢®© ä㭪樥©
¨ ¢®§¢à é ¥â "ᦠâãî" ¢¥àá¨î G0 £à ä G, ®¤­®¢à¥¬¥­­® ¤®¡ ¢«ïï àñ¡à ª ¡ã¤ã饬㠮á⮢ã. â ¯à®æ¥¤ãà ¨á¯®«ì§ã¥â ¬ áᨢ
orig[u; v ]; ¢ ­ ç «ì­ë© ¬®¬¥­â orig[u; v ] = (u; v ).
ˆ¤¥ï ¯à®áâ : ¥á«¨ ¤«ï ­¥ª®â®à®© ¢¥àè¨­ë ¢§ïâì ªà âç ©è¥¥ ॡà®, ¨§ ­¥ñ ¢ë室ï饥, â® ¬®¦­® ¨áª âì ¬¨­¨¬ «ì­ë© ®á⮢ á।¨
®á⮢®¢, ¢ª«îç îé¨å í⮠ॡ஠| íâ § ¤ ç ᢮¤¨âáï ª § ¤ ç¥
¯®¨áª ®á⮢ ¤«ï ¬¥­ì襣® £à ä (á ®â®¦¤¥á⢫ñ­­ë¬¨ ¢¥à設 ¬¨). ñ¡à , ¯® ª®â®àë¬ ¯à®¢¥¤¥­ ᪫¥©ª , ¯®¬¥é îâáï ¢ T , ¤«ï ª ¦¤®£® ॡà (u; v), ᮥ¤¨­ïî饣® ¢¥àè¨­ë ­®¢®£® £à ä ,
åà ­¨âáï w[u; v] | ⮠ॡ஠¨á室­®£® £à ä , ¨§ ª®â®à®£® ®­® ¯à®¨§®è«® (¥á«¨ â ª¨å ¡ë«® ­¥áª®«ìª®, â® ¡¥àñâáï ªà âç ©è¥¥).
\textsc{MST-Reduce} (G,T)
1 {\bf for} $v\in V[G]$
2
{\bf do} $mark[v] \leftarrow \textsc{false}$
3
\textsc{Make-Set(v)}
4 {\bf for} $u\in V[G]$
5
{\bf do if} $mark[u] = \textsc{false}$
6
{\bf then} ¢ë¡à âì $v\in Adj[u]$ á ­ ¨¬¥­ì訬 $w[u,v]$
7
\textsc{Union(u,v)}
8
$T \leftarrow T\cup \{orig[u,v]\}$
9
$mark[u] \leftarrow $mark[v] \leftarrow
492
ƒ« ¢ 24 Œ¨­¨¬ «ì­ë¥ ¯®ªàë¢ î騥 ¤¥à¥¢ìï
10
11
12
13
14
15
16
17
18
19
20
21
22
23
\textsc{true}$
$V[G'] \leftarrow \{\textsc{Find-Set(v)} : v\in V[G] \}$
$E[G'] \leftarrow \emptyset$
{\bf for} $(x,y)\in E[G]$
{\bf do} $u \leftarrow \textsc{Find-Set(x)}$
$v \leftarrow \textsc{Find-Set(y)}$
{\bf if} $(u,v)\notin E[G']$
{\bf then} $E[G'] \leftarrow E[G']\cup\{(u,v)\}$
$orig[u,v] \leftarrow orig[x,y]$
$w[u,v] \leftarrow w[x,y]$
{\bf else if} $w[x,y] < w[u,v]$
{\bf then} $orig[u,v] \leftarrow orig[x,y]$
$w[u,v] \leftarrow w[x,y]$
¯®áâநâì ᯨ᪨ ᬥ¦­ëå ¢¥à設 $Adj$ ¤«ï $G'$
{\bf return} $G'$ ¨ $T$
a. ãáâì T | ¬­®¦¥á⢮ àñ¡¥à, ¢®§¢à éñ­­®¥ ¯à®æ¥¤ãன MSTReduce, T 0 | ¬¨­¨¬ «ì­ë© ®á⮢ £à ä G0, ¢®§¢à éñ­­®£® í⮩
¯à®æ¥¤ãன. „®ª ¦¨â¥, çâ® T [ forig[x; y] : (x; y) 2 T 0g | ¬¨­¨-
¬ «ì­ë© ®á⮢ £à ä G:
b. ®ª ¦¨â¥, çâ® jV [G0]j 6 jV j=2:
c. ®ª ¦¨â¥, ª ª ॠ«¨§®¢ âì ¯à®æ¥¤ãàã MST-Reduce â ª,
çâ®¡ë ®­ ¨á¯®«­ï« áì § ¢à¥¬ï O(E ): (“ª § ­¨¥. ˆá¯®«ì§ã©â¥ ­¥á«®¦­ë¥ áâàãªâãàë ¤ ­­ëå.)
d. ãáâì ¬ë ¯®¤¢¥à£«¨ £à ä k-ªà â­®© ®¡à ¡®âª¥ á ¯®¬®éìî ¯à®æ¥¤ãàë MST-Reduce (¢ë室 ®¤­®£® è £ ï¥âáï ¢å®¤®¬ á«¥¤ãî饣®). Ž¡êïá­¨â¥, ¯®ç¥¬ã çâ® ®¡é¥¥ ¢à¥¬ï ¢ë¯®«­¥­¨ï ¢á¥å k ¨â¥à 権 á®áâ ¢«ï¥â O(kE ).
e. ãáâì ¯®á«¥ k ¯à¨¬¥­¥­¨© ¯à®æ¥¤ãàë MST-Reduce ¬ë ¢®á¯®«ì§®¢ «¨áì «£®à¨â¬®¬ à¨¬ ¤«ï ᦠ⮣® £à ä . à¨ í⮬
¬®¦­® ¢ë¡à âì k â ª, çâ®¡ë ®¡é¥¥ ¢à¥¬ï à ¡®âë á®áâ ¢¨«®
O(E lg lg V ). ®ç¥¬ã? ’ ª®© ¢ë¡®à ᨬ¯â®â¨ç¥áª¨ ¬¨­¨¬¨§¨àã¥â
®¡é¥¥ ¢à¥¬ï à ¡®âë. ®ç¥¬ã?
f. à¨ ª ª®¬ ᮮ⭮襭¨¨ jE j ¨ jV j «£®à¨â¬ à¨¬ á ¯à¥¤¢ à¨â¥«ì­ë¬ ᦠ⨥¬ íä䥪⨢­¥¥ «£®à¨â¬ à¨¬ ¡¥§ â ª®£® ᦠâ¨ï?
‡ ¬¥ç ­¨ï
Š­¨£ ’ àìï­ [188] ᮤ¥à¦¨â ®¡§®à § ¤ ç, á¢ï§ ­­ëå á ¬¨­¨¬ «ì­ë¬¨ ¯®ªàë¢ î騬¨ ¤¥à¥¢ìﬨ, ¨ ¤ «ì­¥©èãî ¨­ä®à¬ æ¨î
® ­¨å. ˆáâ®à¨î § ¤ ç¨ ® ¬¨­¨¬ «ì­®¬ ¯®ªàë¢ î饬 ¤¥à¥¢¥ ®¯¨á «¨ ƒàí奬 ¨ •¥«« [92].
Š ª 㪠§ë¢ ¥â ’ àìï­, ¢¯¥à¢ë¥ «£®à¨â¬ ¯®áâ஥­¨ï ¬¨­¨¬ «ì­®£® ®á⮢ ¯®ï¢¨«áï ¢ áâ âì¥ ®à㢪¨ (O.Bor_uvka). €«£®à¨â¬
Šàã᪠« ®¯ã¡«¨ª®¢ ­ ¢ ¥£® áâ âì¥ 1956 £®¤ [131]. €«£®à¨â¬, ¨§¢¥áâ­ë© ª ª «£®à¨â¬ à¨¬ , ¤¥©á⢨⥫쭮 ¨§®¡à¥âñ­ ¨¬ ¨ ®¯¨á ­ ¢ [163], ­® à ­¥¥ ¥£® ­ èñ« Ÿà­¨ª (V.Jarnik, 1930).
€«£®à¨â¬ë Šàã᪠« ¨ à¨¬ 493
‚®§¬®¦­®áâì ¨á¯®«ì§®¢ ­¨ï ¦ ¤­ëå «£®à¨â¬®¢ á¢ï§ ­ á ⥬,
çâ® àñ¡à £à ä ®¡à §ãîâ ¬ âந¤, ¥á«¨ ­¥§ ¢¨á¨¬ë¬¨ áç¨â âì
¬­®¦¥á⢠àñ¡¥à ¡¥§ 横«®¢ (à §¤¥« 17.4).
 ¨¡®«¥¥ ¡ëáâàë¬ ¨§ ¨§¢¥áâ­ëå ¢ ­ áâ®ï騩 ¬®¬¥­â «£®à¨â¬®¢
¯®¨áª ¬¨­¨¬ «ì­®£® ®á⮢ (¤«ï á«ãç ï jE j = (V lg V )) ï¥âáï
«£®à¨â¬ à¨¬ , ॠ«¨§®¢ ­­ë© á ¯®¬®éìî 䨡®­ ç稥¢®© ªãç¨.
„«ï ¡®«¥¥ à §à¥¦¥­­ëå £à 䮢 ”।¬ ­ ¨ ’ àìï­ [75] ¯à¨¢®¤ïâ
«£®à¨â¬, ¢à¥¬ï à ¡®âë ª®â®à®£® á®áâ ¢«ï¥â O(E(jE j; jV j)); £¤¥
(jE j; jV j) = minfi : lg(i) jV j 6 jE j=jV jg. ®áª®«ìªã jE j > jV j, ¢à¥¬ï
à ¡®âë í⮣® «£®à¨â¬ ¥áâì O(E lg V ).
25
Šà âç ©è¨¥ ¯ã⨠¨§ ®¤­®© ¢¥à設ë
¥à¥¤ ­ ¬¨ | ª à⠢⮬®¡¨«ì­ëå ¤®à®£ ‘˜€ á ®¡®§­ 祭­ë¬¨
à ááâ®ï­¨ï¬¨; ª ª ¢ë¡à âì ªà âç ©è¨© ¬ àèàã⠮⠗¨ª £® ¤®
®áâ®­ ?
Œ®¦­®, ª®­¥ç­®, ¯¥à¥¡à âì ¢á¥ ¢®§¬®¦­ë¥ ¬ àèàãâë, ¯®¤áç¨â âì ¤«ï ª ¦¤®£® ¨§ ­¨å ¤«¨­ã ¨ ¢ë¡à âì ­ ¨¬¥­ìèãî. ® ¤ ¦¥
¥á«¨ ­¥ ¯à¨­¨¬ âì ¢® ¢­¨¬ ­¨¥ ¬ àèàãâë, ᮤ¥à¦ 騥 横«ë,
¯à¨ â ª®¬ ¯®¤å®¤¥ ¯à¨¤¥âáï ¯¥à¥¡¨à âì ¬¨««¨®­ë § ¢¥¤®¬® ­¥£®¤­ëå ¢ ਠ­â®¢ (¢àï¤ «¨ á⮨⠥å âì ¨§ ®áâ®­ ¢ —¨ª £® ç¥à¥§
•ìîáâ®­, «¥¦ 騩 ­ âëáïçã ¬¨«ì ¢ áâ®à®­¥).
‚ í⮩ ¨ á«¥¤ãî饩 £« ¢ å ¬ë à á᪠§ë¢ ¥¬ ® ⮬, ª ª ¬®¦­®
íä䥪⨢­® à¥è âì â ª¨¥ § ¤ ç¨. ‚ § ¤ ç¥ ® ªà âç ©è¥¬ ¯ãâ¨
(shortest-paths problem) ­ ¬ ¤ ­ ®à¨¥­â¨à®¢ ­­ë© ¢§¢¥è¥­­ë©
£à ä G = (V; E ) á ¢¥é¥á⢥­­®© ¢¥á®¢®© ä㭪樥© w : E ! . ‚¥á®¬ (weight) ¯ã⨠p = hv0; v1; : : :; vki ­ §ë¢ ¥âáï á㬬 ¢¥á®¢ àñ¡¥à,
¢å®¤ïé¨å ¢ íâ®â ¯ãâì:
R
w(p) =
k
X
i=1
w(vi;1; vi ):
‚¥á ªà âç ©è¥£® ¯ã⨠(shortest-path weight) ¨§ u ¢ v à ¢¥­, ¯®
®¯à¥¤¥«¥­¨î,
(
p
min
f
w
(
p
)
:
u
vg; ¥á«¨ áãé¥áâ¢ã¥â ¯ãâì ¨§ u ¢ v ;
(u; v) =
1
¨­ ç¥.
Šà âç ©è¨© ¯ãâì (shortest path) ¨§ u ¢ v | íâ® «î¡®© ¯ãâì p ¨§ u
¢ v, ¤«ï ª®â®à®£® w(p) = (u; v).
‚ ­ 襬 ¯à¨¬¥à¥ á —¨ª £® ¨ ®áâ®­®¬ ¬®¦­® à áᬠâਢ âì
ª àâã ¤®à®£ ª ª £à ä, ¢¥à設 ¬¨ ª®â®à®£® ïîâáï ¯¥à¥ªàñá⪨,
àñ¡à ¬¨ | ãç á⪨ ¤®à®£ ¬¥¦¤ã ­¨¬¨. ‚¥á ॡà | íâ® ¤«¨­ ãç á⪠¤®à®£¨, ¨ ­ è § ¤ ç ¬®¦¥â á®áâ®ïâì ¢ ®âë᪠­¨¨ ªà âç ©è¥£® ¯ã⨠¬¥¦¤ã ¤ ­­ë¬ ¯¥à¥ªàñá⪮¬ ¢ —¨ª £® ¨ ¤ ­­ë¬ ¯¥à¥ªàñá⪮¬ ¢ ®áâ®­¥.
‚¥á ­¥ ®¡ï§ ­ë ¡ëâì à ááâ®ï­¨ï¬¨: ¢¥á ¬¨ ¬®£ãâ ¡ëâì ¢à¥¬¥­ ,
á⮨¬®áâ¨, èâà äë, ã¡ë⪨, : : : | ª®à®ç¥ £®¢®àï, «î¡ ï ¢¥«¨ç¨­ ,
ƒ« ¢ 25 Šà âç ©è¨¥ ¯ã⨠¨§ ®¤­®© ¢¥à設ë
495
ª®â®àãî ¬ë å®â¨¬ ¬¨­¨¬¨§¨à®¢ âì ¨ ª®â®à ï ®¡« ¤ ¥â ᢮©á⢮¬
¤¤¨â¨¢­®áâ¨.
€«£®à¨â¬ ¯®¨áª ¢ è¨à¨­ã ­ £à ä å (¡¥§ ¢¥á®¢®© ä㭪樨),
ª®â®àë© ¬ë à áᬠâਢ «¨ ¢ à §¤. 23.2, ¬®¦­® à áᬠâਢ âì ª ª
à¥è¥­¨¥ § ¤ ç¨ ® ªà âç ©è¥¬ ¯ã⨠¢ ç áâ­®¬ á«ãç ¥, ª®£¤ ¢¥á
ª ¦¤®£® ॡà à ¢¥­ ¥¤¨­¨æ¥. Œ­®£¨¥ ¨¤¥¨, á¢ï§ ­­ë¥ á ¯®¨áª®¬
¢ è¨à¨­ã, ¡ã¤ãâ ¯®«¥§­ë ¨ ¤«ï ®¡é¥£® á«ãç ï, ¯®í⮬ã ᮢ¥â㥬
¢ ¬ ¥éñ à § ¯à®á¬®âà¥âì à §¤. 23.2, ¯à¥¦¤¥ 祬 ç¨â âì ¤ «ìè¥.
‚ ਠ­âë § ¤ ç¨ ® ªà âç ©è¥¬ ¯ãâ¨
‚ í⮩ £« ¢¥ ¬ë à áᬠâਢ ¥¬ ⮫쪮 § ¤ çã ® ªà âç ©è¨å
¯ãâïå ¨§ ®¤­®© ¢¥à設ë (single-source shortest-path problem): ¤ ­
¢§¢¥è¥­­ë© £à ä G = (V; E ) ¨ ­ ç «ì­ ï ¢¥à設 v (source vertex);
âॡã¥âáï ­ ©â¨ ªà âç ©è¨¥ ¯ã⨠¨§ s ¢® ¢á¥ ¢¥à設ë v 2 V .
€«£®à¨â¬, à¥è î騩 íâã § ¤ çã, ¯à¨£®¤¥­ ¨ ¤«ï ¬­®£¨å ¤à㣨å
§ ¤ ç, ­ ¯à¨¬¥à:
Šà âç ©è¨¥ ¯ã⨠¢ ®¤­ã ¢¥à設ã: ¤ ­ ª®­¥ç­ ï ¢¥à設 t
(destination vertex), âॡã¥âáï ­ ©â¨ ªà âç ©è¨¥ ¯ã⨠¢ t ¨§
¢á¥å ¢¥à設 v 2 V . (‚ á ¬®¬ ¤¥«¥, ¥á«¨ ®¡à â¨âì ¢á¥ áâ५ª¨
­ àñ¡à å, íâ § ¤ ç ᢥ¤¥âáï ª § ¤ ç¥ ® ªà âç ©è¨å ¯ãâïå ¨§
®¤­®© ¢¥à設ë.)
Šà âç ©è¨© ¯ãâì ¬¥¦¤ã ¤ ­­®© ¯ ன ¢¥à設: ¤ ­ë ¢¥à設ë u ¨ v ,
­ ©â¨ ªà âç ©è¨© ¯ãâì ¨§ u ¢ v.  §ã¬¥¥âáï, ¥á«¨ ¬ë ­ ©¤¥¬ ¢á¥
ªà âç ©è¨¥ ¯ã⨠¨§ u, ⮠⥬ á ¬ë¬ à¥è¨¬ ¨ íâã § ¤ çã; ª ª
­¨ áâà ­­®, ¡®«¥¥ ¡ëáâண® ᯮᮡ (ª®â®àë© ¡ë ¨á¯®«ì§®¢ « â®â
ä ªâ, çâ® ­ á ¨­â¥à¥áã¥â ¯ãâì «¨èì ¢ ®¤­ã ¢¥à設ã) ­¥ ­ ©¤¥­®.
Šà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設: ¤«ï ª ¦¤®© ¯ àë ¢¥à設 u ¨
v ­ ©â¨ ªà âç ©è¨© ¯ãâì ¨§ u ¢ v . Œ®¦­® à¥è¨âì íâã § ¤ çã, ­ å®¤ï ªà âç ©è¨¥ ¯ã⨠¨§ ¤ ­­®© ¢¥àè¨­ë ¤«ï ¢á¥å ¢¥à設 ¯®
®ç¥à¥¤¨. (â®, ¯à ¢¤ , ­¥ ®¯â¨¬ «ì­ë© ᯮᮡ | ¡®«¥¥ íä䥪⨢­ë¥ ¯®¤å®¤ë ¬ë à áᬮâਬ ¢ á«¥¤ãî饩 £« ¢¥.)
ñ¡à ®âà¨æ ⥫쭮£® ¢¥á ‚ ­¥ª®â®àëå ¯à¨«®¦¥­¨ïå ¢¥á àñ¡¥à ¬®£ãâ ¡ëâì ®âà¨æ ⥫ì­ë¬¨. à¨ í⮬ ¢ ¦­®, ¥áâì «¨ 横«ë ®âà¨æ ⥫쭮£® ¢¥á . …᫨
¨§ ¢¥àè¨­ë ¨§ s ¬®¦­® ¤®¡à âìáï ¤® 横« ®âà¨æ ⥫쭮£® ¢¥á ,
â® ¯®â®¬ ¬®¦­® ®¡å®¤¨âì íâ®â 横« ᪮«ì 㣮¤­® ¤®«£®, ¨ ¢¥á ¡ã¤¥â ¢áñ 㬥­ìè âìáï, â ª çâ® ¤«ï ¢¥à設 í⮣® 横« ªà âç ©è¨å
¯ã⥩ ­¥ áãé¥áâ¢ã¥â (à¨á. 25.1). ‚ â ª®¬ á«ãç ¥ ¬ë ¡ã¤¥¬ áç¨â âì,
çâ® ¢¥á ªà âç ©è¥£® ¯ã⨠¥áâì ;1.
…᫨ ¦¥ 横«®¢ ®âà¨æ ⥫쭮£® ¢¥á ­¥â, â® «î¡®© 横« ¬®¦­®
¢ë¡à®á¨âì, ­¥ 㤫¨­ïï ¯ãâ¨. ã⥩ ¡¥§ 横«®¢ ª®­¥ç­®¥ ç¨á«®, â ª
çâ® ¢¥á ªà âç ©è¥£® ¯ã⨠ª®à४⭮ ®¯à¥¤¥«ñ­.
‚® ¬­®£¨å § ¤ ç å ­¥â 横«®¢ ®âà¨æ ⥫쭮£® ¢¥á ­¥ ¬®¦¥â
¡ëâì 㦥 ¯®â®¬ã, çâ® ¢¥á ¢á¥å àñ¡¥à ­¥®âà¨æ ⥫ì­ë. (’ ª®¢
­ è ¯à¨¬¥à á ª à⮩ ¢â®¤®à®£). ¥ª®â®àë¥ «£®à¨â¬ë ¤«ï ¯®¨áª ªà âç ©è¨å ¯ã⥩ (­ ¯à¨¬¥à, «£®à¨â¬ „¥©ªáâàë) ¨á¯®«ì-
496
ƒ« ¢ 25 Šà âç ©è¨¥ ¯ã⨠¨§ ®¤­®© ¢¥à設ë
¨áã­®ª 25.1 25.1 Žà¨¥­â¨à®¢ ­­ë© £à ä á àñ¡à ¬¨ ®âà¨æ ⥫쭮£® ¢¥á . “
ª ¦¤®© ¢¥à設ë 㪠§ ­ ¢¥á ªà âç ©è¥£® ¯ã⨠¨§ s ¢ íâã ¢¥à設ã. ®áª®«ìªã
¢¥à設ë e ¨ f ®¡à §ãîâ 横« ®âà¨æ ⥫쭮£® ¢¥á , ¤®á⨦¨¬ë© ¨§ ¢¥à設ë
s, ¢¥á ªà âç ©è¨å ¯ã⥩ ¢ ª ¦¤ãî ¨§ íâ¨å ¢¥à設 à ¢­ë ;1. ‘¤¥« ¢ ­¥áª®«ìª® 横«®¢, ¬®¦­® ¯®©â¨ ¢ g, â ª çâ® ¢¥á ªà âç ©è¥£® ¯ã⨠¢ g â ª¦¥
à ¢¥­ ;1. ‚¥à設ë h, i ¨ j ­¥¤®á⨦¨¬ë ¨§ s, â ª çâ® (å®âì ®­¨ ¨ «¥¦ â ­ 横«¥ ®âà¨æ ⥫쭮£® ¢¥á ), ¢¥á ªà âç ©è¥£® ¯ã⨠¢ í⨠¢¥àè¨­ë ¥áâì 1.
§ãîâ íâ® ¨ ¯à¨¬¥­¨¬ë «¨èì ¤«ï £à 䮢 á ­¥®âà¨æ ⥫ì­ë¬¨ ¢¥á ¬¨. „à㣨¥ (­ ¯à¨¬¥à, «£®à¨â¬ ¥««¬ ­ -”®à¤ ) ¤®¯ã᪠îâ
àñ¡à ®âà¨æ ⥫쭮£® ¢¥á ¨ ¤ ¦¥ ¤ îâ ¢¥à­ë© १ã«ìâ â, ¥á«¨
¨§ ¨á室­®© ¢¥àè¨­ë ­¥«ì§ï ¤®©â¨ ¤® 横« ®âà¨æ ⥫쭮£® ¢¥á .
Ž¡ëç­® «£®à¨â¬ á®®¡é ¥â, ¥á«¨ â ª®© 横« ®âà¨æ ⥫쭮£® ¢¥á ®¡­ à㦥­.
à¥¤áâ ¢«¥­¨¥ ªà âç ©è¨å ¯ã⥩ ¢ «£®à¨â¬¥
— áâ® âॡã¥âáï ­¥ ¯à®áâ® ¯®¤áç¨â âì ¢¥á ªà âç ©è¨å ¯ã⥩,
­® ¨ ­ ©â¨ á ¬¨ í⨠¯ãâ¨. Œë ¡ã¤¥¬ ¨á¯®«ì§®¢ âì ¤«ï ¨å ¯à¥¤áâ ¢«¥­¨ï â®â ¦¥ ¯à¨ñ¬, çâ® ¨ ¢ ¤¥à¥¢ìïå ¯®¨áª ¢ è¨à¨­ã ¢ à §¤. 23.2.
ˆ¬¥­­®, ¯ãáâì G = (V; E ) | § ¤ ­­ë© £à ä. „«ï ª ¦¤®© ¢¥à設ë
v 2 V ¬ë ¡ã¤¥¬ ¯®¬­¨âì ¥ñ ¯à¥¤è¥á⢥­­¨ª (predecessor) [v ].
à¥¤è¥á⢥­­¨ª ¢¥à設ë | íâ® «¨¡® ¤àã£ ï ¢¥à設 (㪠§ ⥫ì
­ ­¥ñ), «¨¡® nil. ® § ¢¥à襭¨¨ à ¡®âë «£®à¨â¬®¢, à áᬠâਢ ¥¬ëå ¢ í⮩ £« ¢¥, 楯®çª ¯à¥¤è¥á⢥­­¨ª®¢, ­ 稭 îé ïáï á
¯à®¨§¢®«ì­®© ¢¥à設ë v, ¡ã¤¥â ¯à¥¤áâ ¢«ïâì ᮡ®© ªà âç ©è¨©
¯ãâì ¨§ s ¢ v (¢ ®¡à â­®¬ ¯®à浪¥), â ª çâ®, ¥á«¨ [v] =
6 nil, ¯à®æ¥¤ãà Print-Path(G; s; v) ¨§ à §¤. 23.2 ­ ¯¥ç ⠥⠪à âç ©è¨©
¯ãâì ¨§ s ¢ v.
‚ ¯à®æ¥áá¥ à ¡®âë «£®à¨â¬®¢ 楯®çª¨, ¯®«ãç ¥¬ë¥ ¨â¥à æ¨ï¬¨ , ­¥ ®¡ï§ ⥫쭮 ¡ã¤ãâ ªà âç ©è¨¬¨ ¯ãâﬨ, ­® ¢áñ à ¢­®
¬®¦­® à áᬮâà¥âì ®à¨¥­â¨à®¢ ­­ë© ¯®¤£à ä ¯à¥¤è¥á⢮¢ ­¨ï
(predecessor subgraph) G = (V ; E ), ®¯à¥¤¥«ñ­­ë© â ª: ¢¥à設ë
G | í⮠⥠¢¥à設ë G, ã ª®â®àëå ¯à¥¤è¥á⢥­­¨ª ®â«¨ç¥­ ®â
nil, ¯«îá ¨á室­ ï ¢¥à設 :
V = f v 2 V : [v] =
6 nil g [ fsg:
ñ¡à G | íâ® áâ५ª¨, 㪠§ë¢ î騥 ¨§ [v] =
6 nil ¢ v:
E = f ( [v ]; v) 2 E : v 2 V n fsg g:
Œë ¤®ª ¦¥¬, çâ® ¯® ®ª®­ç ­¨¨ à ¡®âë ­ è¨å «£®à¨â¬®¢ £à ä
G ¡ã¤¥â "¤¥à¥¢®¬ ªà âç ©è¨å ¯ã⥩" | ¤¥à¥¢®¬ á ª®à­¥¬ s, ᮤ¥à¦ 騬 ªà âç ©è¨¥ ¯ã⨠¨§ s ¢® ¢á¥ ¤®á⨦¨¬ë¥ ¨§ s ¢¥à設ë.
„¥à¥¢ìï ªà âç ©è¨å ¯ã⥩ ­ «®£¨ç­ë ¤¥à¥¢ìï¬ ¯®¨áª ¢ è¨à¨­ã
¨§ à §¤. 23.2, á ⮩ à §­¨æ¥©, çâ® ­ ᥩ à § ªà âç ©è¨¬¨ ®¡êïîâáï ¯ãâ¨ á ­ ¨¬¥­ì訬 ¢¥á®¬, ­¥ ­ ¨¬¥­ì訬 ç¨á«®¬ ॡ¥à.
’®ç­®¥ ®¯à¥¤¥«¥­¨¥ ¢ë£«ï¤¨â â ª. ãáâì G = (V; E ) | ¢§¢¥è¥­-
Šà âç ©è¨¥ ¯ã⨠¨ ५ ªá æ¨ï
497
¨áã­®ª 25.2 25.2 ( ) ‚§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä; ¢ ¢¥à設 å 㪠§ ­ë
¢¥á ªà âç ©è¨å ¯ã⥩ ¨§ s. (¡) ‘¥àë¥ àñ¡à ®¡à §ãîâ ¤¥à¥¢® ªà âç ©è¨å
¯ã⥩ á ª®à­¥¬ s. (¢) „à㣮¥ ¤¥à¥¢® ªà âç ©è¨å ¯ã⥩ á ⥬ ¦¥ ª®à­¥¬.
­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä á ¢¥á®¢®© ä㭪樥© w : E ! . à¥¤¯®«®¦¨¬, çâ® G ­¥ ¨¬¥¥â 横«®¢ ®âà¨æ ⥫쭮£® ¢¥á , ¤®á⨦¨¬ëå
¨§ ¨á室­®© ¢¥à設ë s, â ª çâ® ¢á¥ ªà âç ©è¨¥ ¯ã⨠¨§ s ª®à४⭮ ®¯à¥¤¥«¥­ë. ® ®¯à¥¤¥«¥­¨î, ¤¥à¥¢® ªà âç ©è¨å ¯ã⥩
(shorted-paths tree) á ª®à­¥¬ ¢ s ¥áâì ®à¨¥­â¨à®¢ ­­ë© ¯®¤£à ä
G0 = (V 0; E 0), £¤¥ V 0 V ¨ E 0 E , ¤«ï ª®â®à®£®:
1. V 0 | ¬­®¦¥á⢮ ¢¥à設, ¤®á⨦¨¬ëå ¨§ ¢¥à設ë v ;
2. G0 ï¥âáï ¤¥à¥¢®¬ á ª®à­¥¬ s;
3. ¤«ï ª ¦¤®£® v 2 V 0 ¯ãâì ¨§ s ¢ v ¢ £à ä¥ G0 ï¥âáï ªà âç ©è¨¬
¯ã⥬ ¨§ s ¢ v ¢ £à ä¥ G.
¨ ªà âç ©è¨¥ ¯ãâ¨, ­¨ ¤¥à¥¢ìï ªà âç ©è¨å ¯ã⥩ ­¥ ®¡ï§ ­ë
¡ëâì ¥¤¨­á⢥­­ë¬¨.  à¨á. 25.2 ¨§®¡à ¦¥­ ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä ¨ ¤¢ à §«¨ç­ëå ¤¥à¥¢ ªà âç ©è¨å ¯ã⥩ á ®¡é¨¬
ª®à­¥¬.
« ­ £« ¢ë
‚ᥠ«£®à¨â¬ë ¤«ï ¯®¨áª ªà âç ©è¨å ¯ã⥩, à áᬠâਢ ¥¬ë¥
¢ í⮩ £« ¢¥, ®á­®¢ ­ë ­ â¥å­¨ª¥, ¨§¢¥áâ­®© ¯®¤ ­ §¢ ­¨¥¬ ५ ªá æ¨ï (relaxation). ‚ à §¤. 25.1 ¬ë à áᬠâਢ ¥¬ ®¡é¨¥ ᢮©á⢠ªà âç ©è¨å ¯ã⥩, § ⥬ ¤®ª §ë¢ ¥¬ àï¤ ¢ ¦­ëå ä ªâ®¢ ¯à® ५ ªá æ¨î. €«£®à¨â¬ „¥©ªáâàë, à¥è î騩 § ¤ çã ® ªà âç ©è¨å
¯ãâïå ¨§ ®¤­®© ¢¥àè¨­ë ¤«ï á«ãç ï ­¥®âà¨æ ⥫ì­ëå ¢¥á®¢, à §®¡à ­ ¢ à §¤. 25.2.  §¤. 25.3 ¯®á¢ï饭 «£®à¨â¬ã ¥««¬ ­ -”®à¤ ,
¯à¨¬¥­¨¬®¬ã ¨ ¢ ⮬ á«ãç ¥, ª®£¤ àñ¡à ¬®£ãâ ¨¬¥âì ®âà¨æ ⥫ì­ë© ¢¥á. (…᫨ £à ä ᮤ¥à¦¨â 横« ®âà¨æ ⥫쭮£® ¢¥á , ¤®á⨦¨¬ë© ¨§ ¨á室­®© ¢¥à設ë, «£®à¨â¬ ¥««¬ ­ -”®à¤ á®®¡é ¥â
®¡ í⮬.) ‚ à §¤. 25.4 à áᬠâਢ ¥âáï «£®à¨â¬ ¤«ï ­ 宦¤¥­¨ï
ªà âç ©è¨å ¯ã⥩ ¢ 横«¨ç¥áª¨å £à ä å, à ¡®â î騩 § «¨­¥©­®¥ ¢à¥¬ï.  ª®­¥æ, ¢ à §¤. 25.5 ¬ë ¯®ª §ë¢ ¥¬, ª ª ¯à¨¬¥­¨âì
«£®à¨â¬ ¥««¬ ­ -”®à¤ ª à¥è¥­¨î ®¤­®£® á¯¥æ¨ «ì­®£® á«ãç ï
§ ¤ ç¨ «¨­¥©­®£® ¯à®£à ¬¬¨à®¢ ­¨ï.
à¨ à ¡®â¥ á ᨬ¢®« ¬¨ 1 ¨ ;1 ¬ë ¡ã¤¥¬ ¯à¨¤¥à¦¨¢ âìáï á«¥¤ãîé¨å ᮣ« 襭¨©. …᫨ a =
6 ;1, â® ¡ã¤¥¬ áç¨â âì, çâ® a + 1 =
1 + a = 1; ­ «®£¨ç­®, ¥á«¨ a =6 1, â® a +(;1) = (;1)+ a = ;1.
R
25.1 Šà âç ©è¨¥ ¯ã⨠¨ ५ ªá æ¨ï
‚ í⮬ à §¤¥«¥ ®¯¨áë¢ îâáï ᢮©á⢠ªà âç ©è¨å ¯ã⥩ ¨ ®¡êïá­ï¥âáï ®¡é¨© ¯à¨ñ¬, ¨á¯®«ì§ã¥¬ë© ¢á¥¬¨ «£®à¨â¬ ¬¨ í⮩ £« ¢ë
¨ ­ §ë¢ ¥¬ë© "५ ªá 樥©". Ž­ á®á⮨â, £àã¡® £®¢®àï, ¢ ¯®á⥯¥­-
498
ƒ« ¢ 25 Šà âç ©è¨¥ ¯ã⨠¨§ ®¤­®© ¢¥à設ë
­®¬ ãâ®ç­¥­¨¨ ¢¥àå­¥© ®æ¥­ª¨ ­ ¢¥á ªà âç ©è¥£® ¯ã⨠¢ ¤ ­­ãî
¢¥à設ã | ¯®ª ­¥à ¢¥­á⢮ ­¥ ¯à¥¢à â¨âáï ¢ à ¢¥­á⢮.
à¨ ¯¥à¢®¬ ç⥭¨¨ ¢ë ¬®¦¥â¥ à §®¡à âì ⮫쪮 ä®à¬ã«¨à®¢ª¨
१ã«ìâ ⮢ (®¡à â¨â¥ ®á®¡®¥ ¢­¨¬ ­¨¥ ­ «¥¬¬ã 25.7; «¥¬¬ë 25.8
¨ 25.9 ¯à¨ ¯¥à¢®¬ ç⥭¨¨ ¬®¦­® ¯à®¯ãáâ¨âì), ¯®á«¥ 祣® ¯¥à¥©â¨
ª «£®à¨â¬ ¬ à §¤. 25.2 ¨ 25.3.
‘¢®©á⢮ ®¯â¨¬ «ì­®á⨠¤«ï ¯®¤§ ¤ ç
‹î¡ ï ç áâì ªà âç ©è¥£® ¯ãâ¨ á ¬ ¥áâì ªà âç ©è¨© ¯ãâì. â®
§­ ç¨â, çâ® § ¤ ç ® ªà âç ©è¨å ¯ãâïå ®¡« ¤ ¥â ᢮©á⢮¬ ®¯â¨¬ «ì­®á⨠¤«ï ¯®¤§ ¤ ç | ¯à¨§­ ª ⮣®, çâ® ª ­¥© ¬®¦¥â ¡ëâì ¯à¨¬¥­¨¬® ¤¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥ (£« ¢ 16) ¨«¨ ¦ ¤­ë©
«£®à¨â¬ (£« ¢ 17). ˆ ¤¥©á⢨⥫쭮, «£®à¨â¬ „¥©ªáâàë ï¥âáï ¦ ¤­ë¬ «£®à¨â¬®¬, «£®à¨â¬ ”«®©¤ -“®à讫« ¤«ï ­ 宦¤¥­¨ï ªà âç ©è¨å ¯ã⥩ ¬¥¦¤ã ¢á¥¬¨ ¯ à ¬¨ ¢¥à設 (£« ¢ 26)
®á­®¢ ­ ­ ¤¨­ ¬¨ç¥áª®¬ ¯à®£à ¬¬¨à®¢ ­¨¨. ‘«¥¤ãîé ï «¥¬¬ ¨
¥¥ á«¥¤á⢨¥ ãâ®ç­ïîâ, ¢ 祬 ª®­ªà¥â­® á®á⮨â ᢮©á⢮ ®¯â¨¬ «ì­®á⨠¤«ï ¯®¤§ ¤ ç ¢ § ¤ ç¥ ® ªà âç ©è¨å ¯ãâïå.
‹¥¬¬ 25.1 (Žâ१ª¨ ªà âç ©è¨å ¯ã⥩ ïîâáï ªà âç ©è¨¬¨)
ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä á ¢¥á®¢®© ä㭪樥© w : E ! . …᫨ p = hv1; v2; : : :; vk i | ªà âç ©è¨©
¯ãâì ¨§ v1 ¢ vk ¨ 1 6 i 6 j 6 k, â® pij = hvi ; vi+1; : : :; vj i ¥áâì
ªà âç ©è¨© ¯ãâì ¨§ vi ¢ vj .
„®ª § ⥫ìá⢮
…᫨ ¯ãâì pij ­¥ ªà âç ©è¨©, â®, § ¬¥­ïï ¢ ¯ã⨠p ãç á⮪ ®â
vi ¤® vj ­ ¡®«¥¥ ª®à®âª¨© ¯ãâì ¨§ vi ¢ vj , ¬ë 㬥­ì訬 ¢¥á ¯ãâ¨
¨§ p1 ¢ pk | ¯à®â¨¢®à¥ç¨¥. (‡¤¥áì " ¡®«¥¥ ª®à®âª¨©" ®§­ ç ¥â "á
¬¥­ì訬 ¢¥á®¬".)
‘«¥¤á⢨¥ ¨§ ¤®ª § ­­®© «¥¬¬ë ®¡®¡é ¥â «¥¬¬ã 23.1.
‘«¥¤á⢨¥ 25.2
ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä á ¢¥á®¢®© ä㭪樥© w : E ! R.  áᬬ®âਬ ªà âç ©è¨© ¯ãâì
p ¨§ s
p0
¢ v. ãáâì u ! v | ¯®á«¥¤­¥¥ ॡ஠í⮣® ¯ã⨠(p ¥áâì s u ! v).
’®£¤ (s; v) = (s; u) + w(u; v).
„®ª § ⥫ìá⢮
® «¥¬¬¥ 25.1 ¯ãâì p0 ï¥âáï ªà âç ©è¨¬, â ª çâ® (s; v) =
w(p0) + w(u; v) = (s; u) + w(u; v ).
‘«¥¤ãîé ï «¥¬¬ ¯à®áâ , ­® ¯®«¥§­ .
‹¥¬¬ 25.3 ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë©
£à ä á ¢¥á®¢®© ä㭪樥© w : E ! ; ¯ãáâì s 2 V . ’®£¤ ¤«ï ¢á类£®
ॡà (u; v) 2 E ¨¬¥¥¬ (s; v) 6 (s; u) + w(u; v).
„®ª § ⥫ìá⢮.
‚¥á ªà âç ©è¥£® ¯ã⨠¨§ s ¢ v ­¥ ¯à¥¢®á室¨â ¢¥á «î¡®£® ¯ãâ¨
¨§ s ¢ v, ¢ ⮬ ç¨á«¥ ¨ ¯à®å®¤ï饣® ­ ¯®á«¥¤­¥¬ è £¥ ç¥à¥§ u.
¥« ªá æ¨ï
’¥å­¨ª ५ ªá 樨, ª®â®à ï 㦥 㯮¬¨­ « áì ¢ëè¥, á®á⮨⠢
R
R
Šà âç ©è¨¥ ¯ã⨠¨ ५ ªá æ¨ï
499
¨áã­®ª 25.3 25.3 ¥« ªá æ¨ï ॡà (u; v). ‚ ¢¥à設 å 㪠§ ­ë ®æ¥­ª¨ ªà âç ©è¥£® ¯ãâ¨. ( ) ®áª®«ìªã ¯¥à¥¤ ५ ªá 樥© ¡ë«® d[v] > d[u] + w(u;v), ¢
१ã«ìâ ⥠५ ªá 樨 d[v] 㬥­ìè ¥âáï. (¡) “¦¥ ¤® ५ ªá 樨 ¨¬¥¥¬ d[v] 6
d[u] + w(u; v). ¥« ªá æ¨ï ­¨ç¥£® ­¥ ¬¥­ï¥â.
á«¥¤ãî饬. „«ï ª ¦¤®£® ॡà v 2 V ¬ë åà ­¨¬ ­¥ª®â®à®¥ ç¨á«® d[v], ïî饥áï ¢¥àå­¥© ®æ¥­ª®© ¢¥á ªà âç ©è¥£® ¯ã⨠¨§ s
¢ v; ¤«ï ªà ⪮á⨠¬ë ¡ã¤¥¬ ­ §ë¢ âì ¥£® ¯à®áâ® ®æ¥­ª®© ªà âç ©è¥£® ¯ã⨠(shortest-path estimate).  ç «ì­®¥ §­ 祭¨¥ ®æ¥­ª¨
ªà âç ©è¥£® ¯ã⨠(¨ ¯à¥¤è¥á⢥­­¨ª®¢) ¤ ñâáï á«¥¤ãî饩 ¯à®æ¥¤ãன:
Initialize-Single-Source(G,s)
1 for (¤«ï) ¢á¥å ¢¥à設 v \in V[G]
2
do d[v] \gets \infty
3
\pi[v] \gets \text{\sc nil}
4 d[s] \gets 0
ˆ­ë¬¨ á«®¢ ¬¨, ¯¥à¢®­ ç «ì­® [v] = nil ¤«ï ¢á¥å v; ¯à¨ í⮬
d[s] = 0 ¨ d[v] = 1 ¤«ï ®áâ «ì­ëå ¢¥à設 v .
¥« ªá æ¨ï ॡà (u; v) 2 E á®á⮨⠢ á«¥¤ãî饬: §­ 祭¨¥ d[v]
㬥­ìè ¥âáï ¤® d[u] + w(u; v) (¥á«¨ ¢â®à®¥ §­ 祭¨¥ ¬¥­ìè¥ ¯¥à¢®£®): ¯à¨ í⮬ d[v] ®áâ ñâáï ¢¥àå­¥© ®æ¥­ª®© ¢ ᨫ㠫¥¬¬ë 25.3.
Œë å®â¨¬, ç⮡ë [v] 㪠§ë¢ «¨ ­ ¯ãâì, ¨á¯®«ì§®¢ ­­ë© ¯à¨ ¯®«ã祭¨¨ í⮩ ¢¥àå­¥© ®æ¥­ª¨, ¯®í⮬㠮¤­®¢à¥¬¥­­® ¬ë ¬¥­ï¥¬
§­ 祭¨¥ [v]:
Relax(u,v,w)
1 if d[v] > d[u] + w(u,v)
2
then d[v] \gets d[u] + w(u,v)
3
\pi[v] \gets u
 à¨á. 25.3 ¯à¨¢¥¤¥­ë ¤¢ ¯à¨¬¥à ५ ªá 樨: ¢ ®¤­®¬ á«ãç ¥
®æ¥­ª ªà âç ©è¥£® ¯ã⨠㬥­ìè ¥âáï, ¢ ¤à㣮¬ ­¨ç¥£® ­¥ ¯à®¨á室¨â.
€«£®à¨â¬ë, ®¯¨áë¢ ¥¬ë¥ ¢ í⮩ £« ¢¥, ãáâ஥­ë â ª: ®­¨ ¢ë§ë¢ îâ ¯à®æ¥¤ãàã Initialize-Single-Source, § ⥬ ¯à®¨§¢®¤ïâ
५ ªá æ¨î àñ¡¥à.  §­ë¥ «£®à¨â¬ë ®â«¨ç îâáï ¯®à浪®¬, ¢ ª®â®à®¬ àñ¡à ¯®¤¢¥à£ îâáï ५ ªá 樨. ‚ «£®à¨â¬¥ „¥©ªáâàë ¨
«£®à¨â¬¥ ¤«ï 横«¨ç¥áª¨å £à 䮢 ª ¦¤®¥ ॡ஠¯®¤¢¥à£ ¥âáï
५ ªá 樨 «¨èì ¥¤¨­®¦¤ë. ‚ «£®à¨â¬¥ ¥««¬ ­ -”®à¤ àñ¡à ¯®¤¢¥à£ îâáï ५ ªá 樨 ¯® ­¥áª®«ìªã à §.
‘¢®©á⢠५ ªá 樨
‹¥¬¬ë, ¤®ª §ë¢ ¥¬ë¥ ¢ í⮬ ¨ á«¥¤ãî饬 à §¤¥« å, ¡ã¤ã⠨ᯮ«ì§®¢ ­ë ¯à¨ ¤®ª § ⥫ìá⢥ ¯à ¢¨«ì­®á⨠«£®à¨â¬®¢ ¯®¨áª ªà âç ©è¨å ¯ã⥩.
‘«¥¤ãîé ï «¥¬¬ ®ç¥¢¨¤­ .
‹¥¬¬ 25.4
500
ƒ« ¢ 25 Šà âç ©è¨¥ ¯ã⨠¨§ ®¤­®© ¢¥à設ë
ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä á ¢¥á®¢®© ä㭪樥© w : E ! , ¨ ¯ãáâì (u; v) 2 E . ’®£¤ áà §ã ¦¥ ¯®á«¥
५ ªá 樨 í⮣® ॡà (¢ë§®¢ Relax(u; v; w)) ¢ë¯®«­ï¥âáï ­¥à ¢¥­á⢮ d[v] 6 d[u] + w(u; v).
‹¥¬¬ 25.5
ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä á ¢¥á®¢®© ä㭪樥© w; ¯ãáâì s 2 V | ­ ç «ì­ ï ¢¥à設 . ’®£¤ ¯®á«¥ ¢ë¯®«­¥­¨ï ¯à®æ¥¤ãàë Initialize-Single-Source(G; s), § ⥬ ¯à®¨§¢®«ì­®© ¯®á«¥¤®¢ ⥫쭮á⨠®¯¥à 権 ५ ªá 樨 àñ¡¥à,
¤«ï ª ¦¤®© ¢¥à設ë v 2 V ¢ë¯®«­¥­® ­¥à ¢¥­á⢮ d[v] > (s; v).
…᫨ ¯à¨ í⮬ ¤«ï ª ª®©-â® ¨§ ¢¥à設 v íâ® ­¥à ¢¥­á⢮ ®¡à é ¥âáï ¢ à ¢¥­á⢮, â® à ¢¥­á⢮ d[v] = (s; v) ®áâ ­¥âáï ¢¥à­ë¬ ¨ ¢
¤ «ì­¥©è¥¬ (¯à¨ ¯®á«¥¤ãîé¨å ५ ªá æ¨ïå àñ¡¥à).
„®ª § ⥫ìá⢮
‚ á ¬®¬ ¤¥«¥, ¯®á«¥ ¨­¨æ¨ «¨§ 樨 §­ 祭¨ï d[v] ¡¥áª®­¥ç­ë
¯à¨ v =
6 s (¨ ¯®â®¬ã ïîâáï ®æ¥­ª®© ᢥàåã ¤«ï 祣® 㣮¤­®),
d[s] = 0 (ç⮠⮦¥ ¯à ¢¨«ì­®). ‚ ¯à®æ¥áᥠ५ ªá 樨 §­ 祭¨¥
d[v] ®áâ ñâáï ¢¥àå­¥© ®æ¥­ª®© ¤«ï (s; v), ¯®áª®«ìªã
(s; v ) 6 (s; u) + w(u; v ) 6 d[u] + w(u; v )
(¯¥à¢®¥ ­¥à ¢¥­á⢮ | ¯® «¥¬¬¥ 25.3).
‚â®à®¥ ã⢥ত¥­¨¥ «¥¬¬ë: ¯®áª®«ìªã ¢ ¯à®æ¥áᥠ५ ªá 樨
§­ 祭¨ï d ¬®£ãâ ⮫쪮 㬥­ìè îâáï, ¯®á«¥ ¤®á⨦¥­¨ï à ¢¥­á⢠d[v] = (s; v) ¤ «ìè¥ ã¬¥­ìè âìáï ­¥ªã¤ .
‘«¥¤á⢨¥ 25.6
ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä á ¢¥á®¢®© ä㭪樥© w ¨ ¨á室­®© ¢¥à設®© s. ãáâì ¢¥à設 v 2 V
­¥¤®á⨦¨¬ ¨§ s. ’®£¤ ¯®á«¥ ¨á¯®«­¥­¨ï ¯à®æ¥¤ãàë InitializeSingle-Source(G; s) ¨ «î¡®© ¯®á«¥¤®¢ ⥫쭮á⨠५ ªá 権 ॡ¥à §­ 祭¨¥ d[v] ¡ã¤¥â ®áâ ¢ âìáï ¡¥áª®­¥ç­ë¬ (¨ à ¢­ë¬ (s; v)).
‘«¥¤ãîé ï «¥¬¬ ¨£à ¥â ®á­®¢­ãî à®«ì ¯à¨ ¤®ª § ⥫ìá⢥ ¯à ¢¨«ì­®á⨠«£®à¨â¬®¢ ¯®¨áª ªà âç ©è¨å ¯ã⥩.
‹¥¬¬ 25.7
ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä á ¢¥á®¢®© ä㭪樥© w ¨ ¨á室­®© ¢¥à設®© s. ãáâì s u ! v | ªà âç ©è¨© ¯ãâì á ¯®á«¥¤­¨¬ ॡ஬ (u; v) à¥¤¯®«®¦¨¬, çâ® ¡ë« ¨á¯®«­¥­ ¯à®æ¥¤ãà Initialize-Single-Source(G; s), § ⥬ |
¯®á«¥¤®¢ ⥫쭮áâì ५ ªá 権 ­¥ª®â®àëå ॡ¥à, ¢ª«îç îé ï ५ ªá æ¨î ॡà (u; v). …᫨ ¢ ª ª®©-â® ¬®¬¥­â ¤® ५ ªá 樨 ॡà (u; v ) ¢ë¯®«­ï«®áì à ¢¥­á⢮ d[u] = (s; u), â® ¢ «î¡®© ¬®¬¥­â ¯®á«¥ ५ ªá 樨 (u; v) ¡ã¤¥â ¢ë¯®«­¥­® à ¢¥­á⢮ d[v] = (s; v).
„®ª § ⥫ìá⢮
‚ á ¬®¬ ¤¥«¥, à ¢¥­á⢮ d[u] = (s; u) á®åà ­¨âáï ¤® ¬®¬¥­â ५ ªá 樨 ॡà (u; v) (ª ª, ¢¯à®ç¥¬, ¨ ¤® «î¡®£® ¤ «ì­¥©è¥£®
¬®¬¥­â , á¬. «¥¬¬ã 25.5). ®í⮬ã áà §ã ¯®á«¥ ५ ªá 樨 ॡà R
Šà âç ©è¨¥ ¯ã⨠¨ ५ ªá æ¨ï
501
(u; v ) ¨¬¥¥¬
d[v] 6 d[u] + w(u; v) = (s; u) + w(u; v ) = (s; v)
(¯®á«¥¤­¥¥ à ¢¥­á⢮ | ¯® á«¥¤á⢨î 25.2). ®áª®«ìªã, á ¤à㣮©
áâ®à®­ë, d[v] > (s; v) ¯® «¥¬¬¥ 25.5, ¯®«ãç ¥¬, çâ® d[v] = (s; v)
áà §ã ¯®á«¥ ५ ªá 樨 ( §­ ç¨â, ¨ ¯®§¦¥).
„¥à¥¢ìï ªà âç ©è¨å ¯ã⥩
®á¬®âਬ, çâ® ¯à®¨á室¨â ¯à¨ ­ è¨å ®¯¥à æ¨ïå á ¯®¤£à 䮬
¯à¥¤è¥á⢮¢ ­¨ï G .
‹¥¬¬ 25.8
ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä á ¢¥á®¢®© ä㭪樥© w ¨ ¨á室­®© ¢¥à設®© s, ¯à¨ç¥¬ ¢ £à ä¥ G ­¥â 横«®¢ ®âà¨æ ⥫쭮£® ¢¥á , ¤®á⨦¨¬ëå ¨§ s. ’®£¤ ¯®á«¥ ®¯¥à 樨
Initialize-Single-Source(G; s), § ª®â®à®© á«¥¤ã¥â ¯à®¨§¢®«ì­ ï
¯®á«¥¤®¢ ⥫쭮áâì ५ ªá 権 àñ¡¥à, ¯®¤£à ä ¯à¥¤è¥á⢥­­¨ª®¢
G ï¥âáï ¤¥à¥¢®¬ á ª®à­¥¬ s.
„®ª § ⥫ìá⢮
 ¯®¬­¨¬, çâ® ¢¥à設 ¬¨ £à ä G ïîâáï ⥠¢¥à設ë v 2
V , ¤«ï ª®â®àëå [v ] =
6 nil, â ª¦¥ ¢¥à設 s. „à㣨¬¨ á«®¢ ¬¨,
¢ ­¥£® ¢å®¤ïâ ⥠¢¥à設ë v, ¤«ï ª®â®àëå d[v] ª®­¥ç­® (ç⮡ë ã¡¥¤¨âìáï ¢ í⮬, ¤®áâ â®ç­® ¯®á¬®âà¥âì ­ ¯à®æ¥¤ãàã ५ ªá 樨:
¯à¨ 㬥­ì襭¨¨ d[v] ¯à®¨á室¨â ¯à¨á¢ ¨¢ ­¨¥ ¯¥à¥¬¥­­®© [v]).
„«ï ª ¦¤®© ¢¥à設ë v £à ä G ¢ íâ®â £à ä ¢ª«îç ¥âáï ॡ஠á
­ ç «®¬ [v] ¨ ª®­æ®¬ v. ® ¯®áâ஥­¨î í⮠ॡ஠ï¥âáï ॡ஬
¨á室­®£® £à ä G.
‘à §ã ¯®á«¥ ¨­¨æ¨ «¨§ 樨 £à ä G á®á⮨â ⮫쪮 ¨§ ­ ç «ì­®© ¢¥àè¨­ë ¨ ⥬ á ¬ë¬ ï¢«ï¥âáï ¤¥à¥¢®¬. Œë ¡ã¤¥¬ ¤®ª §ë¢ âì
¯® ¨­¤ãªæ¨¨, çâ® ®­ ®áâ ñâáï ¤¥à¥¢®¬ ¯®á«¥ ¢ë¯®«­¥­¨ï ¯à®¨§¢®«ì­®© ¯®á«¥¤®¢ ⥫쭮á⨠®¯¥à 権 ५ ªá 樨.
Š®£¤ ¢ ­ñ¬ ¯®ï¢«ïîâáï ­®¢ë¥ ¢¥à設ë? â® ¯à®¨á室¨â ¯à¨
¢ë¯®«­¥­¨¨ ®¯¥à 樨 ५ ªá 樨 ॡà (u; v), ¤® ª®â®à®© d[v] ¡ë«®
¡¥áª®­¥ç­ë¬ ( áâ «® ª®­¥ç­ë¬ | ¯®á«¥ ५ ªá 樨 «î¡®£® ॡà (x; y ) §­ 祭¨¥ d[y ] ®¡ï§ ⥫쭮 ª®­¥ç­®). ‚ íâ®â ¬®¬¥­â [v ] áâ ­®¢¨âáï à ¢­ë¬ u, â® ¥áâì ª ¤¥à¥¢ã G ¤®¡ ¢«ï¥âáï «¨áâ. à¨ í⮬
®­® ®áâ ñâáï ¤¥à¥¢®¬.
Žáâ ñâáï ¯à®¢¥à¨âì, çâ® £à ä G ®áâ ñâáï ¤¥à¥¢®¬ ¨ ¢ ⮬ á«ãç ¥, ª®£¤ ¯à¨ ५ ªá 樨 ॡà (u; v) §­ 祭¨¥ d[v] 㬥­ìè ¥âáï
®â ®¤­®£® ª®­¥ç­®£® §­ 祭¨ï ¤® ¤à㣮£®. „ ¢ ©â¥ ¯®á¬®âਬ, çâ®
¯à®¨á室¨â á G ¯à¨ ५ ªá 樨 â ª®£® ॡà (u; v). ®¤¤¥à¥¢® á
ª®à­¥¬ ¢ v ®â१ ¥âáï (®â ¯à¥¦­¥£® த¨â¥«ï ¢¥à設ë v) ¨ ¯à¨¢¨¢ ¥âáï ª ¢¥à設¥ u ([v] áâ ­®¢¨âáï à ¢­ë¬ u). â® ¬®¦¥â ­ àãè¨âì áâàãªâãàã ¤¥à¥¢ ⮫쪮 ¢ ⮬ á«ãç ¥, ¥á«¨ ¢¥à設 u ¡ë« ¯®â®¬ª®¬ ¢¥à設ë v, â® ¥áâì «¥¦ « ¢ ¯®¤¤¥à¥¢¥ á ª®à­¥¬ v (¯à¨
í⮬ ®¡à §ã¥âáï 横«, á¬. à¨á. 25.4)
 ¬ ®áâ ñâáï ã¡¥¤¨âìáï, çâ® â ª®£® ¯à®¨§®©â¨ ­¥ ¬®¦¥â. à®¢¥à¨¬, çâ® ¢ í⮬ á«ãç ¥ ®¡à §ãî騩áï 横« (®â v ª u ¢ ¤¥à¥¢¥
502
ƒ« ¢ 25 Šà âç ©è¨¥ ¯ã⨠¨§ ®¤­®© ¢¥à設ë
¨á.25.4 Ž‚›‰: í᪨§ á¬. ­ ¯®«ïå ª­¨£¨
¨áã­®ª 25.4 25.4. «®å®© á«ãç ©: ५ ªá æ¨ï ॡà (u; v), £¤¥ ¢¥à設 u ï¥âáï ¯®â®¬ª®¬ v ¢ ¤¥à¥¢¥ ¯à¥¤è¥á⢮¢ ­¨ï. …᫨ â ª®¥ ¯à®¨¢å®¤¨â, ¢®§­¨ª ¥â
横«, ¨¬¥î騩 ®âà¨æ ⥫ì­ãî á㬬㠢¥á®¢.
¯à¥¤è¥á⢮¢ ­¨ï, § ⥬ ¯® ॡàã (u; v)) ¨¬¥¥â ®âà¨æ ⥫ì­ãî
á㬬㠢¥á®¢.
®áª®«ìªã ॡ஠(u; v) ¯®¤¢¥à£«®áì ५ ªá 樨, ¤® ¥ñ ¢ë¯®«­¥­¨ï
¨¬¥«® ¬¥áâ® ­¥à ¢¥­á⢮ d[u] + w(u; v) < d[v], ¨«¨ (d[u] ; d[v]) +
w(u; v ) < 0. Œë ᥩç á ¯®ª ¦¥¬, çâ® ¢¥á ¯ã⨠®â v ¢ u ¢ £à ä¥ G
­¥ ¯à¥¢®á室¨â d[u];d[v], ¨ ⥬ á ¬ë¬ ­ ©¤ñ¬ 横« ®âà¨æ ⥫쭮£®
¢¥á ¢ £à ä¥ G, ¤®á⨦¨¬ë© ¨§ s, ª®â®à®£® ¯® ¯à¥¤¯®«®¦¥­¨î ­¥
áãé¥áâ¢ã¥â.
ˆâ ª, ¯®ç¥¬ã ¦¥ ¢¥á ¯ã⨠¢ G ®â ¢¥à設ë v ª ¢¥à設¥ u ­¥
¯à¥¢®á室¨â à §­¨æë §­ 祭¨© ä㭪樨 d ¢ ª®­æ¥ ¨ ­ ç «¥ ¯ãâ¨?
Žç¥¢¨¤­®, ¤®áâ â®ç­® ¯à®¢¥à¨âì íâ® ¤«ï ®¤­®£® ॡà , â® ¥áâì ¯à®¢¥à¨âì, çâ® ¥á«¨ ॡ஠(p; q) ¢ ª ª®©-â® ¬®¬¥­â ¢å®¤¨â ¢ G , â® ¢
íâ®â ¬®¬¥­â
w(p; q) 6 d[q ] ; d[p]
(25:1)
â® ¥áâì d[q] > d[p] + w(p; q). ¥¯®á।á⢥­­® ¯®á«¥ ५ ªá 樨 ॡà (p; q) íâ® ­¥à ¢¥­á⢮ ®¡à é ¥âáï ¢ à ¢¥­á⢮. ‡ ⥬ ¢¥«¨ç¨­ë
d[p] ¨ d[q] ¬®£ãâ 㬥­ìè âìáï. …᫨ 㬥­ìè ¥âáï d[p], â® ­¥à ¢¥­á⢮ ­¥ ­ àãè ¥âáï. …᫨ 㬥­ìè ¥âáï d[q], íâ® §­ ç¨â, çâ® ¯à®¨á室¨â ५ ªá æ¨ï ॡà , ¢¥¤ã饣® ¢ q, ¯à¨ í⮬ ¬¥­ï¥âáï ¨ [q]
¨ ¤«ï ­®¢®£® ॡà ([q]; q) ¢ë¯®«­¥­® ­¥à ¢¥­á⢮ (25.1). â® à áá㦤¥­¨¥ § ¢¥àè ¥â ¤®ª § ⥫ìá⢮ «¥¬¬ë 25.8
ãáâì ¢ १ã«ìâ ⥠¯®á«¥¤®¢ ⥫쭮á⨠५ ªá 権 ¬ë ¤®¡¨«¨áì
⮣®, çâ® d[v] = (s; v) ¤«ï ¢á¥å ¢¥à設 v. ®ª ¦¥¬, çâ® ¢ í⮬
á«ãç ¥ £à ä G ï¥âáï ¤¥à¥¢®¬ ªà âç ©è¨å ¯ã⥩.
‹¥¬¬ 25.9
ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä á ¢¥á®¢®© ä㭪樥© w ¨ ¨á室­®© ¢¥à設®© s, ¯à¨ç¥¬ ¢ £à ä¥ G ­¥â
横«®¢ ®âà¨æ ⥫쭮£® ¢¥á , ¤®á⨦¨¬ëå ¨§ s. à¥¤¯®«®¦¨¬, çâ®
¯®á«¥ ®¯¥à 樨 Initialize-Single-Source(G; s), § ª®â®à®© á«¥¤ã¥â ­¥ª®â®à ï ¯®á«¥¤®¢ ⥫쭮áâì ५ ªá 権 ॡ¥à, ®ª § «®áì,
çâ® d[v] = (s; v) ¤«ï ¢á¥å v 2 V . ’®£¤ ¯®¤£à ä ¯à¥¤è¥á⢮¢ ­¨ï G ï¥âáï ¤¥à¥¢®¬ ªà âç ©è¨å ¯ã⥩.
„®ª § ⥫ìá⢮
‘®£« á­® ®¯à¥¤¥«¥­¨î, ­ ¬ ­ ¤® ¯à®¢¥à¨âì, çâ® V [G ] ᮢ¯ ¤ ¥â
á® ¬­®¦¥á⢮¬ ¢¥à設 £à ä G, ¤®á⨦¨¬ëå ¨§ s, çâ® G | ¤¥à¥¢® á ª®à­¥¬ s, ¨ çâ® ¯ã⨠¢ G ¨§ s ¢ ¥£® ¢¥à設ë ïîâáï
ªà âç ©è¨¬¨ ¯ãâﬨ ¢ G.
‚â®à®¥ ¨§ íâ¨å ã⢥ত¥­¨© ¥áâì «¥¬¬ 25.8; ¨§ ­¥ñ ¦¥ á«¥¤ã¥â, çâ® ¢á¥ ¢¥à設ë G ¤®á⨦¨¬ë ¨§ s (¤ ¦¥ ¢ ¯®¤£à ä¥ G );
®¡à â­®, ¥á«¨ ¢¥à設 v =
6 s ¤®á⨦¨¬ ¢ £à ä¥ G ¨§ s, â®
Šà âç ©è¨¥ ¯ã⨠¨ ५ ªá æ¨ï
503
d[v] = (s; v) < 1, â ª çâ® ¨¬¥« ¬¥á⮠५ ªá æ¨ï ॡà á ª®­æ®¬ v
¨ [v] 6= nil, â® ¥áâì v 2 V [G ]. â¨¬ ¤®ª § ­® ¯¥à¢®¥ ã⢥ত¥­¨¥.
„®ª ¦¥¬ âà¥âì¥ ã⢥ত¥­¨¥. ¥à ¢¥­á⢮ (25.1) £ à ­â¨àã¥â,
çâ® ¤«¨­ ¯ã⨠®â s ¤® v ¢ ¤¥à¥¢¥ G ­¥ ¯à¥¢®á室¨â d[v] ; d[s] =
d[v] = (s; v), â ª çâ® ¯ãáâì íâ®â | ªà âç ©è¨©.
“¯à ¦­¥­¨ï
25.1-1 “ª ¦¨â¥ ¥éñ ¤¢ ¤¥à¥¢ ªà âç ©è¨å ¯ã⥩ ¤«ï £à ä à¨á. 25.2.
25-1.2 à¨¢¥¤¨â¥ ¯à¨¬¥à ¢§¢¥è¥­­®£® ®à¨¥­â¨à®¢ ­­®£® £à ä G = (V; E ) á ¨á室­®© ¢¥à設®© s, ®¡« ¤ î饣® á«¥¤ãî騬 ᢮©á⢮¬: ¤«ï ª ¦¤®£® ॡà (u; v) 2 E áãé¥áâ¢ã¥â ª ª ¤¥à¥¢® ªà âç ©è¨å ¯ã⥩ á ª®à­¥¬ s, ᮤ¥à¦ 饥 ॡ஠(u; v), â ª ¨ ¤¥à¥¢®
ªà âç ©è¨å ¯ã⥩ á ª®à­¥¬ s, 㪠§ ­­®£® à¥¡à ­¥ ᮤ¥à¦ 饥.
25-1.3 “¡¥¤¨â¥áì, çâ® ¤®ª § ⥫ìá⢮ «¥¬¬ë 25.3 ¯à®å®¤¨â ¨ ¤«ï
⮣® á«ãç ï, ª®£¤ ¢¥á ¯ã⥩ à ¢­ë 1 ¨«¨ ;1.
25-1.4 ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë©
£à ä á ¨á室­®© ¢¥à設®© s. à¥¤¯®«®¦¨¬, çâ® ¯®á«¥ ®¯¥à 樨
Initialize-Single-Source(G; s), § ª®â®à®© á«¥¤ã¥â ­¥ª®â®à ï
¯®á«¥¤®¢ ⥫쭮áâì ५ ªá 権 ॡ¥à, ®ª § «®áì, çâ® [s] =
6 nil.
„®ª ¦¨â¥, çâ® G ᮤ¥à¦¨â 横« ®âà¨æ ⥫쭮£® ¢¥á .
25-1.5 ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä, ¢
ª®â®à®¬ ¢¥á ¢á¥å ॡ¥à ­¥®âà¨æ ⥫ì­ë. ‚롥६ ¨á室­ãî ¢¥à設ã s 2 V , ¤«ï ª ¦¤®© v 2 V n fsg ¢ë¡¥à¥¬ ¢¥à設ã [v] 2 V
â ª¨¬ ®¡à §®¬, ç⮡ë [v] ¡ë« ¯à¥¤è¥á⢥­­¨ª®¬ v ­ ­¥ª®â®à®¬ ªà âç ©è¥¬ ¯ã⨠¨§ s ¢ v; ¥á«¨ v ­¥¤®á⨦¨¬ ¨§ s, ¯®«®¦¨¬
[v ] = nil. à¨¢¥¤¨â¥ ¯à¨¬¥à £à ä G ¨ ä㭪樨 , 㤮¢«¥â¢®àïîé¨å ¯à¨¢¥¤¥­­ë¬ ¢ëè¥ ãá«®¢¨ï¬, ¤«ï ª®â®àëå ¯®¤£à ä G ,
¯®áâ஥­­ë© ¯® ä㭪樨 , ᮤ¥à¦¨â 横«ë (¢ ᨫ㠫¥¬¬ë 25.8,
¨­¨æ¨ «¨§ æ¨ï á ¯®á«¥¤®¢ ⥫쭮áâìî ५ ªá 権 â ª®© ä㭪樨
¤ âì ­¥ ¬®¦¥â).
25-1.6 ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä
á ­ ç «ì­®© ¢¥à設®© s, ­¥ ¨¬¥î騩 横«®¢ ®âà¨æ ⥫쭮£®
¢¥á , ¤®á⨦¨¬ëå ¨§ s. ®ª ¦¨â¥, çâ® ¯®á«¥ ®¯¥à 樨 InitializeSingle-Source(G; s), § ª®â®à®© á«¥¤ã¥â ¯à®¨§¢®«ì­ ï ¯®á«¥¤®¢ ⥫쭮áâì ५ ªá 権 àñ¡¥à, ¢áïª ï ¢¥à設 v 2 V [G ] ¤®á⨦¨¬ ¨§ s ¢ £à ä¥ G .
25-1.7 ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä
á ­ ç «ì­®© ¢¥à設®© s, ­¥ ᮤ¥à¦ 騩 横«®¢ ®âà¨æ ⥫쭮£®
¢¥á . ®ª ¦¨â¥, çâ® ¬®¦­® ¯à®¢¥á⨠®¯¥à æ¨î Initialize-SingleSource(G; s), § ⥬ jV j; 1 ५ ªá 権 ॡ¥à â ª¨¬ ®¡à §®¬, çâ®
¢ १ã«ìâ â¥ à ¢¥­á⢮ d[v] = (s; v) ¡ã¤¥â ¢ë¯®«­ïâìáï ¤«ï ¢á¥å
v 2 V.
25-1.8 ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä á
­ ç «ì­®© ¢¥à設®© s. à¥¤¯®«®¦¨¬, çâ® ¨§ ¢¥à設ë s ¤®á⨦¨¬
横« ®âà¨æ ⥫쭮£® ¢¥á . ®ª ¦¨â¥, çâ® áãé¥áâ¢ã¥â ¡¥áª®­¥ç­ ï
¯®á«¥¤®¢ ⥫쭮áâì ५ ªá 権, ¯®á«¥ ª ¦¤®© ¨§ ª®â®àëå äã­ªæ¨ï
504
ƒ« ¢ 25 Šà âç ©è¨¥ ¯ã⨠¨§ ®¤­®© ¢¥à設ë
¨á. 25.5
¨áã­®ª 25.5 ¨á. 25.5. €«£®à¨â¬ „¥©ªáâàë. ˆá室­ ï ¢¥à設 | ªà ©­ïï
«¥¢ ï. Žæ¥­ª¨ ªà âç ©è¥£® ¯ã⨠㪠§ ­ë ¢ ¢¥à設 å. ‘¥àë¬ æ¢¥â®¬ ¢ë¤¥«¥­ë àñ¡à (u; v), ¤«ï ª®â®àëå [v] = u. —ñà­ë¥ ¢¥àè¨­ë «¥¦ â ¢ ¬­®¦¥á⢥
S , ®áâ «ì­ë¥ ­ 室ïâáï ¢ ®ç¥à¥¤¨ Q = V n S . ( ) ¥à¥¤ ¯¥à¢®© ¨â¥à 樥© 横« while. ‘¥à ï ¢¥à設 ¨¬¥¥â ¬¨­¨¬ «ì­®¥ §­ 祭¨¥ d ¨ ¢ë¡¨à ¥âáï ¢ ª ç¥á⢥ ¢¥à設ë u ¢ áâப¥ 5 (¡{¥) ®á«¥¤®¢ ⥫ì­ë¥ á®áâ®ï­¨ï ¯®á«¥ ª ¦¤®©
¨â¥à 樨 横« while. ‘¥à ï ¢¥à設 ¢ë¡¨à ¥âáï ¢ ª ç¥á⢥ ¢¥à設ë u ¯à¨
á«¥¤ãî饩 ¨â¥à 樨. ‡­ 祭¨ï d ¨ ­ à¨áã­ª¥ (¥) | ®ª®­ç ⥫ì­ë¥.
d ¬¥­ï¥âáï.
€«£®à¨â¬ „¥©ªáâàë à¥è ¥â § ¤ çã ® ªà âç ©è¨å ¯ãâïå ¨§ ®¤­®©
¢¥àè¨­ë ¤«ï ¢§¢¥è¥­­®£® ®à¨¥­â¨à®¢ ­­®£® £à ä G = (V; E ) á
¨á室­®© ¢¥à設®© s, ¢ ª®â®à®¬ ¢¥á ¢á¥å ॡ¥à ­¥®âà¨æ ⥫ì­ë.
(w(u; v ) > 0 ¤«ï ¢á¥å (u; v ) 2 E ). ‚ í⮬ à §¤¥«¥ ¬ë à áᬠâਢ ¥¬
⮫쪮 â ª¨¥ £à äë.
‚ ¯à®æ¥áá¥ à ¡®âë «£®à¨â¬ „¥©ªáâàë ¯®¤¤¥à¦¨¢ ¥âáï ¬­®¦¥á⢮ S V , á®áâ®ï饥 ¨§ ¢¥à設 v, ¤«ï ª®â®àëå (s; v) 㦥 ­ ©¤¥­®
(â® ¥áâì d[v ] = (s; v )). €«£®à¨â¬ ¢ë¡¨à ¥â ¢¥à設ã u 2 V n S á
­ ¨¬¥­ì訬 d[u], ¤®¡ ¢«ï¥â u ª ¬­®¦¥áâ¢ã S ¨ ¯à®¨§¢®¤¨â ५ ªá æ¨î ¢á¥å àñ¡¥à, ¢ë室ïé¨å ¨§ u, ¯®á«¥ 祣® 横« ¯®¢â®àï¥âáï.
‚¥à設ë, ­¥ «¥¦ 騥 ¢ S , åà ­ïâáï ¢ ®ç¥à¥¤¨ á ¯à¨®à¨â¥â ¬¨ Q,
®¯à¥¤¥«ï¥¬ë¬¨ §­ 祭¨ï¬¨ ä㭪樨 d. à¥¤¯®« £ ¥âáï, çâ® £à ä
§ ¤ ­ á ¯®¬®éìî ᯨ᪮¢ ᬥ¦­ëå ¢¥à設.
Dijkstra(G,w,s)
1 Initialize-Single-Source(G,s)
2 S \gets \emptyset
3 Q \gets V[G]
4 while Q \ne \emptyset
5
do u \gets Extract-Min(Q)
6
S \gets S \cup \{u\}
7
for (¤«ï) ¢á¥å ¢¥à設 v\in Adj[u]
8
do Relax(u,v,w)
 ¡®â «£®à¨â¬ „¥©ªáâàë ¯®ª § ­ ­ à¨á. 25.5. ‚ áâப¥ 1
¨­¨æ¨ «¨§¨àãîâáï d ¨ , ¢ áâப å 2 ¨ 3 ¨­¨æ¨ «¨§¨àãîâáï ¬­®¦¥á⢮ S (ª ª ¯ãá⮥) ¨ ®ç¥à¥¤ì Q = V n S = V . à¨ ª ¦¤®¬
¨á¯®«­¥­¨¨ 横« ¢ áâப å 4{8 ¨§ ®ç¥à¥¤¨ Q = V n S ¨§ë¬ ¥âáï
¢¥à設 u á ­ ¨¬¥­ì訬 §­ 祭¨¥¬ d[u]; ®­ ¤®¡ ¢«ï¥âáï ª ¬­®¦¥áâ¢ã S (¢ ¯¥à¢ë© à § ¨¬¥¥¬ u = s). ‚ áâப å 7{8 ª ¦¤®¥ ॡà®
(u; v ), ¢ë室ï饥 ¨§ u, ¯®¤¢¥à£ ¥âáï ५ ªá 樨 (¯à¨ í⮬ ¬®£ãâ
¨§¬¥­¨âìáï ®æ¥­ª d[v] ¨ ¯à¥¤è¥á⢥­­¨ª [v]). ‡ ¬¥â¨¬, çâ® ¢ 横«¥ ­®¢ë¥ ¢¥àè¨­ë ¢ ®ç¥à¥¤ì Q ­¥ ¤®¡ ¢«ïîâáï ¨ çâ® ª ¦¤ ï ¢¥à設 , 㤠«ï¥¬ ï ¨§ Q, ¤®¡ ¢«ï¥âáï ª ¬­®¦¥áâ¢ã S «¨èì ®¤­ ¦¤ë.
‘«¥¤®¢ ⥫쭮, ç¨á«® ¨â¥à 権 横« while à ¢­® jV j.
®áª®«ìªã «£®à¨â¬ „¥©ªáâàë ¢á直© à § ¢ë¡¨à ¥â ¤«ï ®¡à ¡®âª¨ ¢¥à設ë á ­ ¨¬¥­ì襩 ®æ¥­ª®© ªà âç ©è¥£® ¯ãâ¨, ¬®¦­®
Šà âç ©è¨¥ ¯ã⨠¨ ५ ªá æ¨ï
505
¢ í⮬ á«ãç ¥ ª à⨭ª ®áâ « áì ⮩ ¦¥, ­® ¯®¤¯¨áì ¯¥à¥¯¨á ­ ¨áã­®ª 25.6 25.6 ‚ ¯ã⨠®â s ¤® u ¢ë¤¥«¥­ ç áâì (s{x), ¯à®å®¤ïé ï 楫¨ª®¬
¢­ãâਠS , ¨ ¯¥à¢ ï ¢¥à設 y, «¥¦ é ï ¢­¥ S (¢®§¬®¦­®, x = s ¨«¨ y = u).
᪠§ âì, çâ® ®­ ®â­®á¨âáï ª ¦ ¤­ë¬ «£®à¨â¬ ¬ (£«. 17). ®ª ¦¥¬,
çâ® ¢ ¤ ­­®¬ á«ãç ¥ ¦ ¤­ ï áâà ⥣¨ï ¤ ñâ ¯à ¢¨«ì­ë© १ã«ìâ â.
’¥®à¥¬ 25.10 (à ¢¨«ì­®áâì «£®à¨â¬ „¥©ªáâàë)
ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä á ­¥®âà¨æ ⥫쭮© ¢¥á®¢®© ä㭪樥© w : E ! ¨ ¨á室­®© ¢¥à設®© s.
’®£¤ ¯®á«¥ ¯à¨¬¥­¥­¨ï «£®à¨â¬ „¥©ªáâàë ª í⮬㠣à äã ¤«ï
¢á¥å ¢¥à設 u 2 V ¡ã¤ã⠢믮«­ïâìáï à ¢¥­á⢠d[u] = (s; u).
„®ª § ⥫ìá⢮
à®¢¥à¨¬, çâ® ¯®á«¥ «î¡®£® ç¨á« ¨â¥à 権 横« textbfwhile
¢ë¯®«­¥­® á«¥¤ãî饥 ᢮©á⢮:
(a) ¤«ï ¢¥à設 v 2 S §­ 祭¨¥ d[v ] à ¢­® (s; v ), ¯à¨çñ¬ áãé¥áâ¢ã¥â ¯ãâì ¨§ s ¢ v ¢¥á (s; v), ¯à®å®¤ï騩 ⮫쪮 ¯® ¢¥à設 ¬
¨§ S ;
(b) ¤«ï ¢¥à設 v 2 Q = V n S §­ 祭¨¥ d[v ] à ¢­® ­ ¨¬¥­ì襬ã
¢¥áã ¯ã⨠¨§ s ¢ v, ¥á«¨ ãç¨âë¢ âì ⮫쪮 ⥠¯ãâ¨, ¢ ª®â®àëå ¢á¥
¢¥à設ë, ªà®¬¥ ¯®á«¥¤­¥© (v), «¥¦ â ¢ S (¥á«¨ â ª¨å ¯ã⥩ ­¥â,
d[v] = 1).
®á«¥ ¯¥à¢®© ¨â¥à 樨 横« (ª®£¤ ¢ S «¥¦¨â ⮫쪮 ¢¥à設 s ¨ ⮫쪮 çâ® ¯à®¢¥¤¥­ë ५ ªá 樨 ¢á¥å àñ¡¥à, ¢¥¤ãé¨å ¨§ s) íâ®
᢮©á⢮ ¢ë¯®«­¥­®. à®¢¥à¨¬, çâ® ®­® ­¥ ­ àãè¨âáï ¨ ­ á«¥¤ãîé¨å ¨â¥à æ¨ïå.
ãáâì u | ¢¥à設 Q á ¬¨­¨¬ «ì­ë¬ §­ 祭¨¥¬ d[u]. …᫨
d[u] = 1, â® ­¥ áãé¥áâ¢ã¥â ¯ãâ¨, ¢ ª®â®à®¬ ¢á¥ ¢¥à設ë, ªà®¬¥
¯®á«¥¤­¥©, «¥¦ â ¢ S . ‡­ ç¨â, ¨§ S ¢®®¡é¥ ­¥«ì§ï ­¨ª ª ¢ë©â¨
(®¡®à¢ ¢ ¯ãâì ¢ ¬®¬¥­â ¢ë室 , ¬ë ¯®«ã稫¨ ¡ë ¯ãâì á 㪠§ ­­ë¬
᢮©á⢮¬). ãáâì ⥯¥àì d[u] ª®­¥ç­®. ’®£¤ áãé¥áâ¢ã¥â ¯ãâì ¨§
s ¢ u ¢¥á d[u], ¯à®å®¤ï騩 ¯® ¢¥à設 ¬ S ¤® ¯®á«¥¤­¥£® ¬®¬¥­â (¤® ¢¥à設ë u). „®ª ¦¥¬, çâ® ®­ ¡ã¤¥â ªà âç ©è¨¬. (’¥¬ á ¬ë¬
¢¥à設ã u ¬®¦­® ¤®¡ ¢¨âì ¢ S , ­¥ ­ àãè ï ã⢥ত¥­¨ï (a).)
ãáâì ¥áâì ª ª®©-â® ¤à㣮© ¯ãâì ¨§ s ¢ u (à¨á. 25.6). ®á¬®âਬ
­ ¯¥à¢ãî ¢¥à設ã í⮣® ¯ãâ¨, «¥¦ éãî ¢­¥ S ; ®¡®§­ 稬 ¥ñ y
(¢®§¬®¦­®, y = u). — áâì ¯ã⨠®â s ¤® y ¯à®å®¤¨â ¯® S ¤® ¯®á«¥¤­¥£®
¬®¬¥­â , ¯®í⮬㠢¥á í⮩ ç á⨠­¥ ¬¥­ìè¥ d[y] (¯® ¯à¥¤¯®«®¦¥­¨î
(a)). Žáâ «®áì § ¬¥â¨âì, çâ® ¢¥á ¢á¥£® ¯ã⨠­¥ ¬¥­ìè¥ ¢¥á ¥£®
ç á⨠(¢¥á àñ¡¥à ­¥®âà¨æ ⥫ì­ë) ¨ çâ® d[y] 6 d[u], ¯®áª®«ìªã ¢
Q ¢¥à設 u ¨¬¥« ­ ¨¬¥­ì襥 §­ 祭¨¥ d[u].
ˆâ ª, ãá«®¢¨¥ (a) ®áâ ­¥âáï ¢¥à­ë¬ ¯®á«¥ ¤®¡ ¢«¥­¨ï u ª S .
Žáâ ñâáï ¯à®¢¥à¨âì ãá«®¢¨¥ (b). ®áª®«ìªã S 㢥«¨ç¨«®áì ¨ áâ «®
à ¢­ë¬ S 0 = S [ fug, ¯ã⥩, ­¥ ¢ë室ïé¨å ¨§ S ¤® ¯®á«¥¤­¥£® ¬®¬¥­â , áâ «® ¡®«ìè¥, ¨ ¤«ï ᮡ«î¤¥­¨ï ãá«®¢¨ï (b) §­ 祭¨ï d[v]
¤«ï v 2 Q ­ ¤® 㬥­ìè âì. â® ¨ ¤¥« ¥âáï ¢ ¯à®æ¥áᥠ५ ªá 樨.
R
506
ƒ« ¢ 25 Šà âç ©è¨¥ ¯ã⨠¨§ ®¤­®© ¢¥à設ë
à¨ ५ ªá 樨 ॡà (u; v) §­ 祭¨¥ d[v] áâ ­®¢¨âáï à ¢­ë¬
d0 [v ] = min(d[v ]; d[u]+ w(u; v ))
(25:2)
Œë §­ ¥¬, çâ® d[v] ¥áâì ¢¥á ­¥ª®â®à®£® ¯ãâ¨, ª®â®àë© ¢¥¤ñâ ¨§ s
¢ v, ®áâ ¢ ïáì ¤® ¯®á«¥¤­¥£® è £ ¢ S . ‚â®à®© ç«¥­ d[u] + w(u; v)
¥áâì ¢¥á ­¥ª®â®à®£® ¯ãâ¨, ª®â®àë© ¢¥¤ñâ ¨§ s ¢ u (®áâ ¢ ïáì ¤®
¯®á«¥¤­¥£® è £ ¢ S ), § ⥬ ¨¤ñâ ¯® ॡàã (u; v). ’ ª¨¬ ®¡à §®¬
áãé¥áâ¢ã¥â ¯ãâì ¨§ s ¢ v, ª®â®àë© ¤® ¯®á«¥¤­¥£® è £ ®áâ ñâáï ¢
S 0 ¨ ¨¬¥¥â ¢¥á d0[v ]. ®ª ¦¥¬, çâ® «î¡®© ¯ãâì p ¨§ s ¢ v , ª®â®àë© ¤®
¯®á«¥¤­¥£® è £ ®áâ ñâáï ¢ S 0, ¨¬¥¥â ¢¥á ­¥ ¬¥­ìè¥ d0[v]. ‚ á ¬®¬
¤¥«¥, ¥á«¨ x 2 S 0 | ¥£® ¯à¥¤¯®á«¥¤­ïï ¢¥à設 , â® «¨¡® x 2 S , ¨
⮣¤ ¢¥á ¯ã⨠p ­¥ ¬¥­ìè¥ d[v] ¯® ¨­¤ãªâ¨¢­®¬ã ¯à¥¤¯®«®¦¥­¨î
(a), «¨¡® x = u, ¨ ⮣¤ ¢¥á ¯ã⨠p ­¥ ¬¥­ìè¥ d[u] + w(u; v ).
Œë ¤®ª § «¨, çâ® ãá«®¢¨ï (a) ¨ (b) ®áâ îâáï ¢¥à­ë¬¨ ¯®á«¥ «î¡®£® ç¨á« ¨â¥à 権. ‡­ ç¨â, ®­¨ ¢¥à­ë ¨ ¯®á«¥ ¢ë室 ¨§ 横« ;
¢ íâ®â ¬®¬¥­â S = V ¨ ¯®â®¬ã d[u] = (s; u) ¤«ï «î¡®© ¢¥à設ë
v 2 V.
ˆ§ ¤®ª § ­­®© â¥®à¥¬ë ¨ «¥¬¬ë 25.9 ­¥¬¥¤«¥­­® ¢ë⥪ ¥â
‘«¥¤á⢨¥ 25.11
ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä á ­¥®âà¨æ ⥫쭮© ¢¥á®¢®© ä㭪樥© w ¨ ¨á室­®© ¢¥à設®© s. ’®£¤ ¯®á«¥ ¯à¨¬¥­¥­¨ï «£®à¨â¬ „¥©ªáâàë ª í⮬㠣à äã ¯®¤£à ä
¯à¥¤è¥á⢥­­¨ª®¢ G ¡ã¤¥â ¤¥à¥¢®¬ ªà âç ©è¨å ¯ã⥩ á ª®à­¥¬
¢ s.
‚६ï à ¡®âë «£®à¨â¬ „¥©ªáâàë
‘­ ç « ¯à¥¤¯®«®¦¨¬, çâ® ®ç¥à¥¤ì á ¯à¨®à¨â¥â ¬¨ Q = V n S ॠ«¨§®¢ ­ ª ª ¬ áᨢ. à¨ í⮬ á⮨¬®áâì ®¯¥à 樨 Extract-Min
¥áâì O(V ); ¯®áª®«ìªã «£®à¨â¬ ¤¥« ¥â V â ª¨å ®¯¥à 権, á㬬 à­ ï á⮨¬®áâì ¢á¥å 㤠«¥­¨© ¨§ ®ç¥à¥¤¨ ¥áâì O(V 2). —â® ¦¥ ¤® á⮨¬®á⨠®áâ «ì­ëå ®¯¥à 権, â® ª ¦¤ ï ¢¥à設 v 2 V ¤®¡ ¢«ï¥âáï
ª ¬­®¦¥áâ¢ã S ⮫쪮 ®¤¨­ à §, ¨ ª ¦¤®¥ ॡ஠¨§ Adj [v] ®¡à ¡ âë¢ ¥âáï ⮦¥ ®¤¨­ à §. Ž¡é¥¥ ª®«¨ç¥á⢮ í«¥¬¥­â®¢ ¢® ¢á¥å ᯨ᪠å
ᬥ¦­ëå ¢¥à設 ¥áâì jE j; á⮨¬®áâì ª ¦¤®© ५ ªá 樨 ¥áâì O(1).
®í⮬ã á⮨¬®áâì ¯à®ç¨å ®¯¥à 権 ¥áâì O(E ), ®¡é ï á⮨¬®áâì
«£®à¨â¬ ¥áâì O(V 2 + E ).
…᫨ £à ä ï¥âáï à §à¥¦¥­­ë¬, ¨¬¥¥â á¬ë᫠ॠ«¨§®¢ âì ®ç¥à¥¤ì á ¯®¬®éìî (¤¢®¨ç­®©) ªãç¨ (à §¤¥« 7.5). ®«ãç ¥¬ë© «£®à¨â¬ ­ §ë¢ îâ ¨­®£¤ ¬®¤¨ä¨æ¨à®¢ ­­ë¬ «£®à¨â¬®¬ „¥©ªáâàë
(modied Dijkstra algorithm). ‘⮨¬®áâì ®¯¥à 樨 Extract-Min
¯à¨ â ª®© ॠ«¨§ 樨 ®ç¥à¥¤¨ ¥áâì O(lg V ), á⮨¬®áâì ¯®áâ஥­¨ï ªãç¨ (áâப 3) ¥áâì O(V ). à¨á¢ ¨¢ ­¨¥ d[v] d[u] + w(u; v)
¯à¨ ५ ªá 樨 ॡà ॠ«¨§ã¥âáï á ¯®¬®éìî ¢ë§®¢ ¯à®æ¥¤ãàë
Decrease-Key(Q; v; d[u] + w(u; v )), ¨¬¥î饣® á⮨¬®áâì O(lg V )
(á¬. ã¯à ¦­¥­¨¥ 7.5-4). Š®«¨ç¥á⢮ â ª¨å ¢ë§®¢®¢ ­¥ ¯à¥¢®á室¨â jE j, â ª çâ® ®¡é ï á⮨¬®áâì ¬®¤¨ä¨æ¨à®¢ ­­®£® «£®à¨â¬ „¥©ªáâàë ¥áâì O((V + E ) lg V ) (¥á«¨ ¢á¥ ¢¥àè¨­ë ¤®á⨦¨¬ë ¨§
Šà âç ©è¨¥ ¯ã⨠¨ ५ ªá æ¨ï
507
¨á室­®©, â® £à ä á¢ï§¥­, jE j > jV j ; 1 ¨ ¯®á«¥¤­îî ®æ¥­ªã ¬®¦­®
¯¥à¥¯¨á âì ª ª O(E lg V )).
…᫨ ॠ«¨§®¢ âì ®ç¥à¥¤ì Q ¢ ¢¨¤¥ 䨡®­ ç稥¢®© ªãç¨ (á¬.
£« ¢ã 21), â® ¬®¦­® ¤®¡¨âìáï á⮨¬®á⨠O(V lg V +E ): ¢ á ¬®¬ ¤¥«¥,
¯à¨ í⮬ ãçñâ­ ï á⮨¬®áâì ª ¦¤®© ¨§ jV j ®¯¥à 権 ExtractMin ¡ã¤¥â O(lg V ), ãç¥â­ ï á⮨¬®áâì ª ¦¤®© ¨§ jE j ®¯¥à 権
Decrease-Key ¡ã¤¥â O(1). Šáâ â¨, ªãç¨ ”¨¡®­ çç¨ ¡ë«¨ ¨§®¡à¥â¥­ë ¨¬¥­­® ¢ á¢ï§¨ á ¬®¤¨ä¨æ¨à®¢ ­­ë¬ «£®à¨â¬®¬ „¥©ªáâàë:
¯®áª®«ìªã ¯à¨ ¥£® ¨á¯®«­¥­¨¨ ¬®¦¥â ¯®âॡ®¢ âìáï £®à §¤® ¡®«ìè¥
¢ë§®¢®¢ ¯à®æ¥¤ãàë Decrease-Key, 祬 Extract-Min, å®â¥«®áì
á­¨§¨âì á⮨¬®áâì Decrease-Key.
€«£®à¨â¬ „¥©ªáâàë ­ ¯®¬¨­ ¥â ª ª «£®à¨â¬ ¯®¨áª ¢ è¨à¨­ã
(à §¤. 23.2), â ª ¨ «£®à¨â¬ à¨¬ ­ 宦¤¥­¨ï ¬¨­¨¬ «ì­®£® ¯®ªàë¢ î饣® ¤¥à¥¢ (à §¤. 24.2). ®«ì ¬­®¦¥á⢠S ¢ «£®à¨â¬¥
„¥©ªáâàë ­ «®£¨ç­ ஫¨ ¬­®¦¥á⢠ç¥à­ëå ¢¥à設 ¯à¨ ¯®¨áª¥
¢ è¨à¨­ã. ‘室á⢮ «£®à¨â¬®¢ „¥©ªáâàë ¨ à¨¬ ¢ ⮬, çâ® ®­¨
®¡ ¯®«ì§ãîâáï ®ç¥à¥¤ìî á ¯à¨®à¨â¥â ¬¨ ¯à¨ ॠ«¨§ 樨 ¦ ¤­®©
áâà ⥣¨¨.
“¯à ¦­¥­¨ï
25.2-1
à¨¬¥­¨â¥ «£®à¨â¬ „¥©ªáâàë ª £à äã ­ à¨á. 25.2, ¢ë¡à ¢ § ¨á室­ãî á­ ç « ¢¥à設ã s, § ⥬ ¢¥à設ã y. ‘«¥¤ãï ®¡à §æã
à¨á. 25.5, ¯®ª ¦¨â¥ 室 ¨á¯®«­¥­¨ï «£®à¨â¬ .
25-2.2
à¨¢¥¤¨â¥ ¯à¨¬¥à £à ä (á ®âà¨æ ⥫ì­ë¬¨ ¢¥á ¬¨ àñ¡¥à), ¤«ï
ª®â®à®£® «£®à¨â¬ „¥©ªáâàë ¤ ñâ ­¥¢¥à­ë© ®â¢¥â. ƒ¤¥ ¢ ¤®ª § ⥫ìá⢥ ⥮६ë 25.10 ¨á¯®«ì§ã¥âáï ­¥®âà¨æ ⥫쭮áâì ¢¥á®¢®©
ä㭪樨?
25-2.3
…᫨ § ¬¥­¨âì áâபã 4 ¢ «£®à¨â¬¥ „¥©ªáâàë ­ 4 while |Q| >1
â® ç¨á«® ¨â¥à 権 横« while 㬥­ìè¨âáï ­ 1. ã¤¥â «¨ ¨§¬¥­ñ­­ë© â ª¨¬ ®¡à §®¬ «£®à¨â¬ ¯à ¢¨«ì­ë¬?
25-2.4
ãáâì á ª ¦¤ë¬ ॡ஬ ®à¨¥­â¨à®¢ ­­®£® £à ä G = (V; E ) áá®æ¨¨à®¢ ­® ¤¥©á⢨⥫쭮¥ ç¨á«® r(u; v), ¯à¨çñ¬ 0 6 r(u; v) 6 1.
ã¤¥¬ ¨­â¥à¯à¥â¨à®¢ âì r(u; v) ª ª " ­ ¤ñ¦­®áâì" | ¢¥à®ïâ­®áâì
⮣®, ç⮠ᨣ­ « ãᯥ譮 ¯à®©¤¥â ¯® ª ­ «ã ¨§ u ¢ v. ‘ç¨â ï, çâ®
ᮡëâ¨ï ¯à®å®¦¤¥­¨ï ᨣ­ « ¯® à §«¨ç­ë¬ ª ­ « ¬ ­¥§ ¢¨á¨¬ë,
¯à¥¤«®¦¨â¥ «£®à¨â¬ ¤«ï ­ 宦¤¥­¨ï ­ ¨¡®«¥¥ ­ ¤ñ¦­®£® ¯ãâ¨
¬¥¦¤ã ¤¢ã¬ï ¤ ­­ë¬¨ ¢¥à設 ¬¨.
25-2.5
ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä á ¢¥á®¢®© ä㭪樥© w : E ! f0; 1; : : :; W ; 1g, £¤¥ W > 0 | 楫®¥ ç¨á«®. Œ®¤¨ä¨æ¨àã©â¥ ¤«ï ¤ ­­®£® á«ãç ï «£®à¨â¬ „¥©ªáâàë â ª,
508
ƒ« ¢ 25 Šà âç ©è¨¥ ¯ã⨠¨§ ®¤­®© ¢¥à設ë
çâ®¡ë ®­ ¨áª « ªà âç ©è¨¥ ¯ã⨠¨§ ¤ ­­®© ¢¥àè¨­ë § ¢à¥¬ï
O(WV + E ).
25-2.6
“ᮢ¥à襭áâ¢ã©â¥ à¥è¥­¨¥ ¯à¥¤ë¤ã饣® ã¯à ¦­¥­¨ï, ᤥ« ¢
¢à¥¬ï à ¡®âë «£®à¨â¬ à ¢­ë¬ O((V + E ) lg W ). (“ª § ­¨¥:
᪮«ìª® à §«¨ç­ëå ®æ¥­®ª ªà âç ©è¥£® ¯ã⨠¤«ï ¢¥à設 ¨§ V n S
¬®¦¥â ¢áâà¥â¨âìáï ®¤­®¢à¥¬¥­­®?)
25.2 €«£®à¨â¬ ¥««¬ ­ -”®à¤ €«£®à¨â¬ ¥««¬ ­ -”®à¤ (Bellman-Ford algorithm) à¥è ¥â § ¤ çã ® ªà âç ©è¨å ¯ãâïå ¨§ ®¤­®© ¢¥àè¨­ë ¤«ï á«ãç ï, ª®£¤ ¢¥á ¬ ॡ¥à à §à¥è¥­® ¡ëâì ®âà¨æ ⥫ì­ë¬¨. â®â «£®à¨â¬ ¢®§¢à é ¥â §­ 祭¨¥ true, ¥á«¨ ¢ £à ä¥ ­¥â 横« ®âà¨æ ⥫쭮£®
¢¥á , ¤®á⨦¨¬®£® ¨§ ¨á室­®© ¢¥à設ë, ¨ false, ¥á«¨ â ª®¢®©
横« ¨¬¥¥âáï. ‚ ¯¥à¢®¬ á«ãç ¥ «£®à¨â¬ ­ 室¨â ªà âç ©è¨¥ ¯ãâ¨
¨ ¨å ¢¥á ; ¢® ¢â®à®¬ á«ãç ¥ § ¤ ç ªà âç ©è¨å ¯ã⥩ (¯® ªà ©­¥©
¬¥à¥ ¤«ï ­¥ª®â®àëå ¢¥à設) ­¥ áãé¥áâ¢ã¥â.
®¤®¡­® «£®à¨â¬ã „¥©ªáâàë, «£®à¨â¬ ¥««¬ ­ -”®à¤ ¯à®¨§¢®¤¨â ५ ªá æ¨î àñ¡¥à, ¯®ª ¢á¥ §­ 祭¨ï d[v] ­¥ áà ¢­ïîâáï á
(s; v ) (¥á«¨ ¢á¥ (s; v ) ®¯à¥¤¥«¥­ë).
Bellman-Ford(G,w,s)
1 Initialize-Single-Source(G,s)
2 for i \gets 1 to |V[G]|-1
3
do for (¤«ï) ª ¦¤®£® ॡà (u,v) \in E[G]
4
do Relax(u,v,w)
5 for (¤«ï) ª ¦¤®£® ॡà (u,v) \in E[G]
6
do if d[v]>d[u]+w(u,v)
7
then return \textsc{false}
8 return \textsc{true}
 à¨á. 25.7 ¯®ª § ­ à ¡®â «£®à¨â¬ ¥««¬ ­ -”®à¤ ¤«ï
£à ä á ¯ïâìî ¢¥à設 ¬¨. ®á«¥ ¨­¨æ¨ «¨§ 樨 (áâப 1) «£®à¨â¬ jV j ; 1 à § ¤¥« ¥â ®¤­® ¨ â® ¦¥: ¯¥à¥¡¨à ¥â ¯® à §ã ¢á¥ àñ¡à £à ä ¨ ¯®¤¢¥à£ ¥â ª ¦¤®¥ ¨§ ­¨å ५ ªá 樨 (áâப¨ 2{4). ®á«¥
í⮣® «£®à¨â¬ ¯à®¢¥àï¥â, ­¥â «¨ 横« ®âà¨æ ⥫쭮£® ¢¥á , ¤®á⨦¨¬®£® ¨§ ­ ç «ì­®© ¢¥à設ë s (áâப¨ 5{8; ¢áª®à¥ ¬ë 㢨¤¨¬,
¯®ç¥¬ã í⠯஢¥àª ¯®§¢®«ï¥â ¢ëâì â ª®© 横«).
‚६ï à ¡®âë «£®à¨â¬ ¥««¬ ­ -”®à¤ ¥áâì O(V E ), ¯®áª®«ìªã ®¡é¥¥ ç¨á«® ५ ªá 権 ¥áâì O(V E ), á⮨¬®áâì ¨­¨æ¨ «¨§ 樨 ¢ áâப¥ 1 ¥áâì O(V ), á⮨¬®áâì 横« ¢ áâப å 5{8
¥áâì O(E ).
„®ª ¦¥¬, çâ® «£®à¨â¬ ¥««¬ ­ -”®à¤ à ¡®â ¥â ¯à ¢¨«ì­®.
‹¥¬¬ 25.12
ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä á ¢¥á®-
€«£®à¨â¬ ¥««¬ ­ -”®à¤ 509
¨áã­®ª 25.7 25.7 €«£®à¨â¬ ¥««¬ ­ -”®à¤ . ˆá室­ ï ¢¥à設 | ªà ©­ïï
«¥¢ ï (z ). Žæ¥­ª¨ ªà âç ©è¥£® ¯ã⨠㪠§ ­ë ¢ ¢¥à設 å. ‘¥àë¬ æ¢¥â®¬ ¢ë¤¥«¥­ë àñ¡à (u; v), ¤«ï ª®â®àëå [v] = u. ‚ ¤ ­­®¬ ¯à¨¬¥à¥ ¯à¨ ª ¦¤®© ¨â¥à 樨
横« ¢ áâப å 2{4 àñ¡à ¯®¤¢¥à£ îâáï ५ ªá 樨 ¢ «¥ªá¨ª®£à ä¨ç¥áª®¬ ¯®à浪¥: (u; v), (u; x), (u; y), (v; u), (x;v), (x;y), (y; v), (y; z ), (z; u), (z; x). ( ) ¥à¥¤
¯¥à¢ë¬ ®¡å®¤®¬ àñ¡¥à. (¡{¤) ®á«¥¤®¢ ⥫ì­ë¥ á®áâ®ï­¨ï ¯®á«¥ ª ¦¤®© ®¡à ¡®âª¨ ¢á¥å àñ¡¥à. ‡­ 祭¨ï d ­ à¨áã­ª¥ (¤) | ®ª®­ç ⥫ì­ë¥. ‚ ¤ ­­®¬ á«ãç ¥
«£®à¨â¬ ¥««¬ ­ -”®à¤ ¢®§¢à é ¥â §­ 祭¨¥ true.
¢®© ä㭪樥© w ¨ ¨á室­®© ¢¥à設®© s, ­¥ ᮤ¥à¦ 騩 横«®¢ ®âà¨æ ⥫쭮£® ¢¥á , ¤®á⨦¨¬ëå ¨§ s. ’®£¤ ¯® ®ª®­ç ­¨¨ à ¡®âë
¯à®æ¥¤ãàë Bellman-Ford à ¢¥­á⢮ d[v] = (s; v) ¡ã¤¥â ¢ë¯®«­ïâìáï ¤«ï ¢á¥å ¢¥à設 v, ¤®á⨦¨¬ëå ¨§ s.
„®ª § ⥫ìá⢮ ãáâì p = hs = v0; v1; : : :; vk = vi | ªà âç ©è¨©
¯ãâì ¨§ s ¢ v. Œ®¦­® áç¨â âì, çâ® íâ®â ¯ãâì ­¥ ᮤ¥à¦¨â 横«®¢ (®­¨ ⮫쪮 㢥«¨ç¨¢ îâ ¢¥á ¯® ¯à¥¤¯®«®¦¥­¨î), ¯®í⮬ã
k 6 jV j ; 1. „®ª ¦¥¬ ¨­¤ãªæ¨¥© ¯® i, çâ® ¯®á«¥ i-®© ¨â¥à 樨
横« (¢ áâப å 2{4) ¡ã¤¥â ¢ë¯®«­¥­® à ¢¥­á⢮ d[vi] = (s; vi):
¯®áª®«ìªã ¢á¥£® ¤¥« ¥âáï jV j ; 1 ¨â¥à 権, «¥¬¬ ¡ã¤¥â á«¥¤®¢ âì
¨§ í⮣® ã⢥ত¥­¨ï ¨ «¥¬¬ë 25.5.
à¨ i = 0 íâ® ®ç¥¢¨¤­®, â ª ª ª d[s] = (s; s) = 0 ¯à¨ ¢å®¤¥ ¢
横«. ãáâì ¯®á«¥ i ; 1-®© ¨â¥à 樨 ¡ë«® d[vi;1] = (s; vi;1). à¨
i-®© ¨â¥à 樨 ¯à®¨§®©¤¥â ५ ªá æ¨ï ॡà (vi;1 ; vi ), ¯®á«¥ 祣® ¯®
«¥¬¬¥ 25.7 ãáâ ­®¢¨âáï à ¢¥­á⢮ d[vi] = (s; vi). („à㣨¥ ५ ªá 樨 ¬®£ãâ â ª¦¥ 㬥­ìè âì d[vi], ­® ­¥ ¬®£ãâ ᤥ« âì ¥£® ¬¥­ìè¥
(s; vi).)
‘«¥¤á⢨¥ 25.13
ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä á ¢¥á®¢®© ä㭪樥© w ¨ ¨á室­®© ¢¥à設®© s. ’®£¤ ¢¥à設 v 2 V
¤®á⨦¨¬ ¨§ s ¢ ⮬ ¨ ⮫쪮 ⮬ á«ãç ¥, ª®£¤ ¯® ®ª®­ç ­¨¨
à ¡®âë ¯à®æ¥¤ãàë Bellman-Ford, ¯à¨¬¥­ñ­­®© ª í⮬㠣à äã,
®ª §ë¢ ¥âáï, çâ® d[v] < 1.
„®ª § ⥫ìá⢮ ®áâ ¢«ï¥âáï ç¨â ⥫î (ã¯à. 25.3-2).
’¥®à¥¬ 25.14 (à ¢¨«ì­®áâì «£®à¨â¬ ¥««¬ ­ -”®à¤ )
ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä á ¢¥á®¢®© ä㭪樥© w ¨ ¨á室­®© ¢¥à設®© s. …᫨ ¯à®æ¥¤ãà BellmanFord, ¯à¨¬¥­¥­­ ï ª í⮬㠣à äã, ¢®§¢à é ¥â §­ 祭¨¥ true, â®
¢ १ã«ìâ ⥠¥ñ à ¡®âë ¤«ï ¢á¥å v 2 V ¡ã¤ã⠢믮«­¥­ë à ¢¥­á⢠d[v] = (s; v) ¨ ¯®¤£à ä ¯à¥¤è¥á⢥­­¨ª®¢ G ¡ã¤¥â ¤¥à¥¢®¬
ªà âç ©è¨å ¯ã⥩ á ª®à­¥¬ s. …᫨ ¦¥ ¯à®æ¥¤ãà Bellman-Ford
¢®§¢à é ¥â §­ 祭¨¥ false, â® ¢ £à ä¥ ¥áâì 横« ®âà¨æ ⥫쭮£®
¢¥á , ¤®á⨦¨¬ë© ¨§ ¢¥à設ë s.
„®ª § ⥫ìá⢮ …᫨ 横« ®âà¨æ ⥫쭮£® ¢¥á , ¤®á⨦¨¬®£®
¨§ ¢¥à設ë s, ¢ £à ä¥ ­¥â, â® ¢ १ã«ìâ â¥ à ¡®âë ¯à®æ¥¤ãàë
Bellman-Ford ¡ã¤¥¬ ¨¬¥âì d[v ] = (s; v ) ¤«ï ¢á¥å v 2 V
(«¥¬¬ 25.12 ¨ á«¥¤á⢨¥ 25.13); á«¥¤®¢ ⥫쭮, £à ä G ¡ã¤¥â ¤¥-
510
ƒ« ¢ 25 Šà âç ©è¨¥ ¯ã⨠¨§ ®¤­®© ¢¥à設ë
ॢ®¬ ªà âç ©è¨å ¯ã⥩ á ¢¥à設®© s («¥¬¬ 25.9). Š®«ì ᪮à®
d[v] = (s; v) ¤«ï ¢á¥å v 2 V , ¨§ «¥¬¬ë 25.3 á«¥¤ã¥â, çâ® ¤«ï ¢á类£® ॡà (u; v) ¢ë¯®«­¥­® ­¥à ¢¥­á⢮ d[v] 6 d[u] + w(u; v). ‡­ ç¨â, ­¨ ®¤­® ¨§ ãá«®¢¨© ¢ áâப¥ 6 «£®à¨â¬ ¢ë¯®«­¥­® ­¥ ¡ã¤¥â,
¨ «£®à¨â¬ ¢®§¢à â¨â §­ 祭¨¥ true.
ãáâì ⥯¥àì ¢ £à ä¥ ¥áâì 横« ®âà¨æ ⥫쭮£® ¢¥á hv0; v1; : : :; vk = v0i, ¤®á⨦¨¬ë© ¨§ ¨á室­®© ¢¥à設ë; ­ ¬ ­ ¤®
¯®ª § âì, çâ® «£®à¨â¬ ¢®§¢à â¨â §­ 祭¨¥ false. ‚ á ¬®¬ ¤¥«¥,
¥á«¨ d[vi] 6 d[vi;1] + w(vi;1; vi) ¤«ïP¢á¥å i = 1; 2; : : :; k, â®, ᪫ ¤ë¢ ï íâ¨
k ­¥à ¢¥­á⢠¨ ᮪à é ï d[vi] ¢ ®¡¥¨å ç áâïå, ¯®«ã稬
Pk
0 6 i=1 w(vi;1 ; vi), çâ® ¯à®â¨¢®à¥ç¨â ¢ë¡®àã 横« . ‡­ ç¨â,
¤«ï ­¥ª®â®à®£® i ¨¬¥¥¬ d[vi] > d[vi;1] + w(vi;1; vi), ¨ «£®à¨â¬
¢®§¢à é ¥â §­ 祭¨¥ false.
“¯à ¦­¥­¨ï
25.3-1 à¨¬¥­¨â¥ «£®à¨â¬ ¥««¬ ­ -”®à¤ ª ®à¨¥­â¨à®¢ ­­®¬ã £à äã à¨á. 25.7, ¢ë¡à ¢ y ¢ ª ç¥á⢥ ¨á室­®© ¢¥à設ë. ñ¡à ®¡à ¡ âë¢ ©â¥ ¢ «¥ªá¨ª®£à ä¨ç¥áª®¬ ¯®à浪¥; ¨§®¡à §¨â¥ íâ ¯ë
¢ë¯®«­¥­¨ï «£®à¨â¬ ª ª ­ à¨á. 25.7. ‡ ¬¥­¨â¥ ¢¥á ॡà (y; v)
­ 4 ¨ ¯à®¤¥« ©â¥ â® ¦¥ á ¬®¥, ¢ë¡à ¢ ¨á室­®© ¢¥à設®© z.
25.3-2 „®ª ¦¨â¥ á«¥¤á⢨¥ 25.13.
25-3.3 ãáâì ¢® ¢§¢¥è¥­­®¬ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥ ­¥â 横«®¢
®âà¨æ ⥫쭮£® ¢¥á . Ž¯à¥¤¥«¨¬ ç¨á«® m á«¥¤ãî騬 ®¡à §®¬: ¤«ï
ª ¦¤®© ¯ àë ¢¥à設 u; v 2 V , ¤«ï ª®â®à®© áãé¥áâ¢ã¥â ¯ãâì ¨§ u
¢ v, ­ ©¤¥¬ ¬¨­¨¬ «ì­®¥ ª®«¨ç¥á⢮ ॡ¥à ¢ ¯ãâïå ¬¨­¨¬ «ì­®£®
¢¥á , ¨¤ãé¨å ¨§ u ¢ v; § âñ¬ ¢®§ì¬¥¬ ¬ ªá¨¬ã¬ íâ¨å ç¨á¥« ¯® ¢á¥¬
â ª¨¬ ¯ à ¬ | íâ® ¨ ¥áâì m. ®ª ¦¨â¥, çâ® ¢ «£®à¨â¬¥ ¥««¬ ­ ”®à¤ ¤®áâ â®ç­® ¢ë¯®«­ïâì 横« ¢ áâப å 2{4 m à §.
25.3-4 Œ®¤¨ä¨æ¨àã©â¥ «£®à¨â¬ ¥««¬ ­ -”®à¤ â ª¨¬ ®¡à §®¬, çâ®¡ë ¨ ¤«ï ¢¥à設 v, ã ª®â®àëå (s; v) = ;1 (ª ª ¬ë ¯®¬­¨¬, â ª®¥ ¡ë¢ ¥â ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ áãé¥áâ¢ã¥â ¯ãâì
¨§ s ¢ v, § ¤¥¢ î騩 横« ®âà¨æ ⥫쭮£® ¢¥á ), ¯®á«¥ ¨á¯®«­¥­¨ï
«£®à¨â¬ ¡ë«® ãáâ ­®¢«¥­® ¯à ¢¨«ì­®¥ §­ 祭¨¥ d[v] = (s; v) =
;1.
25.3-5 ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä.
 §à ¡®â ©â¥ «£®à¨â¬, à ¡®â î騩 § ¢à¥¬ï O(V E ) ¨ ­ 室ï騩
¤«ï ª ¦¤®© ¢¥à設ë v 2 V §­ 祭¨¥ (v) = minu2V f(u; v)g. (‚
£à ä¥ ¬®£ãâ ¡ëâì àñ¡à á ®âà¨æ ⥫ì­ë¬ ¢¥á®¬.)
25-3.6 ãáâì ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä G = (V; E )
¨¬¥¥â 横« ®âà¨æ ⥫쭮£® ¢¥á .  §à ¡®â ©â¥ «£®à¨â¬, ¯¥ç â î騩 ¢¥à設ë â ª®£® 横« (å®âï ¡ë ®¤­®£®).
Šà âç ©è¨¥ ¯ã⨠¢ 横«¨ç¥áª®¬ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥
511
¨á. 25.8 (¢ ®à¨£¨­ «¥ ¢ ¯®¤¯¨á¨ ¡ë« ®¯¥ç ⪠: v, ⮣¤ ª ª
­ ¤® u).
¨áã­®ª 25.8 25.8. €«£®à¨â¬ ¤«ï ¯®¨áª ªà âç ©è¨å ¯ã⥩ ¢ 横«¨ç¥áª®¬
®à¨¥­â¨à®¢ ­­®¬ £à ä¥. ‚¥à設ë ⮯®«®£¨ç¥áª¨ ®âá®àâ¨à®¢ ­ë (­ à¨áã­ª¥
á«¥¢ ­ ¯à ¢®). ˆá室­ ï ¢¥à設 | s. ‚ ¢¥à設 å § ¯¨á ­ë §­ 祭¨ï ä㭪樨 d; ¤«ï á¥àëå àñ¡¥à (u; v) ¨¬¥¥¬ [v] = u. ( ) ¥à¥¤ ¯¥à¢®© ¨â¥à 樥© 横« ¢ áâப å 3{5. (¡{¦) ®á«¥¤®¢ ⥫ì­ë¥ á®áâ®ï­¨ï ¯®á«¥ ª ¦¤®© ¨â¥à 樨 横« ¢ áâப å 3{5.  ª ¦¤®¬ ¨§ íâ¨å à¨áã­ª®¢ ¯à¨¡ ¢«ï¥âáï ¯® ®¤­®© çñà­®© ¢¥à設¥ (ª®â®à ï ¡ë« ¢¥à設®© u ¢® ¢à¥¬ï ᮮ⢥âáâ¢ãî饩 ¨â¥à 樨 横« ).
‡­ 祭¨ï d ­ à¨áã­ª¥ (¦) | ®ª®­ç ⥫ì­ë¥.
25.3 Šà âç ©è¨¥ ¯ã⨠¢ 横«¨ç¥áª®¬ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥
‚ 横«¨ç¥áª®¬ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥ G = (V; E ) ªà âç ©è¨¥
¯ã⨠¨§ ®¤­®© ¢¥àè¨­ë ¬®¦­® ­ ©â¨ § ¢à¥¬ï O(V + E ), ¥á«¨ ¯à®¢®¤¨âì ५ ªá æ¨î ॡ¥à ¢ ¯®à浪¥, § ¤ ­­®¬ ⮯®«®£¨ç¥áª¨¬ 㯮à冷祭¨¥¬ ¢¥à設. ‡ ¬¥â¨¬, çâ® ¢ 横«¨ç¥áª®¬ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥ ªà âç ©è¨¥ ¯ã⨠¢á¥£¤ ®¯à¥¤¥«¥­ë, ¯®áª®«ìªã 横«®¢
®âà¨æ ⥫쭮£® ¢¥á (¨ ¢®®¡é¥ 横«®¢) ­¥â.
‚ à §¤¥«¥ 23.4 ¬ë à áᬠâਢ «¨ «£®à¨â¬ ⮯®«®£¨ç¥áª®© á®àâ¨à®¢ª¨ ¢¥à設 横«¨ç¥áª®£® £à ä . Ž­ à ᯮ« £ ¥â ¨å ¢ â ª®¬
¯®à浪¥, çâ®¡ë ¢á¥ àñ¡à £à ä ¢¥«¨ ®â "¬¥­ìè¨å" ¢¥à設 ª "¡®«ì訬" (¢ á¬ëá«¥ í⮣® ¯®à浪 ). ®á«¥ í⮣® ¬ë ¯à®á¬ âਢ ¥¬
¢¥àè¨­ë ¢ í⮬ ¯®à浪¥ ¨ ¤«ï ª ¦¤®© ¢¥àè¨­ë ¯®¤¢¥à£ ¥¬ ५ ªá 樨 ¢á¥ ¢ë室ï騥 ¨§ ­¥ñ àñ¡à .
Dag-Shortest-Paths(G,w,s)
1 ⮯®«®£¨ç¥áª¨ ®âá®àâ¨à®¢ âì ¢¥à設ë G
2 Initialize-Single-Source(G,s)
3 for (¤«ï) ¢á¥å ¢¥à設 u (¢ ­ ©¤¥­­®¬ ¯®à浪¥)
4
do for (¤«ï) ¢á¥å ¢¥à設 v \in Adj[u]
5
do Relax(u,v,w)
à¨¬¥à à ¡®âë í⮣® «£®à¨â¬ ¯à¨¢¥¤ñ­ ­ à¨á. 25.8.
Žæ¥­¨¬ ¢à¥¬ï à ¡®âë «£®à¨â¬ Dag-Shortest-Paths. Š ª
¬ë ¢¨¤¥«¨ ¢ à §¤. 23.4, á⮨¬®áâì ⮯®«®£¨ç¥áª®© á®àâ¨à®¢ª¨
(áâப 1) ¥áâì (V + E ), á⮨¬®áâì ¨­¨æ¨ «¨§ 樨 ¢ áâப¥ 2
¥áâì O(V ). ‚ 横«¥ ¢ áâப å 3{5 ª ¦¤®¥ ॡ஠®¡à ¡ âë¢ ¥âáï,
ª ª ¨ ¢ «£®à¨â¬¥ „¥©ªáâàë, ஢­® ®¤¨­ à §, ­®, ¢ ®â«¨ç¨¥ ®â «£®à¨â¬ „¥©ªáâàë, á⮨¬®áâì â ª®© ®¡à ¡®âª¨ ¥áâì O(1). ‘â «®
¡ëâì, ­ è «£®à¨â¬ ¢ë¯®«­ï¥âáï § ¢à¥¬ï (V + E ), ¯à®¯®à樮­ «ì­®¥ ®¡ê¥¬ã ¯ ¬ïâ¨, ­¥®¡å®¤¨¬®¬ã ­ ¯à¥¤áâ ¢«¥­¨¥ £à ä á
¯®¬®éìî ᯨ᪮¢ ᬥ¦­ëå ¢¥à設.
®ª ¦¥¬, çâ® «£®à¨â¬ Dag-Shortest-Paths ¯à ¢¨«¥­.
’¥®à¥¬ 25.15
ãáâì ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä G = (V; E ) á ¨á室-
512
ƒ« ¢ 25 Šà âç ©è¨¥ ¯ã⨠¨§ ®¤­®© ¢¥à設ë
­®© ¢¥à設®© s ­¥ ᮤ¥à¦¨â 横«®¢. ’®£¤ ¯® ®ª®­ç ­¨¨ à ¡®âë
¯à®æ¥¤ãàë Dag-Shortest-Paths ¤«ï ¢á¥å v 2 V ¡ã¤ã⠢믮«­¥­ë
à ¢¥­á⢠d[v] = (s; v), ¯®¤£à ä ¯à¥¤è¥á⢥­­¨ª®¢ G ¡ã¤¥â ¤¥à¥¢®¬ ªà âç ©è¨å ¯ã⥩.
„®ª § ⥫ìá⢮
‘®£« á­® «¥¬¬¥ 25.9, ¤®áâ â®ç­® ¤®ª § âì à ¢¥­á⢠d[v] =
(s; v ). …᫨ ¢¥à設 v ­¥¤®á⨦¨¬ ¨§ s, â® d[v ] = (s; v ) = 1
¯® á«¥¤á⢨î 25.6. ãáâì ⥯¥àì ¢¥à設 v ¤®á⨦¨¬ ¨§ s ¨
p = hs = v0 ; v1; : : :; vk = vi | ªà âç ©è¨© ¯ãâì. ®á«¥ ⮯®«®£¨ç¥áª®© á®àâ¨à®¢ª¨ ¢¥à設ë í⮣® ¯ã⨠à ᯮ«®¦¥­ë ª ª à § ¢
㪠§ ­­®¬ ¯®à浪¥, â ª ç⮠ॡà®, (v0; v1) ¯®¤¢¥à£ «®áì ५ ªá 樨 ¤® ॡà (v1; v2), ª®â®à®¥ ¯à¥¤è¥á⢮¢ «® ॡàã (v2; v3) ¨ â.¤.
ˆ­¤ãªæ¨ï ¯® i á ¨á¯®«ì§®¢ ­¨¥¬ «¥¬¬ë 25.7 (ª ª ¢ ¤®ª § ⥫ìá⢥
ª®à४⭮á⨠«£®à¨â¬ ¥««¬ ­ -”®à¤ ) ¯®ª §ë¢ ¥â ⥯¥àì, çâ®
d[vi] = (s; vi) ¤«ï ¢á¥å i, çâ® ¨ âॡ®¢ «®áì ¤®ª § âì.
ˆ­â¥à¥á­®¥ ¯à¨«®¦¥­¨¥ ®¯¨á ­­®£® «£®à¨â¬ | ­ 宦¤¥­¨¥
ªà¨â¨ç¥áª¨å ¯ã⥩ ¢ á¬ëá«¥ â ª ­ §ë¢ ¥¬®© "â¥å­®«®£¨¨ PERT"
(program evaluation and review technique). ‚ í⮬ ¯à¨«®¦¥­¨¨
ª ¦¤®¥ ॡ஠横«¨ç¥áª®£® ®à¨¥­â¨à®¢ ­­®£® £à ä ®¡®§­ ç ¥â
ª ª®¥-â® ¤¥«®, ¢¥á à¥¡à ¥áâì ¢à¥¬ï, ­¥®¡å®¤¨¬®¥ ­ ¥£® ¢ë¯®«­¥­¨¥. …᫨ ¨¬¥îâáï àñ¡à (u; v) ¨ (v; x), â® à ¡®â , ᮮ⢥âáâ¢ãîé ï ॡàã (u; v), ¤®«¦­ ¡ëâì ¢ë¯®«­¥­ ¤® ­ ç « à ¡®âë, ᮮ⢥âáâ¢ãî饩 ॡàã (v; x). Šà¨â¨ç¥áª¨© ¯ãâì (critical path) | íâ®
¤«¨­­¥©è¨© ¯ãâì ¢ £à ä¥; ¥£® ¢¥á à ¢¥­ ¢à¥¬¥­¨, ª®â®à®¥ ¡ã¤¥â
§ âà 祭® ­ ¢ë¯®«­¥­¨¥ ¢á¥å à ¡®â, ¥á«¨ ¬ë ¯® ¬ ªá¨¬ã¬ã ¨á¯®«ì§ã¥¬ ¢®§¬®¦­®áâì ¢ë¯®«­ïâì ­¥ª®â®àë¥ à ¡®âë ¯ à ««¥«ì­®.
—â®¡ë ­ ©â¨ ªà¨â¨ç¥áª¨© ¯ãâì, ¬®¦­® ¯®¬¥­ïâì §­ ª ã ¢á¥å ¢¥á®¢
­ ¯à®â¨¢®¯®«®¦­ë© ¨ § ¯ãáâ¨âì «£®à¨â¬ Dag-Shortest-Paths.
“¯à ¦­¥­¨ï
25-4.1 à¨¬¥­¨â¥ «£®à¨â¬ Dag-Shortest-Paths ª £à äã
à¨á. 25.8, ¢ë¡à ¢ ¢¥à設ã r ¢ ª ç¥á⢥ ¨á室­®©.
25-4.2 „®ª ¦¨â¥, çâ® «£®à¨â¬ Dag-Shortest-Paths ®áâ ­¥âáï
¯à ¢¨«ì­ë¬, ¥á«¨ ®¡à ¡ âë¢ âì ⮫쪮 ¯¥à¢ë¥ jV j ; 1 ¢¥à設.
25-4.3 ‚ § ¤ ç¥ ® ¯« ­¨à®¢ ­¨¨ à ¡®â ¯® â¥å­®«®£¨¨ PERT ¬®¦­®
à¨á®¢ âì £à ä ¨­ ç¥, áç¨â ï, çâ® à ¡®âë ᮮ⢥âáâ¢ãîâ ­¥ àñ¡à ¬,
¢¥à設 ¬ £à ä . à¨ í⮬ ª ¦¤®© ¢¥à設¥ ¯à¨á¢®¥­ ¢¥á (âॡ㥬®¥ ¢à¥¬ï), áâ५ª¨ 㪠§ë¢ îâ ®¯à¥¤¥«ï«¨ ¯®á«¥¤®¢ ⥫쭮áâì
à ¡®â (ॡ஠(u; v) âॡã¥â § ¢¥àè¨âì à ¡®âã u ¤® ­ ç « à ¡®âë
v). Œ®¤¨ä¨æ¨àã©â¥ «£®à¨â¬ Dag-Shortest-Paths â ª, çâ®¡ë ®­
§ «¨­¥©­®¥ ¢à¥¬ï ­ 室¨« ¢ 横«¨ç¥áª®¬ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥
¯ãâì á ¬ ªá¨¬ «ì­®© á㬬®© ¢¥á®¢ ¢¥à設.
25-4.4  §à ¡®â ©â¥ íä䥪⨢­ë© «£®à¨â¬, ¯®¤áç¨âë¢ î騩
®¡é¥¥ ç¨á«® ¯ã⥩ ¢ 横«¨ç¥áª®¬ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥, ¨ ®æ¥­¨â¥ ¢à¥¬ï ¥£® à ¡®âë.
Ž£à ­¨ç¥­¨ï ­ à §­®á⨠¨ ªà âç ©è¨¥ ¯ãâ¨
513
25.4 Ž£à ­¨ç¥­¨ï ­ à §­®á⨠¨ ªà âç ©è¨¥ ¯ãâ¨
Ž¡é ï § ¤ ç «¨­¥©­®£® ¯à®£à ¬¬¨à®¢ ­¨ï á®á⮨⠢ ®âë᪠­¨¨ íªáâ६㬠«¨­¥©­®© ä㭪樨 ­ ¬­®¦¥á⢥, § ¤ ­­®¬ á¨á⥬®© «¨­¥©­ëå ­¥à ¢¥­áâ¢. ‚ í⮬ à §¤¥«¥ ¬ë à áᬮâਬ á¯¥æ¨ «ì­ë© á«ãç © § ¤ ç¨ «¨­¥©­®£® ¯à®£à ¬¬¨à®¢ ­¨ï, ᢮¤ï騩áï ª
­ 宦¤¥­¨î ªà âç ©è¨å ¯ã⥩ ¨§ ®¤­®© ¢¥à設ë. ’ ª¨¬ ®¡à §®¬,
à áᬠâਢ ¥¬ë© ç áâ­ë© á«ãç © § ¤ ç¨ «¨­¥©­®£® ¯à®£à ¬¬¨à®¢ ­¨ï ¬®¦¥â ¡ëâì à¥èñ­ á ¯®¬®éìî «£®à¨â¬ ¥««¬ ­ -”®à¤ .
‹¨­¥©­®¥ ¯à®£à ¬¬¨à®¢ ­¨¥
Ž¡é ï § ¤ ç «¨­¥©­®£® ¯à®£à ¬¬¨à®¢ ­¨ï (linear-programming
problem) á®á⮨⠢ á«¥¤ãî饬. „ ­ë m n-¬ âà¨æ A, m-¢¥ªâ®à
b ¨ n-¢¥ªâ®à c. ’ॡã¥âáï ­ ©â¨ n-¢¥ªâ®à x, ïî騩áï
â®çª®©
¬ ªá¨¬ã¬ 楫¥¢®© ä㭪樨 (objective function) Pni=1 cixi ­ ¬­®¦¥á⢥, § ¤ ­­®¬ m ­¥à ¢¥­á⢠¬¨, ª®â®àë¥ ¬ë ¬®¦¥¬ § ¯¨á âì
ª ª Ax 6 b.
‡ ¤ ç¨ «¨­¥©­®£® ¯à®£à ¬¬¨à®¢ ­¨ï ç áâ® ¢®§­¨ª îâ ¢ ¯à¨«®¦¥­¨ïå, ¯®í⮬㠨¬¨ ¬­®£® § ­¨¬ «¨áì.  ¯à ªâ¨ª¥ § ¤ ç¨
«¨­¥©­®£® ¯à®£à ¬¬¨à®¢ ­¨ï ¡ëáâà® à¥è îâáï á ¯®¬®éìî
ᨬ¯«¥ªá-¬¥â®¤ (simplex algorithm). ‘¨¬¯«¥ªá-¬¥â®¤ ®á­®¢ ­
­ ¯à®á¬®âॠ¢¥à設 ¬­®£®£à ­­¨ª , § ¤ ¢ ¥¬®£® ­¥à ¢¥­á⢠¬¨®£à ­¨ç¥­¨ï¬¨ Ax 6 b, ¯à¨ ª®â®à®¬ §­ 祭¨¥ 楫¥¢®© ä㭪樨
㢥«¨ç¨¢ ¥âáï. (‘¨¬¯«¥ªá-¬¥â®¤ ¯®¤à®¡­® ®¯¨á ­ ¢ ª­¨£¥ „ ­æ¨£ [53].)
Œ®¦­®, ®¤­ ª®, ¯®áâநâì ¯®á«¥¤®¢ ⥫쭮áâì § ¤ ç «¨­¥©­®£®
¯à®£à ¬¬¨à®¢ ­¨ï, ¤«ï ª®â®à®© ᨬ¯«¥ªá-¬¥â®¤ ¡ã¤¥â âॡ®¢ âì
íªá¯®­¥­æ¨ «ì­®£® (®â à §¬¥à ¢å®¤ ) ¢à¥¬¥­¨. Œ¥â®¤ í««¨¯á®¨¤®¢ (ellipsoid algorithm) à¥è ¥â «î¡ãî § ¤ çã «¨­¥©­®£® ¯à®£à ¬¬¨à®¢ ­¨ï § ¯®«¨­®¬¨ «ì­®¥ ¢à¥¬ï, ­® ­ ¯à ªâ¨ª¥ à ¡®â ¥â ¬¥¤«¥­­®. ‘ãé¥áâ¢ã¥â â ª¦¥ ¯®«¨­®¬¨ «ì­ë© «£®à¨â¬ Š ଠઠà (Karmarkar's algoritm), áà ¢­¨¬ë© ¯® ¯à ªâ¨ç¥áª®© íä䥪⨢­®áâ¨
á ᨬ¯«¥ªá-¬¥â®¤®¬.
Œë ­¥ ¡ã¤¥¬ § ­¨¬ âìáï «£®à¨â¬ ¬¨ ¤«ï à¥è¥­¨ï ®¡é¨å § ¤ ç «¨­¥©­®£® ¯à®£à ¬¬¨à®¢ ­¨ï (çâ® âॡ®¢ «® ¡ë ¡®«ì襣® §­ ª®¬áâ¢ á «¨­¥©­®© «£¥¡à®©, 祬 ®áâ «ì­®© ¬ â¥à¨ « ª­¨£¨), ᤥ« ¥¬ ⮫쪮 ¤¢ § ¬¥ç ­¨ï. ‚®-¯¥à¢ëå, ¥á«¨ § ¤ çã ¬®¦­® ᢥá⨠ª § ¤ ç¥ «¨­¥©­®£® ¯à®£à ¬¬¨à®¢ ­¨ï á ¨á室­ë¬¨ ¤ ­­ë¬¨
¯®«¨­®¬¨ «ì­®£® à §¬¥à , â® íâ § ¤ ç § ¢¥¤®¬® ¬®¦¥â ¡ëâì à¥è¥­ á ¯®¬®éìî ¯®«¨­®¬¨ «ì­®£® «£®à¨â¬ . ‚®-¢â®àëå, ¤«ï ¬­®£¨å á¯¥æ¨ «ì­ëå § ¤ ç «¨­¥©­®£® ¯à®£à ¬¬¨à®¢ ­¨ï áãé¥áâ¢ãîâ
«£®à¨â¬ë, ¯à¨¢®¤ï騥 ª 楫¨ ¡ëáâ॥, 祬 «£®à¨â¬ë ¤«ï ®¡é¥£®
á«ãç ï. Ž¤¨­ ¯à¨¬¥à â ª®£® த ¤®áâ ¢«ï¥â § ¤ ç , à §¡¨à ¥¬ ï
¢ í⮬ à §¤¥«¥; ¤à㣨¥ ¯à¨¬¥àë | ᢮¤ï騥áï ª § ¤ ç ¬ «¨­¥©­®£® ¯à®£à ¬¬¨à®¢ ­¨ï § ¤ ç ® ªà âç ©è¥¬ ¯ã⨠¬¥¦¤ã ¤ ­­®©
514
ƒ« ¢ 25 Šà âç ©è¨¥ ¯ã⨠¨§ ®¤­®© ¢¥à設ë
¯ ன ¢¥à設 (ã¯à ¦­¥­¨¥ 25.5-4) ¨ § ¤ ç ® ¬ ªá¨¬ «ì­®¬ ¯®â®ª¥
(ã¯à ¦­¥­¨¥ 27.1-8).
‚ ­¥ª®â®àëå á«ãç ïå 楫¥¢ ï äã­ªæ¨ï ­ á ­¥ ¨­â¥à¥áã¥â, âॡã¥âáï ­ ©â¨ å®âï ¡ë ®¤­® ¤®¯ãá⨬®¥ à¥è¥­¨¥ (feasible solution),
â® ¥áâì à¥è¥­¨¥ á¨áâ¥¬ë ­¥à ¢¥­á⢠Ax 6 b (¨«¨ ¤®ª § âì, çâ®
â ª®¢ëå ­¥â). Œë § ©¬¥¬áï ¨¬¥­­® § ¤ 祩 â ª®£® ⨯ .
‘¨áâ¥¬ë ®£à ­¨ç¥­¨© ­ à §­®áâ¨
‘¨á⥬ ®£à ­¨ç¥­¨© ­ à §­®á⨠(system of dierence
constraints) | íâ® á¨á⥬ «¨­¥©­ëå ­¥à ¢¥­á⢠Ax 6 b, ¤«ï
ª®â®à®© ¢ ª ¦¤®© áâப¥ ¬ âà¨æë A ¯à¨áãâáâ¢ãîâ ஢­® ¤¢ ­¥­ã«¥¢ëå í«¥¬¥­â , ®¤¨­ ¨§ ª®â®àëå à ¢¥­ 1, ¤à㣮© ;1. ˆ­ë¬¨
á«®¢ ¬¨, ¢á¥ ­¥à ¢¥­á⢠¨¬¥îâ ¢¨¤
xi ; xj 6 bk ;
£¤¥ 1 6 i; j 6 n ¨ 1 6 k 6 m.
 ¯à¨¬¥à, § ¤ ç ­ 宦¤¥­¨ï 5-¢¥ªâ®à x = (xi), 㤮¢«¥â¢®àïî饣® ãá«®¢¨î
0
0 1
1 ;1 0 0 0 1
0
0
0
0
;
1
B 1
C 0 1 B;1C
x1
B
B C
1 0 0 ;1C
B 0
CB C B 1 C
B
C Bx2 C B C
1 0 0C
B;1 0
B 5 C
x3 C
B
CB
C;
C6B
0
1
0
B;1 0
CB
B 4 C
@
A
x4
B
B C
0 ;1 1 0 C
B 0
C
B;1C
@
A x5
@ A
0 0 ;1 0 1
;3
0 0 0 ;1 1
;3
à ¢­®á¨«ì­ á¨á⥬¥ «¨­¥©­ëå ­¥à ¢¥­áâ¢
x1 ; x2 6 0;
x1 ; x5 6 ;1;
x2 ; x5 6 1;
x3 ; x1 6 5;
(25:4)
x4 ; x1 6 4;
x4 ; x3 6 ;1;
x5 ; x3 6 ;3;
x5 ; x4 6 ;3:
Ž¤­® ¨§ à¥è¥­¨© í⮩ á¨áâ¥¬ë ¥áâì x = (;5; ;3; 0; ;1; ;4). …᫨
ª® ¢á¥¬ ª®¬¯®­¥­â ¬ ¢¥ªâ®à x ¯à¨¡ ¢¨âì ®¤­® ¨ â® ¦¥ ç¨á«®, ¯®«ãç¨âáï ¤à㣮¥ à¥è¥­¨¥:
‹¥¬¬ 25.16
…᫨ x = (x1; : : :; xn) | à¥è¥­¨¥ á¨áâ¥¬ë ®£à ­¨ç¥­¨© ­ à §­®á⨠¨ d | ª®­áâ ­â , â® x0 = (x1 + d; : : :; xn + d) | à¥è¥­¨¥ ⮩ ¦¥
á¨á⥬ë.
Ž£à ­¨ç¥­¨ï ­ à §­®á⨠¨ ªà âç ©è¨¥ ¯ãâ¨
515
¨áã­®ª 25.9 ƒà ä ®£à ­¨ç¥­¨©, ᮮ⢥âáâ¢ãî騩 á¨á⥬¥ (25.4). ‚ ª ¦¤®©
¢¥à設¥ vi ­ ¯¨á ­® ç¨á«® (v0 ; vi ). ‚¥ªâ®à x = (;5; ;3; 0; ;1; ;4) ï¥âáï
®¤­¨¬ ¨§ à¥è¥­¨© á¨á⥬ë (25.4).
‘¨áâ¥¬ë ®£à ­¨ç¥­¨© ­ à §­®á⨠¢®§­¨ª îâ ¢® ¬­®£¨å ¯à¨«®¦¥­¨ïå.  ¯à¨¬¥à, xi ¬®£ãâ ¡ëâì áப ¬¨ ­ ç « à §«¨ç­ëå à ¡®â
¯à¨ áâந⥫ìá⢥ ¤®¬ . …᫨ x1 | áப ­ ç « àëâìï ª®â«®¢ ­ ¯®¤ äã­¤ ¬¥­â, x2 | áப ­ ç « § «¨¢ª¨ äã­¤ ¬¥­â , ¨ ¥á«¨
àëâì¥ ª®â«®¢ ­ § ­¨¬ ¥â 3 ¤­ï, â® x1 ; x2 6 ;3.
ƒà äë ®£à ­¨ç¥­¨©
…᫨ á¨á⥬ ®£à ­¨ç¥­¨© ­ à §­®á⨠¯à¥¤áâ ¢«¥­ ¢ ¢¨¤¥ Ax 6
b, £¤¥ A | m n-¬ âà¨æ , 㤮¡­® à áᬮâà¥âì ®à¨¥­â¨à®¢ ­­ë©
£à ä, ¤«ï ª®â®à®£® A ¡ã¤¥â ¬ âà¨æ¥© ¨­æ¨¤¥­â­®á⨠(á¬. ã¯à ¦­¥­¨¥ 23.1-7). ’®ç­¥¥ £®¢®àï, ¬ë ᤥ« ¥¬ ­¥ ᮢᥬ íâ®, á¢ï¦¥¬ á
á¨á⥬®© ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä G = (V; E ), ¢ ª®â®à®¬
V = fv0 ; v1; : : :; vng (¯® ®¤­®© ¢¥à設¥ ­ ª ¦¤®¥ ­¥¨§¢¥áâ­®¥ ¯«îá
¢¥à設 v0), ª ¦¤®¬ã ­¥à ¢¥­áâ¢ã xj ; xi 6 bk ᮮ⢥âáâ¢ã¥â
ॡ஠(vi; vj ) á ¢¥á®¬ bk (­¥áª®«ìª® ­¥à ¢¥­áâ¢ á ®¤¨­ ª®¢®© «¥¢®©
ç áâìî ¬®¦­® § ¬¥­¨âì ®¤­¨¬, ¢§ï¢ ¬¨­¨¬ã¬ ¨å ¯à ¢ëå ç á⥩).
Šà®¬¥ ⮣®, ¢ £à ä¥ ¨¬¥îâáï n ॡ¥à (v0; v1); (v0; v2); : : :; (v0; vn)
(ª ¦¤®¥ | ¢¥á 0).  à¨á. 25.9 ¨§®¡à ¦¥­ £à ä, ᮮ⢥âáâ¢ãî騩
á¨á⥬¥ (25.4).
‘«¥¤ãîé ï ⥮६ ¯®ª §ë¢ ¥â, çâ® à¥è¥­¨ï á¨á⥬ à §­®áâ­ëå ®£à ­¨ç¥­¨© ¬®¦­® ­ 室¨âì á ¯®¬®éìî «£®à¨â¬®¢ ¯®¨áª ªà âç ©è¨å ¯ã⥩.
’¥®à¥¬ 25.17
ãáâì G = (V; E ) | £à ä, ᮮ⢥âáâ¢ãî騩 á¨á⥬¥ à §­®áâ­ëå ®£à ­¨ç¥­¨© á n ­¥¨§¢¥áâ­ë¬¨. …᫨ ®­ ­¥ ᮤ¥à¦¨â 横«®¢
®âà¨æ ⥫쭮£® ¢¥á , â® ¢¥ªâ®à
x = ( (v0; v1); (v0; v2); : : :; (v0; vn))
(25:5)
ï¥âáï à¥è¥­¨¥¬ á¨á⥬ë. …᫨ G ᮤ¥à¦¨â 横« ®âà¨æ ⥫쭮£® ¢¥á , â® á¨á⥬ à §­®áâ­ëå ®£à ­¨ç¥­¨© ­¥á®¢¬¥áâ­ .
„®ª § ⥫ìá⢮
…᫨ 横« ®âà¨æ ⥫쭮£® ¢¥á ­¥â, â® ¢á¥ (v0; vj ) ï¢ï«îâáï
(ª®­¥ç­ë¬¨) ç¨á« ¬¨ ¨ «¥¬¬ 25.3 £ à ­â¨àã¥â, çâ® ç¨á« xi 㤮¢«¥â¢®àïî⠢ᥬ ­¥à ¢¥­á⢠¬.
…᫨ 横« ®âà¨æ ⥫쭮£® ¢¥á ¥áâì, â® ®­ ­¥ ᮤ¥à¦¨â ¢¥à設ë
v0, ¯®áª®«ìªã ­¨ ®¤­® ॡ஠¢ íâã ¢¥à設㠭¥ ¢å®¤¨â, â ª çâ® ¢á¥
ॡà 横« ᮮ⢥âáâ¢ãîâ ª ª¨¬-â® ­¥à ¢¥­á⢠¬ á¨á⥬ë. ‘ª« ¤ë¢ ï ­¥à ¢¥­á⢠, ᮮ⢥âáâ¢ãî騥 à¥¡à ¬ 横« , ¯®«ã稬 (¯®áª®«ìªã «¥¢ë¥ ç á⨠­¥à ¢¥­á⢠横« ᮪à é îâáï) ­¥à ¢¥­á⢮
¢¨¤ 0 6 b, £¤¥ b < 0 | ¢¥á 横« . ‘«¥¤®¢ ⥫쭮, á¨á⥬ ­¥á®¢¬¥áâ­ .
¥è¥­¨¥ á¨á⥬ ®£à ­¨ç¥­¨© ­ à §­®áâ¨
516
ƒ« ¢ 25 Šà âç ©è¨¥ ¯ã⨠¨§ ®¤­®© ¢¥à設ë
’¥®à¥¬ 25.17 ¯®ª §ë¢ ¥â, çâ® ­ ©â¨ å®âï ¡ë ®¤­® à¥è¥­¨¥
á¨áâ¥¬ë ®£à ­¨ç¥­¨© ­ à §­®á⨠¬®¦­® á ¯®¬®éìî «£®à¨â¬ ¥««¬ ­ -”®à¤ . ‡ ¬¥â¨¬, ç⮠横« ®âà¨æ ⥫쭮£® ¢¥á , ¥á«¨ ®­
¥áâì, ®¡ï§ ⥫쭮 ¤®á⨦¨¬ ¨§ ¢¥à設ë v0 (¯®áª®«ìªã ¨§ v0 ¨¤ãâ
áâ५ª¨ ¢® ¢á¥ ®áâ «ì­ë¥ ¢¥à設ë), â ª çâ® á¨á⥬ ­¥á®¢¬¥á⭠⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ «£®à¨â¬ ¥««¬ ­ -”®à¤ ¢®§¢à é ¥â
§­ 祭¨¥ false.
‘¨á⥬ m à §­®áâ­ëå ®£à ­¨ç¥­¨© á n ­¥¨§¢¥áâ­ë¬¨ ¯®à®¦¤ ¥â £à ä á n +1 ¢¥à設®© ¨ ­¥ ¡®«¥¥ 祬 n + m à¥¡à ¬¨. ®í⮬ã
­ ©â¨ å®âï ¡ë ®¤­® à¥è¥­¨¥ ¬®¦­® § ¢à¥¬ï O((n + 1)(n + m)) =
O(n2 + mn). ‚ ã¯à ¦­¥­¨¨ 25.5-5 ¬ë ¯®¯à®á¨¬ ¢ á ¤®ª § âì, çâ®
¬®¦­® ¬®¤¨ä¨æ¨à®¢ âì íâ®â «£®à¨â¬ â ª¨¬ ®¡à §®¬, çâ®¡ë ®­ ­ 室¨« à¥è¥­¨¥ ¨«¨ ãáâ ­ ¢«¨¢ « ­¥á®¢¬¥áâ­®áâì á¨áâ¥¬ë § ¢à¥¬ï
O(mn).
“¯à ¦­¥­¨ï
25.5-1  ©¤¨â¥ å®âï ¡ë ®¤­® à¥è¥­¨¥ ¨«¨ ãáâ ­®¢¨â¥ ­¥á®¢¬¥áâ­®áâì á«¥¤ãî饩 á¨áâ¥¬ë ­¥à ¢¥­áâ¢:
x1 ; x2 6 1;
x1 ; x4 6 ;4;
x2 ; x3 6 2;
x2 ; x5 6 7;
x2 ; x6 6 5;
x3 ; x6 6 10;
x4 ; x2 6 2;
x5 ; x1 6 ;1;
x5 ; x4 6 3;
x6 ; x3 6 ;8:
25.5-2 ’® ¦¥ § ¤ ­¨¥, çâ® ¢ ¯à¥¤ë¤ã饬 ã¯à ¦­¥­¨¨, ¤«ï á¨á⥬ë
x1 ; x2 6 4;
x1 ; x5 6 5;
x2 ; x4 6 ;6;
x3 ; x2 6 1;
x4 ; x1 6 3;
x4 ; x3 6 5;
x4 ; x5 6 10;
x5 ; x3 6 ;4;
x5 ; x4 6 ;8:
25.5-3 Œ®¦¥â «¨ ¢ £à ä¥ ®£à ­¨ç¥­¨© ªà âç ©è¨© ¯ãâì ¨§ v0 ¢
ª ªãî-â® ¢¥à設㠨¬¥âì ¯®«®¦¨â¥«ì­ë© ¢¥á?
Ž£à ­¨ç¥­¨ï ­ à §­®á⨠¨ ªà âç ©è¨¥ ¯ãâ¨
517
25.5-4 ‘¢¥¤¨â¥ § ¤ çã ® ªà âç ©è¥¬ ¯ã⨠¬¥¦¤ã ¯ ன ¢¥à設
ª § ¤ ç¥ «¨­¥©­®£® ¯à®£à ¬¬¨à®¢ ­¨ï.
25.5-5 Œ®¤¨ä¨æ¨àã©â¥ «£®à¨â¬ ¥««¬ ­ -”®à¤ â ª¨¬ ®¡à §®¬, çâ®¡ë ¯à¨ à¥è¥­¨¨ á¨á⥬ë m ®£à ­¨ç¥­¨© ­ à §­®á⨠á n
­¥¨§¢¥áâ­ë¬¨ ®­ à ¡®â « § ¢à¥¬ï O(mn).
25.5-6 Š ª á ¯®¬®éìî «£®à¨â¬ , ­ «®£¨ç­®£® «£®à¨â¬ã
¥««¬ ­ -”®à¤ , à¥è¨âì á¨á⥬㠮£à ­¨ç¥­¨© ­ à §­®áâ¨, ¯®«ì§ãïáì £à 䮬 ®£à ­¨ç¥­¨© ¡¥§ ¤®¯®«­¨â¥«ì­®© ¢¥à設ë v0?
25.5-7* ®ª ¦¨â¥, çâ® à¥è¥­¨¥ á¨á⥬ë à §­®áâ­ëå ®£à ­¨ç¥­¨©
á n ­¥¨§¢¥áâ­ë¬¨, ­ 室¨¬®¥ «£®à¨â¬®¬ ¥««¬ ­ -”®à¤ , ¨¬¥¥â
(á।¨ ¢á¥å à¥è¥­¨© í⮩ á¨á⥬ë, ¢ ª®â®àëå ¢á¥ ¯¥à¥¬¥­­ë¥ ­¥¯®«®¦¨â¥«ì­ë) ¬ ªá¨¬ «ì­®¥ §­ 祭¨¥ á㬬ë x1 + x2 + : : : + xn.
25.5-8* ®ª ¦¨â¥, çâ® à¥è¥­¨¥ á¨á⥬ë à §­®áâ­ëå ®£à ­¨ç¥­¨©
Ax 6 b á n ­¥¨§¢¥áâ­ë¬¨, ­ 室¨¬®¥ «£®à¨â¬®¬ ¥««¬ ­ -”®à¤ ,
¨¬¥¥â ¬¨­¨¬ «ì­® ¢®§¬®¦­®¥ §­ 祭¨¥ ¢¥«¨ç¨­ë maxfxig;minfxig
á।¨ ¢á¥å ®¥é¥­¨© í⮩ á¨á⥬ë. —¥¬ ¯®«¥§­® íâ® ®¡áâ®ï⥫ìá⢮
¯à¨ ¯« ­¨à®¢ ­¨¨ áâந⥫ìá⢠?
25.5-9  áᬮâਬ á¨á⥬㠭¥à ¢¥­áâ¢, ¢ ª®â®à®© ª ¦¤®¥ ­¥à ¢¥­á⢮ ï¥âáï «¨¡® ®£à ­¨ç¥­¨¥¬ ­ à §­®áâ¨, «¨¡® ­¥à ¢¥­á⢮¬ ¢¨¤ xi 6 a, «¨¡® ­¥à ¢¥­á⢮¬ ¢¨¤ xj > a. Œ®¤¨ä¨æ¨àã©â¥
«£®à¨â¬ ¥««¬ ­ -”®à¤ â ª¨¬ ®¡à §®¬, çâ®¡ë ®­ ­ 室¨« å®âï
¡ë ®¤­® à¥è¥­¨¥ ¨«¨ ãáâ ­ ¢«¨¢ « ­¥á®¢¬¥áâ­®áâì â ª¨å á¨á⥬.
25.5-10 ãáâì ª á¨á⥬¥ ®£à ­¨ç¥­¨© ­ à §­®á⨠¤®¡ ¢«¥­® ­¥ª®â®à®¥ ª®«¨ç¥á⢮ ãà ¢­¥­¨© ¢¨¤ xi = xj + bk . Œ®¤¨ä¨æ¨àã©â¥
«£®à¨â¬ ¥««¬ ­ -”®à¤ â ª¨¬ ®¡à §®¬, çâ®¡ë ®­ ¬®£ ­ 室¨âì
à¥è¥­¨ï â ª¨å á¨á⥬.
25.5-11  §à ¡®â ©â¥ íä䥪⨢­ë© «£®à¨â¬ ¤«ï ­ 宦¤¥­¨ï à¥è¥­¨ï á¨áâ¥¬ë ®£à ­¨ç¥­¨© ­ à §­®áâ¨, ¢ ª®â®à®¬ ¢á¥ ­¥¨§¢¥áâ­ë¥ ïîâáï 楫묨 ç¨á« ¬¨ (ª®­áâ ­âë ¢ ®£à ­¨ç¥­¨ïå ­¥ ®¡ï§ ­ë ¡ëâì 楫묨, ­® ¨å ¬®¦­® § ¬¥­¨âì ­ ¨å æ¥«ë¥ ç áâ¨).
25.5-12*  §à ¡®â ©â¥ íä䥪⨢­ë© «£®à¨â¬ ¤«ï ­ 宦¤¥­¨ï
à¥è¥­¨ï á¨áâ¥¬ë ®£à ­¨ç¥­¨© ­ à §­®áâ¨, ¥á«¨ ¢á¥ ¯¥à¥¬¥­­ë¥
à §¡¨âë ­ ¤¢¥ £à㯯ë: æ¥«ë¥ (¤«ï ª®â®àëå ¤®¯ãá⨬ë ⮫쪮 æ¥«ë¥ §­ 祭¨ï) ¨ ¢¥é¥á⢥­­ë¥ (¤«ï ª®â®àëå â ª®£® ®£à ­¨ç¥­¨ï
­¥â).
‡ ¤ ç¨
25-1 Œ®¤¨ä¨ª æ¨ï «£®à¨â¬ ¥««¬ ­ -”®à¤ ¯® ‰¥­ã
‚롥६ ¯®à冷ª, ¢ ª®â®à®¬ ®¡à ¡ âë¢ îâáï àñ¡à ¢ «£®à¨â¬¥
¥««¬ ­ -”®à¤ , á«¥¤ãî騬 ®¡à §®¬. à®­ã¬¥à㥬 ª ª¨¬-«¨¡®
®¡à §®¬ ¢¥àè¨­ë £à ä ¨ à §®¡ì¥¬ ¬­®¦¥á⢮ E ¢¥à設 £à ä ­ ¤¢ ¯®¤¬­®¦¥á⢠: Ef , á®áâ®ï饥 ¨§ áâ५®ª, ¨¤ãé¨å ¨§ ¢¥à設ë á ¬¥­ì訬 ­®¬¥à®¬ ¢ ¢¥à設ã á ¡®«ì訬 ­®¬¥à®¬, ¨ Eb,
á®áâ®ï饥 ¨§ áâ५®ª, ¨¤ãé¨å ¨§ ¢¥à設ë á ¡®«ì訬 ­®¬¥à®¬ ¢
¢¥à設ã á ¬¥­ì訬 ­®¬¥à®¬. ãáâì Gf = (V; Ef ) ¨ Gb = (V; Eb)
(ç¥à¥§ V ®¡®§­ 祭® ¬­®¦¥á⢮ ¢¥à設 £à ä ).  ç­ñ¬ á â ª®£®
®ç¥¢¨¤­®£® ­ ¡«î¤¥­¨ï:
518
ƒ« ¢ 25 Šà âç ©è¨¥ ¯ã⨠¨§ ®¤­®© ¢¥à設ë
( ) ®ª ¦¨â¥, çâ® £à äë Gf ¨ Gb 横«¨ç­ë, ¯à¨çñ¬ à ᯮ«®¦¥­¨¥ ¢¥à設 ¢ ¯®à浪¥ ¢®§à áâ ­¨ï (ã¡ë¢ ­¨ï) ­®¬¥à®¢ § ¤ ¥â
⮯®«®£¨ç¥áª®¥ 㯮à冷祭¨¥ ­ £à ä¥ Gf (Gb).
ã¤¥¬ ⥯¥àì ¯à®¢®¤¨âì ५ ªá æ¨î ॡ¥à ¯à¨ ª ¦¤®© ¨â¥à 樨 横« ¢ «£®à¨â¬¥ ¥««¬ ­ -”®à¤ ¢ á«¥¤ãî饬 ¯®à浪¥: á­ ç « ¯¥à¥¡¨à ¥¬ ¢¥àè¨­ë ¢ ¯®à浪¥ ¢®§à áâ ­¨ï ­®¬¥à®¢ ¨ ¤«ï ª ¦¤®© ¢¥àè¨­ë ¯®¤¢¥à£ ¥¬ ५ ªá 樨 ¢á¥ ¢ë室ï騥 ¨§ ­¥¥ à¥¡à £à ä Ef ; § ⥬ ¯¥à¥¡¨à ¥¬ ¢á¥ ¢¥àè¨­ë ¢ ¯®à浪¥ ã¡ë¢ ­¨ï ­®¬¥à®¢ ¨ ¤«ï ª ¦¤®© ¢¥àè¨­ë ¯®¤¢¥à£ ¥¬ ५ ªá 樨 ¢á¥ ¢ë室ï騥
¨§ ­¥¥ à¥¡à £à ä Eb.
(¡) ãáâì G ­¥ ᮤ¥à¦¨â 横«®¢ ®âà¨æ ⥫쭮£® ¢¥á , ¤®á⨦¨¬ëå ¨§ ¢¥à設ë s; ¤®ª ¦¨â¥, çâ® ¯®á«¥ djV j=2e ¨â¥à 権 横« à ¢¥­á⢠d[v] = (s; v) ¡ã¤ã⠢믮«­ïâìáï ¤«ï ¢á¥å v 2 V .
(¢) Žæ¥­¨â¥ ¢à¥¬ï à ¡®âë ®¯¨á ­­®© ¬®¤¨ä¨ª 樨 «£®à¨â¬ ¥««¬ ­ -”®à¤ .
25-2 ‚«®¦¥­­ë¥ ï騪¨
ã¤¥¬ £®¢®à¨âì, çâ® d-¬¥à­ë© ï騪 à §¬¥à®¢ (x1; x2; : : :; xd)
¢ª« ¤ë¢ ¥âáï (nests) ¢ ï騪 à §¬¥à®¢ (y1; y2; : : :; yd), ¥á«¨ ã ¬­®¦¥á⢠f 1; 2; : : :; d g áãé¥áâ¢ã¥â â ª ï ¯¥à¥áâ ­®¢ª , çâ® x(1) <
y1; x(2) < y2 ; : : :; x(d) < yd .
( ) ®ª ¦¨â¥, çâ® ®â­®è¥­¨¥ "¢ª« ¤ë¢ âìáï" âà ­§¨â¨¢­®.
(¡) Ž¯¨è¨â¥ íä䥪⨢­ë© ᯮᮡ ¯à®¢¥à¨âì, ¢ª« ¤ë¢ ¥âáï «¨
®¤¨­ d-¬¥à­ë© ï騪 ¢ ¤à㣮©.
(¢) „ ­ë n à §«¨ç­ëå d-¬¥à­ëå ï騪®¢. ’ॡã¥âáï 㧭 âì, ª ª®¥ ¬ ªá¨¬ «ì­®¥ ç¨á«® ¨§ ­¨å ¬®¦­® ¯®á«¥¤®¢ ⥫쭮 ¢«®¦¨âì
¤à㣠¢ ¤à㣠(¯¥à¢ë© ¢® ¢â®à®©, ¢â®à®© ¢ âà¥â¨© ¨ â.¤.). “ª ¦¨â¥
íä䥪⨢­ë© «£®à¨â¬ ¤«ï à¥è¥­¨ï í⮩ § ¤ ç¨ ¨ ®æ¥­¨â¥ ¢à¥¬ï
¥£® à ¡®âë.
25-3 €à¡¨âà ¦­ë¥ ®¯¥à 樨
€à¡¨âà ¦­ë¬¨ ®¯¥à æ¨ï¬¨ (arbitrage) ­ §ë¢ ¥âáï á«¥¤ãî騩
ᯮᮡ ¨§¢«¥ª âì ¯à¨¡ë«ì ¨§ ­¥á®£« ᮢ ­­®á⨠ªãàᮢ ®¡¬¥­ ¢ «îâ. à¥¤¯®«®¦¨¬, çâ® ®¤¨­ ¤®«« à ¬®¦­® ®¡¬¥­ïâì ­ 0;7
äã­â áâ¥à«¨­£®¢, ®¤¨­ äã­â áâ¥à«¨­£®¢ | ­ 9;5 äà ­ª®¢, ¨ ®¤¨­
äà ­ª | ­ 0;16 ¤®«« à . ’®£¤ , ®¡¬¥­¨¢ ï 1 ¤®«« à ¢ 㪠§ ­­®©
¯®á«¥¤®¢ ⥫쭮áâ¨, ¢ १ã«ìâ ⥠¬®¦­® ¯®«ãç¨âì 1;064 ¤®«« à ¨
⥬ á ¬ë¬ ®áâ âìáï á ¯à¨¡ë«ìî 6;4%.
ãáâì ¨¬¥îâáï n ¢ «îâ (¯à®­ã¬¥à®¢ ­­ëå ®â 1 ¤® n) ¨ ¬ áᨢ
R[1::n; 1::n], ¢ ª®â®à®¬ § ¯¨á ­ë ªãàáë ®¡¬¥­ (¥¤¨­¨æã ¢ «îâë i
¬®¦­® ®¡¬¥­ïâì ­ R[i; j ] ¥¤¨­¨æ ¢ «îâë j ).
( )  §à ¡®â ©â¥ íä䥪⨢­ë© «£®à¨â¬, ¯®§¢®«ïî騩 ¢ëïá­¨âì, áãé¥áâ¢ã¥â «¨ â ª ï ¯®á«¥¤®¢ ⥫쭮áâì (i1; i2; : : :; ik ), çâ®
R[i1; i2] R[i2; i3] R[ik;1; ik ] R[ik; i1] > 1:
Žæ¥­¨â¥ ¢à¥¬ï à ¡®âë ¢ 襣® «£®à¨â¬ .
(¡)  §à ¡®â ©â¥ íä䥪⨢­ë© «£®à¨â¬, ¯¥ç â î騩 â ªãî ¯®á«¥¤®¢ ⥫쭮áâì, ¥á«¨ ®­ áãé¥áâ¢ã¥â. Žæ¥­¨â¥ ¢à¥¬ï ¥£® à ¡®âë.
Ž£à ­¨ç¥­¨ï ­ à §­®á⨠¨ ªà âç ©è¨¥ ¯ãâ¨
519
25-4 €«£®à¨â¬ ƒ ¡®ã ­ 宦¤¥­¨ï ªà âç ©è¨å ¯ã⥩ á ¯®¬®éìî
¬ áèâ ¡¨à®¢ ­¨ï
ãáâì ­ ¬ ¤ ­ ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä G = (V; E ), ¢
ª®â®à®¬ ¢¥á ¢á¥å ॡ¥à ïîâáï 楫묨 ­¥®âà¨æ ⥫ì­ë¬¨ ç¨á« ¬¨, ­¥ ¯à¥¢®á室ï騬¨ W . ®ª ¦¥¬, ª ª ¬®¦­® ­ ©â¨ ªà âç ©è¨¥ ¯ã⨠¨§ ®¤­®© ¢¥àè¨­ë § ¢à¥¬ï O(E lg W ).
ãáâì k = dlg(W + 1)e | ª®«¨ç¥á⢮ ¡¨â®¢ ¢ ¤¢®¨ç­®¬ ¯à¥¤áâ ¢«¥­¨¨ ç¨á« W . „«ï i = 1; 2; : : :; k ¯®«®¦¨¬ wi(u; v) =
bw(u; v)=2k;ic (¨­ë¬¨ á«®¢ ¬¨, wi(u; v) ¯®«ãç ¥âáï ¨§ w(u; v) ®â¡à áë¢ ­¨¥¬ k ; i ¬« ¤è¨å ¡¨â®¢ ¢ ¤¢®¨ç­®¬ ¯à¥¤áâ ¢«¥­¨¨ ç¨á« w(u; v)).  ¯à¨¬¥à, ¥á«¨ k = 5 ¨ w(u; v) = 25 = h11001i, â®
w3(u; v) = h110i = 6. ‚ ç áâ­®áâ¨, w1 ¯à¨­¨¬ ¥â ⮫쪮 §­ 祭¨ï 0
¨ 1, ®¯à¥¤¥«ï¥¬ë¥ áâ à訬 à §à冷¬, wk = w.
ãáâì i(u; v) | ¢¥á ªà âç ©è¥£® ¯ã⨠¨§ u ¢ v ®â­®á¨â¥«ì­®
¢¥á®¢®© ä㭪樨 wi (¢ ç áâ­®áâ¨, k (u; v) = (u; v)). €«£®à¨â¬, ®
ª®â®à®¬ ¯®©¤ñâ à¥çì ¢ í⮩ § ¤ ç¥, ­ ©¤ñâ á­ ç « ¢á¥ 1(s; v) (s |
¨á室­ ï ¢¥à設 ), § ⥬ ¢á¥ 2(s; v), ¨ â ª ¤ «¥¥, ¯®ª ­¥ ¤®©¤ñâ
¤® k (s; v) = (s; v). „ «¥¥ ¬ë ¯®« £ ¥¬, çâ® jE j > jV j ; 1; ª ª ¬ë
㢨¤¨¬, á⮨¬®áâì ­ 宦¤¥­¨ï i ¯à¨ ¨§¢¥áâ­®¬ i;1 ¥áâì O(E ),
â ª çâ® «£®à¨â¬ ¡ã¤¥â à ¡®â âì § ¢à¥¬ï O(kE ) = O(E lg W ).
’ ª®© ¯« ­ à¥è¥­¨ï § ¤ ç¨ | § ¬¥­ ¨á室­ëå ¤ ­­ëå ¨å ¤¢®¨ç­ë¬¨ ¯à¨¡«¨¦¥­¨ï¬¨ á ¯®á«¥¤®¢ ⥫ì­ë¬ ãâ®ç­¥­¨¥¬ | ­ §ë¢ ¥âáï ¬ áèâ ¡¨à®¢ ­¨¥¬ (scaling)
( ) ãáâì (s; v ) 6 jE j ¤«ï ¢á¥å ¢¥à設 v 2 V (¯à¥¤¯®« £ ¥âáï,
çâ® jE j > jV j ; 1 ¨ ¢¥á ïîâáï 楫묨 ­¥®âà¨æ ⥫ì­ë¬¨ ç¨á« ¬¨). ®ª ¦¨â¥, çâ® ¬®¦­® ­ ©â¨ (s; v) ¤«ï ¢á¥å v 2 V § ¢à¥¬ï
O(E ).
(¡) ®ª ¦¨â¥, çâ® ¬®¦­® ¯®¤áç¨â âì 1 (s; v ) ¤«ï ¢á¥å v 2 V § ¢à¥¬ï O(E ).
’¥¯¥àì § ©¬¥¬áï ¢ëç¨á«¥­¨¥¬ i ¨áå®¤ï ¨§ i;1.
(¢) „®ª ¦¨â¥, çâ® (¯à¨ i = 2; 3; : : :; k) «¨¡® wi (u; v ) = 2wi;1 (u; v ),
«¨¡® wi(u; v) = 2wi;1(u; v) + 1. ‚뢥¤¨â¥ ®âáî¤ , çâ®
2i;1 (u; v ) 6 i (u; v ) 6 2i;1 (u; v ) + jV j ; 1
¤«ï ¢á¥å v 2 V .
(£) „«ï i = 2; 3; : : :; k ¨ (u; v ) 2 E ¯®«®¦¨¬
w^i(u; v) = wi (u; v) + 2i;1 (s; u) ; 2i;1(s; v):
®ª ¦¨â¥, çâ® w^i(u; v) > 0.
(¤) ãáâì ^i (s; v ) | ¢¥á ªà âç ©è¥£® ¯ã⨠®â­®á¨â¥«ì­® ¢¥á®¢®©
ä㭪樨 w^i. ®ª ¦¨â¥, çâ®
i (s; v) = ^i (s; v ) + 2i;1(s; v)
¨ çâ® ^i(s; v) 6 jE j.
520
ƒ« ¢ 25 Šà âç ©è¨¥ ¯ã⨠¨§ ®¤­®© ¢¥à設ë
(¥) Ž¡êïá­¨â¥, ª ª § ¢à¥¬ï O(E ) ¢ëç¨á«¨âì ¢á¥ §­ 祭¨ï i (s; v ),
§­ ï i;1(s; v). Š ª ¢ëç¨á«¨âì (s; v) (¤«ï ¢á¥å v 2 V ) § ¢à¥¬ï
O(E lg W )?
25-5 €«£®à¨â¬ Š ௠¤«ï ®âë᪠­¨ï 横« á ¬¨­¨¬ «ì­ë¬ á।­¨¬ ¢¥á®¬
ãáâì G = (V; E ) | ®à¨¥­â¨à®¢ ­­ë© £à ä á ¢¥á®¢®© ä㭪樥©
w : E ! , ¨ ¯ãáâì n = jV j. ‘।­¨¬ ¢¥á®¬ (mean weight) 横« c = he1; e2; : : :; ek i, £¤¥ ej | à¥¡à £à ä , ­ §®¢¥¬ ç¨á«®
R
k
X
1
(c) = k w(ei ):
= minc (c),
i=1
ãáâì
£¤¥ c ¯à®¡¥£ ¥â ¢á¥ (®à¨¥­â¨à®¢ ­­ë¥) 横«ë. ‚ í⮩ § ¤ ç¥ ¬ë ®¯¨è¥¬ íä䥪⨢­ë© «£®à¨â¬ ¤«ï ¢ëç¨á«¥­¨ï .
¥ ®£à ­¨ç¨¢ ï ®¡é­®áâ¨, ¡ã¤¥¬ áç¨â âì, çâ® ª ¦¤ ï ¢¥à設 v 2 V ¤®á⨦¨¬ ¨§ ­¥ª®â®à®© ¢¥à設ë s. —¥à¥§ (s; v ) ®¡®§­ 稬
¢¥á ªà âç ©è¥£® ¯ã⨠¨§ s ¢ v; ¯ãáâì k (s; v) | ¢¥á ªà âç ©è¥£®
¯ã⨠¨§ s ¢ v, á®áâ®ï饣® ¢ â®ç­®á⨠¨§ k àñ¡¥à (¥á«¨ â ª®£® ¯ãâ¨
­¥â, ¯®« £ ¥¬ k (s; v) = 1).
( ) ãáâì = 0. ®ª ¦¨â¥, çâ® G ­¥ ᮤ¥à¦¨â 横«®¢ ®âà¨æ ⥫쭮£® ¢¥á ¨ çâ® (s; v) = min06k6n;1 k (s; v) ¤«ï ¢á¥å v 2 V .
(¡) ãáâì = 0. ®ª ¦¨â¥, çâ®
n (s; v) ; k (s; v ) > 0
max
06k6n;1
n;k
¤«ï «î¡®© ¢¥à設ë v 2 V (“ª § ­¨¥: ¢®á¯®«ì§ã©â¥áì ¤¢ã¬ï ã⢥ত¥­¨ï¬¨ ¯à¥¤ë¤ã饣® ¯ã­ªâ .)
(¢) ãáâì u ¨ v | ¤¢¥ ¢¥à設ë, «¥¦ 騥 ­ 横«¥ ­ã«¥¢®£® ¢¥á .
ãáâì ¢¥á ãç á⪠í⮣® 横« ®â u ¤® v à ¢¥­ x. ®ª ¦¨â¥, çâ®
(s; v ) = (s; u) + x (“ª § ­¨¥: ¢¥á ãç á⪠®â v ¤® u à ¢¥­ ;x).
(£) ãáâì = 0. ®ª ¦¨â¥, çâ® áãé¥áâ¢ã¥â ¢¥à設 v , «¥¦ é ï
­ 横«¥ á ¬¨­¨¬ «ì­ë¬ á।­¨¬ ¢¥á®¬, â ª ï, çâ®
n (s; v) ; k (s; v ) = 0
max
06k6n;1
n;k
(“ª § ­¨¥: ¯®ª ¦¨â¥, çâ® ªà âç ©è¨© ¯ãâì ®â s ¤® ¢¥à設ë, «¥¦ 饩 ­ 横«¥ á ­ã«¥¢ë¬ ¢¥á®¬, ¬®¦­® ¯à®¤®«¦¨âì ¢¤®«ì í⮣®
横« â ª, çâ® ®­ ®áâ ­¥âáï ªà âç ©è¨¬.)
(¤) ãáâì = 0. ®ª ¦¨â¥, çâ®
k (s; v) = 0:
min
max n (s; vn) ;
v2V 06k6n;1
;k
(¥) ®ª ¦¨â¥, çâ®
k (s; v )
= min
max n (s; vn) ;
v2V 06k6n;1
;k
Ž£à ­¨ç¥­¨ï ­ à §­®á⨠¨ ªà âç ©è¨¥ ¯ãâ¨
521
(“ª § ­¨¥: ¥á«¨ ¯à¨¡ ¢¨âì ª®­áâ ­âã t ª ¢¥á ¬ ¢á¥å ॡ¥à, ⮠㢥«¨ç¨âáï ­ t.)
(¦)  §à ¡®â ©â¥ «£®à¨â¬, ¢ëç¨á«ïî騩 § ¢à¥¬ï O(V E ).
‡ ¬¥ç ­¨ï
€«£®à¨â¬ „¥©ªáâàë [55] ¯®ï¢¨«áï ¢ 1959 £®¤ã (¡¥§ 㯮¬¨­ ­¨ï
®ç¥à¥¤¥© á ¯à¨®à¨â¥â ¬¨). €«£®à¨â¬ ¥««¬ ­ -”®à¤ ®á­®¢ ­ ­ ¤¢ãå ®â¤¥«ì­ëå «£®à¨â¬ å, ¨§®¡à¥âñ­­ëå ¥««¬ ­®¬ [22] ¨ ”®à¤®¬ [71]. ‘¢ï§ì ªà âç ©è¨å ¯ã⥩ á ®£à ­¨ç¥­¨ï¬¨ ­ à §­®áâ¨
®¯¨á ­ ¥««¬ ­®¬. €«£®à¨â¬ ¤«ï ¯®¨áª ªà âç ©è¨å ¯ã⥩ ¢
横«¨ç¥áª®¬ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥ § «¨­¥©­®¥ ¢à¥¬ï ®¯¨á ­
‹®ã«¥à®¬ [132] (ª ª "䮫쪫®à­ë©").
…᫨ ¢¥á àñ¡¥à | ­¥¡®«ì訥 æ¥«ë¥ ç¨á« , â® ¤«ï ­ 宦¤¥­¨ï
ªà âç ©è¨å ¯ã⥩ ¨§ ®¤­®© ¢¥àè¨­ë ¬®¦­® ¯à¨¬¥­¨âì ¨ ¡®«¥¥
íä䥪⨢­ë¥ ¬¥â®¤ë. €å㤦 , Œ¥«ìå®à­, Žà«¨­ p
¨ ’ àìï­ [6] ®¯¨áë¢ îâ «£®à¨â¬, à ¡®â î騩 § ¢à¥¬ï O(E + V lg W ) ¢ ¯à¥¤¯®«®¦¥­¨¨, çâ® ¢¥á | æ¥«ë¥ ­¥®âà¨æ ⥫ì­ë¥ ç¨á« , ­¥ ¯à¥¢®á室ï騥 W . Ž­¨ ¦¥ ¯à¨¢®¤ïâ ¯à®á⮩ «£®à¨â¬, à ¡®â î騩 § ¢à¥¬ï
O(E + V lg W ). „«ï á«ãç ï, ª®£¤ ¢¥á ¬®£ãâ ¡ëâì ®âà¨æ ⥫ì­ë¬¨
(楫묨) ç¨á« ¬¨p, ¥áâì «£®à¨â¬ ƒ ¡®ã ¨ ’ àìï­ [77], à ¡®â î騩 § ¢à¥¬ï O( V E lg(V W )), £¤¥ W | ¬ ªá¨¬ã¬ ¡á®«îâ­ëå
¢¥«¨ç¨­ ¢¥á®¢.
•®à®è¨© ®¡§®à à §«¨ç­ëå «£®à¨â¬®¢, á¢ï§ ­­ëå á «¨­¥©­ë¬
¯à®£à ¬¬¨à®¢ ­¨¥¬ (¢ ç áâ­®áâ¨, ᨬ¯«¥ªá-¬¥â®¤ ¨ ¬¥â®¤ í««¨¯á®¨¤®¢), ¤ î⠏ ¯ ¤¨¬¨âà¨ã ¨ ‘â ©£«¨æ [154]. ‘¨¬¯«¥ªá-¬¥â®¤
¡ë« ¨§®¡à¥âñ­ „ ­æ¨£®¬ (G. Dantzig) ¢ 1947 £®¤ã, ¨ à §«¨ç­ë¥
¢ ਠ­âë í⮣® ¬¥â®¤ ¤® á¨å ¯®à ®áâ îâáï ­ ¨¡®«¥¥ ¯®¯ã«ïà­ë¬¨ ᯮᮡ ¬¨ à¥è¥­¨ï § ¤ ç «¨­¥©­®£® ¯à®£à ¬¬¨à®¢ ­¨ï. Œ¥â®¤ í««¨¯á®¨¤®¢ ¯à¥¤«®¦¨« ‹.ƒ.• ç¨ï­, ®á­®¢ë¢ ïáì ­ à ¡®â å
.‡. ˜®à , „.. ž¤¨­ ¨ €.‘. ¥¬¨à®¢áª®£®. Š à¬ àª à ®¯¨áë¢ ¥â ᢮© «£®à¨â¬ ¢ [115].
26
Šà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設
‚ í⮩ £« ¢¥ ¬ë § ©¬ñ¬áï § ¤ 祩 ® ­ 宦¤¥­¨¨ ªà âç ©è¨å ¯ã⥩ ¤«ï ¢á¥å ¯ à ¢¥à設 £à ä . ’ ¡«¨æ à ááâ®ï­¨© ¬¥¦¤ã ¢á¥¢®§¬®¦­ë¬¨ ¯ à ¬¨ £®à®¤®¢ ¢ ⫠ᥠ¤®à®£ ¯®«ãç ¥âáï ¢ १ã«ìâ â¥
à¥è¥­¨ï ¨¬¥­­® â ª®© § ¤ ç¨. Š ª ¨ ¢ £« ¢¥ 25, ¡ã¤¥¬ à áᬠâਢ âì ®à¨¥­â¨à®¢ ­­ë© ¢§¢¥è¥­­ë© £à ä G = (V; E ) á ¢¥é¥á⢥­­®© ¢¥á®¢®© ä㭪樥© w : E ! . „«ï ª ¦¤®© ¯ àë ¢¥à設 u; v 2 V
¬ë ¤®«¦­ë ­ ©â¨ ªà âç ©è¨© ¯ãâì u ¢ v, â®ç­¥¥, ¯ãâì ­ ¨¬¥­ì襩 ¤«¨­ë (¤«¨­ ¯ã⨠®¯à¥¤¥«ï¥âáï ª ª á㬬 ¢¥á®¢ ¢á¥å ¥£® àñ¡¥à). ’ ª¨¬ ®¡à §®¬, ®â¢¥â®¬ ¢ § ¤ ç¥ ® ªà âç ©è¨å ¯ãâïå ¬®¦­®
áç¨â âì â ¡«¨æã, ¢ ª®â®à®© ­ ¯¥à¥á¥ç¥­¨¨ áâப¨ u ¨ á⮫¡æ v
ª®â®à®© ­ 室¨âáï ¢¥á ªà âç ©è¥£® ¯ã⨠¨§ u ¢ v (¤®¯®«­¥­­ãî
­¥ª®â®à®© ¨­ä®à¬ 樥© ® á ¬¨å íâ¨å ¯ãâïå, á¬. ­¨¦¥).
 §ã¬¥¥âáï, ¬®¦­® à¥è¨âì íâã § ¤ çã, ¥á«¨ jV j à § ¯à¨¬¥­¨âì
«£®à¨â¬ ¤«ï ¯®¨áª ªà âç ©è¨å ¯ã⥩ ¨§ ®¤­®© ¢¥à設ë (ª® ¢á¥¬
¢¥à設 ¬ £à ä ¯® ®ç¥à¥¤¨). …᫨ ¢á¥ à¥¡à £à ä ¨¬¥îâ ­¥®âà¨æ ⥫ì­ë¥ ¢¥á , â® à §ã¬­® ¨á¯®«ì§®¢ âì «£®à¨â¬ „¥©ªáâàë; ¯à¨
¯à®á⮩ ॠ«¨§ 樨 ®ç¥à¥¤¨ á ¯à¨®à¨â¥â ¬¨ á ¯®¬®éìî ¬ áᨢ ®¡é¥¥ ¢à¥¬ï à ¡®âë «£®à¨â¬ á®áâ ¢¨â O(V 3 + V E ) = O(V 3).
…᫨ ®ç¥à¥¤ì ॠ«¨§®¢ âì á ¯®¬®éìî ¤¢®¨ç­®© ªãç¨, â® ®¡é ï
á⮨¬®áâì á®áâ ¢¨â O(V E lg V ), çâ® ¤ ñ⠢먣àëè ¤«ï à §à¥¦¥­­ëå £à 䮢. Ž¡¥ í⨠®æ¥­ª¨ ¬®¦­® ã«ãçè¨âì, ¨á¯®«ì§®¢ ¢ 䨡®­ ç稥¢ë ªãç¨, ¤«ï ª®â®àëå ®¡é¥¥ ¢à¥¬ï à ¡®âë «£®à¨â¬ ¥áâì
«£®à¨â¬ ¡ã¤¥â O(V 2 lg V + V E ).
…᫨ ¢ £à ä¥ ¥áâì àñ¡à á ®âà¨æ ⥫ì­ë¬¨ ¢¥á ¬¨, â® «£®à¨â¬
„¥©ªáâàë ¯à¨¬¥­¨âì ­¥«ì§ï. …᫨ ¢¬¥áâ® ­¥£® ¨á¯®«ì§®¢ âì ¡®«¥¥ ¬¥¤«¥­­ë© «£®à¨â¬ ¥««¬ ­ -”®à¤ , ¢ë¯®«­ïï ¥£® ¤«ï ª ¦¤®© ¢¥àè¨­ë £à ä , ®¡é¥¥ ¢à¥¬ï à ¡®âë á®áâ ¢¨â O(V 2E ) |
¤«ï ¯«®â­ëå £à ä å íâ® ¡ã¤¥â O(V 4). €«£®à¨â¬ë, ®¯¨á ­­ë¥ ­¨¦¥,
à ¡®â îâ ¡ëáâ॥. Šà®¬¥ ⮣®, ¢ í⮩ £« ¢¥ ¬ë ãáâ ­®¢¨¬ á¢ï§ì
¬¥¦¤ã § ¤ 祩 ® ­ 宦¤¥­¨¨ ªà âç ©è¨å ¯ã⥩ ¤«ï ¢á¥å ¯ à ¢¥à設 £à ä ¨ 㬭®¦¥­¨¥¬ ¬ âà¨æ, â ª¦¥ ¨áá«¥¤ã¥¬ ¥¥ «£¥¡à ¨ç¥áªãî áâàãªâãàã.
‚ ¡®«ì設á⢥ «£®à¨â¬®¢ í⮩ £« ¢ë £à äë ¯à¥¤áâ ¢«ïîâáï
¬ âà¨æ ¬¨ ᬥ¦­®áâ¨. ˆáª«î祭¨¥¬ ï¥âáï «£®à¨â¬ „¦®­á®­ R
ƒ« ¢ 26 Šà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設
523
¤«ï à §à¥¦¥­­ëå £à 䮢, ª®â®àë© (ª ª ¨ «£®à¨â¬ë ¯®¨áª ¨§ ®¤­®© ¢¥à設ë) ¨á¯®«ì§ã¥â ᯨ᪨ ᬥ¦­®áâ¨. …áâ¥á⢥­­® á®ç¥â âì
ᢥ¤¥­¨ï ® ­ «¨ç¨¨ à¥¡à ¨ ® ¥£® ¢¥á¥ ¢ ®¤­®© ¬ âà¨æ¥, ¯®« £ ï ¢¥á ®âáãâáâ¢ãîé¨å àñ¡¥à ¡¥áª®­¥ç­ë¬¨.
’ ª¨¬ ®¡à §®¬, ¯à¨ ®¡à ¡®âª¥ ¢§¢¥è¥­­®£® ®à¨¥­â¨à®¢ ­­®£®
£à ä G = (V; E ) «£®à¨â¬ã ¤ ñâáï ¬ âà¨æ W = (wij ), £¤¥
8
<
¥á«¨ i = j ,
wij = : ¢¥á (®à¨¥­â¨à®¢ ­­®£®) ॡà (i; j ) ¥á«¨ i 6= j ¨ (i; j ) 2 E ,
1
¥á«¨ i =
6 j ¨ (i; j ) 62 E .
(26:1)
¥¡à ¬®£ãâ ¨¬¥âì ®âà¨æ ⥫ì­ë© ¢¥á. Œë ¡ã¤¥¬, ®¤­ ª®, ¯à¥¤¯®« £ âì, ç⮠横«®¢ ®âà¨æ ⥫쭮£® ¢¥á ¢ £à ä¥ ­¥â.
à¥¤áâ ¢«¥­­ë¥ ¢ ¤ ­­®© £« ¢¥ «£®à¨â¬ë ­ 宦¤¥­¨ï ªà âç ©è¨å ¯ã⥩ ¤«ï ¢á¥å ¯ à ¢¥à設 ¡ã¤ãâ ¢ëç¨á«ïâì ¬ âà¨æã
D = (dij ) à §¬¥à®¬ n n, í«¥¬¥­â dij ª®â®à®© ᮤ¥à¦¨â ¢¥á ªà âç ©è¥£® ¯ã⨠¨§ ¢¥à設ë i ¢ ¢¥à設ã j , â® ¥áâì à ¢¥­ (i; j ) ¢
®¡®§­ 祭¨ïå ¯à¥¤ë¤ã饩 £« ¢ë.
¥è¥­¨¥ § ¤ ç¨ ® ªà âç ©è¨å ¯ãâïå ¤«ï ¢á¥å ¯ à ¢¥à設
¤®«¦­® ¢ª«îç âì ¢ á¥¡ï ­¥ ⮫쪮 ¢¥á ªà âç ©è¨å ¯ã⥩, ­® ¨ ¬ âà¨æ㠯।è¥á⢮¢ ­¨ï (predecessor matrix) = (ij ), ¢ ª®â®à®©
ij ï¥âáï ¢¥à設®©, ¯à¥¤è¥áâ¢ãî饩 j ­ ®¤­®¬ ¨§ ªà âç ©è¨å ¯ã⥩ ¨§ i ¢ j . (¬ë ¯®« £ ¥¬ ij = nil, ¥á«¨ i = j ¨«¨ ¯ã⥩ ¨§
i ¢ j ­¥ áãé¥áâ¢ã¥â). „«ï ª ¦¤®© ¢¥à設ë i 2 V ¬®¦­® ®¯à¥¤¥«¨âì
¯®¤£à ä ¯à¥¤è¥á⢮¢ ­¨ï (predecessor subgraph) G;i = (V;i; E;i),
£¤¥
V;i = fj 2 V : ij =
6 nilg [ fig;
¨
E;i = f(ij ; j ) : j 2 V;i ¨ ij =
6 nilg:
Œë ¡ã¤¥¬ âॡ®¢ âì, çâ®¡ë ¤«ï ª ¦¤®£® i ¯®¤£à ä ¯à¥¤è¥á⢮¢ ­¨ï G;i ¡ë« ¤¥à¥¢®¬ ªà âç ©è¨å ¯ã⥩ ¨§ ¢¥à設ë i (¢ á¬ëá«¥
£« ¢ë 25). ‚ í⮬ á«ãç ¥ á«¥¤ãîé ï ¯à®æ¥¤ãà ¯¥ç ⠥⠪à âç ©è¨© ¯ãâì ¨§ ¢¥à設ë i ¢ ¢¥à設ã j .
0
{\sc Print-All-Pairs-Shortest-Path}$(\Pi,i,j)$\\
1 if $i=j$
2 then print $i$
3 else if $\pi_{ij}=\mbox{\sc nil}$
4
then print ``ã⨠¨§'' $i$ ``¢'' $j$ ``­¥â''
5
else {\sc Print-All-Pairs-Shortest-Path}$(\Pi,i,\pi_{ij})$
6
print $j$
Œë ­¥ ¡ã¤¥¬ ¯®¤à®¡­® £®¢®à¨âì ® ¯®áâ஥­¨¨ ¬ âà¨æë ¯à¥¤è¥á⢮¢ ­¨ï (¥ñ ᢮©á⢠¬ ¯®á¢ï饭® ­¥áª®«ìª® ã¯à ¦­¥­¨©).
« ­ £« ¢ë
524
ƒ« ¢ 26 Šà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設
‚ à §¤¥«¥ 26.1 à áᬠâਢ ¥âáï «£®à¨â¬ à¥è¥­¨ï § ¤ ç¨ ® ªà âç ©è¨å à ááâ®ï­¨ïå ¤«ï ¢á¥å ¯ à ¢¥à設, ¢ ®á­®¢¥ ª®â®à®£® «¥¦¨â
㬭®¦¥­¨¥ ¬ âà¨æ. ‚६ï à ¡®âë í⮣® «£®à¨â¬ | (V 3 lg V );
®­ ¢ëç¨á«ï¥â á⥯¥­ì ¬ âà¨æë, ¬­®£®ªà â­® ¢®§¢®¤ï ¥ñ ¢ ª¢ ¤à â.
®«¥¥ ¡ëáâàë© (O(V 3)) «£®à¨â¬ ”«®©¤ {“®à讫« , â ª¦¥ ¨á¯®«ì§ãî騩 â¥å­¨ªã ¤¨­ ¬¨ç¥áª®£® ¯à®£à ¬¬¨à®¢ ­¨ï, ¨§« £ ¥âáï ¢ à §¤¥«¥ 26.2. ‚ í⮬ ¦¥ à §¤¥«¥ à áᬠâਢ ¥âáï § ¤ ç ®
âà ­§¨â¨¢­®¬ § ¬ëª ­¨¨ ®à¨¥­â¨à®¢ ­­®£® £à ä , ª®â®à ï ®ª §ë¢ ¥âáï â¥á­® á¢ï§ ­­®© á § ¤ 祩 ­ 宦¤¥­¨ï ªà âç ©è¨å ¯ã⥩
¤«ï ¢á¥å ¯ à ¢¥à設.
‚ à §¤¥«¥ 26.3 ¨§« £ ¥âáï «£®à¨â¬ „¦®­á®­ . ‚ ®â«¨ç¨¥ ®â ¤àã£¨å «£®à¨â¬®¢ í⮩ £« ¢ë, ®­ ¨á¯®«ì§ã¥â ¢ ᢮¥© à ¡®â¥ ᯨ᪨
ᬥ¦­ëå ¢¥à設, ­¥ ¬ âà¨æã ᬥ¦­®áâ¨. ‚६ï à ¡®âë í⮣® «£®à¨â¬ ¥áâì O(V 2 lg V + V E ); â ª¨¬ ®¡à §®¬, ®­ íä䥪⨢¥­ ¤«ï
à §à¥¦¥­­ëå £à 䮢.
‚ ¯®á«¥¤­¥¬ à §¤¥«¥ (26.4) ¬ë ¨áá«¥¤ã¥¬ «£¥¡à ¨ç¥áªãî áâàãªâãàã (§ ¬ª­ã⮥ ¯®«ãª®«ìæ®), ¯®§¢®«ïîéãî ¯à¨¬¥­¨âì «£®à¨â¬ë
­ 宦¤¥­¨ï ªà âç ©è¨å ¯ã⥩ ¤«ï à¥è¥­¨ï ¤àã£¨å § ¤ ç á £à ä ¬¨, ¢ ª®â®àëå â ª¦¥ âॡã¥âáï ®¯à¥¤¥«¨âì çâ®-«¨¡® ¤«ï ¢á¥å
¯ à ¢¥à設.
‚áî¤ã ¢ í⮩ £« ¢¥ ¬ë à áᬠâਢ ¥¬ £à ä G = (V; E ) á n
, ¢¥à設 ¬¨, â ª çâ® jV j = n. Œë ¡ã¤¥¬ ®¡®§­ ç âì ¬ âà¨æë
¡®«ì訬¨ ¡ãª¢ ¬¨ (­ ¯à¨¬¥à, W ¨«¨ D) ®â¤¥«ì­ë¥ í«¥¬¥­âë
¬ âà¨æ ᮮ⢥âáâ¢ãî騬¨ ¬ «¥­ìª¨¬¨ ¡ãª¢ ¬¨ (wij ; dij ). Šà®¬¥
⮣®, ¬ë ¡ã¤¥¬ ¨á¯®«ì§®¢ âì ¢¥àå­¨© ¨­¤¥ªá ¢ ᪮¡ª å (­ ¯à®¤®¡¨¥
D(m) = (d(ijm))), à®«ì ª®â®à®£® ¡ã¤¥â ­ «®£¨ç­ á⥯¥­¨ ¬ âà¨æë
(á¬. ­¨¦¥).  ª®­¥æ, à §¬¥à n ª¢ ¤à â­®© n n-¬ âà¨æë A ¬ë
¡ã¤¥¬ ¨­®£¤ § ¯¨áë¢ âì ª ª rows[A] (rows | áâப¨).
26.1 Šà âç ©è¨¥ ¯ã⨠¨ 㬭®¦¥­¨¥ ¬ âà¨æ
‚ í⮬ à §¤¥«¥ ¬ë à áᬮâਬ «£®à¨â¬ ¤¨­ ¬¨ç¥áª®£® ¯à®£à ¬¬¨à®¢ ­¨ï à¥è¥­¨ï § ¤ ç¨ ­ 宦¤¥­¨ï ªà âç ©è¨å ¯ã⥩ ¤«ï
¢á¥å ¯ à ¢¥à設 ®à¨¥­â¨à®¢ ­­®£® £à ä G = (V; E ).  ª ¦¤®¬
è £¥ ®­ ¡ã¤¥â ¯®ç⨠ç⮠㬭®¦ âì ¬ âà¨æë | ⮫쪮 ­¥ ¢¯®«­¥
®¡ëç­ë¬ ®¡à §®¬. ‘­ ç « ¬ë ¯®áâந¬ «£®à¨â¬ á® á«®¦­®áâìî
(¢à¥¬¥­¥¬ à ¡®âë) (V 4), § ⥬ ã«ãç訬 ¥£®, ¯®«ã稢 ®æ¥­ªã
(V 3 lg V ).  è¥ ¨§«®¦¥­¨¥ ¡ã¤¥â á«¥¤®¢ âì á奬¥ «£®à¨â¬ ¤¨­ ¬¨ç¥áª®£® ¯à®£à ¬¬¨à®¢ ­¨ï (£« ¢ 16)
‘âàãªâãà ªà âç ©è¥£® ¯ãâ¨
“¡¥¤¨¬áï, çâ® ç á⨠à¥è¥­¨ï ïîñâáï à¥è¥­¨ï¬¨ ­ «®£¨ç­ëå ¯®¤§ ¤ ç. ‚ ­ 襬 á«ãç ¥ íâ® ®§­ ç ¥â, çâ® ®â१ª¨ ªà âç ©è¥£® ¯ãâ¨ á ¬¨ ïîâáï ªà âç ©è¨¬¨ ¯ãâﬨ ¬¥¦¤ã ᮮ⢥âáâ¢ãî騬¨ ¢¥à設 ¬¨ («¥¬¬ 25.1).
¥ªãàᨢ­ ï ä®à¬ã« ¤«ï ¤«¨­ë ªà âç ©è¥£® ¯ãâ¨
ãáâì d(ijm) ®¡®§­ ç ¥â ¬¨­¨¬ «ì­ë© ¢¥á ¯ã⨠¨§ ¢¥à設ë i ¢
¢¥à設ã j , ¥á«¨ à áᬠâਢ âì ¯ãâ¨ á ­¥ ¡®«¥¥ 祬 m àñ¡à ¬¨.
ƒ« ¢ 26 Šà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設
525
à¨ m = 0 ¤®¯ãáâ¨¬ë «¨èì "¯ãâ¨" ¢®¢á¥ ¡¥§ àñ¡¥à, â® ¥áâì
i = j,
(0)
dij = 01 ¥á«¨
¥á«¨ i =
6 j.
…᫨ ¦¥ m > 1, â® ¬¨­¨¬ã¬ d(ijm) ¤®á⨣ ¥âáï «¨¡® ­ ¯ã⨠¨§ ­¥
¡®«¥¥ 祬 m ; 1 ॡà (¨ ⮣¤ à ¢¥­ d(ijm;1) ), «¨¡® ¦¥ ­ ¯ã⨠¨§
m ॡ¥à. ‚ ¯®á«¥¤­¥¬ á«ãç ¥ íâ®â ¯ãâì ¬®¦­® à §¡¨âì ­ ­ ç «ì­ë© ®â१®ª ¨§ m ; 1 àñ¡¥à, ¢¥¤ã騩 ¨§ ­ ç «ì­®© ¢¥à設ë i ¢
­¥ª®â®àãî ¢¥à設ã k, ¨ ­ ¯®á«¥¤­¥¥ ॡ஠(k; j ). Œë ¯à¨å®¤¨¬ ª
ä®à¬ã«¥
(m;1) + w g) =
d(ijm) = min(d(ijm;1) ; 1min
f
d
kj
6k6n ik
(m;1)
= 1min
6k6nfdik + wkj g
(®á«¥¤­¥¥ à ¢¥­á⢮ ¨á¯®«ì§ã¥â à ¢¥­á⢮ wjj = 0.)
…᫨ £à ä ­¥ ᮤ¥à¦¨â 横«®¢ á ®âà¨æ ⥫ì­ë¬¨ ¢¥á ¬¨, ªà âç ©è¨© ¯ãâì ¬®¦­® ¢ë¡à âì ¡¥§ 横«®¢; â ª®© ¯ãâì ᮤ¥à¦¨â ­¥
¡®«¥¥ n ; 1 àñ¡¥à. ‘«¥¤®¢ ⥫쭮,
(i; j ) = d(ijn;1) = d(ijn) = d(ijn+1) = :
(26:3)
‚ëç¨á«¥­¨¥ ªà âç ©è¨å ¯ã⥩ "á­¨§ã ¢¢¥àå"
® § ¤ ­­®© ¬ âà¨æ¥ ¢¥á®¢ W = (wij ) ¬ë ¡ã¤¥¬ ¯®á«¥¤®¢ ⥫쭮
¢ëç¨á«ïâì ¬ âà¨æë D(1); D(2); : : : ; D(n;1), £¤¥ D(m) = (d(ijm)). Š ª
¬ë ¢¨¤¥«¨, ¯®á«¥¤­ïï ¬ âà¨æ D(n;1) ¡ã¤¥â ᮤ¥à¦ âì ¢¥á ªà âç ©è¨å ¯ã⥩. ‡ ¬¥â¨¬, çâ® ¬ âà¨æ D(1) (¢¥á ¯ã⥩ ¨§ ®¤­®£®
ॡà ) ᮢ¯ ¤ ¥â á W .
˜ £ «£®à¨â¬ á®á⮨⠢ ¢ëç¨á«¥­¨¨ D(m) ¯® D(m;1) ¨ W .
{\sc Extend-Shortest-Paths}$(D,W)$\\
\verb|1 |$n \leftarrow rows[D]$\\
\verb|2 |¯ãáâì $D'=(d'_{ij})$ --- $n\times n$-¬ âà¨æ \verb|3 |for $i \leftarrow 1$ to $n$\\
\verb|4
|do for $j \leftarrow 1$ to $n$\\
\verb|5
|do $d'_{ij} \leftarrow \infty$\\
\verb|6
|for $k \leftarrow 1$ to $n$\\
\verb|7
|do $d'_{ij} \leftarrow \min(d'_{ij},\,d_{ik}+w_{k
\verb|8 |return $D'$\\
â ¯à®æ¥¤ãà ¢ëç¨á«ï¥â ¬ âà¨æã D0 ¢ ᮮ⢥âá⢨¨ á ä®à¬ã«®©
(26.2) ¯à¨ í⮬ à®«ì ¬ âà¨æ D ¨ D0 ¨£à îâ ¬ âà¨æë D(m;1 ) ¨
D(m). à®æ¥¤ãà ᮤ¥à¦¨â âਠ¢«®¦¥­­ëå 横« , â ª çâ® ¢à¥¬ï ¥ñ
à ¡®âë ¥áâì (n3).
526
ƒ« ¢ 26 Šà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設
—⮡ë 㢨¤¥âì ­ «®£¨î í⮩ ¯à®æ¥¤ãàë á ¯à®æ¥áᮬ 㬭®¦¥­¨ï
¬ âà¨æ, § ¯¨è¥¬ ¯à®æ¥¤ãàã 㬭®¦¥­¨ï ¬ âà¨æ A ¨ B à §¬¥à®¬
n n ¯® ä®à¬ã«¥
n
X
cij = aik bkj
(26:4)
k=1
{\sc Matrix-Multiply}$(A,B)$\\
\verb|1 |$n \leftarrow rows[A]$\\
\verb|2 |¯ãáâì $C=(c_{ij})$ --- $n\times n$-¬ âà¨æ \verb|3 |for $i \leftarrow 1$ to $n$\\
\verb|4
|do for $j \leftarrow 1$ to $n$\\
\verb|5
|do $c_{ij} \leftarrow 0$\\
\verb|6
|for $k \leftarrow 1$ to $n$\\
\verb|7
|do $c_{ij} \leftarrow c_{ij}+a_{ik}\cdot
b_{kj}$\\
\verb|8 |return $C$
‚¨¤­®, çâ® íâ ¯à®æ¥¤ãà ¯®«ãç ¥âáï ¨§ ¯à¥¤ë¤ã饩 § ¬¥­ ¬¨
d(m;1) ! a;
w ! b;
(
m
d ) ! c;
min ! +;
+ ! à¨ í⮬ ᨬ¢®«ã 1, ïî饬ãáï ­¥©âà «ì­ë¬ í«¥¬¥­â®¬ ¤«ï
®¯¥à 樨 min (¢ ⮬ á¬ëá«¥, çâ® min(1; a) = a, ᮮ⢥âáâ¢ã¥â ç¨á«® 0, ïî饥áï ­¥©âà «ì­ë¬ í«¥¬¥­â®¢ ¤«ï ®¯¥à 樨 + (0+ a =
a).
‘ â®çª¨ §à¥­¨ï í⮩ ­ «®£¨¨, ¬ë ª ª ¡ë ¢ëç¨á«ï¥¬ " ¯à®¨§¢¥¤¥­¨¥" n ; 1 íª§¥¬¯«ï஢ ¬ âà¨æë W á ¯®¬®éìî ¯®á«¥¤®¢ ⥫ì­ëå
㬭®¦¥­¨©:
D(1) = D(0) W
= W,
D(2) = D(1) W
= W 2,
D(3) = D(2) W
= W 3,
..
.
D(n;1) = D(n;2) W = W n;1 .
¥§ã«ìâ â íâ¨å "㬭®¦¥­¨©", ¬ âà¨æ D(n;1) = W n;1 ᮤ¥à¦¨â
¢¥á ªà âç ©è¨å ¯ã⥩. Žä®à¬¨¬ ®¯¨á ­­®¥ ¢ëç¨á«¥­¨¥ ¢ ¢¨¤¥
¯à®æ¥¤ãàë (á ¢à¥¬¥­¥¬ à ¡®âë (n4)):
{\sc Slow-All-Paths-Shortest-Paths}$(W)$\\
\verb|1 |$n \leftarrow rows[W]$\\
\verb|2 |$D^{(1)} \leftarrow W$\\
ƒ« ¢ 26 Šà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設
0
3 8 1
B 1 0 1 1
B
D(1) = B
0 1
B 1 4
@ 2 1 ;5 0
01 1 1 6
0 3 ;3 2
B 3 0 ;4 1
B
0 5
D(3) = B
B 7 4
@ 2 ;1 ;5 0
8 5 1 6
0
;4
7
1
1
0
;4
;1
11
;2
0
1
C
C
C
C
A
1
C
C
C
C
A
0
527
0
3
3
B
0
B
D(2) = B
1
4
B
@ 2 ;1
0 8 1
0 1
B 3 0
B
D(4) = B
B 7 4
@ 2 ;1
8 5
8
;4
0
;5
1
;3
;4
0
;5
1
2
1
5
0
6
2
1
5
0
6
;4
1
7 C
C
11 C
C
;2 A
0 1
;4
;1 C
C
3 C
C
;2 A
0
¨áã­®ª 26.1 26.1 Žà¨¥­â¨à®¢ ­­ë© £à ä G ¨ ¯®á«¥¤®¢ ⥫쭮áâì ¬ âà¨æ
D(m) . Œ®¦­® ã¡¥¤¨âìáï, çâ® ¬ âà¨æ D(5) = D(4) W ( §­ ç¨â, ¨ ¢á¥ ¯®á«¥¤ãî騥) ¡ã¤¥â à ¢­ D(4) .
\verb|3 |for $m \leftarrow 2$ to $n-1$\\
\verb|4
|do $D^{(m)} \leftarrow \mbox{\sc ExtendShortest-Paths}(D^{(m-1)},W
)$\\
\verb|5 |return $D^{(n-1)}$\\
 à¨á. 26.1 ¯®ª § ­ ¯à¨¬¥à £à ä ¨ ᮮ⢥âáâ¢ãîé¨å ¥¬ã ¬ âà¨æ D(m).
®«¥¥ ¡ëáâàë© á¯®á®¡
‡ ¬¥â¨¬, çâ® ¬ë ¢ëç¨á«ï¥¬ ¢á¥ ¬ âà¨æë D(m), å®âï ­ á ¨­â¥à¥áã¥â «¨èì ¬ âà¨æ D(n;1) ¨«¨ «î¡ ï ¨§ á«¥¤ãîé¨å § ­¥©
(¯à¨ ®âáãâá⢨¨ 横«®¢ á ®âà¨æ ⥫ì­ë¬¨ ¢¥á ¬¨ ¢á¥ ®­¨ à ¢­ë).
à®¤®«¦¨¬ ­ «®£¨î á 㬭®¦¥­¨¥¬: á⥯¥­ì ç¨á« a ¬®¦­® ¢ëç¨á«¨âì ¡ëáâ॥, ¥á«¨ ­¥ ¤®¬­®¦ âì ¢áñ ¢à¥¬ï ­ a, ¢®§¢®¤¨âì ¢
ª¢ ¤à â (â ª®© ¬¥â®¤ § ¢¥¤®¬® ¯à¨¬¥­¨¬, ¥á«¨ ¯®ª § ⥫ì á⥯¥­¨
¥áâì 2; 4; 8; : : : ).
€­ «®£¨ç­ë¬ ®¡à §®¬ ¬ë ¬ë ¬®¦¥¬ ®¯à¥¤¥«¨âì D(n;1), ¢ë¯®«­¨¢ ¢á¥£® dlg(n ; 1)e 㬭®¦¥­¨© ¬ âà¨æ, ¢ëç¨á«ïï ¬ âà¨æë ¢ ¯®á«¥¤®¢ ⥫쭮áâ¨
D(1)
= W
D(2)
= W2
= W W,
(4)
4
D
= W
= W 2 W 2,
(8)
8
D
= W
= W 4 W 4,
â® â¥å ¯®à, ¯®ª ¯®ª § ⥫ì á⥯¥­¨ áâ ­¥â ¡®«ì訬 ¨«¨ à ¢­ë¬
n ; 1 (¯à¨ í⮬ ®­ ¡ã¤¥â à ¢¥­ 2dlg(n;1)e , ª ª «¥£ª® ¢¨¤¥âì).
¥ «¨§ã¥¬ íâ®â ¬¥â®¤ ¯®¢â®à­®£® ¢®§¢¥¤¥­¨ï ¢ ª¢ ¤à â
(repeated squaring) ¢ ¢¨¤¥ ¯à®æ¥¤ãàë:
{\sc Faster-All-Pairs-Shortest-Paths}$(W)$\\
528
ƒ« ¢ 26 Šà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設
¨áã­®ª 26.2 26.2 ‚§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä, ¨á¯®«ì§ã¥¬ë© ¢
ã¯à. 26.1-1, 26.2-1 ¨ 26.3-1.
\verb|1 |$n \leftarrow rows[W]$\\
\verb|2 |$D^{(1)} \leftarrow W$\\
\verb|3 |$m \leftarrow 1$\\
\verb|4 |while $n-1 > m$\\
\verb|5
|do $D^{(2m)} \leftarrow \mbox{\sc ExtendShortest-Paths}(D^{(m)},
D^{(m)})$\\
\verb|6
|$m \leftarrow 2m$\\
\verb|7 |return $D^{(m)}$
 ª ¦¤®¬ è £¥ 横« while ¢ áâப å 4-6 ¢ëç¨á«ï¥âáï D(2m) =
(D(m))2 ¨ §­ 祭¨¥ m 㤢 ¨¢ ¥âáï, ¯®ª m ­¥ áâ ­¥â ¡®«ì訬 ¨«¨
à ¢­ë¬ n ; 1.
‚६ï à ¡®âë â ª®© ¯à®æ¥¤ãàë á®áâ ¢«ï¥â (n3 lg n), â.ª. ¢á¥£®
¢ë¯®«­ï¥âáï dlg(n ; 1)e "㬭®¦¥­¨©" ¬ âà¨æ, ª ¦¤®¥ ¨§ ª®â®àëå
âॡã¥â (n3) ¤¥©á⢨©. €«£®à¨â¬ ¤®¢®«ì­® ¯à®áâ, ¨ ¬®¦­® ­ ¤¥ïâìáï, çâ® ª®­áâ ­â , áªàëâ ï ¢ -®¡®§­ 祭¨, ¡ã¤¥â ­¥¡®«ì让.
[‡ ¬¥â¨¬, çâ® ¬ë ­¥ï¢­® ¨á¯®«ì§®¢ «¨ áá®æ¨ ⨢­®áâì ­ 襣®
" 㬭®¦¥­¨ï" ¬ âà¨æ, ¯¥à¥å®¤ï ª ¤à㣮¬ã ᯮᮡ㠢ëç¨á«¥­¨ï á⥯¥­¥©. …ñ ¬®¦­® ¯à®¢¥à¨âì ¯® ­ «®£¨¨ á ¤®ª § ⥫ìá⢮¬ áá®æ¨ ⨢­®á⨠¤«ï ®¡ëç­®£® 㬭®¦¥­¨ï | «¨¡® § ¬¥­¨âì áá뫪㠭 áá®æ¨ ⨢­®áâì ¯àï¬ë¬ ¤®ª § ⥫ìá⢮¬ ⮣®, çâ® D(2m) ¥áâì ¯à®¨§¢¥¤¥­¨¥ D(m) ­ D(m), ª®â®à®¥ «¥£ª® ¯à®¢¥áâ¨, à áᬠâਢ ï ¤¢¥
¯®«®¢¨­ë ¯ã⨠¤«¨­ë 2m.]
“¯à ¦­¥­¨ï
26.1-1 à®á«¥¤¨â¥ § ¨á¯®«­¥­¨¥¬ «£®à¨â¬®¢ Slow-All-PairsShortest-Paths ¨ Faster-All-Pairs-Shortest-Paths ­ £à ä¥
à¨á. 26.2. ‚ëç¨á«¨â¥ ¢á¥ ¢®§­¨ª î騥 ¯à¨ í⮬ ¬ âà¨æë.
26.1-2 ƒ¤¥ ¨á¯®«ì§ã¥âáï, çâ® wii = 0 ¯à¨ ¢á¥å i?
26.1-3 —â® ᮮ⢥âáâ¢ã¥â ¬ âà¨æ¥
1
0
0 1 1 ::: 1
B 1 0 1 ::: 1 C
C
B
B 1 1 0 ::: 1 C
(0)
D =B
C
B .
. .
. C
@
.. . . . ..
1 1 1 ::: 0
..
..
A
¥á«¨ ¯à®¤®«¦¨âì ­ «®£¨î á ®¡ëç­ë¬ 㬭®¦¥­¨¥¬ ¬ âà¨æ?
26.1-4 à¥¤áâ ¢ì⥠§ ¤ çã ¯®¨áª ªà âç ©è¨å ¯ã⥩ ¨§ ®¤­®©
¢¥àè¨­ë ª ª § ¤ çã ®âë᪠­¨ï ¯à®¨§¢¥¤¥­¨© ¨ ¢¥ªâ®à . Š ª ¢ íâ¨å
â¥à¬¨­ å ¢ë£«ï¤¨â «£®à¨â¬ ¥««¬ ­ -”®à¤ (á¬. à §¤¥« 25.3)?
26.1-5 à¨¤ã¬ ©â¥ «£®à¨â¬ ¢ëç¨á«¥­¨ï ¬ âà¨æë ¯à¥¤è¥á⢮¢ ­¨ï ¯® 㦥 ¨¬¥î饩áï ¬ âà¨æ¥ D ¢¥á®¢ ªà âç ©è¨å ¯ã⥩ § €«£®à¨â¬ ”«®©¤ -“®à讫« 529
¢à¥¬ï O(n3).
26.1-6 ‘ ¤à㣮© áâ®à®­ë, ¬ âà¨æë ¯à¥¤è¥á⢮¢ ­¨ï ¬®£ãâ ¢ëç¨á«ïâìáï ¯ à ««¥«ì­® á ¢ëç¨á«¥­¨¥¬ ¢¥á®¢. ã¤¥¬ ¡à âì ¢ ª ç¥á⢥ ij(m) ¯à¥¤è¥áâ¢ãîéãî j ¢¥à設㠭 ª ª®¬-­¨¡ã¤ì ªà âç ©è¥¬ ¯ã⨠¨§ i ¢ j , á®áâ®ï饬 ­¥ ¡®«¥¥ 祬 ¨§ m ॡ¥à. ˆ§¬¥­¨â¥ ¯à®æ¥¤ãàë Extend-Shortest-Paths ¨ Slow-All-PairsShortest-Paths â ª, çâ®¡ë ®­¨ ¢ ¤®¯®«­¥­¨¥ ª D(1), D(2), : : : ,
D(n;1) ¢ëç¨á«ï«¨ ¥éñ ¨ ¬ âà¨æë (1), (2), : : : , (n;1).
26.1-7 à®æ¥¤ãà Faster-All-Pairs-Shortest-Paths (¢ ¥ñ ­ë­¥è­¥¬ ¢¨¤¥) ¨á¯®«ì§ã¥â dlg(n ; 1)e ¬ âà¨æ (¬ áᨢ®¢) à §¬¥à®¬
n n. Ž¡é¨© ®¡ê¥¬ ¯ ¬ïâ¨, â ª¨¬ ®¡à §®¬, á®áâ ¢«ï¥â (n2 lg n).
ˆ§¬¥­¨â¥ ¥ñ â ª, çâ®¡ë ¨á¯®«ì§®¢ âì ¢á¥£® ¤¢ ¬ áᨢ à §¬¥à®¬
n n (⥬ á ¬ë¬ ã¬¥­ì訢 ®¡êñ¬ ¯ ¬ï⨠¤® (n2 )).
26.7-8 ˆ§¬¥­¨â¥ «£®à¨â¬ Faster-All-Pairs-Shortest-Paths
â ª, çâ®¡ë ®­ ®¡­ à㦨¢ « ­ «¨ç¨¥ ¢ £à ä¥ æ¨ª« á ®âà¨æ ⥫ì­ë¬ ¢¥á®¬.
26.1-9 à¨¤ã¬ ©â¥ íä䥪⨢­ë© «£®à¨â¬ ®¯à¥¤¥«¥­¨ï ¬¨­¨¬ «ì­®£® ç¨á« àñ¡¥à ¢ 横«¥ ®âà¨æ ⥫쭮£® ¢¥á (¤«ï ¤ ­­®£®
£à ä ; ¯à¥¤¯®« £ ¥âáï, çâ® â ª®© 横« áãé¥áâ¢ã¥â).
26.1 €«£®à¨â¬ ”«®©¤ -“®à讫« ‚ í⮬ à §¤¥«¥ ¬ë à áᬮâਬ ¤à㣮© ᯮᮡ à¥è¥­¨ï § ¤ ç¨
® ªà âç ©è¨å ¯ãâïå ¤«ï ¢á¥å ¯ à ¢¥à設 ®à¨¥­â¨à®¢ ­­®£® ¢§¢¥è¥­­®£® £à ä , â ª¦¥ ®á­®¢ ­­ë© ­ â¥å­¨ª¥ ¤¨­ ¬¨ç¥áª®£® ¯à®£à ¬¬¨à®¢ ­¨ï. â®â ᯮᮡ ( «£®à¨â¬ ”«®©¤ {“®à讫« ) à ¡®â ¥â § ¢à¥¬ï (V 3). Œë ¯®-¯à¥¦­¥¬ã ¤®¯ã᪠¥¬ àñ¡à á ®âà¨æ ⥫ì­ë¬ ¢¥á®¬, ­® § ¯à¥é ¥¬ 横«ë ®âà¨æ ⥫쭮£® ¢¥á .
Šà®¬¥ ⮣®, ¬ë à áᬮâਬ «£®à¨â¬ ­ 宦¤¥­¨ï âà ­§¨â¨¢­®£® § ¬ëª ­¨ï £à ä , ®á­®¢ ­­ë© ­ ⮩ ¦¥ ¨¤¥¥.
‘â஥­¨¥ ªà âç ©è¥£® ¯ãâ¨
€«£®à¨â¬ë ¯à¥¤ë¤ã饣® à §¤¥« ¢ë¤¥«ï«¨ ¯®á«¥¤­¥¥ ॡà®
¯ãâ¨. €«£®à¨â¬ ”«®©¤ {“®àè «« ¤¥©áâ¢ã¥â ¨­ ç¥: ¤«ï ­¥£®
¢ ¦­®, ª ª¨¥ ¢¥àè¨­ë ¨á¯®«ì§ãîâáï ¢ ª ç¥á⢥ ¯à®¬¥¦ãâ®ç­ëå,
¨ ®á®¡ãî à®«ì ¨£à î⠯஬¥¦ãâ®ç­ë¥ ¢¥à設ë á ¬ ªá¨¬ «ì­ë¬ ­®¬¥à®¬ (¢ ­¥ª®â®à®© ­ã¬¥à 樨 ¢¥à設). à®¬¥¦ãâ®ç­®©
(intermediate) ¢¥à設®© ¯à®á⮣® ¯ã⨠p = hv1; v2; : : : vl i ¡ã¤¥¬
­ §ë¢ âì «î¡ãî ¨§ ¢¥à設 v2; v3; : : : ; vl;1.
ã¤¥¬ áç¨â âì, çâ® ¢¥à設 ¬¨ £à ä G ïîâáï ç¨á« 1; 2; : : : ; n.  áᬮâਬ ¯à®¨§¢®«ì­®¥ k 6 n. „«ï ¤ ­­®© ¯ àë
¢¥à設 i; j 2 V à áᬮâਬ ¢á¥ ¯ã⨠¨§ i ¢ j , ã ª®â®àëå ¢á¥ ¯à®¬¥¦ãâ®ç­ë¥ ¢¥àè¨­ë ¯à¨­ ¤«¥¦ â ¬­®¦¥áâ¢ã f1; 2; : : : ; kg. ãáâì
p | ¯ãâì ¬¨­¨¬ «ì­®£® ¢¥á á।¨ ¢á¥å â ª¨å ¯ã⥩. Ž­ ¡ã¤¥â
¯à®áâë¬, â ª ª ª ¢ £à ä¥ ­¥â 横«®¢ á ®âà¨æ ⥫ì­ë¬ ¢¥á®¬. Š ª
530
ƒ« ¢ 26 Šà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設
­ ©â¨ ¢¥á í⮣® ¯ãâ¨, §­ ï ¢¥á ¢á¥å â ª¨å ¯ã⥩ (¤«ï ¢á¥å ¯ à
¢¥à設) ¤«ï ¬¥­ìè¨å k?
„«ï ¯ã⨠p ¥áâì ¤¢¥ ¢®§¬®¦­®áâ¨.
…᫨ k ­¥ ¢å®¤¨â ¢ p, ¢á¥ ¯à®¬¥¦ãâ®ç­ë¥ ¢¥àè¨­ë ¯ã⨠p ᮤ¥à¦ âáï ¢ ¬­®¦¥á⢥ f1; 2; : : : ; k ; 1g. ’®£¤ ¯ãâì p ï¥âáï ªà âç ©è¨¬ ¯ãâñ¬ ¨§ i ¢ j , ¯à®¬¥¦ãâ®ç­ë¥ ¢¥àè¨­ë ª®â®à®£® ¯à¨­ ¤«¥¦ â ¬­®¦¥áâ¢ã f1; 2; : : : ; k ; 1g.
…᫨ k ï¥âáï ¯à®¬¥¦ãâ®ç­®© ¢¥à設®© ¯ã⨠p, ®­ à §¡¨¢ ¥â
¥£® ­ ¤¢ ãç á⪠p1 ¨ p2 (¢¥à設 k ¢áâà¥ç ¥âáï «¨èì ®¤­ ¦¤ë,
â ª ª ª p | ¯à®á⮩ ¯ãâì), á¬. à¨á. 26.3. ® «¥¬¬¥ 25.1 ¯ãâì p1
¡ã¤¥â ªà âç ©è¨¬ ¯ãâñ¬ ¨§ i ¢ k á ¯à®¬¥¦ãâ®ç­ë¬¨ ¢¥à設 ¬¨ ¨§
¬­®¦¥á⢠f1; 2; : : : ; k ; 1g. ãâì p2 ï¥âáï ªà âç ©è¨¬ ¯ãâñ¬ ¨§
k ¢ j á ¯à®¬¥¦ãâ®ç­ë¬¨ ¢¥à設 ¬¨ ¨§ ¬­®¦¥á⢠f1; 2; : : : ; k ; 1g.
¥ªã७⭠ï ä®à¬ã« ¤«ï ¤«¨­ ªà âç ©è¨å ¯ã⥩
â¨ à áá㦤¥­¨ï ¯®§¢®«ïîâ ­ ¯¨á âì ¤àã£ãî (¯® áà ¢­¥­¨î á
¯à¨¢¥¤ñ­­®© ¢ à §¤¥«¥ 26.1) ४ã७â­ãî ä®à¬ã«ã ¤«ï ¤«¨­ ªà âç ©è¨å ¯ã⥩. Ž¡®§­ 稬 ç¥à¥§ d(ijk) ¢¥á ªà âç ©è¥£® ¯ã⨠¨§ ¢¥à設ë i ¢ ¢¥à設ã j á ¯à®¬¥¦ãâ®ç­ë¬¨ ¢¥à設 ¬¨ ¨§ ¬­®¦¥á⢠f1; 2; : : : ; kg. à¨ k = 0 ¯à®¬¥¦ãâ®ç­ëå ¢¥à設 ­¥â ¢®¢á¥, ¯®í⮬ã
d(0)
ij = wij . ‚ ®¡é¥¬ á«ãç ¥
(
wij
¥á«¨ k = 0,
(
k
)
dij = min(
(26:5)
(
k
;
1)
(
k
;
1)
(
k
;
1)
dij ; dik + dkj ) ¥á«¨ k > 1.
Œ âà¨æ D(n) = (d(ijn)) ᮤ¥à¦¨â ¨áª®¬®¥ à¥è¥­¨¥. „à㣨¬¨ á«®¢ ¬¨, d(ijn) = (i; j ) ¤«ï ¢á¥å i; j 2 V , ¯®áª®«ìªã à §à¥è¥­ë «î¡ë¥
¯à®¬¥¦ãâ®ç­ë¥ ¢¥à設ë.
‚ëç¨á«¥­¨¥ ªà âç ©è¨å ¯ã⥩ á­¨§ã ¢¢¥àå
 ¯¨è¥¬ ¯à®æ¥¤ãàã, ª®â®à ï ¢ëç¨á«ï¥â ¢¥á ªà âç ©è¨å ¯ã⥩,
¯®á«¥¤®¢ ⥫쭮 ­ å®¤ï §­ 祭¨ï d(ijk) ¤«ï k = 1; 2; : : : ; n. …ñ ¢å®¤¬
ï¥âáï ¬ âà¨æ W à §¬¥à®¬ n n (¢¥á àñ¡¥à £à ä ), १ã«ìâ ⮬ ï¥âáï ¬ âà¨æ D(n) ¢¥á®¢ ªà âç ©è¨å ¯ã⥩.
{\sc Floyd-Warshall}$(W)$\\
\verb|1 |$n \leftarrow rows[W]$\\
\verb|2 |$D^{(0)} \leftarrow W$\\
\verb|3 |for $k \leftarrow 1$ to $n$\\
\verb|4
|do for $i \leftarrow 1$ to $n$\\
\verb|5
|do for $j \leftarrow 1$ to $n$\\
\verb|6
|$d^{(k)}_{ij} \leftarrow \min(d^{(k1)}_{ij},
d^{(k-1)}_{ik}+d^{(k-1)}_{kj})$\\
\verb|7 |return $D^{(n)}$
 à¨áã­ª¥ 26.4 ¯®ª § ­ ®à¨¥­â¨à®¢ ­­ë© à ä ¨ ¬ âà¨æë D(k),
¢ëç¨á«ï¥¬ë¥ í⨬ «£®à¨â¬®¬.
€«£®à¨â¬ ”«®©¤ -“®à讫« 0
3 8 1
B 1 0 1 1
B
0 1
D(0) = B
B 1 4
@ 2 1 ;5 0
0 1 1 1 6
0 3 8 1
B 1 0 1 1
B
D(1) = B
0 1
B 1 4
@ 2
5 ;5 0
1 1 1 6
0
0 3 8 4
B 1 0 1 1
B
0 5
D(2) = B
B 1 4
@ 2
5 ;5 0
0 1 1 1 6
0 3 8 4
B 1 0
1 1
B
1
4
0 5
D(3) = B
B
@ 2 ;1 ;5 0
1 1 1 6
0
0 3 ;1 4
B 3 0 ;4 1
B
0 5
D(4) = B
B 7 4
@ 2 ;1 ;5 0
1 6
0 8 5
0 1 ;3 2
B 3 0 ;4 1
B
D(5) = B
0 5
B 7 4
@ 2 ;1 ;5 0
8 5 1 6
0
531
;4
7
1
1
0
;4
7
1
;2
1
0
C
C
C
C
A
B
(0) = B
1
0
C
C
C
C
A
B
(1) = B
0 1
;4
7 C
C
11 C
C
;2 A
0 1
;4
7 C
C
11 C
C
;2 A
0 1
;4
;1 C
C
3 C
C
;2 A
0 1
;4
;1 C
C
3 C
C
;2 A
0
B
B
@
B
B
@
0
B
B
(2) = B
B
@
0
B
B
(3) = B
B
@
0
B
B
(4) = B
B
@
0
B
B
(5) = B
B
@
nil 1 1
nil nil nil
nil 3 nil
4 nil 4
nil nil nil
nil 1 1
nil nil nil
nil 3 nil
4
1
nil nil
nil 1
nil nil
nil 3
4
1
nil nil
nil 1
nil nil
nil 3
4
3
nil nil
nil 1
4 nil
4
4
4
3
3
3
nil 3
4 nil
4 3
4 3
4 3
1
2
nil
2
nil nil
nil nil
5 nil
nil 1
2
2
nil nil
4 nil
nil 5
1 2
nil 2
nil 2
4 nil
nil 5
1 2
nil 2
nil 2
4 nil
nil 5
4 2
4 2
nil 2
4 nil
4 5
4 5
4 2
nil 2
4 nil
4 5
1
nil
C
C
C
C
A
1
C
C
C
C
A
1
2
2
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
nil
nil
nil
nil
26.3 26.4 Œ âà¨æë (k ) ¨ D (k ) , ¢ëç¨á«ï¥¬ë¥ «£®à¨â¬®¬ ”«®©¤ {
“®à讫« ¤«ï £à ä à¨á. 26.1.
¨áã­®ª
1
C
C
C
C
A
C
C
C
C
A
C
C
C
C
A
C
C
C
C
A
532
ƒ« ¢ 26 Šà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設
€«£®à¨â¬ ”«®©¤ -“®à讫« ᮤ¥à¦¨â âਠ¢«®¦¥­­ëå 横« (áâப¨ 3{6); ¢à¥¬ï ¥£® à ¡®âë ¥áâì (n3 ). Š®­áâ ­â , áªàëâ ï ¢ ®¡®§­ 祭¨¨, ­¥¢¥«¨ª , ¯®áª®«ìªã «£®à¨â¬ ¯à®áâ ¨ ­¥ ¨á¯®«ì§ã¥â
á«®¦­ëå áâàãªâãà ¤ ­­ëå, â ª çâ® ®­ ¯à¨¬¥­¨¬ ¤«ï ¤®áâ â®ç­®
¡®«ìè¨å £à 䮢.
®áâ஥­¨¥ ªà âç ©è¨å ¯ã⥩
®¬¨¬® ¢¥á®¢ ªà âç ©è¨å ¯ã⥩, ­ á ¨­â¥à¥áãîâ ¨ á ¬¨ ¯ãâ¨.
Ž¤¨­ ¨§ ᯮᮡ®¢ ¨å ¯®áâ஥­¨ï â ª®¢: ¢ëç¨á«¨ë ¢ëç¨á«¥­¨¨ ¬ âà¨æã D ¨å ¢¥á®¢, ¬®¦­® § ⥬ ¯®áâநâì ¯® ­¥© ¬ âà¨æ㠯।è¥á⢮¢ ­¨ï § ¢à¥¬ï O(n3) ¢à¥¬¥­¨ (ã¯à. 26.1-5). ‡ ⥬ ¯à¨
¯®¬®é¨ ä㭪樨 Print-All-Pairs-Shortest-Path ¬®¦­® ­ ¯¥ç â âì ªà âç ©è¨© ¯ãâì ¤«ï «î¡®© ¯ àë ¢¥à設.
„à㣮© ᯮᮡ á®á⮨⠢ ⮬, çâ®¡ë ¢ëç¨á«ïâì ¬ âà¨æ㠯।è¥á⢮¢ ­¨ï ¯ à ««¥«ì­® á ¨á¯®«­¥­¨¥¬ «£®à¨â¬ ”«®©¤ {
“®à讫« . à¨ í⮬ ¬ë ¢ëç¨á«ï¥¬ ¯®á«¥¤®¢ ⥫쭮áâì ¬ âà¨æ
(0); (1); : : : ; (n), £¤¥ = (n) , ij(k) ®¯à¥¤¥«ï¥âáï ª ª ¢¥à設 ,
¯à¥¤è¥áâ¢ãîé ï ¢¥à設¥ j ­ ªà âç ©è¥¬ ¯ã⨠¨§ ¢¥à設ë
i ¢ ¢¥à設ã j á ¯à®¬¥¦ãâ®ç­ë¬¨ ¢¥à設 ¬¨ ¨§ ¬­®¦¥á⢠f1; 2; : : : ; kg.
 ¯¨è¥¬ ४ã७â­ãî ä®à¬ã«ã ¤«ï ij(k). …᫨ k = 0, â® ¯à®¬¥¦ãâ®ç­ëå ¢¥à設 ­¥â, ¯®í⮬ã
¥á«¨ i = j ¨«¨ wij = 1,
(0)
ij = nil
(26:6)
i ¥á«¨ i =
6 j ¨ wij < 1.
ãáâì ⥯¥àì k > 1. …᫨ ªà âç ©è¨© ¯ã⨠¨§ i ¢ j ¯à®å®¤¨â
ç¥à¥§ ¢¥à設ã k, â® ¯à¥¤¯®á«¥¤­¥© ¥£® ¢¥à設®© ¡ã¤¥â â ¦¥ á ¬ ï
¢¥à設 , ª®â®à ï ¡ã¤¥â ¯à¥¤¯®á«¥¤­¥© ­ ªà âç ©è¥¬ ¯ã⨠¨§ k ¢ j
á ¯à®¬¥¦ãâ®ç­ë¬¨ ¢¥à設 ¬¨ ¨§ ¬­®¦¥á⢠f1; 2; : : : ; k ; 1g. …᫨
¦¥ ¯ãâì ­¥ ¯à®å®¤¨â ç¥à¥§ k, â® ®­ ᮢ¯ ¤ ¥â á ªà âç ©è¨¬ ¯ã⥬
¨§ i ¢ j á ¯à®¬¥¦ãâ®ç­ë¬¨ ¢¥à設 ¬¨ ¨§ ¬­®¦¥á⢠f1; 2; : : : ; k ;
1g. ’ ª¨¬ ®¡à §®¬,
ij(k) =
(
ij(k;1) ¥á«¨ d(ijk;1) 6 d(ikk;1) + d(kjk;1),
kj(k;1) ¥á«¨ d(ijk;1) > d(ikk;1) + d(kjk;1).
(26:7)
‚ëç¨á«¥­¨ï ¯® í⨬ ä®à¬ã« ¬ «¥£ª® ¤®¡ ¢¨âì ª «£®à¨â¬ã
”«®©¤ {“®à讫« (ã¯à. 26.2-3).  à¨á. 26.4 ¯®ª § ­ ¯®á«¥¤®¢ ⥫쭮áâì ¬ âà¨æ (k), ¯®«ãç îé ïáï ¢ ¯à®æ¥áᥠ¢ëç¨á«¥­¨©. ‚
⮬ ¦¥ ã¯à ¦­¥­¨¨ ¯à¥¤« £ ¥âáï ¤®ª § âì, çâ® ¯®¤£à ä ¯à¥¤è¥á⢮¢ ­¨ï G;i ï¥âáï ¤¥à¥¢®¬ ªà âç ©è¨å ¯ã⥩ ¨§ ¢¥à設ë i.
„à㣮© ᯮᮡ ¯®áâ஥­¨ï ªà âç ©è¨å ¯ã⥩ 㪠§ ­ ¢ ã¯à. 26.2-6.
’à ­§¨â¨¢­®¥ § ¬ëª ­¨¥ ®à¨¥­â¨à®¢ ­­®£® £à ä ‡ ¤ ç ® âà ­§¨â¨¢­®¬ § ¬ëª ­¨¨ á®á⮨⠢ á«¥¤ãî饬. „ ­
®à¨¥­â¨à®¢ ­­ë© £à ä G = (V; E ) á ¢¥à設 ¬¨ 1; 2; : : : ; n. ’ॡã¥âáï ®¯à¥¤¥«¨âì ¤«ï «î¡®© ¯ àë ¥£® ¢¥à設 i; j 2 V , áãé¥áâ¢ã¥â
€«£®à¨â¬ ”«®©¤ -“®à讫« 533
«¨ ¢ £à ä¥ ¯ãâì ¨§ ¢¥à設ë i ¢ ¢¥à設ã j . ’à ­§¨â¨¢­ë¬ § ¬ëª ­¨¥¬ ®à¨¥­â¨à®¢ ­­®£® £à ä G ­ §ë¢ ¥âáï £à ä G = (V; E ),
£¤¥
E = f(i; j ) : ¢ £à ä¥ G áãé¥áâ¢ã¥â ¯ãâì ¨§ i ¢ j g:
’à ­§¨â¨¢­®¥ § ¬ëª ­¨¥ £à ä ¬®¦­® ¢ëç¨á«¨âì § ¢à¥¬ï (n3)
¯à¨ ¯®¬®é¨ «£®à¨â¬ ”«®©¤ {“®à讫« , áç¨â ï, çâ® ¢á¥ àñ¡à £à ä ¨¬¥îâ ¢¥á 1: ¥á«¨ áãé¥áâ¢ã¥â ¯ãâì ¨§ ¢¥à設ë i ¢ ¢¥à設ã
j , â® dij ¡ã¤¥â ¬¥­ì¥è n, ¢ ¯à®â¨¢­®¬ á«ãç ¥ dij = 1.
 ¯à ªâ¨ª¥ ¡®«¥¥ ¢ë£®¤­® (¢ á¬ëá«¥ ¢à¥¬¥­¨ ¨ ¯ ¬ïâ¨) ¯®«ì§®¢ âìáï ­¥áª®«ìª® ¤à㣨¬ ᯮᮡ®¬ ¢ëç¨á«¥­¨ï âà ­§¨â¨¢­®£® § ¬ëª ­¨ï § ¢à¥¬ï (n3). ‡ ¬¥­¨¬ ¢ «£®à¨â¬¥ ”«®©¤ {“®à讫« à¨ä¬¥â¨ç¥áª¨¥ ®¯¥à 樨 min ¨ + ­ «®£¨ç¥áª¨¥ ®¯¥à 樨 _ ¨ ^.
„à㣨¬¨ á«®¢ ¬¨, ¯®«®¦¨¬ t(ijk) à ¢­ë¬ 1, ¥á«¨ ¢ £à ä¥ G áãé¥áâ¢ã¥â ¯ãâì ¨§ i ¢ j á ¯à®¬¥¦ãâ®ç­ë¬¨ ¢¥à設 ¬¨ ¨§ ¬­®¦¥á⢠f1; 2; : : : ; kg, ¨ à ¢­ë¬ 0, ¥á«¨ â ª®£® ¯ã⨠­¥â. ¥¡à® (i; j ) ¯à¨­ ¤«¥¦¨â âà ­§¨â¨¢­®¬ã § ¬ëª ­¨î G ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ t(ijn) = 1. ® ­ «®£¨¨ á ä®à¬ã«®© (26.5) ­ ¯¨è¥¬ ᮮ⭮襭¨ï ¤«ï
t(ijk) :
i=
6 j ¨ (i; j ) 62 E ,
(0)
tij = 01 ¥á«¨
¥á«¨ i = j ¨«¨ (i; j ) 2 E ,
¨ (¯à¨ k > 1)
t(ijk) = t(ijk;1) _ (t(ikk;1) ^ t(kjk;1)):
(26:8)
Žá­®¢ ­­ë© ­ í⮬ ᮮ⭮襭¨¨ «£®à¨â¬ ¯®á«¥¤®¢ ⥫쭮 ¢ëç¨á«ï¥â ¬ âà¨æë T (k) = (t(ijk)) ¤«ï k = 1; 2; : : : ; n:
{\sc Transitive-Clusure}$(G)$\\
\verb|1 |$n \leftarrow |V[G]|$\\
\verb|2 |for $i\leftarrow 1$ to $n$\\
\verb|3
|do for $j\leftarrow 1$ to $n$\\
\verb|4
|do if $i=j$ or $(i,j)\in E[G]$\\
\verb|5
|then $t^{(0)}_{ij} \leftarrow 1$\\
\verb|6
|else $t^{(0)}_{ij} \leftarrow 0$\\
\verb|7 |for $k\leftarrow 1$ to $n$\\
\verb|8
|do for $i\leftarrow 1$ to $n$\\
\verb|9
|do for $j\leftarrow 1$ to $n$\\
\verb|10
|do $t^{(k)}_{ij}\leftarrow t^{(k1)}_{ij}\vee
(t^{(k-1)}_{ik}\wedge t^{(k-1)}_{kj})$\\
\verb|11 |return $T^{(n)}$
 à¨á. 26.5 ¯à¨¢¥¤ñ­ ¯à¨¬¥à £à ä ¨ ¬ âà¨æ T (k), ¢ëç¨á«¥­­ëå
¯à®æ¥¤ãன Transitive-Clusure.
‚६ï à ¡®âë ¯à®æ¥¤ãàë Transitive-Clusure á®áâ ¢«ï¥â
(n3 ), ª ª ¨ ã «£®à¨â¬ ”«®©¤ {“®à讫« . Ž¤­ ª® ­ ¬­®£¨å
534
ƒ« ¢ 26 Šà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設
0
B
T (0) = B
@
0
B
T (3) = B
@
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
C
C
A
T (1) = B
@
1
0
C
C
A
T (4) = B
@
B
B
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
C
C
A
T (2) = B
@
1
B
1
0
0
1
0
1
1
0
C
C
A
¨áã­®ª 26.4 26.5 Žà¨¥­â¨à®¢ ­­ë© £à ä ¨ ¬ âà¨æë T (k) , ¢ëç¨á«¥­­ë¥ «£®à¨â¬®¬ ¯®áâ஥­¨ï âà ­§¨â¨¢­®£® § ¬ëª ­¨ï.
ª®¬¯ìîâ¥à å «®£¨ç¥áª¨¥ ®¯¥à 樨 ¢ë¯®«­ïîâáï ¡ëáâ॥, 祬
à¨ä¬¥â¨ç¥áª¨¥ ®¯¥à 樨 á 楫묨 ç¨á« ¬¨, ¯®í⮬㠯à®æ¥¤ãà Transitive-Clusure íä䥪⨢­¥¥ «£®à¨â¬ ”«®©¤ -“®à讫« .
Šà®¬¥ ⮣®, ¨á¯®«ì§®¢ ­¨¥ ¡ã«¥¢áª¨å ¯¥à¥¬¥­­ëå ¢¬¥á⮠楫ëå
᮪à é ¥â ®¡êñ¬ ¨á¯®«ì§ã¥¬®© ¯ ¬ïâ¨.
‚ à §¤¥«¥ 26.4 ¬ë 㢨¤¨¬, çâ® ­ «®£¨ï ¬¥¦¤ã «£®à¨â¬ ¬¨
”«®©¤ {“®à讫« ¨ ¯®áâ஥­¨¥¬ âà ­§¨â¨¢­®£® § ¬ëª ­¨ï ­¥
á«ãç ©­ : ®¡ «£®à¨â¬ ®á­®¢ ­ë ­ «£¥¡à ¨ç¥áª®© áâàãªâãà¥,
­ §ë¢ ¥¬®© "§ ¬ª­ã⮥ ¯®«ãª®«ìæ®".
“¯à ¦­¥­¨ï
26.2-1 ˆá¯®«­¨â¥ «£®à¨â¬ ”«®©¤ -“®à讫« ¤«ï ¢§¢¥è¥­­®£®
®à¨¥­â¨à®¢ ­­®£® £à ä à¨á. 26.2, ­ ©¤ï ¢á¥ ¬ âà¨æë D(k).
26.2-2 ‚ ¯à¨¢¥¤ñ­­®¬ ­ ¬¨ ¢¨¤¥ «£®à¨â¬ ”«®©¤ -“®à讫« âॡã¥â (n3) ¯ ¬ï⨠¤«ï åà ­¥­¨ï ¬ âà¨æ D(k) = (d(ijk)). Š®­¥ç­®,
¬®¦­® áíª®­®¬¨âì ¬¥áâ®, ¥á«¨ åà ­¨âì ⮫쪮 ¤¢¥ á®á¥¤­¨¥ ¬ âà¨æë. Žª §ë¢ ¥âáï, ¬®¦­® ¯®©â¨ ¥éñ ¤ «ìè¥: ¤®ª §¨â¥, çâ® ¥á«¨
¢ ¯à®æ¥¤ãॠFloyd-Warshall ã¡à âì ¢¥àå­¨¥ ¨­¤¥ªáë, â® ®­ ¯®¯à¥¦­¥¬ã ¡ã¤¥â ¢ëç¨á«ïâì ¢¥á ªà âç ©è¨å ¯ã⥩.
{\sc Floyd-Warshall'}$(W)$\\
\verb|1 |$n \leftarrow rows[W]$\\
\verb|2 |$D \leftarrow W$\\
\verb|3 |for $k \leftarrow 1$ to $n$\\
\verb|4
|do for $i \leftarrow 1$ to $n$\\
\verb|5
|do for $j \leftarrow 1$ to $n$\\
\verb|6
|$d_{ij} \leftarrow \min(d_{ij},
d_{ik}+d_{kj})$\\
\verb|7 |return $D$
’¥¬ á ¬ë¬ ¬ë ᮪à ⨫¨ ®¡êñ¬ âॡ㥬®© ¯ ¬ï⨠¤® (n2).
26.2-3 „®¡ ¢ì⥠¢ ¯à®æ¥¤ãàã Floyd-Warshall ¢ëç¨á«¥­¨¥ ¬ âà¨æ ¯à¥¤è¥á⢮¢ ­¨ï (k) ¯® ä®à¬ã« ¬ (26.6) ¨ (26.7). „®ª ¦¨â¥,
çâ® ¤«ï «î¡®© ¢¥à設ë i 2 V ¯®¤£à ä ¯à¥¤è¥á⢮¢ ­¨ï G;i ï¥âáï ¤¥à¥¢®¬ ªà âç ©è¨å ¯ã⥩ ¨§ ¢¥à設ë i.
26.2-4 ã¤¥â «¨ ¯à ¢¨«ì­® ¢ëç¨á«¥­ ¬ âà¨æ ¯à¥¤è¥á⢮¢ ­¨ï
0
1
1
1
0
1
1
1
1
C
C
A
€«£®à¨â¬ ”«®©¤ -“®à讫« 535
, ¥á«¨ ¨§¬¥­¨âì ä®à¬ã«ã (26.7) â ª:
(
ij(k;1) ¥á«¨ d(ijk;1) < d(ikk;1) + d(kjk;1),
kj(k;1) ¥á«¨ d(ijk;1) > d(ikk;1) + d(kjk;1).
26.2-5 Š ª ¬®¦­® ¨á¯®«ì§®¢ âì १ã«ìâ â à ¡®âë «£®à¨â¬
”«®©¤ {“®à讫« , ç⮡ë 㧭 âì, ¥áâì «¨ ¢ £à ä¥ æ¨ª« ®âà¨æ ⥫쭮£® ¢¥á ?
26.2-6 …é¥ ®¤¨­ ᯮᮡ ¯®áâ஥­¨ï ªà âç ©è¨å ¯ã⥩ ¢ «£®à¨â¬¥ ”«®©¤ -“®à讫« â ª®¢. ãáâì '(ijk) (i; j; k = 1; 2; : : : ; n)
¥áâì ¯à®¬¥¦ãâ®ç­ ï ¢¥à設 á ¬ ªá¨¬ «ì­ë¬ ­®¬¥à®¬ ­ ªà âç ©è¥¬ ¯ã⨠¨§ i ¢ j á ¯à®¬¥¦ãâ®ç­ë¬¨ ¢¥à設 ¬¨ ¨§ ¬­®¦¥á⢠f1; 2; : : : ; kg.  ¯¨è¨â¥ ४ã७⭮¥ ᮮ⭮襭¨¥ ¤«ï '(ijk) ¨ ¤®¯®­¨â¥ ¯à®æ¥¤ãàã Floyd-Warshall ¢ëç¨á«¥­¨¥¬ §­ 祭¨© '(ijk).
 ª®­¥æ, ¨§¬¥­¨â¥ äã­ªæ¨î Print-All-Pairs-ShortestPaths
â ª, çâ®¡ë ¢å®¤®¬ ¤«ï ­¥ñ á«ã¦¨« ¬ âà¨æ = ('(ijn)). Ž¡êïá­¨â¥
­ «®£¨î ¬¥¦¤ã ¬ âà¨æ¥© ¨ â ¡«¨æ¥© s ¢ § ¤ ç¨ ®¡ ®¯â¨¬ «ì­®©
à ááâ ­®¢ª¥ ᪮¡®ª ¢ ¯à®¨§¢¥¤¥­¨¨ ¬ âà¨æ (à §¤¥« 16.1).
26.2-7 à¨¤ã¬ ©â¥ «£®à¨â¬ ¢ëç¨á«¥­¨ï âà ­§¨â¨¢­®£® § ¬ëª ­¨ï ®à¨¥­â¨à®¢ ­­®£® £à ä G = (V; E ) á ¢à¥¬¥­¥¬ à ¡®âë O(V E ).
26.2-8 à¥¤¯®«®¦¨¬, çâ® âà ­§¨â¨¢­®¥ § ¬ëª ­¨¥ ®à¨¥­â¨à®¢ ­­®£® 横«¨ç¥áª®£® £à ä ¬®¦¥â ¡ëâì ¯®áâ஥­® § ¢à¥¬ï f (V; E ),
£¤¥ f (V; E ) = (V + E ) ¨ f | ¬®­®â®­­® ¢®§à áâ îé ï äã­ªæ¨ï.
®ª ¦¨â¥, ç⮠⮣¤ âà ­§¨â¨¢­®¥ § ¬ëª ­¨¥ ¯à®¨§¢®«ì­®£® ®à¨¥­â¨à®¢ ­­®£® £à ä ¬®¦¥â ¡ëâì ¯®áâ஥­® § ¢à¥¬ï O(f (V; E )).
€«£®à¨â¬ „¦®­á®­ ¤«ï à §à¥¦¥­­ëå £à 䮢
€«£®à¨â¬ „¦®­á®­ ­ 室¨â ªà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設 § ¢à¥¬ï O(V 2 lg V + V E ), ¨ ¯®í⮬㠤«ï ¤®áâ â®ç­® à §à¥¦¥­­ëå £à 䮢 íä䥪⨢­¥¥ ¯®¢â®à­®£® ¢®§¢¥¤¥­¨ï ¢ ª¢ ¤à â ¬ âà¨æë
ᬥ¦­®á⨠£à ä ¨ «£®à¨â¬ ”«®©¤ -“®à讫« .
€«£®à¨â¬ „¦®­á®­ «¨¡® ¢®§¢à é ¥â ¬ âà¨æã ¢¥á®¢ ªà âç ©è¨å ¯ã⥩, «¨¡® á®®¡é ¥â, çâ® ¢ £à ä¥ ¨¬¥¥âáï 横« ®âà¨æ ⥫쭮£® ¢¥á . â®â «£®à¨â¬ ᮤ¥à¦¨â ¢ë§®¢ë ®¯¨á ­­ëå ¢ £« ¢¥ 25
«£®à¨â¬®¢ „¥©ªáâàë ¨ ¥««¬ ­ -”®à¤ .
€«£®à¨â¬ „¦®­á®­ ®á­®¢ ­ ­ ¨¤¥¥ ¨§¬¥­¥­¨ï ¢¥á®¢
(reweighting). …᫨ ¢¥á ¢á¥å àñ¡¥à £à ä ­¥®âà¨æ ⥫ì­ë, â®
¬®¦­® ­ ©â¨ ªà âç ©è¨¥ ¯ã⨠¬¥¦¤ã ¢á¥¬¨ ¯ à ¬¨ ¢¥à設,
¯à¨¬¥­¨¢ «£®à¨â¬ „¥©ªáâàë ª ª ¦¤®© ¢¥à設¥. ˆá¯®«ì§ãï 䨡®­ ç稥¢ë ªãç¨, ¬ë ¬®¦¥¬ ᤥ« âì íâ® § ¢à¥¬ï O(V 2 lg V + V E ).
…᫨ ¦¥ ¢ £à ä¥ ¨¬¥îâáï ॡà á ®âà¨æ ⥫ì­ë¬ ¢¥á®¬, â® ¬®¦­®
¯®¯ëâ âìáï ᢥá⨠§ ¤ çã ª á«ãç î ­¥®âà¨æ ⥫ì­ëå ¢¥á®¢, ¨§¬¥­¨¢ ¢¥á®¢ãî äã­ªæ¨î. à¨ í⮬ ¤®«¦­ë ¢ë¯®«­ïâìáï â ª¨¥
᢮©á⢠:
1. Šà âç ©è¨¥ ¯ã⨠­¥ ¨§¬¥­¨«¨áì: ¤«ï «î¡®© ¯ àë ¢¥à設 u; v 2
V , ªà âç ©è¨© ¯ãâì ¨§ u ¢ v á â®çª¨ §à¥­¨ï ¢¥á®¢®© ä㭪樥© w
ij(k) =
536
ƒ« ¢ 26 Šà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設
ï¥âáï â ª¦¥ ªà âç ©è¨¬ ¯ãâñ¬ á â®çª¨ §à¥­¨ï w^ ¨ ­ ®¡®à®â.
2. ‚ᥠ­®¢ë¥ ¢¥á w^(u; v ) ­¥®âà¨æ ⥫ì­ë.
Š ª ¬ë 㢨¤¨¬, ­®¢ ï ¢¥á®¢ ï äã­ªæ¨ï w^ á â ª¨¬¨ ᢮©á⢠¬¨
¬®¦¥â ¡ëâì ¯®áâ஥­ § ¢à¥¬ï O(V E ).
Šà âç ©è¨¥ ¯ã⨠á®åà ­ïîâáï
‘«¥¤ãîé ï «¥¬¬ 㪠§ë¢ ¥â ¯à®á⮩ ®¡é¨© ᯮᮡ ¨§¬¥­¨âì ¢¥á®¢ãî äã­ªæ¨î, ­¥ ¬¥­ïï ªà âç ©è¨å ¯ã⥩. ‚ ¥ñ ä®à¬ã«¨à®¢ª¥
¤«¨­ë ªà âç ©è¨å ¯ã⥩ á ¢¥á®¢ë¬¨ äã­ªæ¨ï¬¨ w ¨ w^ ®¡®§­ ç îâáï ç¥à¥§ ¨ ^ ᮮ⢥âá⢥­­®.
‹¥¬¬ 26.1 (ˆ§¬¥­¥­¨¥ ¢¥á®¢ ­¥ ¬¥­ï¥â ªà âç ©è¨å ¯ã⥩)
ãáâì G = (V; E ) | ¢§¢¥è¥­­ë© ®à¨¥­â¨à®¢ ­­ë© £à ä á ¢¥á®¢®© ä㭪樥© w : E ! . ãáâì h : V ! | ¯à®¨§¢®«ì­ ï
äã­ªæ¨ï á ¢¥é¥á⢥­­ë¬¨ §­ 祭¨ï¬¨, ®¯à¥¤¥«ñ­­ ï ­ ¢¥à設 å
£à ä .  áᬮâਬ ­®¢ãî ¢¥á®¢ãî äã­ªæ¨î
w^ (u; v ) = w(u; v) + h(u) ; h(v):
(26:9)
’®£¤ (a) ¯à®¨§¢®«ì­ë© ¯ãâì p = hv0; v1; : : : ; vk i ï¥âáï ªà âç ©è¨¬ ®â­®á¨â¥«ì­® w ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ ®­ ¡ã¤¥ââ
ªà âç ©è¨¬ ®â­®á¨â¥«ì­® w^; (b) £à ä G ᮤ¥à¦¨â 横« á ®âà¨æ ⥫ì­ë¬ w-¢¥á®¬ ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ ®­ ᮤ¥à¦¨â 横« á
®âà¨æ ⥫ì­ë¬ w^-¢¥á®¬.
„®ª § ⥫ìá⢮. Ž¡ ã⢥ত¥­¨ï «¥¬¬ë á«¥¤ãîâ ¨§ à ¢¥­á⢠w^ (p) = w(p) + h(v0) ; h(vk ):
(26:10)
‚ á ¬®¬ ¤¥«¥, ¨§ ­¥£® á«¥¤ã¥â, çâ® ¤«ï ¯ã⥩ á 䨪á¨à®¢ ­­ë¬¨
­ ç «®¬ ¨ ª®­æ®¬ à §­¨æ ¬¥¦¤ã áâ àë¬ ¨ ­®¢ë¬ ¢¥á®¬ ¯®áâ®ï­­ (⥬ á ¬ë¬ ®¤¨­ ¨ â®â ¦¥ ¯ãâì ¡ã¤¥â ªà âç ©è¨¬). Šà®¬¥ ⮣®,
¢¨¤­®, çâ® ¤«ï 横«®¢ á㬬 à­ë© ¢¥á ¢ áâ ஬ ¨ ­®¢®¬ á¬ëá«¥
®¤¨­ ª®¢, â ª ª ª à §­¨æ h(v0) ; h(vk ) ®¡à é ¥âáï ¢ 0.
 ¢¥­á⢮ (26.10) ¯à®¢¥à¨âì «¥£ª®. „«ï ª ¦¤®£® à¥¡à ¯ãâ¨
¨¬¥¥¬
w^(vi ; vi+1) = w(vi; vi+1) + h(vi) ; h(vi+1 ):
…᫨ ¬ë ⥯¥àì á«®¦¨¬ íâ¨ à ¢¥­á⢠¤«ï ¢á¥å àñ¡¥à, â® ¯à®¬¥¦ãâ®ç­ë¥ ç«¥­ë ᮪à âïâáï, ¨ ¯®«ãç¨âáï à ¢¥­á⢮ (26.10).
Š ª ¯®«ãç¨âì ­¥®âà¨æ ⥫ì­ë¥ ¢¥á ?
’¥¯¥àì ­ ¤® ¯®¤®¡à âì äã­ªæ¨î h â ª, çâ® ¡ë ¨§¬¥­ñ­­ë¥ ¢¥á w^(u; v ) ¡ë«¨ ­¥®âà¨æ ⥫ì­ë. â® ¬®¦­® ᤥ« âì á«¥¤ãî騬 ®¡à §®¬. ® ¤ ­­®¬ã ®à¨¥­â¨à®¢ ­­®¬ã ¢§¢¥è¥­­®¬ã £à äã G = (V; E )
á ¢¥á®¢®© ä㭪樥© w ¯®áâந¬ ­®¢ë© £à ä G0 = (V 0; E 0) á ®¤­®© ¤®¯®«­¨â¥«ì­®© ¢¥à設®© s (¤à㣨¬¨ á«®¢ ¬¨, V 0 = V [ fsg),
¨§ ª®â®à®© ¨¤ãâ àñ¡à ­ã«¥¢®£® ¢¥á ¢® ¢á¥ ¢¥àè¨­ë £à ä V
(E 0 = E [ f(s; v ) : v 2 V g ¨ w(s; v ) = 0 ¤«ï ¢á¥å v 2 V ). ‡ ¬¥â¨¬, çâ® ¢¥à設 s ¬®¦¥â ¡ëâì «¨èì ­ ç «ì­®© ¢¥à設®© ¢ ¯ãâ¨
(¢å®¤ïé¨å ¢ s àñ¡¥à ­¥â). Žç¥¢¨¤­®, çâ® ­®¢ë© £à ä G0 ᮤ¥à¦¨â
R
R
€«£®à¨â¬ ”«®©¤ -“®à讫« 537
横« ®âà¨æ ⥫쭮£® ¢¥á ⮣¤ ¨ ⮫쪮 ⮣¤ , â ª®© 横« ¥áâì ¢
¨á室­®¬ £à ä¥ G.
 à¨á. 26.6 (a) ¯®ª § ­ £à ä G0, ᮮ⢥âáâ¢ãî騩 £à äã G
à¨á. 26.1.
à¥¤¯®«®¦¨¬ ⥯¥àì, çâ® £à ä G ( ¯®â®¬ã ¨ G0) ­¥ ᮤ¥à¦¨â
横« ®âà¨æ ⥫쭮£® ¢¥á . ®«®¦¨¬ h(v) = (s; v) ¤«ï 8v 2 V 0.
‘®£« á­® «¥¬¬¥ 25.3, ¤«ï ¢á¥å àñ¡¥à (u; v) 2 E 0 ¢ë¯®«­¥­® ­¥à ¢¥­á⢮ h(v) 6 h(u) + w(u; v), ª®â®à®¥ ¬®¦­® ¯¥à¥¯¨á âì ª ª
w(u; v) + h(u) ; h(v ) > 0. „à㣨¬¨ á«®¢ ¬¨, ­®¢ ï ¢¥á®¢ ï äã­ªæ¨ï, ®¯à¥¤¥«ñ­­ ï ä®à¬ã«®© (26.9), ­¥®âà¨æ â¥«ì­ .  à¨á. 26.6(b)
¯®ª § ­ë ­®¢ë¥ ¢¥á àñ¡¥à £à ä G0 à¨á. 26.6(a).
‚ëç¨á«¥­¨¥ ªà âç ©è¨å ¯ã⥩
Š ª ¬ë ¢¨¤¨¬, ®âë᪠­¨¥ ªà âç ©è¨å ¯ã⥩ ¤«ï ¯à®¨§¢®«ì­®£®
£à ä ¡¥§ 横«®¢ ®âà¨æ ⥫쭮£® ¢¥á ¬®¦­® ᤥ« âì ¢ ¤¢ ¯à¨ñ¬ :
á­ ç « ¬ë ¨é¥¬ ªà âç ©è¨¥ ¯ã⨠¨§ ®¤­®© ¢¥à設ë s (¤«ï 祣®
£®¤¨âáï «£®à¨â¬ ¥««¬ ­ {”®à¤ ), ¯®á«¥ í⮣® ¨§¬¥­ï¥¬ ¢¥á ¨
¯®«ãç ¥¬ £à ä á ­¥®âà¨æ ⥫ì­ë¬¨ ¢¥á ¬¨, ¢ ª®â®à®¬ ¨é¥¬ ªà âç ©è¨¥ ¯ãâ¨ á ¯®¬®éìî «£®à¨â¬ „¥©ªáâàë, ¯à¨¬¥­ñ­­®£® ¯®á«¥¤®¢ ⥫쭮 ª® ¢á¥¬ ¢¥à設 ¬.
‡ ¯¨è¥¬ ᮮ⢥âáâ¢ãîéãî ¯à®æ¥¤ãàã. Œë áç¨â ¥¬, çâ® £à ä
§ ¤ ­ á ¯®¬®éìî ᯨ᪮¢ ᬥ¦­ëå ¢¥à設. à®æ¥¤ãà ¢®§¢à é ¥â
¬ âà¨æã D = (dij ) à §¬¥à jV j jV j, £¤¥ dij = ij , ¨«¨ ¦¥ á®®¡é ¥â ® ­ «¨ç¨¨ ¢ £à ä¥ æ¨ª«®¢ á ®âà¨æ ⥫ì­ë¬¨ ¢¥á ¬¨. (Œë
¯à¥¤¯®« £ ¥¬, çâ® ¢¥àè¨­ë £à ä G ¯à®­ã¬¥à®¢ ­ë ®â 1 ¤® jV j.)
{\sc Johnson}$(G)$\\
\verb|1 |ᮧ¤ âì £à ä $G'$, ¤«ï ª®â®à®£® $V[G']=V[G]\cup\{s\}$ ¨\\
\verb|
|$E[G']=E[G]\cup\{(s,v):\ v\in V[G]\}$\\
\verb|2 |if {\sc Bellmann-Ford}$(G',w,s)=${\sc false}\\
\verb|3
|then print ``¨¬¥¥âáï 横« ®âà¨æ ⥫쭮£® ¢¥á ''\\
\verb|4
|else for (¤«ï) ª ¦¤®© ¢¥à設ë $v\in V[G']$\\
\verb|5
|do $h(v)\leftarrow\delta(s,v)$,\\
\verb|
|(§­ 祭¨¥ $\delta(s,v)$ ¢ëç¨-
á«¥­® «£®à¨â¬®¬
\verb|6
\verb|7
h(v)$\\
\verb|8
\verb|9
\verb|
¥««¬ ­ --”®à¤ )\\
|for (¤«ï) ª ¦¤®£® ॡà $(u,v)\in E[G']$\\
|do $\hat w(u,v)\leftarrow w(u,v)+h(u)|for (¤«ï) ª ¦¤®© ¢¥à設ë $u\in V[G]$\\
|do {\sc Dijkstra}$(G,\hat w,u)$\\
|(¢ëç¨á«¥­¨¥ $\hat\delta(u,v)$
¤«ï ¢á¥å $v\in V[G])$\\
|for (¤«ï) ª ¦¤®© ¢¥à設ë $v\in V[G]$\\
|do $d_{uv}\leftarrow\hat\delta(u,v)+h(v)-
\verb|10
\verb|11
h(u)$\\
\verb|12 |return $D$
538
ƒ« ¢ 26 Šà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設
¨áã­®ª 26.5 26.6 €«£®à¨â¬ „¦®­á®­ ¢ ¯à¨¬¥­¥­¨¨ ª £à äã à¨á. 26.1. (a)
ƒà ä G0 á ¨á室­®© ¢¥á®¢®© ä㭪権 w. ‚ᯮ¬®£ â¥«ì­ ï ¢¥à設 s | çñà­ ï.
‚­ãâਠª ¦¤®© ¢¥à設ë v § ¯¨á ­® §­ 祭¨¥ h(v) = (s; v). (b) Š ¦¤®¬ã ॡàã
(u; v) ¯à¨¯¨á ­ ­®¢ë© ¢¥á w^ (u; v) = w(u; v) + h(u) ; h(v). (c){(g) ¥§ã«ìâ âë
à ¡®âë «£®à¨â¬ „¥©ªáâàë ¤«ï ¢á¥å ¢¥à設 £à ä G á ¢¥á®¢®© äã­ªæ¨tq w^ . ‚
ª ¦¤®¬ á«ãç ¥ ­ ç «ì­ ï ¢¥à設 ¢ë¤¥«¥­ çñà­ë¬. ‚­ãâਠª ¦¤®© ¢¥à設ë
§ ¯¨á ­ë ¢¥«¨ç¨­ë ^(u; v)=(u; v). ‚¥á ªà âç ©è¥£® ¯ã⨠duv = (u; v) à ¢¥­
^(u; v) + h(v) ; h(u).
â ¯à®æ¥¤ãà á«¥¤ã¥â ®¯¨á ­­®© á奬¥. ‚ áâப¥ 1 ä®à¬¨àã¥âáï
£à ä G0, § ⥬ ¢ áâப¥ 2 ª ­¥¬ã ¯à¨¬¥­ï¥âáï «£®à¨â¬ ¥««¬ ­ ”®à¤ (¯à¨ í⮬ ¨á¯®«ì§ã¥âáï ¢¥á®¢ ï äã­ªæ¨ï w). …᫨ ¢ G0 ( §­ ç¨â, ¨ ¢ G) ¥áâì 横« ®âà¨æ ⥫쭮£® ¢¥á , â® ®¡ í⮬ á®®¡é ¥âáï ¢ áâப¥ 3. ‘âப¨ 4{11 ¢ë¯®«­ïîâáï, ¥á«¨ ¢ £à ä¥ â ª®£®
横« ­¥â. ‚ áâப å 4{5 ¢ëç¨á«ïîâáï §­ 祭¨ï ä㭪樨 h(v) ¤«ï
¢á¥å ¢¥à設 v 2 V 0 (¢¥á ªà âç ©è¨å ¯ã⥩ (s; v), ­ ©¤¥­­ë¥ «£®à¨â¬®¬ ¥««¬ ­ -”®à¤ ). ‚ áâப å 6{7 ¢ëç¨á«ïîâáï ­®¢ë¥ ¢¥á àñ¡¥à. ‚ áâப å 8{11 ¤«ï ª ¦¤®© ¢¥à設ë u 2 V [G] ¢ë§ë¢ ¥âáï
«£®à¨â¬ „¥©ªáâàë ¨ ®¯à¥¤¥«ïîâáï ¢¥á ªà âç ©è¨å ¯ã⥩ ^(u; v)
¨§ í⮩ ¢¥à設ë, § ⥬ ®­¨ ¯¥à¥áç¨âë¢ îâáï ¢ (u; v) ¯® ä®à¬ã«¥
(26.10), ¨ ®â¢¥â ¯®¬¥é ¥âáï ¢ ¬ áᨢ¥ D.
 à¨á. 26.6 ¯®ª § ­ ¯à¨¬¥à ¢ë¯®«­¥­¨ï «£®à¨â¬ „¦®­á®­ .
¥âà㤭® ¯®¤áç¨â âì, çâ® ¢à¥¬ï à ¡®âë «£®à¨â¬ „¦®­á®­ á®áâ ¢¨â O(V 2 lg V +V E ), ¥á«¨â ¨á¯®«ì§®¢ âì 䨡®­ ç稥¢ã ªãç¨ ¤«ï
åà ­¥­¨ï ®ç¥à¥¤¨ á ¯à¨®à¨â¥â ¬¨ ¢ ¢ «£®à¨â¬¥ „¥©ªáâàë. à¨ ¡®«¥¥ ¯à®á⮩ ॠ«¨§ 樨 ®ç¥à¥¤¨ ¢ ¢¨¤¥ ¤¢®¨ç­®© ªãç¨ ®¡é¥¥ ¢à¥¬ï
à ¡®âë á®áâ ¢¨â O(V E lg V ), çâ® ¬¥­ìè¥, 祬 ®æ¥­ª O(V 3) ¤«ï
«£®à¨â¬ ”«®©¤ -“®à讫« , ¥á«¨ ⮫쪮 £à ä ¤®áâ â®ç­® à §à¥¦¥­.
“¯à ¦­¥­¨ï
26.3-1 à¨¬¥­¨â¥ «£®à¨â¬ „¦®­á®­ ª £à äã à¨á. 26.2, ­ ©¤ï
§­ 祭¨ï h ¨ w^.
26.3-2 Š ª¨¬ ®¡à §®¬ ¨á¯®«ì§ã¥âáï ¢á¯®¬®£ â¥«ì­ ï ¢¥à設 ¢
¢ «£®à¨â¬¥ „¦®­á®­ ?
26.3-3 à¨¬¥­¨¬ «£®à¨â¬ „¦®­á®­ ª £à äã, ¢ ª®â®à®¬ ¨á室­ ï
¢¥á®¢ ï äã­ªæ¨ï á ¬ ­¥®âà¨æ â¥«ì­ . —â® ¬®¦­® ᪠§ âì ® ­®¢®©
¢¥á®¢®© ä㭪樨 ¢ í⮬ á«ãç ¥?
26.4* ‡ ¬ª­ãâë¥ ¯®«ãª®«ìæ : ®¡é ï á奬 ¤«ï § ¤ ç ® ¯ãâïå
‚ í⮬ à §¤¥«¥ ¬ë ¢¢¥¤ñ¬ ¯®­ïâ¨ï § ¬ª­ã⮣® ¯®«ãª®«ìæ ¨ ¤ ¤¨¬ ®¡éãî á奬ã à¥è¥­¨ï § ¤ ç ® ¯ãâïå ¢ ®à¨¥­â¨à®¢ ­­ëå £à ä å. à¨ í⮬ «£®à¨â¬ ”«®©¤ {“®à讫« ¨ «£®à¨â¬ ¯®áâ஥­¨ï âà ­§¨â¨¢­®£® § ¬ëª ­¨ï £à ä ®ª ¦ãâáï ç áâ­ë¬¨ á«ãç ﬨ
í⮩ ®¡é¥© á奬ë.
Ž¯à¥¤¥«¥­¨¥ § ¬ª­ã⮣® ¯®«ãª®«ìæ ‡ ¬ª­ãâë¬ ¯®«ãª®«ì殬 (S; ; ; 0; 1) (¯®- ­£«¨©áª¨ closed
semiring) ­ §ë¢ ¥âáï ¬­®¦¥á⢮ S á ®¯à¥¤¥«ñ­­ë¬¨ ­ ­¥¬ ¡¨-
€«£®à¨â¬ ”«®©¤ -“®à讫« 539
­ à­ë¬¨ ®¯¥à æ¨ï¬¨ á«®¦¥­¨ï ¨ 㬭®¦¥­¨ï (¢ ­£«¨©áª®¬
®à¨£¨­ «¥ ¨á¯®«ì§ãîâáï â¥à¬¨­ë summary ¨ extension), â ª¦¥
í«¥¬¥­â ¬¨ 0; 1 2 S , ¤«ï ª®â®à®£® ¢ë¯®«­¥­ë â ª¨¥ ᢮©á⢠:
1. (S; ; 0) ï¥âáï ¬®­®¨¤®¬ (monoid):
S § ¬ª­ãâ® (is closed) ®â­®á¨â¥«ì­® , â® ¥áâì a b 2 S ¤«ï ¢á¥å
a; b 2 S ;
®¯¥à æ¨ï áá®æ¨ ⨢­ (is associative): a (b c) = (a b) c
¤«ï ¢á¥å a; b; c 2 S ;
0 | ­¥©âà «ì­ë© í«¥¬¥­â (is an identity) ¤«ï , â® ¥áâì a 0 =
0 a = a ¤«ï ¢á¥å a 2 S ;
(S; ; 1) â ª¦¥ ï¥âáï ¬®­®¨¤®¬;
2. «¥¬¥­â 0 | ­­ã«ïâ®à (annihilator): a 0 = 0 a = 0 ¤«ï
¢á¥å a 2 S ;
3. Ž¯¥à æ¨ï ª®¬¬ãâ ⨢­ (is commutative): a b = b a ¤«ï
¢á¥å a; b 2 S .
4. Ž¯¥à æ¨ï ¨¤¥¬¯®â¥­â­ (is idempotent): a a = a;
5. Ž¯¥à æ¨ï ¤¨áâਡã⨢­ ®â­®á¨â¥«ì­® (distributes over
): a (b c) = (a b) (a c) ¨ (b c) a = (b a) (c a) ¤«ï
¢á¥å a; b; c.
6. Œ®¦­® ¯à®¤®«¦¨âì ®¯¥à æ¨î ­ ¡¥áª®­¥ç­ë¥ ¯®á«¥¤®¢ ⥫쭮áâ¨, § ¤ ç ¤«ï «î¡®© ¯®á«¥¤®¢ ⥫쭮á⨠a1; a2; a3; : : : í«¥¬¥­â®¢ S ¥ñ á㬬ã a1 a2 a3 2 S . à¨ í⮬ ­ã«¨ (í«¥¬¥­âë
0) ¢ ¡¥áª®­¥ç­®© á㬬¥ ¬®¦­® ¢ëª¨¤ë¢ âì; ¥á«¨ ¯à¨ í⮬ ®­ ¯à¥¢à é ¥âáï ª®­¥ç­ãî, â® ¤®«¦­ ᮢ¯ ¤ âì á á㬬®© ¢ ¯à¥¦­¥¬
á¬ëá«¥.
7. Ž¯¥à æ¨ï ¡¥áª®­¥ç­®£® á㬬¨à®¢ ­¨ï ®¡« ¤ ¥â ᢮©á⢠¬¨ áá®æ¨ ⨢­®áâ¨, ª®¬¬ãâ ⨢­®á⨠¨ ¨¤¥¬¯®â¥­â­®áâ¨. (’¥¬ á ¬ë¬,
¢ «î¡®© ¡¥áª®­¥ç­®© á㬬¥ ¬®¦­® ¯à®¨§¢®«ì­® ¬¥­ïâì ¯®à冷ª á« £ ¥¬ëå ¨ 㤠«ïâì ¯®¢â®àïî騥áï í«¥¬¥­âë, ¡¥§ ¨§¬¥­¥­¨ï १ã«ìâ â .)
8. Ž¯¥à æ¨ï ¤¨áâਡã⨢­ ®â­®á¨â¥«ì­® ¡¥áª®­¥ç­ëå á㬬:
a (b1 b2 b3 : : : ) = (a b1) (a b2) (a b3) : : : ¨ (a1 a2 a3 ) b = (a1 b) (a2 b) (a3 b) .
ˆáç¨á«¥­¨¥ ¯ã⥩ ¢ ®à¨¥­â¨à®¢ ­­ëå £à ä å
‡ ¬ª­ãâë¥ ¯®«ãª®«ìæ , ­¥á¬®âàï ­ áâ®«ì ¡áâà ªâ­®¥ ®¯à¥¤¥«¥­¨¥, â¥á­® á¢ï§ ­ë á ¯ãâﬨ ¢ ®à¨¥­â¨à®¢ ­­ëå £à ä å.  áᬮâਬ ®à¨¥­â¨à®¢ ­­ë© £à ä G = (V; E ) á § ¤ ­­®© ­ ­ñ¬ ä㭪樥© à §¬¥âª¨ (labeling function) : V V ! S . Œë ¡ã¤¥¬ áç¨â âì,
çâ® íâ äã­ªæ¨ï § ¤ ­ ­¥ ⮫쪮 ­ àñ¡à å, ­® ¨ ­ «î¡ëå ¯ à å
¢¥à設, ¯®« £ ï, çâ® ¤«ï ¯ à (u; v), ­¥ ïîé¨åáï àñ¡à ¬¨, §­ 祭¨¥ (u; v) à ¢­® 0, â ª çâ® ¯® áãé¥áâ¢ã äã­ªæ¨ï § ¤ ñâáï ¬¥âª ¬¨
­ àñ¡à å (labels of edges)
Ž¯à¥¤¥«¨¬ ⥯¥àì ¯®­ï⨥ ¬¥âª¨ ¯ã⨠(path label). ˆ¬¥­­®, ¤«ï
«î¡®£® ¯ã⨠p = hv1; v2; : : : ; vki ¬ë ¡ã¤¥¬ ­ §ë¢ âì ¥£® ¬¥âª®© (p)
540
ƒ« ¢ 26 Šà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設
¯à®¨§¢¥¤¥­¨¥
(p) = (v1; v2) (v2; v3) (vk;1 ; vk ):
…¤¨­¨ç­ë© í«¥¬¥­â 1 ¤«ï 㬭®¦¥­¨ï ¡ã¤¥â ¬¥âª®© ¯ãá⮣® ¯ãâ¨
(¤«¨­ë 0). …᫨ ¯ãâì p ­¥ ï¥âáï ¯ãâñ¬ ¢ £à ä¥ (â® ¥áâì ¯à¨
­¥ª®â®à®¬ i ¯ à (vi; vi+1) ­¥ ï¥âáï ॡ஬), â® ¢ ¢ëà ¦¥­¨¨
¤«ï (p) ®¤¨­ ¨§ ¬­®¦¨â¥«¥© ¨ ¯®â®¬ã ¢áñ ¯à®¨§¢¥¤¥­¨¥ (á¬. ¯ã­ªâ
2 ®¯à¥¤¥«¥­¨ï § ¬ª­ã⮣® ¯®«ãª®«ìæ ) à ¢­ë 0.
Œë ¡ã¤¥¬ ¨««îáâà¨à®¢ âì ¯à¨¬¥­¥­¨¥ § ¬ª­ãâëå ¯®«ãª®«¥æ ­ ¯à¨¬¥à¥ § ¤ ç¨ ® ªà âç ©è¨å ¯ãâïå (¤«ï á«ãç ï ­¥®âà¨æ ⥫ì­ëå
¢¥á®¢). ‚ ª ç¥á⢥ S ¢®§ì¬ñ¬ ¬­®¦¥á⢮ S = >0 [f1g (¬­®¦¥á⢮
­¥®âà¨æ ⥫ì­ëå ¢¥é¥á⢥­­ëå ç¨á¥« á ¤®¡ ¢«¥­­®© (¯«îá) ¡¥áª®­¥ç­®áâìî). ’®£¤ ¢¥á ¢á¥å àñ¡¥à ¡ã¤ãâ í«¥¬¥­â ¬¨ S . Ž¯¥à 樥©
"㬭®¦¥­¨ï" ¡ã¤¥â ®¡ëç­®¥ á«®¦¥­¨¥; çâ®¡ë ­¥ § ¯ãâ âìáï,
®â­ë­¥ ¬ë ¡ã¤¥¬ ¡à âì ¢ ª ¢ë窨 á«®¢ "¯à®¨§¢¥¤¥­¨¥", "á㬬 "
¨ â.¯., ¥á«¨ ®­¨ ®â­®áïâáï ª ®¯¥à ¨ï¬ ¢ ¯®«ãª®«ìæ¥. ’®£¤ " ¯à®¨§¢¥¤¥­¨¥¬" ¬¥â®ª ­ àñ¡à å ¢¤®«ì ¯ã⨠¡ã¤¥â á㬬 ¢¥á®¢ àñ¡¥à,
â® ¥áâì ¢¥á ¯ãâ¨. " …¤¨­¨æ¥©" ¯®«ãª®«ìæ ¡ã¤¥â ­¥©âà «ì­ë©
í«¥¬¥­â ®â­®á¨â¥«ì­® á«®¦¥­¨ï, â® ¥áâì 0: ¬®¦­® ­ ¯¨á âì
1 = 0. Œ¥âª ¯ãá⮣® ¯ã⨠(®¡®§­ 稬 ¥£® ") ¡ã¤¥â à ¢­ ­ã«î:
(") = w(") = 0 = 1.
‚®§¢à é ïáì ª ®¡é¥© á¨âã 樨, ®¯à¥¤¥«¨¬ ᮥ¤¨­¥­¨¥, ¨«¨ ª®­ª ⥭ æ¨î (concatenation) ¤¢ãå ¯ã⥩ p1 = hv1; v2; : : : ; vk i ¨ p2 =
hvk ; vk+1; : : : ; vli ª ª ¯ãâì
p1 p2 = hv1; v2; : : : ; vk ; vk+1 ; : : : ; vli;
(ᮥ¤¨­¥­¨¥ ¨¬¥¥â á¬ëá«, ¥á«¨ ª®­¥æ ¯¥à¢®£® ¯ã⨠ᮢ¯ ¤ ¥â á
­ ç «®¬ ¢â®à®£®). €áá®æ¨ ⨢­®áâì "㬭®¦¥­¨ï" £ à ­â¨àã¥â
­ ¬, çâ® ¬¥âª ᮥ¤¨­¥­¨ï ¯ã⥩ à ¢­ "¯à®¨§¢¥¤¥­¨î" ¨å ¬¥â®ª:
(p1 p2) = (v1; v2) (v2; v3) (vk;1; vk )
(vk; vk+1) (vk+1; vk+2) (vl;1; vl)
= ((v1; v2) (v2; v3) (vk;1 ; vk ))
:
((vk ; vk+1 ) (vk+1; vk+2 ) (vl;1; vl))
= (p1) (p2)
Š ª ¬ë 㢨¤¨¬, à §«¨ç­ë¥ § ¤ ç¨ ® ¯ãâïå ¬®£ãâ à áᬠâਢ âìáï ª ª ç áâ­ë¥ á«ãç ¨ â ª®© ®¡é¥© § ¤ ç¨. „ ­® § ¬ª­ã⮥ ¯®«ãª®«ìæ® ¨ £à ä á ¬¥âª ¬¨ ­ àñà å; ­ ©â¨ (¤«ï ¢á¥å ¯ à
¢¥à設 i; j 2 V ) áã¬¬ë ¬¥â®ª ¯® ¢á¥¬ ¢®§¬®¦­ë¬ ¯ãâï¬ ¨§ i ¢
j:
O
lij = (p):
(26:11)
R
ipj
â "á㬬 " ¬®¦¥â ¡ëâì ¡¥áª®­¥ç­®© (¯ã⥩ ¨§ i ¢ j ¬®¦¥â
¡ëâì ¡¥áª®­¥ç­® ¬­®£®). à¨ ¥ñ ¢ëç¨á«¥­¨¨ ¬®¦­® ¢ª«îç âì ¨
€«£®à¨â¬ ”«®©¤ -“®à讫« 541
¨áã­®ª 26.6 26.7 ‘㬬㠬¥â®ª ¯ã⥩ p1 p2 ¨ p1 p3 ¬®¦­® § ¯¨á âì ª ª
((p1 ) (p2 )) ((p1 ) (p3 )). ® ᢮©áâ¢ã ¤¨áâਡã⨢­®á⨠íâ® ¢ëà ¦¥­¨¥
à ¢­® (p1 ) ((p2 ) (p3 )).
¨áã­®ª 26.7 26.8 « £®¤ àï 横«ã c ¨¬¥¥âáï ¡¥áª®­¥ç­® ¬­®£® ¯ã⥩ ¨§ ¢¥à設ë v ¢ ¢¥à設ã x, ¨¬¥­­®, p1 p2 , p1 c p2 , p1 c c p2 ¨ â.¤.
¯ãâ¨, ¯à®å®¤ï騥 ¯® ®âáãâáâ¢ãî騬 ¢ £à ä¥ àñ¡à ¬: ª ª ¬ë
¤®£®¢®à¨«¨áì, ¬¥âª¨ â ª¨å àñ¡¥à à ¢­ë 0, ¯®í⮬㠨 ¬¥âª¨
íâ¨å ¯ã⥩ à ¢­ë 0 ¨ ¯® ­ 襬㠯।¯®«®¦¥­¨î (᢮©á⢮ 6)
­ "á㬬ã" â ª¨¥ ¯ã⨠­¥ ¢«¨ïîâ. Š®¬¬ãâ ⨢­®áâì ¨ áá®æ¨ ⨢­®áâì ®¯¥à â®à (᢮©á⢮ 7) ¯®§¢®«ïîâ ­ ¬ ­¥ 㪠§ë¢ âì ¯®à冷ª ¯ã⥩ ¯à¨ á㬬¨à®¢ ­¨¨.
‚¥à­ñ¬áï ª ­ 襬㠯ਬ¥àã, ¢ ª®â®à®¬ í«¥¬¥­â ¬¨ S ¡ë«¨
­¥®âà¨æ ⥫ì­ë¥ ¤¥©á⢨⥫ì­ë¥ ç¨á« ¨ ᨬ¢®« 1, "㬭®¦¥­¨¥¬" ¡ë«® ®¡ëç­®¥ á«®¦¥­¨¥. …᫨ ¬ë ⥯¥àì ®¯à¥¤¥«¨¬ "á«®¦¥­¨¥" ª ª ¢§ï⨥ ¬¨­¨¬ã¬ (â®ç­¥¥, â®ç­®© ­¨¦­¥© £à ­¨, â ª
ª ª ¬ë ¤®«¦­ë ®¯à¥¤¥«¨âì ¥£® ¨ ¤«ï ¡¥áª®­¥ç­ëå ¯®á«¥¤®¢ ⥫쭮á⥩), â® ¯®«ã稬 § ¬ª­ã⮥ ¯®«ãª®«ìæ® (᢮©á⢠1{8 «¥£ª®
¯à®¢¥à¨âì). Žâ¬¥â¨¬, çâ® í«¥¬¥­â 0=1 ï¥âáï ­¥©âà «ì­ë¬ í«¥¬¥­â®¬ ¤«ï "á«®¦¥­¨ï": min(a; 1) = a.
…᫨ áç¨â âì ¬¥âª®© à¥¡à ¥£® ¢¥á, â® ¬¥âª®© ¯ã⨠¡ã¤¥â
â ª¦¥ ¥£® ¢¥á (á㬬 ¢¥á®¢ àñ¡¥à), ãà ¢­¥­¨¥ (26.11) ®¯à¥¤¥«ï¥â lij ª ª â®ç­ãî ­¨¦­îî £à ­ì ¢¥á®¢ ¢á¥å ¯ã⥩ ¨§ i ¢ j .
®­ï⨥ ¯®«ãª®«ìæ ¯®§¢®«ï¥â ¢ë¯®«­ïâì «£¥¡à ¨ç¥áª¨¥ ¯à¥®¡à §®¢ ­¨ï á ¬¥âª ¬¨ ¯ã⥩. à¨¬¥à â ª®£® த ¯à¨¢¥¤ñ­ ­ à¨á. 26.7.
‚ ¡®«¥¥ á«®¦­ëå á«ãç ïå ç¨á«® ¯ã⥩ ¬®¦¥â ¡ëâì ¡¥áª®­¥ç­®.
’ ª®© ¯à¨¬¥à ¯à¨¢¥¤ñ­ ­ à¨á. 26.8. ‡¤¥áì (áç¨â ¥¬, çâ® ¤à㣨å
¯ã⥩ ¨§ u ¢ x ­¥â) ä®à¬ã« (26.11) ¯à¨¢®¤¨â ª "á㬬¥"
(p1) (p2) (p1) (c) (p2) (p1) (c) (c) (p2) : : : =
;
= (p1) 1 (c) (c) (c) : : : (p2)
„«ï ªà ⪮© § ¯¨á¨ â ª®© "á㬬ë" ¢¢¥¤ñ¬ á«¥¤ãî饥 ®¯à¥¤¥«¥­¨¥. ãáâì a | ¯à®¨§¢®«ì­ë© í«¥¬¥­â § ¬ª­ã⮣® ¯®«ãª®«ìæ S .
‡ ¬ëª ­¨¥¬ (closure) í«¥¬¥­â a ­ §®¢ñ¬ ¢ëà ¦¥­¨¥
a = 1 a (a a) (a a a) : : :
’®£¤ ¯à¥¤ë¤ã饥 ¢ëà ¦¥­¨¥ (¤«ï à¨á. 26.8) ¬®¦­® § ¯¨á âì ª ª
(p1) ((c)) (p2).
‚ ­ 襬 ¯à¨¬¥à¥ ¯®«ãª®«ìæ (ᮮ⢥âáâ¢ãî饣® § ¤ ç¥ ®
ªà âç ©è¨å ¯ãâïå) ¨¬¥¥¬ a = minfkajk = 0; 1; 2; : : : g = 0 ¤«ï
«î¡®£® í«¥¬¥­â a > 0. —â® ¨ ­¥ 㤨¢¨â¥«ì­®: ¥á«¨ 横« ¨¬¥¥â
­¥®âà¨æ ⥫ì­ë© ¢¥á, â® ¨¤â¨ ¯® ­¥¬ã ­¥â á¬ëá« .
542
ƒ« ¢ 26 Šà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設
à¨¬¥àë § ¬ª­ãâëå ¯®«ãª®«¥æ
Ž¤¨­ â ª®© ¯à¨¬¥à ¬ë 㦥 à ᬮâ५¨: ¯®«ãª®«ìæ® S1 =
f >0 [ f1g; min; +; 1; 0g. Œë ¬®¦¥¬ à áè¨à¨âì íâ® ¯®«ãª®«ìæ®,
à §à¥è¨¢ ®âà¨æ ⥫ì­ë¥ í«¥¬¥­âë, â ª¦¥ í«¥¬¥­â ;1. ®«ãç¨âáï ¯®«ãª®«ìæ® S2 = f [ f+1g [ f;1g; min; +; +1; 0g
(ã¯à. 26.4-3). â® ¯®«ãª®«ìæ® ¬®¦­® ¨á¯®«ì§®¢ âì ¯à¨ ¤®ª § ⥫ìá⢥ ¯à ¢¨«ì­®á⨠«£®à¨â¬ ”«®©¤ {“®àè «« ¤«ï á«ãç ï
®âà¨æææ ⥫ì­ëå ¢¥á®¢. Žâ¬¥â¨¬, ç⮠⥯¥àì
0;¥á«¨ a > 0,
a = ;1;¥á«¨ a < 0.
‚â®à®© á«ãç © (a < 0) £®¢®à¨â ­ ¬, ç⮠横« ®âà¨æ ⥫쭮£®
¢¥á ¬®¦­® ¯à®å®¤¨âì ¬­®£®ªà â­®, ¨ ¢¥á ¡ã¤ãâ áâ६¨âìáï ª
;1.
‡ ¤ ç¥ ® âà ­§¨â¨¢­®¬ § ¬ëª ­¨¨ ᮮ⢥âáâ¢ã¥â § ¬ª­ã⮥
¯®«ãª®«ìæ® S3 = (f0; 1g; _; ^; 0; 1). à¨ í⮬ ¢á¥ àñ¡à ¨á室­®£®
£à ä ¨¬¥îâ ¯®¬¥âªã 1 ( ®âáãâáâ¢ãî騬 ᮮ⢥âáâ¢ã¥â §­ 祭¨¥ 0 = 0, ª ª ¬ë £®¢®à¨«¨). ‚ í⮬ ¯®«ãª®«ìæ¥ §­ 祭¨¥ lij ,
¢ëç¨á«¥­­®¥ ¯® ä®à¬ã«¥ (26.11), à ¢­® 1, ¥á«¨ ¯ à (i; j ) ¯à¨­ ¤«¥¦¨â âà ­§¨â¨¢­®¬ã § ¬ëª ­¨î (â® ¥áâì ¥áâì ¯ãâì ¨§ i ¢ j ),
¨ à ¢­® 0 ¢ ¯à®â¨¢­®¬ á«ãç ¥. Žâ¬¥â¨¬, çâ® ¤«ï í⮣® ª®«ìæ R
R
1 = 0 = 1.
„¨­ ¬¨ç¥áª®¥ ¯à®£à ¬¬¨à®¢ ­¨¥ ¨ á㬬 ¬¥â®ª ¯® ¯ãâï¬
®ª ¦¥¬, ª ª ¬®¦­® ¢ëç¨á«¨âì ¢ëà ¦¥­¨¥ (26.11) á ¯®¬®éìî
«£®à¨â¬ , ­ «®£¨ç­®£® «£®à¨â¬ã ”«®©¤ {“®àè «« ¨ «£®à¨â¬ã ¢ëç¨á«¥­¨ï âà ­§¨â¨¢­®£® § ¬ëª ­¨ï.
 ¯®¬­¨¬, çâ® ­ ¬ ¤ ­® § ¬ª­ã⮥ ¯®«ãª®«ìæ® S ¨ ®à¨¥­â¨à®¢ ­­ë© £à ä (G; V ), àñ¡à ª®â®à®£® ¯®¬¥ç¥­ë í«¥¬¥­â ¬¨ S .
Œë å®â¨¬ ¤«ï ª ¦¤®© ¯ àë ¢¥à設 i; j ¢ëç¨á«¨âì " á㬬ã" (¢
á¬ëá«¥ ¯®«ãª®«ìæ )
M
lij = (p)
£¤¥ "á㬬¨à®¢ ­¨¥" ¯à®¨á室¨â ¯® ¢á¥¬ ¯ãâï¬ ¨§ i ¢ j , (p)
¥áâì ¬¥âª ¯ã⨠p, â® ¥áâì "¯à®¨§¢¥¤¥­¨¥" ¬¥â®ª ­ ¥£® àñ¡à å.
 áᬮâਬ ¢¥«¨ç¨­ã lij(k), ª®â®à ï ¯®«ãç¨âáï, ¥á«¨ ®£à ­¨ç¨âì á㬬¨à®¢ ­¨¥ ⮫쪮 ⥬¨ ¯ãâﬨ, ¢ ª®â®àëå ¢á¥ ¯à®¬¥¦ãâ®ç­ë¥ ¢¥àè¨­ë «¥¦ â ¢ ¬­®¦¥á⢥ f1; 2; : : : ; kg. „«ï lij(k)
¬®¦­® ­ ¯¨á âì ४ã७⭮¥ ᮮ⭮襭¨¥:
(k;1)) l(k;1)):
lij(k) = lij(k;1) (lik(k;1) (lkk
kj
(26:12)
â® ä®à¬ã« ­ ¯®¬¨­ ¥â ४ã७â­ë¥ ᮮ⭮襭¨ï (26.5) ¨
(k;1)) ,
(26.8); à §­¨æ ¢ ⮬, çâ® ¢ ­¥© ¥áâì "¬­®¦¨â¥«ì" (lkk
ᮮ⢥âáâ¢ãî騩 "á㬬¥" ¬¥â®ª ¢á¥å 横«®¢, ­ 稭 îé¨åáï ¨
€«£®à¨â¬ ”«®©¤ -“®à讫« 543
ª®­ç îé¨åáï ¢ k. (®ç¥¬ã ­¥ ¡ë«® â ª®£® ¬­®¦¨â¥«ï ¢ «£®à¨â¬¥ ”«®©¤ {“®àè «« á ­¥®âà¨æ ⥫ì­ë¬¨ ¢¥á ¬¨ ¨ ¢ «£®à¨â¬¥ ¢ëç¨á«¥­¨ï âà ­§¨â¨¢­®£® § ¬ëª ­¨ï? „¥«® ¢ ⮬, çâ®
¢ ®¡®¨å á«ãç å a = 1 ¨ ¯®í⮬ã íâ®â " ¬­®¦¨â¥«ì" ¬®¦­® ¡ë«®
®¯ãáâ¨âì.)
 ç «ì­ë¥ §­ 祭¨ï ¤«ï ४ãà७⭮£® ᮮ⭮襭¨ï (26.12)
â ª®¢ë:
i=
6 j,
(0)
lij = 1 (i; j )(i; j ) ¥á«¨
¥á«¨ i = j:
‚ á ¬®¬ ¤¥«¥, ¯ãâì ¨§ ®¤­®£® à¥¡à ¨¬¥¥â ¬¥âªã, à ¢­ãî ¬¥âªã
í⮣® ॡà , ¯ãá⮩ ¯ãâì ¨¬¥¥â ¬¥âªã 1 ¢ ᮮ⢥âá⢨¨ á
­ 訬 ᮣ« 襭¨¥¬; íâ®â ¯ãâì ­ ¤® ãç¥áâì ¯à¨ i = j .
Œë ¯à¨å®¤¨¬ ª «£®à¨â¬ã, ¨á¯®«ì§ãî饬㠬¥â®¤ ¤¨­ ¬¨ç¥áª®£® ¯à®£à ¬¬¨à®¢ ­¨ï ¤«ï ¯®á«¥¤®¢ ⥫쭮£® ®âë᪠­¨ï ¢¥«¨ç¨­ lij(k) ¯à¨ k = 0; 1; 2 : : : ; n; ¥£® ®â¢¥â®¬ ï¥âáï ¬ âà¨æ L(n) = (lij(n)) (ᮮ⢥âáâ¢ãîé ï " á㬬¨à®¢ ­¨î" ¯® ¢á¥¬ ¯ãâï¬
¡¥§ ®£à ­¨ç¥­¨© ­ ¯à®¬¥¦ãâ®ç­ë¥ ¢¥à設ë).
{\sc Compute-Summaries}$(\lambda,V)$\\
\verb|1 |$n\leftarrow|V|$\\
\verb|2 |for $i\leftarrow1$ to $n$\\
\verb|3
|do for $j\leftarrow1$ to $n$\\
\verb|4
|do if $i=j$\\
\verb|5
|then $l^{(0)}_{ij}\leftarrow\bar1\oplus\lambda(i,j
\verb|6
|else $l^{(0)}_{ij}\leftarrow\lambda(i,j)$\\
\verb|7 |for $k\leftarrow1$ to $n$\\
\verb|8
|do for $i\leftarrow1$ to $n$\\
\verb|9
|do for $j\leftarrow1$ to $n$\\
\verb|10
|do $l^{(k)}_{ij}=l^{(k-1)}_{ij}\oplus(l^{(k1)}_{ik}\
odot(l^{(k-1)}_{kk})^{\ast}\odot l^{(k-1)}_{kj})$\\
\verb|11 |return $L^{(n)}$
‚६ï à ¡®âë ¤ ­­®£® «£®à¨â¬ § ¢¨á¨â ®â ¢à¥¬¥­¨ ¢ë¯®«­¥­¨ï ®¯¥à 権 , ¨ . Ž¡®§­ 稢 ¢à¥¬ï ¢ë¯®«­¥­¨ï ®¯¥à 権 ç¥à¥§ T, T, T, ®¡é¥¥ ¢à¥¬ï à ¡®âë «£®à¨â¬ ComputeSummaries ¬®¦­® § ¯¨á âì ª ª (n3 )(T + T + T )), çâ® ¯à¥¢à é ¥âáï ¢ (n3), ¥á«¨ ¢à¥¬ï ¢ë¯®«­¥­¨ï «î¡®© ¨§ âàñå ®¯¥à 権
á®áâ ¢«ï¥â O(1).
“¯à ¦­¥­¨ï
26.4-1 à®¢¥àìâ¥, çâ® S1 = ( >0 [ f1g; min; +; 1; 0) ¨ S3 =
(f0; 1g; _; ^; 0; 1g) ïîâáï § ¬ª­ãâ묨 ¯®«ãª®«ìæ ¬¨.
26.4-2 à®¢¥àìâ¥, çâ® S2 = ( [f;1; +1g; min; +; +1; 0) ï¥âáï § ª­ãâë¬ ¯®«ãª®«ì殬. —¥¬ã à ¢­® §­ 祭¨¥ a + (;1) ¤«ï
a 2 ? —â® ¬®¦­® ᪠§ âì ® §­ 祭¨¨ (;1) + (+1)?
R
R
R
544
ƒ« ¢ 26 Šà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設
26.4-3 ‡ ¯¨è¨â¥ «£®à¨â¬ Compute-Summaries ¤«ï á«ãç ï
§ ¬ª­ã⮣® ¯®«ãª®«ìæ S2, ­ «®£¨ç­ë© «£®à¨â¬ã ”«®©¤ “®à讫« . —¥¬ã ¤®«¦­® ¡ëâì à ¢­® §­ 祭¨¥ ;1 + 1, ç⮡ë
«£®à¨â¬ ¯à ¢¨«ì­® ¨áª ¤ ¤«¨­ë ªà âç ©è¨å ¯ã⥩?
26.4-4 Ÿ¢«ï¥âáï «¨ S4 = ( ; +; ; 0; 1) § ¬ª­ãâë¬ ¯®«ãª®«ì殬?
(’®ç­¥¥ á«¥¤®¢ «® ¡ë á¯à®á¨âì â ª: ¬®¦­® «¨ ¥£® ¯à¥¢à â¨âì ¢
§ ¬ª­ã⮥ ¯®«ãª®«ìæ®, ®¯à¥¤¥«¨¢ ª ª¨¬-«¨¡® ®¡à §®¬ á㬬㠫£® ¡¥áª®­¥ç­®£® àï¤ ?)
26.4-5 Œ®¦¥¬ «¨ ¬ë ®¡®¡é¨âì ­ á«ãç © ¯à®¨¢§®«ì­®£® § ¬ª­ã⮣® ¯®«ãª®«ìæ «£®à¨â¬ „¥©ªáâàë? €«£®à¨â¬ ¥««¬ ­ ”®à¤ ? à®æ¥¤ãàã Faster-All-Pairs-Shortest-Paths?
R
26.4-6
Œë å®â¨¬ 㧭 âì, ª ª®© ­ ¨¡®«¥¥ âï¦ñ«ë© £à㧮¢¨ª ¬®¦¥â
¯à®¥å âì ¨§ ƒ®àî­¨­ ¢ à®á⮪¢ 設®, ¨¬¥ï ª àâã ¤®à®£
¬¥¦¤ã í⨬¨ áñ« ¬¨, ¢ ª®â®à®© ¤«ï ª ¦¤®© ¤®à®£¨ 㪠§ ­
¬ ªá¨¬ «ì­® ¢®§¬®¦­ë© ¢¥á £à㧮¢¨ª . ®áâன⥠«£®à¨â¬
¤«ï à¥è¥­¨ï í⮩ § ¤ ç¨, ¨á¯®«ì§ãî騩 ¯®¤å®¤ï饥 § ¬ª­ã⮥
¯®«ãª®«ìæ®.
‡ ¤ ç¨
26-1 ’à ­§¨â¨¢­®¥ § ¬ëª ­¨¥ à áâã饣® £à ä Œë å®â¨¬ ¢ëç¨á«ïâì âà ­§¨â¨¢­®¥ § ¬ëª ­¨¥ ®à¨¥­â¨à®¢ ­­®£® £à ä G = (V; E ), ¬­®¦¥á⢮ àñ¡¥à ª®â®à®£® à áâñâ. „à㣨¬¨ á«®¢ ¬¨, ¬ë å®â¨¬ ®¡­®¢«ïâì âà ­§¨â¨¢­®¥ § ¬ëª ­¨¥ ¯®á«¥ ¤®¡ ¢«¥­¨ï ¢ £à ä ¥éñ ®¤­®£® ॡà . Œë áç¨â ¥¬, çâ® ¨§­ ç «ì­® £à ä G ­¥ ¨¬¥« àñ¡¥à ¢®¢á¥. ’à ­§¨â¨¢­®¥ § ¬ëª ­¨¥
¤®«¦­® åà ­¨âìáï ¢ ¡ã«¥¢®© ¬ âà¨æ¥.
a. ®ª ¦¨â¥, ª ª § ¢à¥¬ï O(V 2 ) ¬®¦­® ¯à®¨§¢¥á⨠®¡­®¢«¥­¨¥ âà ­§¨â¨¢­®£® § ¬ëª ­¨ï ¯®á«¥ ¤®¡ ¢«¥­¨ï ¢ £à ä G ­®¢®£®
ॡà .
b. ®ª ¦¨â¥, çâ® «î¡®© «£®à¨â¬ ®¡­®¢«¥­¨ï âà ­§¨â¨¢­®£®
§ ¬ëª ­¨ï (åà ­ï騩 ¥£® ¢ ¡ã«¥¢®© ¬ âà¨æ¥) ¬®¦¥â ¯®âॡ®¢ âì ¢à¥¬¥­¨ O(V 2) ¯®á«¥ ¤®¡ ¢«¥­¨ï ®¤­®£® ॡà .
c. ®áâன⥠«£®à¨â¬ ®¡­®¢«¥­¨ï âà ­§¨â¨¢­®£® § ¬ëª ­¨ï
£à ä ¯®á«¥ ¤®¡ ¢«¥­¨ï àñ¡¥à, ¤«ï ª®â®à®£® á㬬 à­®¥ ¢à¥¬ï à ¡®âë ¯à¨ ¤®¡ ¢«¥­¨¨ «î¡®© ¯®á«¥¤®¢ ⥫쭮á⨠àñ¡¥à ­¥ ¯à¥¢®á室¨â O(V 3).
26-2 Šà âç ©è¨¥ ¯ã⨠¢ "-¯«®â­ëå £à ä å
ƒà ä G = (V; E ) ­ §ë¢ ¥âáï "-¯«®â­ë¬, ¥á«¨ jE j = (V 1+")
¤«ï ­¥ª®â®à®© ª®­áâ ­âë ", «¥¦ 饩 ¢ ¤¨ ¯ §®­¥ 0 < " 6 1.
ˆá¯®«ì§®¢ ­¨¥ d-¨ç­ëå ªãç (c¬. § ¤ çã 7-2) ¢ «£®à¨â¬¥ ¯®¨áª ªà âç ©è¨å ¯ã⥩ ­ "-¯«®â­ëå £à ä å ¯®§¢®«ï¥â ¨§¡ ¢¨âìáï
®â ¨á¯®«ì§®¢ ­¨ï 䨡®­ ç稥¢ëå ªãç (¤®¢®«ì­® á«®¦­®© áâàãªâãàë ¤ ­­ëå), á®åà ­¨¢ âã ¦¥ ᨬ¯â®â¨ç¥áªãî ®æ¥­ªã ¢à¥¬¥­¨
à ¡®âë.
a. Ž¯à¥¤¥«¨â¥ ᨬ¯â®â¨ªã ¢à¥¬¥­¨ à ¡®âë ¯à®æ¥¤ãà Insert,
Extract-Min ¨ Decrease-Key ª ª äã­ªæ¨î ®â d ¨ n (§¤¥áì n |
€«£®à¨â¬ ”«®©¤ -“®à讫« 545
ç¨á«® í«¥¬¥­â®¢ d-¨ç­®© ªãç¨). —â® ¯®«ãç ¥âáï ¯à¨ d = (n),
£¤¥ 0 < 6 1 | ­¥ª®â®à ï ª®­áâ ­â . ‘à ¢­¨â¥ í⨠¢à¥¬¥­ á
ãçñâ­ë¬¨ ¢à¥¬¥­ ¬¨ íâ¨å ®¯¥à 権 ¤«ï 䨡®­­ 稥¢ëå ªãç.
b. à¨¤ã¬ ©â¥ ᯮᮡ ¢ëç¨á«¨âì ªà âç ©è¨¥ ¯ã⨠¨§ ®¤­®©
¢¥àè¨­ë ¢ "-¯«®â­®¬ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥ G = (V; E ) ¡¥§ àñ¡¥à ®âà¨æ ⥫쭮£® ¢¥á § ¢à¥¬ï O(E ). (“ª § ­¨¥: ¢ë¡¥à¨â¥
¯®¤å®¤ï饥 d ª ª äã­ªæ¨î ".)
c. ®ª ¦¨â¥, çâ® ¬®¦­® ¢ëç¨á«¨âì ªà âç ©è¨¥ ¯ã⨠¤«ï
¢á¥å ¯ à ¢¥à設 ¢ "-¯«®â­®¬ ®à¨¥­â¨à®¢ ­­®¬ £à ä¥ G = (V; E )
¡¥§ àñ¡¥à ®âà¨æ¨â¥«ì­®£® ¢¥á § ¢à¥¬ï O(V E ).
d. ®ª ¦¨â¥, çâ® § ¢à¥¬ï O(V E ) ¬®¦­® ¢ëç¨á«¨âì ªà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設 ¢ "-¯«®â­®¬ ®à¨¥­â¨à®¢ ­­®¬
£à ä¥ G = (V; E ), ª®â®àë© ¬®¦¥â ¨¬¥âì àñ¡à ®âà¨æ ⥫쭮£®
¢¥á , ­® ­¥ ᮤ¥à¦¨â 横«®¢ ®âà¨æ ⥫쭮£® ¢¥á .
26-3 Œ¨­¨¬ «ì­ë© ®á⮢ ¨ § ¬ª­ã⮥ ¯®«ãª®«ìæ®
ãáâì G = (V; E ) | á¢ï§­ë© ­¥®à¨¥­â¨à®¢ ­­ë© £à ä á ¢¥á®¢®© ä㭪権 w : E ! , ¢¥à設 ¬¨ ª®â®à®£® ïîâáï ç¨á« ®â 1 ¤® n. à¥¤¯®«®¦¨¬, çâ® ¢¥á w(i; j ) ¢á¥å àñ¡¥à à §«¨ç­ë.
ãáâì T | ¥¤¨­á⢥­­ë© (á¬. ã¯à. 24.1-6) ¬¨­¨¬ «ì­ë© ®á⮢
£à ä G. Œ £á (B.M.Maggs) ¨ ‘.€.«®âª¨­ ¯à¥¤«®¦¨«¨ ¨á¯®«ì§®¢ âì § ¬ª­ã⮥ ¯®«ãª®«ìæ® ¤«ï ®âë᪠­¨ï ¬¨­¨¬ «ì­®£® ¯®ªàë¢ î饣® ¤¥à¥¢ . „«ï ª ¦¤®© ¯ àë ¢¥à設 ®¯à¥¤¥«¨¬ ¬¨­¨¬ ªá­ë© ¢¥á (minimax weight) mij ¢§ï¢ ¬¨­¨¬ã¬ ¯® ¢á¥¬ ¯ãâï¬
¬ ªá¨¬ã¬®¢ ¢¥á®¢ àñ¡¥à ­ ª ¦¤®¬ ¯ãâ¨.
a. ®ª ¦¨â¥, çâ® S = ( [ f;1; 1g; min; max; 1; ;1) ï¥âáï § ¬ª­ãâë¬ ¯®«ãª®«ì殬.
’ ª¨¬ ®¡à §®¬, ¬ë ¬®¦¥¬ ¨á¯®«ì§®¢ âì ¯à®æ¥¤ãàã ComputeSummaries ¤«ï ¢ëç¨á«¥­¨ï ¬¨­¨¬ ªá­ëå ¢¥á®¢ mij ¢ £à ä¥ G.
Ž¡®§­ 稬 ç¥à¥§ m(ijk) ¬¨­¨¬ ªá­ë© ¢¥á ¤«ï ¢á¥å ¯ã⥩ ¨§ i ¢ j
á ¯à®¬¥¦ãâ®ç­ë¬¨ ¢¥à設 ¬¨ ¨§ ¬­®¦¥á⢠f1; 2; ; kg.
b.  ¯¨è¨â¥ ४ãà७â­ãî ä®à¬ã«ã ¤«ï m(ijk) ¯à¨ k > 0.
c. ãáâì Tm = f(i; j ) 2 E : w(i; j ) = mij g. „®ª ¦¨â¥, çâ® à¥¡à ¨§ Tm ®¡à §ãîâ ¯®ªàë¢ î饥 ¤¥à¥¢® ¤«ï £à ä G.
d. ®ª ¦¨â¥, çâ® íâ® ¯®ªàë¢ î饥 ¤¥à¥¢® ¡ã¤¥â ¬¨­¨¬ «ì­ë¬. (“ª § ­¨¥. ®á¬®âà¨â¥, çâ® ¯à®¨á室¨â ¯à¨ ¤®¡ ¢«¥­¨¨ ॡà (i; j ) ¢ T ¨ ®¤­®¢à¥¬¥­­®¬ 㤠«¥­¨¨ ¨§ T ª ª®£®-­¨¡ã¤ì ॡà ,
«¥¦ 饣® ­ ¯ã⨠¨§ i ¢ j . ®á¬®âà¨â¥ â ª¦¥, çâ® ¯à®¨á室¨â
¯à¨ § ¬¥­¥ ॡà (i; j ) ¨§ T ­ ¤à㣮¥ ॡà®.)
‡ ¬¥ç ­¨ï
‹®ã«¥à [132] ¯®¤à®¡­® à áᬠâਢ ¥â § ¤ çã ­ 宦¤¥­¨ï ªà âç ©è¨å ¯ã⥩ ¤«ï ¢á¥å ¯ à ¢¥à設, å®âï ¨ ­¥ ¢ë¤¥«ï¥â ®â¤¥«ì­®
á«ãç © à §à¥¦¥­­ëå £à 䮢 (¯à¨ í⮬ á¢ï§ì § ¤ ç¨ ® ªà âç ©è¨å ¯ãâïå á 㬭®¦¥­¨¥¬ ¬ âà¨æ ®â­®á¨âáï ª 䮫쪫®àã). €«£®à¨â¬ ”«®©¤ {“®à讫« ®¯¨á ­ ¢ à ¡®â¥ ”«®©¤ [68], ª®â®àë©
®¯¨à ¥âáï १ã«ìâ ⠓®à讫« [198] (® âà ­§¨â¨¢­ë¬ § ¬ëª R
R
546
ƒ« ¢ 26 Šà âç ©è¨¥ ¯ã⨠¤«ï ¢á¥å ¯ à ¢¥à設
­¨¨ ¡ã«¥¢ëå ¬ âà¨æ). ®­ï⨥ § ¬ª­ã⮣® ¯®«ãª®«ìæ ¯®ï¢¨«®áì
¢ ª­¨£¥ €å®, •®¯ª®äâ ¨ “«ì¬ ­ [4]. €«£®à¨â¬ „¦®­á®­ ¢§ïâ
¨§ [114].
27
Œ ªá¨¬ «ì­ë© ¯®â®ª
 áᬮâਬ ®à¨¥­â¨à®¢ ­­ë© £à ä. ã¤¥¬ à áᬠâਢ âì ¥£®
ª ª á¥âì âàã¡, ¯® ª®â®àë¬ ­¥ª®â®à®¥ ¢¥é¥á⢮ ¤¢¨¦¥âáï ®â
¨á⮪ (£¤¥ ®­® ¯à®¨§¢®¤¨âáï á ­¥ª®â®à®© ¯®áâ®ï­­®© ᪮à®áâìî) ª á⮪ã (£¤¥ ®­® ¯®âॡ«ï¥âáï | á ⮩ ¦¥ ᪮à®áâìî). ‚¬¥áâ® ¯®â®ª®¢ ¢¥é¥á⢠¬®¦­® à áᬠâਢ âì ¤¢¨¦¥­¨¥ ⮪ ¯® ¯à®¢®¤ ¬, ¤¥â «¥© ¯® ª®­¢¥©¥àã, ¨­ä®à¬ 樨 ¯®
«¨­¨ï¬ á¢ï§¨ ¨«¨ ⮢ ஢ ®â ¯à®¨§¢®¤¨â¥«ï ª ¯®âॡ¨â¥«î.
Š ª ¨ ¢ § ¤ ç¥ ® ªà âç ©è¨å ¯ãâïå, ­ ª ¦¤®¬ ॡॠ£à ä ¬ë
¯¨è¥¬ ç¨á«®. ® ¥á«¨ â ¬ íâ® ç¨á«® ®§­ ç «® ¤«¨­ã ¯ãâ¨, â®
⥯¥àì í⮠᪮॥ è¨à¨­ ¤®à®£¨, ¨«¨ ¯à®¯ã᪭ ï ᯮᮡ­®áâì
âàã¡ë | ¬ ªá¨¬ «ì­ ï ᪮à®áâì ¯®â®ª ¢ í⮩ âàã¡¥.  ¯à¨¬¥à, ®­ ¬®¦¥â ¡ëâì 200 «¨â஢ ¢ ç á, ¨«¨ 20 ¬¯¥à (¥á«¨ à¥çì
¨¤ñâ ®¡ í«¥ªâà¨ç¥á⢥).
Œë áç¨â ¥¬, çâ® ¢ ¢¥à設 å ¢¥é¥á⢮ ­¥ ­ ª ¯«¨¢ ¥âáï |
᪮«ìª® ¯à¨å®¤¨â, á⮫쪮 ¨ ã室¨â (¥á«¨ ¢¥à設 ­¥ ï¥âáï
¨á⮪®¬ ¨«¨ á⮪®¬). â® ᢮©á⢮ ­ §ë¢ ¥âáï "§ ª®­®¬ á®åà ­¥­¨ï ¯®â®ª " (ow conservation). „«ï í«¥ªâà¨ç¥áª®£® ⮪ íâ®
᢮©á⢮ ­ §ë¢ ¥âáï ¯¥à¢ë¬ ¯à ¢¨«®¬ Š¨à壮ä .
‡ ¤ ç ® ¬ ªá¨¬ «ì­®¬ ¯®â®ª¥ ¤«ï ¤ ­­®© á¥â¨ á®á⮨⠢ á«¥¤ãî饬: ­ ©â¨ ¬ ªá¨¬ «ì­® ¢®§¬®¦­ãî ᪮à®áâì ¯à®¨§¢®¤á⢠(¨ ¯®âॡ«¥­¨ï) ¢¥é¥á⢠, ¯à¨ ª®â®à®© ¥£® ¥éñ ¬®¦­® ¤®áâ ¢¨âì ®â ¨á⮪ ª á⮪㠯ਠ¤ ­­ëå ¯à®¯ã᪭ëå ᯮᮡ­®áâïå
âàã¡. ‚ í⮩ £« ¢¥ ¯®á«¥ â®ç­®© ä®à¬ã«¨à®¢ª¨ í⮩ § ¤ ç¨ (à §¤¥« 27.1) ®¯¨á ­ë ¤¢ ¬¥â®¤ ¥ñ à¥è¥­¨ï. ‚ à §¤¥«¥ 27.2 à §®¡à ­ ª« áá¨ç¥áª¨© ¬¥â®¤ ”®à¤ {” «ª¥àá®­ . …£® ¨á¯®«ì§®¢ ­¨¥
¤«ï ¯®¨áª ¬ ªá¨¬ «ì­®£® ¯ à®á®ç¥â ­¨ï ¢ ¤¢ã¤®«ì­®¬ ­¥®à¨¥­â¨à®¢ ­­®¬ £à ä¥ ®¯¨á ­® ¢ à §¤¥«¥ 27.3.  §¤¥« 27.4 ¨§« £ ¥â
á奬ã " ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª " ª®â®à ï ¨á¯®«ì§ã¥âáï ¢®
¬­®£¨å ᮢ६¥­­ëå «£®à¨â¬ å ¤«ï à¥è¥­¨ï § ¤ ç ® ¯®â®ª å ¢
á¥âïå. Ž¤¨­ ¨§ â ª¨å «£®à¨â¬®¢ ®¯¨á ­ ¢ à §¤¥«¥ 27.5. •®âï
®­ ¨ ­¥ á ¬ë© ¡ëáâàë© ¨§ ¨§¢¥áâ­ëå (¢à¥¬ï à ¡®âë O(V 3)), ­®
®­ ¨á¯®«ì§ã¥â ⥠¦¥ ¨¤¥¨, çâ® ¨ á ¬ë¥ ¡ëáâàë¥ «£®à¨â¬ë, ¨
¤®áâ â®ç­® íä䥪⨢¥­ ­ ¯à ªâ¨ª¥.
548
ƒ« ¢ 27 Œ ªá¨¬ «ì­ë© ¯®â®ª
27.1 ®â®ª¨ ¢ á¥âïå
‚ í⮬ à §¤¥«¥ ¬ë ¤ ¤¨¬ â®ç­®¥ ®¯à¥¤¥«¥­¨¥ á¥â¥© ¨ ¯®â®ª®¢
¢ ­¨å, ®¡á㤨¬ ¨å ᢮©á⢠, áä®à¬ã«¨à㥬 § ¤ çã ® ¬ ªá¨¬ «ì­®¬
¯®â®ª¥ ¨ ¢¢¥¤ñ¬ ­¥ª®â®àë¥ ¯®«¥§­ë¥ ®¡®§­ 祭¨ï.
‘¥â¨ ¨ ¯®â®ª¨
H §®¢¥¬ á¥âìî (ow network) ®à¨¥­â¨à®¢ ­­ë© £à ä G = (V; E ),
ª ¦¤®¬ã ॡàã (u; v) 2 E ª®â®à®£® ¯®áâ ¢«¥­® ¢ ᮮ⢥âá⢨¥
ç¨á«® c(u; v) > 0, ­ §ë¢ ¥¬®¥ ¯à®¯ã᪭®© ᯮᮡ­®áâìî (capacity)
ॡà . ‚ á«ãç ¥ (u; v) 2= E ¬ë ¯®« £ ¥¬ c(u; v) = 0. ‚ £à ä¥ ¢ë¤¥«¥­ë ¤¢¥ ¢¥à設ë: ¨á⮪ (source) s ¨ á⮪ (sink) t. „«ï 㤮¡á⢠¬ë ¯à¥¤¯®«£ ¥¬, çâ® ¢ £à ä¥ ­¥â "¡¥á¯®«¥§­ëå" ¢¥à設 (ª ¦¤ ï
¢¥à設 v 2 V «¥¦¨â ­ ª ª®¬-â® ¯ã⨠s v t ¨§ ¨á⮪ ¢
á⮪). (‚ â ª®¬ á«ãç ¥ £à ä á¢ï§¥­ ¨ jE j > jV j; 1.) à¨¬¥à á¥â¨
¯®ª § ­ ­ à¨á.27.1.
’¥¯¥àì ¤ ¤¨¬ ®¯à¥¤¥«¥­¨¥ ¯®â®ª . ãáâì ¤ ­ á¥âì G = (V; E ),
¯à®¯ã᪭ ï ᯮᮡ­®áâì ª®â®à®© § ¤ ñâáï ä㭪樥© c. ‘¥âì
¨¬¥¥â ¨á⮪ s ¨ á⮪ t. ®â®ª®¬ (ow) ¢ á¥â¨ G ­ §®¢ñ¬ äã­ªæ¨î f : V V ! R, 㤮¢«¥â¢®àïîéãî âàñ¬ ᢮©á⢠¬:
Ž£à ­¨ç¥­¨¥, á¢ï§ ­­®¥ á ¯à®¯ã᪭®© ᯮᮡ­®áâìî (capacity
constraint): f (u; v ) 6 c(u; v ). ¤«ï ¢á¥å u; v ¨§ V .
Š®á®á¨¬¬¥âà¨ç­®áâì (skew symmetry): f (u; v) = ;f (v; u) ¤«ï
¢á¥å u; v ¨§ V .
‘®åà ­¥­¨¥ ¯®â®ª (ow conservation):
X
f (u; v ) = 0:
v 2V
¤«ï ¢á¥å u ¨§ V ; fs; tg.
‚¥«¨ç¨­ f (u; v) ¬®¦¥â ¡ëâì ª ª ¯®«®¦¨â¥«ì­®©, â ª ¨ ®âà¨æ ⥫쭮©. Ž­ ®¯à¥¤¥«ï¥â, ᪮«ìª® ¢¥é¥á⢠¤¢¨¦¥âáï ¨§ ¢¥à設ë u ¢ ¢¥à設ã v (®âà¨æ ⥫ì­ë¥ §­ 祭¨ï ᮮ⢥âáâ¢ãîâ
¤¢¨¦¥­¨î ¢ ®¡à â­ãî áâ®à®­ã).
‚¥«¨ç¨­ (value) ¯®â®ª f ®¯à¥¤¥«ï¥âáï ª ª á㬬 X
f (s; v):
(27:1)
v2V
(᪫ ¤ë¢ ¥¬ ¯®â®ª¨ ¯® ¢á¥¬ àñ¡à ¬, ¢ë室ï騬 ¨§ ¨á⮪ ). Ž­ ®¡®§­ ç ¥âáï jf j (­¥ á¯ãâ ©â¥ á ¡á®«îâ­®© ¢¥«¨ç¨­®© ç¨á« !).
‡ ¤ ç ® ¬ ªá¨¬ «ì­®¬ ¯®â®ª¥ (maximum-ow problem) á®á⮨â
¢ á«¥¤ãî饬: ¤«ï ¤ ­­®© á¥â¨ G á ¨á⮪®¬ s ¨ á⮪®¬ t ­ ©â¨
¯®â®ª ¬ ªá¨¬ «ì­®© ¢¥«¨ç¨­ë.
®ïá­¨¬ á¬ëá« âàñå ­ è¨å ᢮©áâ¢. ¥à¢®¥ ®§­ ç ¥â, çâ® ¯®â®ª ¨§ ®¤­®© ¢¥àè¨­ë ¢ ¤àã£ãî ­¥ ¯à¥¢ëè ¥â ¯à®¯ã᪭®© ᯮᮡ­®á⨠ॡà . ‚â®à®¥ ¯à¥¤áâ ¢«ï¥â ᮡ®© ᮣ« 襭¨¥ ® ⮬,
®â®ª¨ ¢ á¥âïå
549
¨áã­®ª 27.1 27.1. ( ) ‘¥âì G = (V; E ), ®¯¨áë¢ î騥 ¢®§¬®¦­®á⨠¯¥à¥¢®§®ª
¯à®¤ãªæ¨¨ ä¨à¬ë "Š«¥­®¢ë¥ «¨áâìï". ˆá⮪ s | ä ¡à¨ª ¢ ‚ ­ªã¢¥à¥, á⮪ t
| ᪫ ¤ ¢ ‚¨­­¨¯¥£¥.  ª ¦¤®¬ ॡॠ­ ¯¨á ­® ¬ ªá¨¬ «ì­®¥ ç¨á«® ï騪®¢,
ª®â®àë¥ ¬®¦­® ®â¯à ¢¨âì ¢ ¤¥­ì. (b) à¨¬¥à ¯®â®ª f ¢ á¥â¨ G ¢¥«¨ç¨­ë 19.
®ª § ­ë ⮫쪮 ¯®«®¦¨â¥«ì­ë¥ §­ 祭¨ï f (u; v) > 0 (¯®á«¥ ª®á®© ç¥àâë á⮨â
¯à®¯ã᪭ ï ᯮᮡ­®áâì c(u;v).
çâ® ®âà¨æ ⥫ì­ë¥ ç¨á« ᮮ⢥âáâ¢ãîâ ¯®â®ªã ¢ ®¡à â­ãî
áâ®à®­ã. ˆ§ ­¥£® á«¥¤ã¥â â ª¦¥, çâ® f (u; u) = 0 ¤«ï «î¡®© ¢¥à設ë u (¯®«®¦¨¬ u = v). ’à¥âì¥ á¢®©á⢮ ®§­ ç ¥â, çâ® ¤«ï
«î¡®© ¢¥à設ë u (ªà®¬¥ á⮪ ¨ ¨á⮪ ) á㬬 ¯®â®ª®¢ ¢® ¢á¥
¤à㣨¥ ¢¥à設ë à ¢­ ­ã«î. “ç¨âë¢ ï ª®á®á¨¬¬¥âà¨ç­®áâì, íâ®
᢮©á⢮ ¬®¦­® ¯¥à¥¯¨á âì ª ª
X
f (u; v) = 0
u2V
(⥯¥àì ¯¥à¥¬¥­­ ï á㬬¨à®¢ ­¨ï ®¡®§­ 祭 u) ¨ ¯à®ç¥áâì â ª:
"á㬬 ¢á¥å ¯®â®ª®¢ ¨§ ¤àã£¨å ¢¥à設 à ¢­ ­ã«î".
‡ ¬¥â¨¬ â ª¦¥, çâ® ¥á«¨ ¢¥à設ë u ¨ v ­¥ ᮥ¤¨­¥­ë ॡ஬,
â® ¯®â®ª ¬¥¦¤ã ­¨¬¨, â® ¥áâì f (u; v), à ¢¥­ ­ã«î. „¥©á⢨⥫쭮, ¥á«¨ (u; v) 2= E ¨ (v; u) 2= E , â® c(u; v) = c(v; u) = 0. ’®£¤ ¨§ ¯¥à¢®£® ᢮©á⢠᫥¤ã¥â, çâ® f (u; v) 6 0 ¨ f (v; u) 6 0. ‚ᯮ¬¨­ ï, çâ® f (u; v) = ;f (v; u) (ª®á®á¨¬¬¥âà¨ç­®áâì), ¬ë ¢¨¤¨¬,
çâ® f (u; v) = f (v; u) = 0.
 §¤¥«¨¬ ¢¥é¥á⢮, ¯®áâ㯠î饥 ¢ ¤ ­­ãî ¢¥à設ã v ¨ ¢¥é¥á⢮, ¨§ ­¥ñ ¢ë室ï饥 (â® ¥áâì ¯®«®¦¨â¥«ì­ë¥ ¨ ®âà¨æ ⥫ì­ë¥ §­ 祭¨ï f (u; v)). ‘㬬ã
X
f (u; v ):
(27:2)
u2V
f (u;v)>0
­ §®¢ñ¬ ¢å®¤ï騬 (¢ ¢¥à設ã v) ¯®â®ª®¬. ‚ë室ï騩 ¯®â®ª
®¯à¥¤¥«ï¥âáï ᨬ¬¥âà¨ç­®. ’¥¯¥àì § ª®­ á®åà ­¥­¨ï ¯®â®ª ¬®¦­® áä®à¬ã«¨à®¢ âì â ª: ¤«ï «î¡®© ¢¥à設ë, ªà®¬¥ ¨á⮪ ¨ á⮪ , ¢å®¤ï騩 ¯®â®ª à ¢¥­ ¨á室ï饬ã.
à¨¬¥à á¥â¨
 áᬮâਬ ¯à¨¬¥à ­ à¨á. 27.1 ( ). Š®¬¯ ­¨ï "Š«¥­®¢ë¥ «¨áâìï" ¯à®¨§¢®¤¨â 宪ª¥©­ë¥ è ©¡ë ­ ä ¡à¨ª¥ ¢ ‚ ­ªã¢¥à¥
(¨á⮪ s) ¨ ᪫ ¤¨àã¥â ¨å ¢ ‚¨­­¨¯¥£¥ (á⮪ t). Ž­ ७¤ã¥â
¬¥áâ® ¢ £à㧮¢¨ª å ¤à㣮© ä¨à¬ë, ¨ ¬¥áâ® íâ® ®£à ­¨ç¥­®: ¨§ £®à®¤ u ¢ £®à®¤ v ¬®¦­® ¤®áâ ¢¨âì ­¥ ¡®«¥¥ c(u; v) ï騪®¢ ¢ ¤¥­ì.
Ž£à ­¨ç¥­¨ï c(u; v) ¯®ª § ­ë ­ à¨áã­ª¥. ‡ ¤ ç á®á⮨⠢ ⮬,
çâ®¡ë ¯¥à¥¢®§¨âì ¬ ªá¨¬ «ì­® ¢®§¬®¦­®¥ ª®«¨ç¥á⢮ è ©¡ ¨§
‚ ­ªã¢¥à ¢ ‚¨­­¨¯¥£ ¥¦¥¤­¥¢­®. à¨ í⮬ ¯ãâì ¬®¦¥â § ­¨¬ âì ­¥áª®«ìª® ¤­¥©, ¨ ï騪¨ ¬®£ãâ ¦¤ âì ®â¯à ¢ª¨ ¢ ¯à®¬¥¦ãâ®ç­ëå ¯ã­ªâ å, ­® ­¥®¡å®¤¨¬®, çâ®¡ë ¤«ï ª ¦¤®£® ¯ã­ªâ 550
ƒ« ¢ 27 Œ ªá¨¬ «ì­ë© ¯®â®ª
¨áã­®ª 27.2 27.2 ‘®ªà 饭¨¥. (a) ‚¥à設ë v1 ¨ v2 . ‡¤¥áì c(v1; v2 ) = 10 ¨
c(v2 ; v1 ) = 4. (b) …¦¥¤­¥¢­® 8 ï騪®¢ ¯¥à¥¢®§ïâ ¨§ v1 ¢ v2 . (c) „®¡ ¢¨«¨ ¢áâà¥ç­ë¥ ¯¥à¥¢®§ª¨ 3 ï騪®¢ ¢ ¤¥­ì ¨§ v2 ¢ v1 . (d) ‘®ªà ⨫¨ ¯à®â¨¢®¯®«®¦­ë¥
¯®â®ª¨ | ®áâ «®áì 5 ï騪®¢ ¢ ¤¥­ì. (¥) „®¡ ¢¨«¨ ¯¥à¥¢®§ªã ¥éñ 7 ï騪®¢ ¢
¤¥­ì ¨§ v2 ¢ v1 .
ç¨á«® ¥¦¥¤­¥¢­® ¯à¨¡ë¢ îé¨å ï騪®¢ ¡ë«® à ¢­® ç¨á«ã 㢮§¨¬ëå
(¨­ ç¥ ï騪®¢ ­¥ å¢ â¨â ¨«¨ ®­¨ ¡ã¤ãâ ­ ª ¯«¨¢ âìáï). ’¥¬ á ¬ë¬ ¢ë¯®«­¥­® ᢮©á⢮ á®åà ­¥­¨ï ¯®â®ª . ‚¥«¨ç¨­®© ¯®â®ª ¡ã¤¥â ç¨á«® è ©¡, ¥¦¥¤­¥¢­® ®â£à㦠¥¬ëå ¨§ ‚ ­ªã¢¥à , ¨ ­ á
¨­â¥à¥áã¥â ¯®â®ª ¬ ªá¨¬ «ì­®© ¢¥«¨ç¨­ë.
Ž¤¨­ ¨§ ¢®§¬®¦­ëå ¯®â®ª®¢ ¯®ª § ­ ­ à¨á.27.1(b). ˆ§ ¢¥à設ë u ¢ ¢¥à設ã v ¢ ¤¥­ì ®â¯à ¢«ï¥âáï f (u; v) ï騪®¢; ¥á«¨
f (u; v ) à ¢­® 0, ï騪¨ ­¥ ®â¯à ¢«ïîâáï; ®âà¨æ ⥫ì­ë¥ §­ 祭¨ï f (u; v) ᮮ⢥âáâ¢ãîâ ï騪 ¬, ¯à¨¡ë¢ î騬 ¢ u ¨§ v.
‚­¨¬ ⥫ì­ë© ç¨â â¥«ì ¬®£ 㦥 § ¬¥â¨âì, ç⮠ॠ«ì­ ï á¨âã æ¨ï ­¥ ¢¯®«­¥ ®¯¨áë¢ ¥âáï ­ 襩 ¬®¤¥«ìî. ˆ¬¥­­®, ­ è ¬®¤¥«ì ­¥ ãç¨âë¢ ¥â ¢áâà¥ç­ë¥ ¯¥à¥¢®§ª¨. …᫨ ¨§ ¢¥à設ë v1 ¢ v2
¥¦¥¤­¥¢­® ¢¥§ãâ ¢®á¥¬ì ï騪®¢, ¨§ v2 ¢ v1 ¥¦¥¤­¥¢­® ¢¥§ãâ âà¨
ï騪 , 祬㠤®«¦­ë ¡ëâì à ¢­ë f (v1; v2) ¨ f (v2; v1)? ( ¯®¬­¨¬,
çâ® í⨠¢¥«¨ç¨­ë ¤®«¦­ë ¡ëâì ¯à®â¨¢®¯®«®¦­ë.) Œë ¯®« £ ¥¬
f (v1 ; v2) = 8 ; 3 = 5, f (v2; v1) = ;5. ’¥ ¦¥ §­ 祭¨ï ä㭪樨
f ᮮ⢥âáâ¢ãîâ ¥¦¥¤­¥¢­ë¬ ¯¥à¥¢®§ª ¬ ¯ï⨠ï騪®¢ ¨§ v1 ¢
v2, â ª çâ® ¢ ­ 襩 ¬®¤¥«¨ ¢áâà¥ç­ë¥ ¯¥à¥¢®§ª¨ ¢â®¬ â¨ç¥áª¨ ᮪à é îâáï. ‚¯à®ç¥¬, ¨ ¢ ॠ«ì­®á⨠¢áâà¥ç­ë¥ ¯¥à¥¢®§ª¨
à §ã¬­® " ᮪à â¨âì" ¤àã£ á ¤à㣮¬, (íª®­®¬¨ª ¤®«¦­ ¡ëâì
íª®­®¬­®©), ¯à¨ í⮬ ¬¥áâ ­ £à㧮¢¨ª å ¯®­ ¤®¡¨âáï ⮫쪮
¬¥­ìè¥.
H à¨á. 27.2 ¯®ª § ­ ¯à¨¬¥à ᮪à 饭¨ï ¯®â®ª®¢ ¬¥¦¤ã ¢¥à設 ¬¨ v1 ¨ v2 (27.2 (a)). ‘­ ç « ¨§ v1 ¢ v2 ¢®§¨«¨ ¥¦¥¤­¥¢­® 8 ï騪®¢ (27.2 (b)). ‡ ⥬ áâ «¨ ¢®§¨âì 3 ï騪 ¢ ®¡à â­®¬ ­ ¯à ¢«¥­¨¨ (27.2 (c)), ¯®ª ­¥ ¤®£ ¤ «¨áì ¢¬¥áâ® í⮣® 㬥­ìè¨âì ç¨á«®
¯¥à¥¢®§¨¬ëå ¢ ®¡à â­ãî áâ®à®­ã ï騪®¢ ­ 3 (27.2 (d)). â¨ ¤¢¥
à §«¨ç­ë¥ (¢ ¦¨§­¨) á¨âã 樨 ᮮ⢥âáâ¢ãîâ ®¤­®© ¨ ⮩ ¦¥
ä㭪樨 f : ¢ ®¡®¨å á«ãç ïå f (v1; v2) = 5, f (v2; v1) = ;5. …᫨
⥯¥àì à㪮¢®¤á⢮ âॡã¥â ­ ç âì ¯¥à¥¢®§ª¨ ¤®¯®«­¨â¥«ì­ëå
7 ï騪®¢ ¢ ¤¥­ì ¨§ v2 ¢ v1 , â® ­ã¦­® ¯à¥¦¤¥ ¢á¥£® ®â¬¥­¨âì
¯¥à¥¢®§ª¨ 5 ï騪®¢ ¢ ®¡à â­ãî áâ®à®­ã, ¯®á«¥ 祣® ­ §­ ç¨âì
¯¥à¥¢®§ªã ¤®¯®«­¨â¥«ì­ëå 2 ï騪®¢ (27.2 (e)). ’¥¬ á ¬ë¬ âॡ®¢ ­¨¥ ¡ã¤¥â ¢ë¯®«­¥­® (­¥á¬®âàï ­ â®, ªáâ â¨, çâ® ¢ £à㧮¢¨ª å ¨§ v2 ¢ v1 ¥áâì ¬¥áâ ⮫쪮 ­ 4 ï騪 .
‘¥â¨ á ­¥áª®«ìª¨¬¨ ¨á⮪ ¬¨ ¨ á⮪ ¬¨
Œ®¦­® à áᬠâਢ âì § ¤ çã ® ¬ ªá¨¬ «ì­®¬ ¯®â®ª¥ ¤«ï á«ãç ï ­¥áª®«ìª¨å ¨á⮪®¢ ¨ á⮪®¢. Š®¬¯ ­¨ï "Š«¥­®¢ë¥ «¨áâìï"
¬®¦¥â ¨¬¥âì m ä ¡à¨ª fs1; s2; : : :sm g ¨ n ᪫ ¤®¢ ft1; t2; : : :; tng
(à¨á. 27.3 ( )). H® íâ® ­¥ ãá«®¦­ï¥â ¤¥« , ¯®â®¬ã çâ® â ª®©
®â®ª¨ ¢ á¥âïå
551
¨áã­®ª 27.3 27.3 ‡ ¤ ç ® ¬ ªá¨¬ «ì­®¬ ¯®â®ª ¤«ï ­¥áª®«ìª¨å ¨á⮪®¢ ¨
á⮪®¢ ᢮¤¨âáï ª ®¡ëç­®©. (a) ‘¥âì á ¯ïâìî ¨á⮪ ¬¨ S = fs1 ; s2 ; s3 ; s4 ; s5 g ¨
â६ï á⮪ ¬¨ T = ft1 ; t2 ; t3 g. (b) ‘®®®â¢¥âáâ¢ãîé ï á¥âì á ®¤­¨¬ ¨á⮪®¬ ¨
®¤­¨¬ á⮪®¬; ¤®¡ ¢«¥­­ë¥ àñ¡à ¨¬¥îâ ¡¥áª®­¥ç­ãî ¯à®¯ã᪭ãî ᯮᮡ­®áâì.
¢ ਠ­â ¯à®¡«¥¬ë ¬®¦­® ᢥá⨠ª ®¡ëç­®¬ã. H à¨á. 27.3 (b)
¯®ª § ­ íª¢¨¢ «¥­â­ ï á¥âì á ®¤­¨¬ ¨á⮪®¬ ¨ ®¤­¨¬ á⮪®¬. Œë ¤®¡ ¢¨«¨ ®¡é¨© ¨á⮪ (supersource) s, ¨§ ª®â®à®£® ¢¥¤ãâ àñ¡à ¡¥áª®­¥ç­®© ¯à®¯ã᪭®© ᯮᮡ­®á⨠¢® ¢á¥ ¯à¥¦­¨¥
¨á⮪¨ (c(s; si) = 1 ¯à¨ ¢á¥å i = 1; 2; : : :; m). €­ «®£¨ç­ë¬
®¡à §®¬ ¨§ ¢á¥å ¯à¥¦­¨å á⮪®¢ ¯à®¢¥¤¥­ë àñ¡à ¢ ®¡é¨© á⮪
(supersink) t. ‹¥£ª® ¢¨¤¥âì, çâ® ª ¦¤ë© ¯®â®ª ¢ á¥â¨ (a) ᮮ⢥âáâ¢ã¥â ¯®â®ªã ¢ á¥â¨ (b) ¨ ­ ®¡®à®â (ä®à¬ «ì­®¥ ¤®ª § ⥫ìá⢮ ®áâ ¢«ï¥âáï ç¨â â¥«î ¢ ª ç¥á⢥ ã¯à. 27.1-3)
Ž¡®§­ 祭¨ï
Œë ¡ã¤¥¬ ¨á¯®«ì§®¢ âì á«¥¤ãî饥 ᮣ« 襭¨¥: ¥á«¨ ¢ ¢ëà ¦¥­¨¨ ­ ¬¥á⥠¢¥à設ë á⮨⠬­®¦¥á⢮ ¢¥à設, â® ¨¬¥¥âáï ¢
¢¨¤ã á㬬 ¯® ¢á¥¬ í«¥¬¥­â ¬ í⮣® ¬­®¦¥á⢠( ­¥ï¢­®¥ á㬬¨à®¢ ­¨¥, inplicit summary notation). â® ®â­®á¨âáï ¨ ª á«ãç î
­¥áª®«ìª¨å ¯¥à¥¬¥­­ëå. H ¯à¨¬¥à, ¥á«¨ X ¨ Y | ¬­®¦¥á⢠¢¥à設, â®
XX
f (X; Y ) =
f (x; y ):
x2X y2Y
‚ íâ¨å ®¡®§­ 祭¨ïå § ª®­ á®åà ­¥­¨ï ¯®â®ª § ¯¨è¥âáï ª ª
f (u; V ) = 0 ¤«ï ¢á¥å u 2 V ; fs; tg. Šà®¬¥ ⮣®, ¢ ­¥ï¢­ëå á㬬 å
¬ë ®¯ã᪠¥¬ 䨣ãà­ë¥ ᪮¡ª¨ (­ ¯à¨¬¥à, ¢ à ¢¥­á⢥ f (s; V n s) =
f (s; V ) ᨬ¢®« V n s ®¡®§­ ç ¥â V n fsg.
‚®â ­¥áª®«ìª® ¯®«¥§­ëå ᢮©á⢠⠪¨å á㬬 (¤®ª § ⥫ìá⢮
¬ë ®áâ ¢«ï¥¬ ç¨â â¥«î ª ª ã¯à. 27.1-4):
‹¥¬¬ 27.1
ãáâì f | ¯®â®ª ¢ á¥â¨ G = (V; E ). ’®£¤ ¤«ï «î¡®£® X V
¢ë¯®«­¥­®
f (X; X ) = 0:
„«ï «î¡ëå X; Y V ¢ë¯®«­¥­®
f (X; Y ) = ;f (Y; X ):
„«ï «î¡ëå X; Y; Z V ¨§ X \ Y = ; á«¥¤ã¥â
f (X [ Y; Z ) = f (X; Z ) + f (Y; Z )
¨
f (Z; X [ Y ) = f (Z; X ) + f (Z; Y ):
„«ï ¯à¨¬¥à ¤®ª ¦¥¬ á ¨á¯®«ì§®¢ ­¨¥¬ â ª¨å ®¡®§­ 祭¨©,
çâ® ¢¥«¨ç¨­ ¯®â®ª à ¢­ á㬬¥ ¯®â®ª®¢ ¨§ ¢á¥å ¢¥à設 ¢ á⮪:
jf j = f (V; t):
(27:3)
552
ƒ« ¢ 27 Œ ªá¨¬ «ì­ë© ¯®â®ª
ˆ­âã¨â¨¢­® íâ® ïá­® (ªã¤ ¦ ¥¬ã ¥éñ ¤¥¢ âìáï), ­® ¬®¦­® ¯à®¢¥á⨠¨ ä®à¬ «ì­®¥ à áá㦤¥­¨¥. ‚®â ®­®:
® ®¯à¥¤¥«¥­¨î,
jf j = f (s; V )
à¨¬¥­ïï «¥¬¬ã 27.1, ¨¬¥¥¬
f (s; V ) = f (V; V ) ; f (V n s; V ) = f (V; V n s) = f (V; t) + f (V; V n s n t):
® § ª®­ã á®åà ­¥­¨ï ¯®â®ª ¢â®à®¥ á« £ ¥¬®¥ à ¢­® 0, ¨
®áâ ñâáï f (V; t).
Ž¡®¡é¥­¨¥ «¥¬¬ë 27.1 ¡ã¤¥â ¤®ª § ­® ­¨¦¥ («¥¬¬ 27.5)
“¯à ¦­¥­¨ï
27.1-1
‘«¥¤ãï ®¡à §æã à¨á. 27.2, ¨§®¡à §¨â¥ ¤¢¥ ¢¥à設ë u ¨ v, ¤«ï
ª®â®àëå c(u; v) = 5, c(v; u) = 8, ¨§ u ¢ v ¯¥à¥áë« îâáï 3 ¥¤¨­¨æë,
¨§ v ¢ u | 4. —¥¬ã à ¢¥­ ¯®â®ª ¨§ u ¢ v?
27.1-2
à®¢¥àìâ¥, çâ® äã­ªæ¨ï f à¨á.27.1 (b) ¤¥©á⢨⥫쭮 ï¥âáï ¯®â®ª®¬.
27.1-3
Š ª ¯à¨á¯®á®¡¨âì ®¯à¥¤¥«¥­¨¥ ¯®â®ª ¤«ï á«ãç ï ­¥áª®«ìª¨å
¨á⮪®¢ ¨ á⮪®¢? ®ª ¦¨â¥, çâ® § ¤ ç ® ¬ ªá¨¬ «ì­®¬ ¯®â®ª¥ ¤«ï â ª®£® á«ãç ï ᢮¤¨âáï ª ®¡ëç­®© á ¯®¬®éìî ®¯¨á ­­®£® ­ ¬¨ ¯à¨ñ¬ .
27.1-4
„®ª ¦¨â¥ «¥¬¬ã 27.1.
27.1-5
„«ï á¥â¨ G = (V; E ) ¨ ¯®â®ª f ­ à¨á.27.1 (b), 㪠¦¨â¥ ¯à¨¬¥à ¯®¤¬­®¦¥á⢠X; Y V , ¤«ï ª®â®àëå f (X; Y ) = ;f (V n X; Y ,
â ª¦¥ ¯®¤¬­®¦¥á⢠X; Y V , ¤«ï ª®â®àëå f (X; Y ) =
6 ;f (V n
X; Y .
27.1-6
ãáâì ¨¬¥¥âáï á¥âì G = (V; E ) ¨ ¤¢ ¯®â®ª f1 ¨ f2 ­ ­¥©.
 áᬮâਬ ¨å á㬬ã (äã­ªæ¨î ¨§ V V ¢ ):
(f1 + f2 )(u; v ) = f1 (u; v ) + f2(u; v )
(27:4)
Š ª¨¬ âॡ®¢ ­¨ï¬ ¨§ ®¯à¥¤¥«¥­¨ï ¯®â®ª ®­ 㤮¢«¥â¢®àï¥â
®¡ï§ ⥫쭮, ª ª¨¬ ¬®¦¥â ­¥ 㤮¢«¥â¢®àïâì?
R
27.1-7
®â®ª f ¬®¦­® 㬭®¦¨âì ­ ¢¥é¥á⢥­­®¥ ç¨á«® , ¯®«ã稢
äã­ªæ¨î
(f )(u; v ) = f (u; v )
„®ª ¦¨â¥, çâ® ¤«ï «î¡®© á¥â¨ ¬­®¦¥á⢮ ¯®â®ª®¢ ¢ë¯ãª«®.
â® §­ ç¨â, çâ® ¥á«¨ f1 ¨ f2 | ¯®â®ª¨, â® á㬬 f1 +(1 ; )f2
¯à¨ 0 6 6 1 ⮦¥ ï¥âáï ¯®â®ª®¬.
®â®ª¨ ¢ á¥âïå
553
27.1-8
‘ä®à¬ã«¨àã©â¥ § ¤ çã ® ¬ ªá¨¬ «ì­®¬ ¯®â®ª¥ ª ª § ¤ çã «¨­¥©­®£® ¯à®£à ¬¬¨à®¢ ­¨ï.
27.1-9
 áᬮâਬ á¥âì á ­¥áª®«ìª¨¬¨ ¢¥é¥á⢠¬¨ (multicommodity
ow network) ¢ ª®â®à®© ¨¬¥îâáï ¯®â®ª¨ p ¢¥é¥áâ¢, ¤«ï ª ¦¤®£®
¨§ ª®â®àëå ¥áâì ᢮© ¨á⮪ ¨ ᢮© á⮪. „«ï ª ¦¤®£® ¢¥é¥á⢠¥áâì ᢮© § ª®­ á®åà ­¥­¨ï ¯®â®ª , ¯à®¯ã᪭ ï ᯮᮡ­®áâì ®¤­ ­ ¢á¥å (á㬬 ¯®â®ª®¢ ¢á¥å ¢¥é¥á⢠¨§ u ¢ v ­¥
¤®«¦­ ¯à¥¢ëè âì c(u; v). „«ï ª ¦¤®£® ¢¥é¥á⢠¨¬¥¥âáï ᢮ï
¢¥«¨ç¨­ ¯®â®ª ; ᪫ ¤ë¢ ï í⨠¢¥«¨ç¨­ë, ¯®«ã稬 á㬬 à­ãî
¢¥«¨ç¨­ã (total ow value) ¯®â®ª . „®ª ¦¨â¥, çâ® ¯®â®ª ¬ ª-
ᨬ «ì­®© á㬬 à­®© ¢¥«¨ç¨­ë ¬®¦­® ­ ©â¨ § ¯®«¨­®¬¨ «ì­®¥
¢à¥¬ï, ¯à¥¤áâ ¢¨¢ íâã § ¤ çã ª ª § ¤ çã «¨­¥©­®£® ¯à®£à ¬¬¨à®¢ ­¨ï. (‹î¡ ï § ¤ ç «¨­¥©­®£® ¯à®£à ¬¬¨à®¢ ­¨ï à §à¥è¨¬ § ¯®«¨­®¬¨ «ì­®¥ ¢à¥¬ï: íâ®â ä ªâ ¬ë 㯮¬¨­ «¨ ¢ à §¤¥«¥ 25.5.)
㯯 ¤ áâ ¯® âਠç¨á« , ¡®«ìè¨å x, § ¤¢ã¬ï ¢®§¬®¦­ë¬¨ ¨áª«î祭¨ï¬¨: £à㯯 , ᮤ¥à¦ é ï x, ¨ ¯®á«¥¤­ïï ­¥¯®«­ ï £à㯯 . ’¥¬
á ¬ë¬ ¨¬¥¥âáï ­¥ ¬¥­¥¥
l m
3 1 n ; 2 > 3n ; 6:
2 5
10
í«¥¬¥­â®¢, § ¢¥¤®¬® ¡®«ìè¨å x, ¨ â®ç­® â ª ¦¥ ¯®«ãç ¥¬, çâ®
¨¬¥¥âáï ­¥ ¬¥­¥¥ 3n=10 ; 6 í«¥¬¥­â®¢, § ¢¥¤®¬® ¬¥­ìè¨å x. ‡­ ç¨â, «£®à¨â¬ Select, ४ãàᨢ­® ¢ë§ë¢ ¥¬ë© ­ ¯ï⮬ è £¥,
¡ã¤¥â ®¡à ¡ âë¢ âì ¬ áᨢ ¤«¨­®© ­¥ ¡®«¥¥ 7n=10 + 6.
ãáâì ⥯¥àì T (n) | ¢à¥¬ï à ¡®âë «£®à¨â¬ Select ­ ¬ áᨢ¥ ¨§ n í«¥¬¥­â®¢ ¢ åã¤è¥¬ á«ãç ¥. ¥à¢ë©, ¢â®à®© ¨ ç¥â¢¥àâë© è £¨ ¢ë¯®«­ïîâáï § ¢à¥¬ï O(n) (­ ¢â®à®¬ è £¥ ¬ë O(n)
à § á®àâ¨à㥬 ¬ áᨢë à §¬¥à®¬ O(1)), âà¥â¨© è £ ¢ë¯®«­ï¥âáï
§ ¢à¥¬ï ­¥ ¡®«¥¥ T (dn=5e), ¯ïâë© è £, ¯® ¤®ª § ­­®¬ã, | § ¢à¥¬ï, ­¥ ¯à¥¢®á室ï饥 T (b7n=10+6c) (ª ª ¨ à ­ìè¥, ¬®¦­® ¯à¥¤¯®« £ âì, çâ® T (n) ¬®­®â®­­® ¢®§à áâ ¥â á à®á⮬ n). ‘â «®
¡ëâì,
T (n) 6 T (dn=5e) + T (b7n=10 + 6c) + O(n):
®áª®«ìªã á㬬 ª®íää¨æ¨¥­â®¢ ¯à¨ n ¢ ¯à ¢®© ç á⨠(1=5 +
7=10 = 9=10) ¬¥­ìè¥ ¥¤¨­¨æë, ¨§ í⮣® ४ãà७⭮£® ᮮ⭮襭¨ï ¢ë⥪ ¥â, çâ® T (n) 6 cn ¤«ï ­¥ª®â®à®© ª®­áâ ­âë c.
â® ¬®¦­® ¤®ª § âì ¯® ¨­¤ãªæ¨¨. ‚ á ¬®¬ ¤¥«¥, ¯à¥¤¯®« £ ï,
çâ® T (m) 6 cm ¤«ï ¢á¥å m < n, ¨¬¥¥¬
T (n) 6 c(dn=5e) + c(b7n=10 + 6c) + O(n)
6 c(n=5 + 1) + c(7n=10 + 6) + O(n)
6 9cn=10 + 7c + O(n) =
= cn ; c(n=10 ; 7) + O(n):
554
ƒ« ¢ 27 Œ ªá¨¬ «ì­ë© ¯®â®ª
à¨ ¯®¤å®¤ï饬 ¢ë¡®à¥ c íâ® ¢ëà ¦¥­¨¥ ¡ã¤¥â ­¥ ¡®«ìè¥ cn ¯à¨
¢á¥å n > 70 (­ ¤®, ç⮡ë c(n=10 ; 6) ¯à¥¢®á室¨«® ª®íää¨æ¨¥­â,
¯®¤à §ã¬¥¢ ¥¬ë© ¢ O(n)). ’ ª¨¬ ®¡à §®¬, ¨­¤ãªâ¨¢­ë© ¯¥à¥å®¤
¢®§¬®¦¥­ ¯à¨ n > 70 (§ ¬¥â¨¬ ¥éñ, çâ® ¯à¨ â ª¨å n ¢ëà ¦¥­¨ï
dn=5e ¨ b7n=10 + 6c ¬¥­ìè¥ n).
“¢¥«¨ç¨¢ c ¥éñ (¥á«¨ ­ ¤®), ¬®¦­® ¤®¡¨âìáï ⮣®, ç⮡ë T (n)
­¥ ¯à¥¢®á室¨«® cn ¨ ¯à¨ ¢á¥å n 6 70, çâ® § ¢¥àè ¥â à áá㦤¥­¨¥
¯® ¨­¤ãªæ¨¨. ‘â «® ¡ëâì, «£®à¨â¬ Select à ¡®â ¥â § «¨­¥©­®¥ ¢à¥¬ï (¢ åã¤è¥¬ á«ãç ¥).
Žâ¬¥â¨¬, çâ® «£®à¨â¬ë Select ¨ Randomized-Select, ¢
®â«¨ç¨¥ ®â ®¯¨á ­­ëå ¢ £« ¢¥ 9 «£®à¨â¬®¢ á®àâ¨à®¢ª¨ § «¨­¥©­®¥ ¢à¥¬ï, ¨á¯®«ì§ãîâ ⮫쪮 ¯®¯ à­ë¥ áà ¢­¥­¨ï í«¥¬¥­â®¢
¬ áᨢ ¨ ¯à¨¬¥­¨¬ë ¤«ï ¯à®¨§¢®«ì­®£® 㯮à冷祭­®£® ¬­®¦¥á⢠. â¨ «£®à¨â¬ë ᨬ¯â®â¨ç¥áª¨ íä䥪⨢­¥¥ ®ç¥¢¨¤­®£®
¯®¤å®¤ "㯮àï¤®ç¨ ¬­®¦¥á⢮ ¨ ¢ë¡¥à¨ ­ã¦­ë© í«¥¬¥­â", ¯®áª®«ìªã ¢á直© «£®à¨â¬ á®àâ¨à®¢ª¨, ¨á¯®«ì§ãî騩 ⮫쪮 ¯®¯ à­ë¥ áà ¢­¥­¨ï, âॡã¥â ¢à¥¬¥­¨ (n lg n) ­¥ ⮫쪮 ¢ åã¤è¥¬
á«ãç ¥ (à §¤¥« 9.1), ­® ¨ ¢ á।­¥¬ (§ ¤ ç 9-1).
“¯à ¦­¥­¨ï
ã¤¥â «¨ «£®à¨â¬ Select à ¡®â âì § «¨­¥©­®¥ ¢à¥¬ï,
¥á«¨ à §¡¨¢ âì ¬ áᨢ ­ £àã¯¯ë ­¥ ¨§ ¯ïâ¨, ¨§ ᥬ¨ í«¥¬¥­â®¢? ®ª ¦¨â¥, çâ® ¤«ï £à㯯 ¨§ âàñå í«¥¬¥­â®¢ à áá㦤¥­¨¥
­¥ ¯à®å®¤¨â.
27.1-2 ãáâì x | "¬¥¤¨ ­ ¬¥¤¨ ­" ¢ «£®à¨â¬¥ Select (¬ áᨢ ᮤ¥à¦¨â n í«¥¬¥­â®¢). ®ª ¦¨â¥, çâ® ¯à¨ n > 38 ª®«¨ç¥á⢮ í«¥¬¥­â®¢, ¡®«ìè¨å x (â ª ¦¥ ª ª ¨ ª®«¨ç¥á⢮ í«¥¬¥­â®¢,
¬¥­ìè¨å x) ­¥ ¬¥­ìè¥ dn=4e.
27.1-3 Œ®¤¨ä¨æ¨àã©â¥ «£®à¨â¬ ¡ëáâன á®àâ¨à®¢ª¨ â ª,
çâ®¡ë ®­ à ¡®â « § ¢à¥¬ï O(n lg n) ¢ åã¤è¥¬ á«ãç ¥.
27.1-4? ãáâì «£®à¨â¬ ¢ë¡®à i-£® ¯® áçñâã í«¥¬¥­â ¨á¯®«ì§ã¥â ⮫쪮 ¯®¯ à­ë¥ áà ¢­¥­¨ï. ®ª ¦¨â¥, çâ® á ¯®¬®éìî â¥å
¦¥ áà ¢­¥­¨© ¬®¦­® ¢ ª ç¥á⢥ ¯®¡®ç­®£® १ã«ìâ â ¯®«ãç¨âì
ᯨ᪨ í«¥¬¥­â®¢, ¬¥­ìè¨å ¨áª®¬®£®, â ª¦¥ ¡®«ìè¨å ¨áª®¬®£®.
27.1-5 ãáâì ã ­ á ¥áâì ª ª®©-â® «£®à¨â¬, ­ 室ï騩 ¬¥¤¨ ­ã § «¨­¥©­®¥ ¢ åã¤è¥¬ á«ãç ¥ ¢à¥¬ï. ˆá¯®«ì§ãï ¥£® ¢ ª ç¥á⢥
¯®¤¯à®£à ¬¬ë, à §à ¡®â ©â¥ ¯à®á⮩ «£®à¨â¬, à¥è î騩 § ¤ çã ­ 宦¤¥­¨ï ¯à®¨§¢®«ì­®© ¯®à浪®¢®© áâ â¨á⨪¨ § «¨­¥©­®¥ ¢à¥¬ï.
27.1-1
®â®ª¨ ¢ á¥âïå
555
¨áã­®ª 27.4 Š ª ¯à®¢¥áâ¨ á ¢®á⮪ ­ § ¯ ¤ ¬ £¨áâà «ì, ç⮡ë á㬬 à­ ï
¤«¨­ ¯®¤¢®¤ïé¨å âàã¡®¯à®¢®¤®¢ ¡ë« ¬¨­¨¬ «ì­ ?
®¤ k-ª¢ ­â¨«ï¬¨ (k-th quantiles) ¬­®¦¥á⢠¨§ n ç¨á¥«
¬ë ¯®­¨¬ ¥¬ k ; 1 ¥£® í«¥¬¥­â®¢, ®¡« ¤ îé¨å á«¥¤ãî騬 ᢮©á⢮¬: ¥á«¨ à ᯮ«®¦¨âì í«¥¬¥­âë ¬­®¦¥á⢠¢ ¯®à浪¥ ¢®§à áâ ­¨ï, â® ª¢ ­â¨«¨ ¡ã¤ãâ à §¡¨¢ âì ¬­®¦¥á⢮ ­ k à ¢­ëå (â®ç­¥¥, ®â«¨ç îé¨åáï ­¥ ¡®«¥¥ 祬 ­ ®¤¨­ í«¥¬¥­â) ç á⥩.  §à ¡®â ©â¥ «£®à¨â¬, ª®â®àë© § ¢à¥¬ï O(n lg k) ­ 室¨â k-ª¢ ­â¨«¨ ¤ ­­®£® ¬­®¦¥á⢠.
27.1-7  §à ¡®â ©â¥ «£®à¨â¬, ª®â®àë© ¯® § ¤ ­­®¬ã k ­ 室¨â ¢ ¤ ­­®¬ ¬­®¦¥á⢥ S ¥£® k í«¥¬¥­â®¢, ¬¥­¥¥ ¢á¥£® ®âáâ®ïé¨å ®â ¬¥¤¨ ­ë. —¨á«® ®¯¥à 権 ¤®«¦­® ¡ëâì O(jS j).
27.1-8 ãáâì X [1 : :n] ¨ Y [1 : :n] | ¤¢ ¢®§à áâ îé¨å ¬ áᨢ .
 §à ¡®â ©â¥ «£®à¨â¬, ­ 室ï騩 § ¢à¥¬ï O(lg n) ¬¥¤¨ ­ã
¬­®¦¥á⢠, ¯®«ã祭­®£® ®¡ê¥¤¨­¥­¨¥¬ í«¥¬¥­â®¢ íâ¨å ¬ áᨢ®¢.
27.1-9 à®ä¥áá®à ª®­áã«ìâ¨àã¥â ­¥äâï­ãî ª®¬¯ ­¨î, ª®â®à®©
âॡã¥âáï ¯à®¢¥á⨠¬ £¨áâà «ì­ë© ­¥ä⥯஢®¤ ¢ ­ ¯à ¢«¥­¨¨
áâண® á § ¯ ¤ ­ ¢®á⮪ ç¥à¥§ ­¥ä⥭®á­®¥ ¯®«¥, ­ ª®â®à®¬
à ᯮ«®¦¥­ë n ­¥äâï­ëå ᪢ ¦¨­. Žâ ª ¦¤®© ᪢ ¦¨­ë ­¥®¡å®¤¨¬® ¯®¤¢¥á⨠ª ¬ £¨áâà «¨ âàã¡®¯à®¢®¤ ¯® ªà âç ©è¥¬ã ¯ãâ¨
(áâண® ­ ᥢ¥à ¨«¨ ­ î£, à¨á. 10.2). Š®®à¤¨­ âë ¢á¥å ᪢ ¦¨­ ¯à®ä¥áá®àã ¨§¢¥áâ­ë; ­¥®¡å®¤¨¬® ¢ë¡à âì ¬¥á⮯®«®¦¥­¨¥
¬ £¨áâà «¨, ç⮡ë á㬬 ¤«¨­ ¢á¥å âàã¡®¯à®¢®¤®¢, ¢¥¤ãé¨å ®â
᪢ ¦¨­ ª ¬ £¨áâà «¨, ¡ë« ¬¨­¨¬ «ì­ . ®ª ¦¨â¥, çâ® ®¯â¨¬ «ì­®¥ ¬¥áâ® ¤«ï ¬ £¨áâà «¨ ¬®¦­® ­ ©â¨ § «¨­¥©­®¥ ¢à¥¬ï.
27.1-6
556
ƒ« ¢ 27 Œ ªá¨¬ «ì­ë© ¯®â®ª
‡ ¤ ç¨
27-1 ‘®àâ¨à®¢ª i ­ ¨¡®«ìè¨å í«¥¬¥­â®¢
„ ­® ¬­®¦¥á⢮ ¨§ n ç¨á¥«; âॡã¥âáï ¢ë¡à âì ¨§ ­¨å i ­ ¨¡®«ìè¨å ¨ ®âá®àâ¨à®¢ âì (¯®«ì§ãïáì ⮫쪮 ¯®¯ à­ë¬¨ áà ¢­¥­¨ï¬¨). „«ï ª ¦¤®£® ¨§ ¯à¨¢¥¤¥­­ëå ­¨¦¥ ¯®¤å®¤®¢ à §à ¡®â ©â¥ ᮮ⢥âáâ¢ãî騩 «£®à¨â¬ ¨ ¢ëïá­¨â¥, ª ª § ¢¨á¨â ®â
n ¨ i ¢à¥¬ï à ¡®âë íâ¨å «£®à¨â¬®¢ ¢ åã¤è¥¬ á«ãç ¥.
Žâá®àâ¨à®¢ âì ¢á¥ ç¨á« ¨ ¢ë¯¨á âì i ­ ¨¡®«ìè¨å.
¡ ®¬¥áâ¨âì ç¨á« ¢ ®ç¥à¥¤ì á ¯à¨®à¨â¥â ¬¨ ¨ ¢ë§¢ âì i à §
¯à®æ¥¤ãàã Extract-Max.
¢  ©â¨ á ¯®¬®éìî «£®à¨â¬ à §¤¥« 10.3 i-¥ ¯® ¢¥«¨ç¨­¥ ç¨á«®
(áç¨â ï ®â ­ ¨¡®«ì襣®), à §¡¨âì ¬ áᨢ ®â­®á¨â¥«ì­® ­¥£® ¨
®âá®àâ¨à®¢ âì i ­ ¨¡®«ìè¨å ç¨á¥«.
27-2 ‚§¢¥è¥­­ ï ¬¥¤¨ ­ ãáâì ¤ ­® n à §«¨ç­ëå ç¨á¥« x1; : : :; xn, ¨ ¯ãáâì ª ¦¤®¬ã xi
ᮯ®áâ ¢«¥­® ¯®«®¦¨â¥«ì­®¥ ç¨á«® ("¢¥á") wi, ¯à¨çñ¬ á㬬 ¢á¥å
¢¥á®¢ à ¢­ 1. ‚§¢¥è¥­­®© ¬¥¤¨ ­®© (weighted median) ­ §ë¢ ¥âáï
â ª®¥ ç¨á«® xk , çâ®
X
xi <xk
wi 6 12
¨
X
xi >xk
wi 6 12 :
®ª ¦¨â¥, çâ® ¥á«¨ ¢á¥ ¢¥á à ¢­ë 1=n, â® ¢§¢¥è¥­­ ï ¬¥¤¨ ­ ᮢ¯ ¤ ¥â á ®¡ëç­®©.
¡ Š ª ­ ©â¨ ¢§¢¥è¥­­ãî ¬¥¤¨ ­ã n ç¨á¥« á ¯®¬®éìî á®àâ¨à®¢ª¨
§ ¢à¥¬ï O(n lg n) ¢ åã¤è¥¬ á«ãç ¥?
¢ Š ª ¬®¤¨ä¨æ¨à®¢ âì «£®à¨â¬ Select (à §¤¥« 10.3), çâ®¡ë ®­
¨áª « ¢§¢¥è¥­­ãî ¬¥¤¨ ­ã § ¢à¥¬ï (n) ¢ åã¤è¥¬ á«ãç ¥?
‡ ¤ ç ® ¢ë¡®à¥ ¬¥áâ ¤«ï ¯®çâë (post-oce location problem) á®á⮨⠢ á«¥¤ãî饬. „ ­® n â®ç¥ª p1; : : :; pn ¨ n ¯®«®¦¨â¥«ì­ëå
¢¥á®¢ w1; : : :; wn; âॡã¥âáï ­ ©â¨ â®çªã p (­¥ ®¡ï§ ⥫쭮
ᮢ¯ ¤ îéãî á ®¤­®© ¨§ pi), ¤«ï ª®â®à®© ¢ëà ¦¥­¨¥ Pni=1 wid(p; pi)
¡ã¤¥â ¬¨­¨¬ «ì­® (ç¥à¥§ d(a; b) ®¡®§­ ç ¥âáï à ááâ®ï­¨¥ ¬¥¦¤ã
â®çª ¬¨ a ¨ b).
¤ ®ª ¦¨â¥, çâ® ¢ ®¤­®¬¥à­®¬ á«ãç ¥ (â®çª¨ | ¢¥é¥á⢥­­ë¥
ç¨á« , d(a; b) = ja ; bj) ¢§¢¥è¥­­ ï ¬¥¤¨ ­ ¡ã¤¥â à¥è¥­¨¥¬ í⮩
§ ¤ ç¨.
¥  ©¤¨â¥ ®¯â¨¬ «ì­®¥ à¥è¥­¨¥ ¢ ¤¢ã¬¥à­®¬ á«ãç ¥ (â®çª¨ |
¯ àë ¢¥é¥á⢥­­ëå ç¨á¥«), ¥á«¨ à ááâ®ï­¨¥ ¬¥¦¤ã â®çª ¬¨ a =
(x1; y1) ¨ b = (x2; y2) § ¤ ¥âáï "¢ L1-¬¥âਪ¥": d(a; b) = jx1 ;
x2j + jy1 ; y2 j ( ¬¥à¨ª ­æë ­ §ë¢ îâ â ªãî ¬¥âਪã Manhattan
‡ ¬¥ç ­¨ï ª £« ¢¥ 10
557
distance, ¯® ­ §¢ ­¨î à ©®­ ìî-‰®àª , à §¡¨â®£® ã«¨æ ¬¨ ­ ¯àאַ㣮«ì­ë¥ ª¢ àâ «ë)
27-3  宦¤¥­¨¥ i-£® ¯® ¢¥«¨ç¨­¥ í«¥¬¥­â ¯à¨ ¬ «ëå i
ãáâì T (n) | ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë Select, ¯à¨¬¥­¥­­®© ª
¬ áᨢ㠨§ n ç¨á¥«; ¢ åã¤è¥¬ á«ãç ¥ T (n) = (n), ­® ª®íää¨æ¨¥­â
¯à¨ n, ¯®¤à §ã¬¥¢ ¥¬ë© ¢ í⮬ ®¡®§­ 祭¨¨, ¤®¢®«ì­® ¢¥«¨ª. …᫨
i ¬ «® ¯® áà ¢­¥­¨î á n, â® ®â®¡à âì i-ë© ¯® ¢¥«¨ç¨­¥ í«¥¬¥­â
¬®¦­® ¡ëáâ॥.
Ž¯¨è¨â¥ «£®à¨â¬, ª®â®àë© ­ 室¨â i-© ¯® ¢¥«¨ç¨­¥ í«¥¬¥­â
¢ ¬­®¦¥á⢥ ¨§ n ç¨á¥«, ¤¥« ï Ui(n) áà ¢­¥­¨©, ¯à¨çñ¬
(
n 6 2i,
Ui(n) = Tn=(2n)+ U (bn=2c) + T (2i + 1) ¥á«¨
¨­ ç¥.
i
(“ª § ­¨¥: ᤥ« ©â¥ bn=2c ¯®¯ à­ëå áà ¢­¥­¨© ¨ ®â¡¥à¨â¥ i ­ ¨¬¥­ìè¨å á।¨ ¬¥­ìè¨å í«¥¬¥­â®¢ ¯ à.)
¡ ®ª ¦¨â¥, çâ® Ui (n) = n + O(T (2i) log(n=i)).
¢ ®ª ¦¨â¥, çâ®, ¯à¨ ¯®áâ®ï­­®¬ i, ¨¬¥¥¬ Ui (n) = n + O(lg n).
[’ ¦¥ ®æ¥­ª ¯®«ãç¨âáï, ¥á«¨ ¯®áâநâì ªãçã ¨§ £« ¢ë 7, § ⥬ i à § ¢ë¡à âì ¨§ ­¥ñ ¬¨­¨¬ «ì­ë© í«¥¬¥­â.]
£ ãáâì i = n=k, ¯à¨çñ¬ k > 2; ¯®ª ¦¨â¥, çâ® Ui (n) = n +
O(T (2n=k) lg k).
‡ ¬¥ç ­¨ï
€«£®à¨â¬ ¤«ï ­ 宦¤¥­¨ï ¬¥¤¨ ­ë § «¨­¥©­®¥ ¢ åã¤è¥¬ á«ãç ¥
¢à¥¬ï ¯à¥¤«®¦¨«¨ «î¬, ”«®©¤, à ââ, ¨¢¥áâ ¨ ’ àìï­ [29].
‚¥à®ïâ­®áâ­ë© «£®à¨â¬ á «¨­¥©­ë¬ á।­¨¬ ¢à¥¬¥­¥¬ à ¡®âë
¯à¨­ ¤«¥¦¨â •® àã [97]. ”«®©¤ ¨ ¨¢¥áâ [70] à §à ¡®â «¨ ãᮢ¥à襭á⢮¢ ­­ãî ¢¥àá¨î í⮣® «£®à¨â¬ , ¢ ª®â®à®© £à ­¨æ à §¡¨¥­¨ï ®¯à¥¤¥«ï¥âáï ¯® ­¥¡®«ì让 á«ãç ©­®© ¢ë¡®àª¥.
27.2 Œ¥â®¤ ”®à¤ {” «ª¥àá®­ ‚ í⮬ à §¤¥«¥ ¬ë à áᬮâਬ ¬¥â®¤ ”®à¤ {” «ª¥àá®­ ®âë᪠­¨ï ¬ ªá¨¬ «ì­®£® ¯®â®ª . Œë £®¢®à¨¬ ® ¬¥â®¤¥, ­¥
®¡ «£®à¨â¬¥, ¯®áª®«ìªã ¥áâì ­¥áª®«ìª® «£®à¨â¬®¢, ¥£® ॠ«¨§ãîé¨å ¨ ®â«¨ç îé¨åáï ¢à¥¬¥­¥¬ à ¡®âë. Ž¤­ ¨§ â ª¨å
ॠ«¨§ 権 ¯à¨¢¥¤¥­ ¢ ª®­æ¥ à §¤¥« . Š«î祢ãî à®«ì ¢ ¬¥â®¤¥
”®¤ {” «ª¥àá®­ ¨£à îâ âਠ¯®­ïâ¨ï: ®áâ â®ç­ë¥ á¥â¨, ¤®¯®«­ïî騥 ¯ã⨠¨ à §à¥§ë. Žá­®¢­ ï ⥮६ | ⥮६ 27.7 ®
¬ ªá¨¬ «ì­®¬ ¯®â®ª¥ ¨ ¬¨­¨¬ «ì­®¬ à §à¥§¥.
558
ƒ« ¢ 27 Œ ªá¨¬ «ì­ë© ¯®â®ª
®¨áª ¬ ªá¨¬ «ì­®£® ¯®â®ª ¬¥â®¤®¬ ”®à¤ {” «ª¥àá®­ ¯à®¢®¤¨âáï ¯®á«¥¤®¢ ⥫쭮. ‚­ ç «¥ ¯®â®ª ­ã«¥¢®© (¨ ¢¥«¨ç¨­ ¥£®
à ¢­ ­ã«î).  ª ¦¤®¬ è £¥ ¬ë 㢥«¨ç¨¢ ¥¬ §­ 祭¨¥ ¯®â®ª .
„«ï í⮣® ¬ë ­ 室¨¬ "¤®¯®«­ïî騩 ¯ãâì", ¯® ª®â®à®¬ã ¬®¦­®
¯à®¯ãáâ¨âì ¥éñ ­¥¬­®£® ¢¥é¥á⢠, ¨ ¨á¯®«ì§ã¥¬ ¥£® ¤«ï 㢥«¨ç¥­¨ï ¯®â®ª . â®â è £ ¯®¢â®àï¥âáï, ¯®ª ¥áâì ¤®¯®«­ïî騥
¯ãâ¨. Š ª ¯®ª ¦¥â ⥮६ ® ¬ ªá¨¬ «ì­®¬ ¯®â®ª¥ ¨ ¬¨­¨¬ «ì­®¬ à §à¥§¥, ¯®«ã祭­ë© ¯®â®ª ¡ã¤¥â ¬ ªá¨¬ «ì­ë¬. ‡ ¯¨è¥¬
íâ®â ¯« ­ á ¯®¬®éìî ¯á¥¢¤®ª®¤ :
Ford-Fulkerson-Method($G,s,t$)
1 ¯®«®¦¨âì ¯®â®ª $f$ à ¢­ë¬ $0$
2 while (¯®ª ) áãé¥áâ¢ã¥â ¤®¯®«­ïî騩 ¯ãâì $p$
3 do ¤®¯®«­¨âì $f$ ¢¤®«ì $p$
4 return $f$
Žáâ â®ç­ë¥ á¥â¨
ãáâì ¤ ­ á¥âì ¨ ¯®â®ª ¢ ­¥©. ¥ä®à¬ «ì­® £®¢®àï, ®áâ â®ç­ ï á¥âì á®á⮨⠨§ â¥å àñ¡¥à, ¯®â®ª ¯® ª®â®àë¬ ¬®¦­® 㢥«¨ç¨âì. ‘âண®¥ ®¯à¥¤¥«¥­¨¥ â ª®¢®: ¯ãáâì G = (V; E ) | á¥âì
á ¨á⮪®¬ s ¨ á⮪®¬ t. ãáâì f | ¯®â®ª ¢ í⮩ á¥â¨. „«ï
«î¡®© ¯ àë ¢¥à設 u ¨ v. à áᬮâਬ ®áâ â®ç­ãî ¯à®¯ã᪭ãî
ᯮᮡ­®áâì (residual capacity) ¨§ u ¢ v, ®¯à¥¤¥«ï¥¬ãî ª ª
cf (u; v ) = c(u; v) ; f (u; v):
(27:5)
Ž­ ®¯à¥¤¥«ï¥â, ᪮«ìª® ¥éñ ¯®â®ª ¬®¦­® ­ ¯à ¢¨âì ¨§ u ¢ v.
H ¯à¨¬¥à, ¥á«¨ c(u; v ) = 16, f (u; v ) = 11 â® ¬ë ¬®¦¥¬ ¯¥à¥á« âì
¥éñ cf (u; v) = 5 ¥¤¨­¨æ ¯® ॡàã (u; v). Žáâ â®ç­ ï ¯à®¯ã᪭ ï
ᯮᮡ­®áâì cf (u; v) ¬®¦¥â ¯à¥¢®á室¨âì c(u; v), ¥á«¨ ¢ ¤ ­­ë©
¬®¬¥­â ¯®â®ª f (u; v) ®âà¨æ ⥫¥­. H ¯à¨¬¥à, ¥á«¨ c(u; v) = 16,
f (u; v) = ;4, â® cf (u; v) = 20. ‚ á ¬®¬ ¤¥«¥, ¬ë ¬®¦¥¬ 㢥«¨ç¨âì ¯®â®ª ­ 4, ®â¬¥­¨¢ ¢áâà¥ç­ë© ¯®â®ª, ¨ ¥éñ ®â¯à ¢¨âì
16 ¥¤¨­¨æ, ­¥ ¯à¥¢ëè ï ¯à®¯ã᪭®© ᯮᮡ­®á⨠ॡà (u; v ).
‘¥âì Gf = (V; Ef , £¤¥
Ef = f(u; v ) 2 V V : cf (u; v) > 0g
­ §®¢ñ¬ ®áâ â®ç­®© á¥âìî (residual network) á¥â¨ G, ¯®à®¦¤ñ­­®©
¯®â®ª®¬ f . …ñ àñ¡à , ­ §ë¢ ¥¬ë¥ ®áâ â®ç­ë¬¨ àñ¡à ¬¨ (residual
edges) ¤®¯ã᪠îâ ¯®«®¦¨â¥«ì­ë© ¯®â®ª. H à¨á. 27.4 (a) ¨§®¡à ¦¥­ ¯®â®ª f ¢ á¥â¨ G (¢§ïâë© á à¨á. 27.1 (b)), ­ à¨á. 27.4 (b)
¨§®¡à ¦¥­ ®áâ â®ç­ ï á¥âì Gf .
‡ ¬¥â¨¬, çâ® ®áâ â®ç­®¥ ॡ஠(u; v) ­¥ ®¡ï§ ­® ¡ëâì ॡ஬
á¥â¨ G. ˆ­ë¬¨ á«®¢ ¬¨, ¬®¦¥â ®ª § âìáï, çâ® Ef 6 E . ñ¡¥à
Œ¥â®¤ ”®à¤ {” «ª¥àá®­ 559
(v1; s) ¨ v2 ; v3) ­ à¨á. 27.4 (b) ­¥ ¡ë«® ¢ ¨á室­®© á¥â¨. ’ ª®¥
ॡ஠¨§ u ¢ v ¯®ï¢«ï¥âáï, ª®£¤ f (u; v) < 0, â® ¥áâì ª®£¤ ¨¬¥¥âáï ¨¬¥¥âáï ¯®â®ª ¢¥é¥á⢠¢ ®¡à â­®¬ ­ ¯à ¢«¥­¨¨ (¯® ॡàã (v; u)) | ¢¥¤ì íâ®â ¯®â®ª ¬®¦­® 㬥­ìè¨âì. ’ ª¨¬ ®¡à §®¬, ¥á«¨ ॡ஠(u; v) ¯à¨­ ¤«¥¦¨â ®áâ â®ç­®© á¥â¨, â® å®âï
¡ë ®¤­® ¨§ àñ¡¥à (u; v) ¨ (v; u) ¡ë«® ¢ ¨á室­®© á¥â¨. ®«ãç ¥¬
®æ¥­ªã
jEf j 6 2jE j:
Žáâ â®ç­ ï á¥âì Gf ï¥âáï á¥âìî á ¯à®¯ã᪭묨 ᯮᮡ­®áâﬨ cf . ‘«¥¤ãîé ï «¥¬¬ ¯®ª §ë¢ ¥â, ª ª ᮮ⭮áïâáï ¯®â®ª¨ ¢ ¨á室­®© ¨ ¢ ®áâ â®ç­®© á¥âïå.
‹¥¬¬ 27.2
ãáâì G = (V; E ) | á¥âì á ¨á⮪®¬ s ¨ á⮪®¬ t, f | ¯®â®ª ¢ ­¥©. ãáâì Gf | ®áâ â®ç­ ï á¥âì á¥â¨ G, ¯®à®¦¤ñ­­ ï ¯®â®ª®¬ f . ãáâì f 0 | ¯®â®ª ¢ Gf . ’®£¤ á㬬 f + f 0,
®¯à¥¤¥«¥­­ ï ª ª ¢ (27.4), ï¥âáï ¯®â®ª®¬ ¢ á¥â¨ G ¢¥«¨ç¨­ë
jf + f 0j = jf j + jf 0j.
„®ª § ⥫ìá⢮
‘­ ç « ¤®ª ¦¥¬, çâ® f + f 0 ¡ã¤¥â ¯®â®ª®¬. à®¢¥à¨¬ ª®á®á¨¬¬¥âà¨ç­®áâì. „«ï ¢á¥å u; v 2 V ¢ë¯®«­¥­®
(f + f 0 )(u; v ) = f (u; v ) + f 0 (u; v ) =
= ;f (v; u) ; f 0 (v; u) =
= ;(f (v; u) + f 0 (v; u)) =
= ;(f + f 0 )(v; u):
à®¢¥à¨¬ ãá«®¢¨¥, á¢ï§ ­­®¥ á ®£à ­¨ç¥­­®© ¯à®¯ã᪭®© ᯮᮡ­®áâìî. ‡ ¬¥â¨¬, çâ® f 0(u; v) 6 cf (u; v) ¤«ï ¢á¥å u; v 2 V , ¯®í⮬ã
(f + f 0 )(u; v ) = f (u; v )+ f 0(u; v ) 6 f (u; v )+(c(u; v ) ; f (u; v)) = c(u; v ):
à®¢¥à¨¬ § ª®­ á®åà ­¥­¨ï ¯®â®ª . „«ï ¢á¥å u 2 V n fs; tg ¢ë¯®«­¥­® à ¢¥­á⢮ (f + f 0)(u; V ) = f (u; V ) + f 0(u; V ) = f (u; V ) +
f 0(u; V ) = 0 + 0 = 0:
 ª®­¥æ, ­ ©¤ñ¬ ¢¥«¨ç¨­ã á㬬 à­®£® ¯®â®ª : jf + f 0j = (f +
0
f )(s; V ) = f (s; V ) + f 0 (s; V ) = jf j + jf 0j:
„®¯®«­ïî騥 ¯ãâ¨
ãáâì f | ¯®â®ª ¢ á¥â¨ G = (V; E ). H §®¢ñ¬ ¤®¯®«­ïî騬
¯ãâñ¬ (augmenting path) ¯à®á⮩ ¯ãâì ¨§ ¨á⮪ s ¢ á⮪ t ¢
®áâ â®ç­®© á¥â¨ Gf . ˆ§ ®¯à¥¤¥«¥­¨ï ®áâ â®ç­®© á¥â¨ ¢ë⥪ ¥â, çâ® ¯® ¢á¥¬ à¥¡à ¬ (u; v) ¤®¯®«­ïî饣® ¯ã⨠¬®¦­® ¯¥à¥á« âì ¥éñ ᪮«ìª®-â® ¢¥é¥á⢠, ­¥ ¯à¥¢ëᨢ ¯à®¯ã᪭ãî ᯮᮡ­®áâì ॡà .
560
ƒ« ¢ 27 Œ ªá¨¬ «ì­ë© ¯®â®ª
¨áã­®ª 27.5 27.4 (a) ®â®ª f ¢ á¥â¨ G (ª ª ­ à¨á. 27.1). (b) Žáâ â®ç­ ï á¥âì
Gf . ‚뤥«¥­ ¤®¯®«­ïî騩 ¯ãâì p. …£® ®áâ â®ç­ ï ¯à®¯ã᪭ ï ᯮᮡ­®áâì cf (p)
à ¢­ c(v2 ; v3 ) = 4. (c) ¥§ã«ìâ â ¤®¡ ¢«¥­¨ï ¯®â®ª ¢¥«¨ç¨­ë 4, ¯à®å®¤ï饣®
¢¤®«ì ¯ã⨠p. (d) Žáâ â®ç­ ï á¥âì, ¯®à®¦¤ñ­­ ï ¯®â®ª®¬ à¨á. (c).
H à¨á. 27.4 (b) ¤®¯®«­ïî騩 ¯ãâì ¢ë¤¥«¥­ á¥àë¬ æ¢¥â®¬. ®
­¥¬ã ¬®¦­® ®â¯à ¢¨âì ¥é¥ 4 ¥¤¨­¨æë ¯®â®ª , â ª ª ª ­ ¨¬¥­ìè ï ®áâ â®ç­ ï ¯à®¯ã᪭ ï ᯮᮡ­®áâì àñ¡¥à í⮣® ¯ãâ¨ à ¢­ c(v2; v3) = 4. ‚¥«¨ç¨­ã ­ ¨¡®«ì襣® ¯®â®ª , ª®â®àë© ¬®¦­® ¯¥à¥á« âì ¯® ¤®¯®«­ïî饬㠯ã⨠p, ­ §®¢ñ¬ ®áâ â®ç­®© ¯à®¯ã᪭®©
ᯮᮡ­®áâìî (residual capacity) ¯ã⨠p:
cf (p) = minfcf (u; v) : (u; v ) 2 pg
‘ª § ­­®¥ ãâ®ç­ï¥âáï ¢ á«¥¤ãî饩 «¥¬¬¥ (¤®ª § ⥫ìá⢮ ¬ë
®áâ ¢«ï¥¬ ç¨â â¥«î ¢ ª ç¥á⢥ ã¯à. 27.2-3).
‹¥¬¬ 27.3
ãáâì f | ¯®â®ª ¢ á¥â¨ G = (V; E ) ¨ p | ¤®¯®«­ïî騩 ¯ãâì
¢ Gf . Ž¯à¥¤¥«¨¬ äã­ªæ¨î fp : V V ! â ª:
8
>
< cf (p); ¥á«¨ (u; v ) 2 p
fp (u; v) = > ;cf (p); ¥á«¨ (v; u) 2 p
(27:6)
:
0 ¢ ®áâ «ì­ëå á«ãç ïå.
’®£¤ fp | ¯®â®ª ¢ á¥â¨ Gf ¨ jfpj = cf (p) > 0.
’¥¯¥àì ¢¨¤­®, çâ® ¥á«¨ ¤®¡ ¢¨âì ¯®â®ª fp ª ¯®â®ªã f , ¯®«ãç¨âáï ¯®â®ª ¢ á¥â¨ G á ¡®«ì訬 §­ 祭¨¥¬. H à¨á. 27.4 (c) ¨§®¡à ¦ñ­ १ã«ìâ â ¤®¡ ¢«¥­¨ï ¯®â®ª fp (à¨á. 27.4 (b)) ª ¯®â®ªã
f (à¨á. 27.4 (a)). ‘ä®à¬ã«¨à㥬 íâ® ¥éñ à §:
‘«¥¤á⢨¥ 27.4
ãáâì f | ¯®â®ª ¢ á¥â¨ G = (V; E ), p | ¤®¯®«­ïî騩 ¯ãâì
¢ á¥â¨ Gf , § ¤ ­­ë© à ¢¥­á⢮¬ (27.6). ’®£¤ äã­ªæ¨ï f 0 = f + fp
ï¥âáï ¯®â®ª®¬ ¢ á¥â¨ G ¢¥«¨ç¨­ë jf 0j = jf j + jfpj > jf j.
„®ª § ⥫ìá⢮
“⢥ত¥­¨¥ ¢ë⥪ ¥â ¨§ «¥¬¬ 27.2 ¨ 27.3.
 §à¥§ë ¢ á¥âïå
Œ¥â®¤ ”®à¤ {” «ª¥àá®­ ¤®¡ ¢«ï¥â ¯®á«¥¤®¢ ⥫쭮 ¯®â®ª¨
¯® ¤®¯®«­ïî騬 ¯ãâï¬, ¯®ª ­¥ ¯®«ãç¨âáï ¬ ªá¨¬ «ì­ë© ¯®â®ª.
Š ª ¬ë ¢áª®à¥ 㢨¤¨¬ (⥮६ ® ¬ ªá¨¬ «ì­®¬ ¯®â®ª¥ ¨ ¬¨­¨¬ «ì­®¬ à §à¥§¥), ¢¥«¨ç¨­ ¯®â®ª ¬ ªá¨¬ «ì­ ¢ ⮬ ¨ ⮫쪮
¢ ⮬ á«ãç ¥, ª®£¤ ®áâ â®ç­ ï á¥âì ­¥ ᮤ¥à¦¨â ¤®¯®«­ïîé¨å ¯ã⥩. „«ï ¤®ª § ⥫ìá⢠­ ¬ ¯®­ ¤®¡¨âáï ¯®­ï⨥ à §à¥§ á¥â¨.
H §®¢ñ¬ à §à¥§®¬ (cut) á¥â¨ G = (V; E ) à §¡¨¥­¨¥ ¬­®¦¥á⢠V ­ ¤¢¥ ç á⨠S ¨ T = V n S , ¤«ï ª®â®àëå s 2 S ¨ t 2 T . (®¤®¡­ ï ¯à®æ¥¤ãà ¤¥« « áì ¤«ï ¬¨­¨¬ «ì­®£® ¯®ªàë¢ î饣® ¤¥à¥¢ ¢ £« ¢¥ 24, ­® ⥯¥àì £à ä ®à¨¥­â¨à®¢ ­ ¨, ªà®¬¥ ⮣®, ¬ë
R
Œ¥â®¤ ”®à¤ {” «ª¥àá®­ 561
¨áã­®ª 27.6 27.5  §à¥§ (S; T ) ¢ á¥â¨ à¨á. 27.1 (b). ‡¤¥áì S = fs; v1 ; v2 g (ç¥à­ë¥
¢¥à設ë) ¨ T = fv3 ; v4 ; tg (¡¥«ë¥ ¢¥à設ë). à¨ í⮬ f (S; T ) = 19 (¯®â®ª ç¥à¥§
à §à¥§) ¨ c(S; T ) = 26 (¯à®¯ã᪭ ï ᯮᮡ­®áâì)
âॡ㥬, ç⮡ë s 2 S , t 2 T .) à®¯ã᪭®© ᯮᮡ­®áâìî à §à¥§ (capacity of the cut) (S; T ) ­ §ë¢ îâ á㬬ã c(S; T ). Šà®¬¥ ⮣®,
¤«ï § ¤ ­­®£® ¯®â®ª f ¢¥«¨ç¨­ ¯®â®ª ç¥à¥§ à §à¥§ (S; T ) ®¯à¥¤¥«ï¥âáï ª ª á㬬 f (S; T ).
H à¨á. 27.5 ¨§®¡à ¦ñ­ à §à¥§ (fs; v1; v2g; fv3; v4; tg) á¥â¨
à¨á. 27.1 (b). ®â®ª ç¥à¥§ íâ®â à §à¥§ à ¢¥­
f (v1; v2) + f (v2; v3) + f (v2; v; 4) = 12 + (;4) + 11 = 19;
¯à®¯ã᪭ ï ᯮᮡ­®áâì à §à¥§ à ¢­ c(v1; v3) + c(v2; v4) = 12 + 14 = 26:
Š ª ¢¨¤­®, ¯®â®ª ç¥à¥§ à §à¥§, ¢ ®â«¨ç¨¥ ®â ¯à®¯ã᪭®© ᯮᮡ­®áâ¨ à §à¥§ , ¬®¦¥â ¢ª«îç âì ¨ ®âà¨æ ⥫ì­ë¥ á« £ ¥¬ë¥.
‘«¥¤ãîé ï «¥¬¬ ã⢥ত ¥â, çâ® ¢¥«¨ç¨­ë ¯®â®ª®¢ ç¥à¥§
¢á¥ à §à¥§ë ®¤¨­ ª®¢ë (¨ à ¢­ë ¢¥«¨ç¨­¥ ¯®â®ª ).
‹¥¬¬ 27.5
ãáâì f | ¯®â®ª ¢ á¥â¨ G á ¨á⮪®¬ s ¨ á⮪®¬ t, (S; T ) |
à §à¥§ á¥â¨ G. ’®£¤ ¯®â®ª ç¥à¥§ à §à¥§ (S; T ) à ¢¥­ f (S; T ) = jf j.
„®ª § ⥫ìá⢮ Œ­®£®ªà â­® ¨á¯®«ì§ãï «¥¬¬ã 27.1, ¯®«ãç ¥¬
f (S; T ) = f (S; V ) ; f (S; S ) =
= f (S; V ) =
= f (s; V ) + f (S n s; V ) =
= f (s; V ) =
= jf j
„®ª § ­­®¥ ¢ëè¥ à ¢¥­á⢮ (27.3) (¢¥«¨ç¨­ ¯®â®ª à ¢­ ¯®â®ªã ¢ á⮪) ­¥¬¥¤«¥­­® á«¥¤ã¥â ¨§ í⮩ «¥¬¬ë.
‘«¥¤á⢨¥ 27.6
‡­ 祭¨¥ «î¡®£® ¯®â®ª f ¢ á¥â¨ G ¬¥­ìè¥ ¨«¨ à ¢­® ¯à®¯ã᪭®© ᯮᮡ­®á⨠«î¡®£® à §à¥§ á¥â¨ G.
„®ª § ⥫ìá⢮
ãáâì (S; T ) | ¯à®¨§¢®«ì­ë© à §à¥§ á¥â¨ G. ‚ ᨫã 27.5 ¨ ®£à ­¨ç¥­¨© ­ ¯®â®ª¨ ¯® àñ¡à ¬
jf j = f (S; T ) =
XX
=
f (u; v) 6
6
u2S v2T
XX
u2S v2T
c(u; v) =
= c(S; T ):
562
ƒ« ¢ 27 Œ ªá¨¬ «ì­ë© ¯®â®ª
’¥¯¥àì ¤®ª ¦¥¬ ®á­®¢­ãî ⥮६ã í⮣® à §¤¥« (max-ow
min-cut theorem).
’¥®à¥¬ 27.7 (® ¬ ªá¨¬ «ì­®¬ ¯®â®ª¥ ¨ ¬¨­¨¬ «ì­®¬ à §à¥§¥)
ãáâì f | ¯®â®ª ¢ á¥â¨ G = (V; E ). ’®£¤ á«¥¤ãî騥 ã⢥ত¥­¨ï à ¢­®á¨«ì­ë:
1. ®â®ª f ¬ ªá¨¬ «¥­ (ï¥âáï ¯®â®ª®¬ ¬ ªá¨¬ «ì­®© ¢¥«¨ç¨­ë) ¢ á¥â¨ G.
2. Žáâ â®ç­ ï á¥âì Gf ­¥ ᮤ¥à¦¨â ¤®¯®«­ïîé¨å ¯ã⥩.
3. „«ï ­¥ª®â®à®£® à §à¥§ (S; T ) á¥â¨ G ¢ë¯®«­¥­® à ¢¥­á⢮
jf j = c(S; T ). (‚ í⮬ á«ãç ¥, ª ª ¯®ª §ë¢ ¥â á«¥¤á⢨¥ 27.6,
à §à¥§ ï¥âáï ¬¨­¨¬ «ì­ë¬, â® ¥áâì ¨¬¥¥â ¬¨­¨¬ «ì­® ¢®§¬®¦­ãî ¯à®¯ã᪭ãî ᯮᮡ­®áâì.)
„®ª § ⥫ìá⢮
(1) ) (2)
 áá㦤 ï ®â ¯à®â¨¢­®£®, ¤®¯ãá⨬, çâ® ¯®â®ª f ¬ ªá¨¬ «¥­, ­® Gf ᮤ¥à¦¨â ¤®¯®«­ïî騩 ¯ãâì p.  áᬮâਬ á㬬ã
f + fp , £¤¥ fp § ¤ ¥âáï à ¢¥­á⢮¬ (27.6). ® á«¥¤á⢨î 27.4 íâ á㬬 ï¥âáï ¯®â®ª®¬ ¢ G, ¢¥«¨ç¨­ ª®â®à®£® ¡®«ìè¥ jf j, çâ®
¯à®â¨¢®à¥ç¨â ¬ ªá¨¬ «ì­®á⨠f .
(2) ) (3)
ãáâì ¢ á¥â¨ Gf ­¥â ¯ã⨠¨§ ¨á⮪ s ¢ á⮪ t.  áᬮâਬ
¬­®¦¥á⢮
S = fv 2 V j ¢ Gf áãé¥áâ¢ã¥â ¯ãâì ¨§ s ¢ vg:
®«®¦¨¬ T = V n S . Žç¥¢¨¤­®, çâ® s 2 S , t 2 T , â ª ª ª
¢ Gf ­¥â ¯ã⨠¨§ s ¢ t. ®í⮬㠯 à (S; T ) | à §à¥§. H¨ ¤«ï
ª ª¨å u 2 S ¨ v 2 T ॡ஠(u; v) ­¥ ¯à¨­ ¤«¥¦¨â Ef (¢ ¯à®â¨¢­®¬
á«ãç ¥ ¢¥à設 v ¯®¯ « ¡ë ¢ S ). ®í⮬ã f (u; v) = c(u; v). ®
«¥¬¬¥ 27.5 jf j = f (S; T ) = c(S; T ).
(3) ) (1)
„«ï «î¡®£® à §à¥§ (S; T ) ¢ë¯®«­¥­® jf j 6 c(S; T ) (á«¥¤á⢨¥
27.6). ®í⮬㠨§ à ¢¥­á⢠jf j = c(S; T ) á«¥¤ã¥â, çâ® ¯®â®ª f
¬ ªá¨¬ «¥­.
Ž¡é ï á奬 «£®à¨â¬ ”®à¤ {” «ª¥àá®­ „¥©áâ¢ãï ¯® ¬¥â®¤ã ”®à¤ {” «ª¥àá®­ , ­ ª ¦¤®¬ è £¥ ¬ë
¢¨¡¨à ¥¬ ¯à®¨§¢®«ì­ë© ¤®¯®«­ïî騩 ¯ãâì p ¨ 㢥«¨ç¨¢ ¥¬ ¯®â®ª f , ¤®¡ ¢«ïï ¯®â®ª ¢¥«¨ç¨­ë cf (p) ¯® ¯ã⨠p. à¨¢®¤¨¬ë©
­¨¦¥ «£®à¨â¬ ¨á¯®«ì§ã¥â ¬ áᨢ f [u; v] ¤«ï åà ­¥­¨ï ⥪ãé¨å
§­ 祭¨ï ¯®â®ª . Œë áç¨â ¥¬, çâ® äã­ªæ¨ï c(u; v) ¢ëç¨á«ï¥âáï
§ ¢à¥¬ï O(1), ¯à¨ í⮬ c(u; v) = 0 ¥á«¨ (u; v) 2= E . (à¨ ¥áâ¥á⢥­­®© ॠ«¨§ 樨 §­ 祭¨¥ (u; v) åà ­¨âáï à冷¬ á àñ¡à ¬¨ ¢
á¯¨áª å ¨á室ïé¨å àñ¡¥à.)
‚ áâப¥ 5 ¢¥«¨ç¨­ cf (u; v) ¯®­¨¬ ¥âáï ¢ ᮮ⢥âá⢨¨ á
ä®à¬ã«®© (27.5). ‘¨¬¢®« cf (p) ®¡®§­ ç ¥â «®ª «ì­ãî ¯¥à¥¬¥­­ãî, ¢ ª®â®àãî ¯®¬¥é ¥âáï ®áâ â®ç­ ï ¯à®¯ã᪭ ï ᯮᮡ­®áâì
¯ã⨠p.
Œ¥â®¤ ”®à¤ {” «ª¥àá®­ 563
¨áã­®ª 27.7 27.6  ¡®â ¯à®æ¥¤ãàë Ford-Fulkerson. (a){(d) ˜ £¨ ¢ë¯®«­¥­¨ï 横« . ‘«¥¢ ¨§®¡à ¦¥­ ®áâ â®ç­ ï á¥âì Gf (¤®¯®«­ïî騩 ¯ãâì p ¢ë¤¥«¥­
á¥àë¬), á¯à ¢ ¯®ª § ­ 㢥«¨ç¥­­ë© ¯®â®ª. ‚­ ç «¥ (a) à®«ì ®áâ â®ç­®© á¥â¨
¨£à ¥â ¨á室­ ï á¥âì G. (e) Žáâ â®ç­ ï á¥âì ¡®«¥¥ ­¥ ᮤ¥à¦¨â ¤®¯®«­ïî饣®
¯ãâ¨; ¯®â®ª ¬ ªá¨¬ «¥­.
Ford-Fulkerson($G,s,t$)
1 for (¤«ï) ª ¦¤®£® ॡà $(u,v)$ ¨§ $E[G]$
2
do $f[u,v]\leftarrow 0$
3
$f[v,u]\leftarrow 0$
4 while (¯®ª ) ¢ ®áâ â®ç­®© á¥â¨ $G_f$ áãé¥áâ¢ã¥â ¯ãâì $p$ ¨§ $s$ ¢ $t$
5
do $c_f(p)\leftarrow\min\{c_f(u,v)|(u,v) \textrm{ ¢å®¤¨â ¢ } p\}$
6
for (¤«ï) ª ¦¤®£® ॡà $(u,v)$ ¯ã⨠$p$
7
do $f[u,v]\leftarrow f[u,v]+c_f(p)$
8
$f[v,u]\leftarrow -f[u,v]$
à®æ¥¤ãà Ford-Fulkerson á«¥¤ã¥â ®¯¨á ­­®© ¢ëè¥ á奬¥
( Ford-Fulkerson-Method). ‘âப¨ 1{3 § ¤ îâ ¯¥à¢®­ ç «ì­®¥ §­ 祭¨¥ ¯®â®ª ; 横« ¢ áâப å 4{8 ­ ª ¦¤®¬ è £¥ ­ 室¨â
¤®¯®«­ïî騩 ¯ãâì p ¢ Gf ¨ 㢥«¨ç¨¢ ¥â ¯®â®ª f . …᫨ ¤®¯®«­ïî饣® ¯ã⨠­¥â, ­ ©¤¥­­ë© ¯®â®ª ¬ ªá¨¬ «¥­. à¨¬¥à à ¡®âë
¯à®£à ¬¬ë ¨§®¡à ¦¥­ ­ à¨á.27.6.
€­ «¨§ «£®à¨â¬ ”®à¤ {” «ª¥àá®­ ‚६ï à ¡®âë ¯à®æ¥¤ãàë Ford-Fulkerson § ¢¨á¨â ®â ⮣®,
ª ª ¨é¥âáï ¯ãâì p (áâப 4). ‚ ¯à¨­æ¨¯¥ «£®à¨â¬ ¬®¦¥â ¢®®¡é¥ ­¥ ®áâ ­®¢¨âìáï, ¥á«¨ §­ 祭¨¥ ¯®â®ª ¡ã¤¥â à á⨠¢áñ
¡®«¥¥ ¬¥«ª¨¬¨ è £ ¬¨, â ª ¨ ­¥ ¤®á⨣­ã¢ ¬ ªá¨¬ã¬ . Ž¤­ ª®
¥á«¨ ¢ë¡¨à âì ¤®¯®«­ïî騩 ¯ãâì ¯à¨ ¯®¬®é¨ ¯®¨áª ¢ è¨à¨­ã
(à §¤¥« 23.2), â® «£®à¨â¬ à ¡®â ¥â ¯®«¨­®¬¨ «ì­®¥ ¢à¥¬ï. à¥¦¤¥ 祬 ¤®ª § âì íâ®, ¬ë ãáâ ­®¢¨¬ ¯à®áâãî ¢¥àå­îî ®æ¥­ªã
¤«ï á«ãç ï 楫ëå ¯à®¯ã᪭ëå ᯮᮡ­®á⥩. (â®â á«ãç © ç áâ®
¢áâà¥ç ¥âáï ­ ¯à ªâ¨ª¥. ‘«ãç © à 樮­ «ì­ëå ¯à®¯ã᪭ëå ᯮᮡ­®á⥩ ᢮¤¨âáï ª ­¥¬ã 㬭®¦¥­¨¥¬ ­ ç¨á«®.)
„«ï 㪠§ ­­®£® á«ãç ï (¯à®¯ãáª­ë¥ á¯®á®¡­®á⨠| æ¥«ë¥ ç¨á« ), ¯à®æ¥¤ãà Ford-Fulkerson ¢ë¯®«­ï¥âáï § ¢à¥¬ï O(E jf j),
£¤¥ f | ¬ ªá¨¬ «ì­ë© ¯®â®ª. ‚ á ¬®¬ ¤¥«¥, ¢ë¯®«­¥­¨¥ áâப 13 âॡã¥â ¢à¥¬¥­¨ (E ). –¨ª« ¢ áâப å 4{8 ¢ë¯®«­ï¥âáï ­¥ ¡®«¥¥ jf j à §, â ª ª ª ¯®á«¥ ª ¦¤®£® ¢ë¯®«­¥­¨ï ¢¥«¨ç¨­ ¯®â®ª 㢥«¨ç¨¢ ¥âáï ¯® ªà ©­¥© ¬¥à¥ ­ ¥¤¨­¨æã. Žáâ «®áì ®æ¥­¨âì
¢à¥¬ï ®¤­®£® è £ , ª®â®à®¥ § ¢¨á¨â ®â ⮣®, ª ª ¬ë åà ­¨¬ ¤ ­­ë¥ ® ¯®â®ª¥.  áᬮâਬ ®à¨¥­â¨à®¢ ­­ë© £à ä G0 = (V; E 0), ¢
564
ƒ« ¢ 27 Œ ªá¨¬ «ì­ë© ¯®â®ª
¨áã­®ª 27.8 27.7 (a) ‘¥âì, ¤«ï ª®â®à®© ¯à®æ¥¤ãà Ford-Fulkerson âॡã¥â
¢à¥¬¥­¨ (E jf j), £¤¥ f | ¬ ªá¨¬ «ì­ë© ¯®â®ª ¢¥«¨ç¨­ë jf j = 2 000 000. ‚뤥«¥­ ¤®¯®«­ïî騩 ¯ãâì á ¯à®¯ã᪭®© ᯮᮡ­®áâìî 1. (b) ®«ã祭­ ï ®áâ â®ç­ ï á¥âì. ‚뤥«¥­ ¤®¯®«­ïî騩 ¯ãâì á ⮩ ¦¥ ¯à®¯ã᪭®© ᯮᮡ­®áâìî.
(c) ®«ã祭­ ï ®áâ â®ç­ ï á¥âì.
ª®â®à®¬
E 0 = f(u; v)j(u; v) 2 E ¨«¨ (v; u) 2 E g;
¨ ¡ã¤¥¬ åà ­¨âì ¯®â®ª¨ ¨ ¯à®¯ãáª­ë¥ á¯®á®¡­®á⨠à冷¬ á ᮮ⢥âáâ¢ãî騬¨ àñ¡à ¬¨ (àñ¡à á¥â¨ G ¢å®¤ïâ ¨ ¢ £à ä G0,
â ª çâ® ¯à®¯ãáª­ë¥ á¯®á®¡­®á⨠¥áâì £¤¥ åà ­¨âì). Žáâ â®ç­ ï á¥âì (¤«ï ⥪ã饣® ¯®â®ª ) á®á⮨⠨§ â¥å àñ¡¥à (u; v)
£à ä G0, ¤«ï ª®â®àëå c(u; v) ; f [u; v] =
6 0. ®¨áª ¤®¯®«­ïî饣®
¯ã⨠¢ ®áâ â®ç­®© á¥â¨ (¢ £«ã¡¨­ã ¨«¨ ¢ è¨à¨­ã | ¯®ª íâ®
¢áñ à ¢­®) § ©¬¥â ¢à¥¬ï O(E ) = O(E 0). ®í⮬㠢६ï à ¡®âë
¯à®æ¥¤ãàë ¡ã¤¥â O(E jf j).
ˆ§ ¤®ª § ­­®© ®æ¥­ª¨ á«¥¤ã¥â, çâ® ¯à¨ ­¥¡®«ì讬 §­ 祭¨¨ jf j
¨ 楫ëå ¯à®¯ã᪭ëå ᯮᮡ­®áâïå ¢à¥¬ï à ¡®âë ¯à®æ¥¤ãàë FordFulkerson ­¥¢¥«¨ª®. H® ¯à¨ ¡®«ì讬 jf j ¢à¥¬ï à ¡®âë «£®à¨â¬ ¬®¦¥â ¡ëâì ¢¥«¨ª® ¤ ¦¥ ¤«ï ¯à®á⮩ á¥â¨, ª ª ¯®ª §ë¢ ¥â ¯à¨¬¥à à¨á. 27.7. ‡­ 祭¨¥ ¬ ªá¨¬ «ì­®£® ¯®â®ª ¢ í⮩
á¥â¨ à ¢­® 2; 000; 000 (¥á«¨ ¨á¯®«ì§®¢ âì àñ¡à , ¨¤ã騥 á«¥¢ ­ ¯à ¢®). …᫨, ª ª ¯®ª § ­® ­ à¨á. 27.7 (a) ¨ 27.7 (b), ­ çñâ­ëå
è £ å ¡ã¤¥â ¢ë¡¨à âìáï ¤®¯®«­ïî騩 ¯ãâì s ! v ! u ! t, ­ ­ñç¥â­ëå | s ! u ! v ! t, â® ¯®âॡã¥âáï 2; 000; 000 è £®¢,
çâ®¡ë ­ ©â¨ ¬ ªá¨¬ «ì­ë© ¯®â®ª.
Œ®¦­® ¯®«ãç¨âì «ãçèãî ®æ¥­ªã ¢à¥¬¥­¨ à ¡®âë ¯à®æ¥¤ãàë
Ford-Fulkerson, ¥á«¨ ¯à¥¤¯®«®¦¨âì, çâ® ¢ áâப¥ 4 ¨á¯®«ì§ã¥âáï ¯®¨áª ¢ è¨à¨­ã. ‚ í⮬ á«ãç ¥ ¯ãâì p ¡ã¤¥â ªà âç ©è¨¬ ¨§ ¤®¯®«­ïîé¨å ¯ã⥩ (¤«¨­ã ª ¦¤®£® ॡà áç¨â ¥¬ à ¢­®©
¥¤¨­¨æ¥). â ॠ«¨§ æ¨ï ¬¥â®¤ ”®à¤ {” «ª¥àá®­ ­ §ë¢ ¥âáï
«£®à¨â¬®¬ ¤¬®­¤á {Š ௠. „®ª ¦¥¬, çâ® ¢à¥¬ï à ¡®âë «£®à¨â¬ ¤¬®­¤á {Š à¯ à ¢­® O(V E 2).
Ž¡®§­ 稬 ¤«¨­ã ªà âç ©è¥£® ¯ã⨠¢ Gf ¬¥¦¤ã ¢¥à設 ¬¨ u
¨ v ç¥à¥§ f (u; v)).
‹¥¬¬ 27.8
 áᬮâਬ à ¡®âã «£®à¨â¬ ¤¬®­¤á {Š ௠­ á¥â¨ G =
(V; E ) á ¨á⮪®¬ s ¨ á⮪®¬ t. „«ï «î¡®© ¢¥à設ë v ¨§ V n fs; tg
à ááâ®ï­¨¥ f (s; v) ¢ ®áâ â®ç­®© á¥â¨ ¬¥¦¤ã ¨á⮪®¬ ¨ ¢¥à設®© v 2 V n fs; tg ¬®­®â®­­® ­¥ã¡ë¢ ¥â ­ ª ¦¤®¬ è £¥ 横« .
„®ª § ⥫ìá⢮
à¥¤¯®«®¦¨¬ ¯à®â¨¢­®¥: ¯ãáâì ¯®á«¥ 㢥«¨ç¥­¨ï ¯®â®ª f
(¢¤®«ì ¤®¯®«­ïî饣® ¯ãâ¨) à ááâ®ï­¨¥ f (s; v ) ®â ¨á⮪ s ¤®
­¥ª®â®à®© ¢¥à設ë v ¨§ V n fs; tg 㬥­ì訫®áì. Ž¡®§­ 稢 㢥«¨-
Œ¥â®¤ ”®à¤ {” «ª¥àá®­ 565
祭­ë© ¯®â®ª ç¥à¥§ f 0, ¯®«ãç ¥¬, çâ®
f0 (s; v) < f (s; v):
‘।¨ ¢¥à設 v á â ª¨¬ ᢮©á⢮¬ ¢ë¡¥à¥¬ ¡«¨¦ ©èãî (¢ á¬ëá«¥ á¥â¨ G0f ) ª ¨á⮪ã. ‚ í⮬ á«ãç ¥
¨§ f0 (s; u) < f0 (s; v) á«¥¤ã¥â f (s; u) 6 f0 (s; u)
(27:7)
¤«ï ¢á¥å u 2 V n fs; tg.
‚®§ì¬¥¬ ªà âç ©è¨© ¯ãâì p0 ¨§ s ¢ v ¢ á¥â¨ G0f ¨ à áᬮâਬ
¢¥à設ã u, ­¥¯®á।á⢥­­® ¯à¥¤è¥áâ¢ãîéãî ¢¥à設¥ v ¢ í⮬
¯ã⨠(s u ! v).
‘®£« á­® á«¥¤á⢨î 25.2, f0 (s; u) = f0 (s; v) ; 1. ‘«¥¤®¢ ⥫쭮,
¯® ¯à¥¤¯®«®¦¥­¨î (27.7)
f (s; u) 6 f0 (s; u):
Œ®¦¥â «¨ ॡ஠(u; v) ¢å®¤¨âì ¢ Ef (íâ® §­ ç¨â, çâ® f [u; v] <
c(u; v )). ’®£¤ ¯® «¥¬¬¥ 25.3 ¤®«¦­® ¡ëâì
f (s; v) 6 f (s; u) + 1 6
6 f0 (s; u) + 1 =
= f0 (s; v );
çâ® ¯à®â¨¢®à¥ç¨â ­ ç «ì­®¬ã ¯à¥¤¯®«®¦¥­¨î.
‘«¥¤®¢ ⥫쭮, (u; v) 2= Ef . H® ॡ஠(u; v) ¯à¨­ ¤«¥¦¨â Ef0 ,
¯®í⮬㠤®¯®«­ïî騩 ¯ãâì p, ¯à¥¢à ⨢訩 á¥âì Gf ¢ á¥âì G0f ,
ᮤ¥à¦ « ॡ஠(v; u). ’ ª ª ª ¯ãâì p ¡ë« ªà âç ©è¨¬ ¯ãâñ¬ ¨§
s ¢ t ¢ á¥â¨ Gf , â® «î¡®© ¥£® ¯®¤¯ãâì â ª¦¥ ¡ë« ªà âç ©è¨¬
(«¥¬¬ 25.1), ¯®í⮬ã f (s; u) = f (s; v )+1. Žâáî¤ á«¥¤ã¥â, çâ®
f (s; v) = f (s; u) ; 1 6
6 f0 (s; u) ; 1 =
= f0 (s; v ) ; 2 <
< f0 (s; v );
çâ® ¯à®â¨¢®à¥ç¨â ­ ç «ì­®¬ã ¯à¥¤¯®«®¦¥­¨î.
’¥®à¥¬ 27.9
€«£®à¨â¬ ¤¬®­¤á {Š ௠­ á¥â¨ G = (V; E ) ¢ë¯®«­ï¥âáï § O(V E ) è £®¢.
„®ª § ⥫ìá⢮
‚ ª ¦¤®¬ ¤®¯®«­ïî饬 ¯ã⨠®â¬¥â¨¬ àñ¡à ¬¨­¨¬ «ì­®©
¯à®¯ã᪭®© ᯮᮡ­®áâ¨, ª®â®àë¥ ¡ã¤¥¬ ­ §ë¢ âì ªà¨â¨ç¥áª¨¬¨
(critical) (¤«ï ¤ ­­®£® è £ ). ‡ ¬¥â¨¬, çâ® ªà¨â¨ç¥áª¨¥ àñ¡à ¨á祧 î⠯ਠ¯¥à¥å®¤¥ ª á«¥¤ãî饩 ®áâ â®ç­®© á¥â¨.
566
ƒ« ¢ 27 Œ ªá¨¬ «ì­ë© ¯®â®ª
®ª ¦¥¬, çâ® ¤«ï ®¤­® ¨ â® ¦¥ ॡ஠¬®¦¥â ¡ëâì ªà¨â¨ç¥áª¨¬ ­¥ ¡®«¥¥ O(V ) à §. ®áª®«ìªã ¢á¥ àñ¡à ¢á¥å ®áâ â®ç­ëå
á¥â¥© ᮮ⢥âáâ¢ãîâ àñ¡à ¬ £à ä (¢®§¬®¦­®, ¢ ®¡à â­®¬ ­ ¯à ¢«¥­¨¨), ¨å ç¨á«® ­¥ ¯à¥¢®á室¨â 2E , â ª çâ® ®¡é¥¥ ç¨á«®
è £®¢ ¤¥©á⢨⥫쭮 ¥áâì O(EV ).
ˆâ ª, ¯®á¬®âਬ, ᪮«ìª® à § § ¢à¥¬ï à ¡®âë «£®à¨â¬ ¤¬®­¤á {Š ௠ॡ஠(u; v) ¬®¦¥â ¡ëâì ªà¨â¨ç¥áª¨¬. …᫨ ॡ஠¡ë«® ªà¨â¨ç¥áª¨¬, ®­® ¨á祧 ¥â, ¨ ¬®¦¥â ¯®ï¢¨âìáï ¢­®¢ì
«¨èì ¯®á«¥ ⮣®, ª ª ¯®â®ª ¨§ u ¢ v 㬥­ìè¨âáï. â® ¬®¦¥â
¯à®¨§®©â¨ ⮫쪮 ¥á«¨ ॡ஠(v; u) ¢®©¤ñâ ¢ ¤®¯®«­ïî騩 ¯ãâì.
’ ª¨¬ ®¡à §®¬, ¢®§­¨ª ¥â ¯®á«¥¤®¢ ⥫쭮áâì á¨âã 権:
(u; v ) ¢å®¤¨â ¢ ¤®¯®«­ïî騩 ¯ãâì (¨ ªà¨â¨ç¥áª®¥ ¢ ­ñ¬);
(v; u) ¢å®¤¨â ¢ ¤®¯®«­ïî騩 ¯ãâì (­¥ ®¡ï§ ⥫쭮 ªà¨â¨ç¥áª®¥);
(u; v ) ¢å®¤¨â ¢ ¤®¯®«­ïî騩 ¯ãâì (¨ ªà¨â¨ç¥áª®¥ ¢ ­ñ¬);
(v; u) ¢å®¤¨â ¢ ¤®¯®«­ïî騩 ¯ãâì (­¥ ®¡ï§ ⥫쭮 ªà¨â¨ç¥áª®¥);
¨ â ª ¤ «¥¥. ®ª ¦¥¬, çâ® ç¨á«® â ª¨å á¨âã 権 ¥áâì O(V ).
„«ï í⮣® ¯à®á«¥¤¨¬, ª ª ¬¥­ïîâáï à ááâ®ï­¨ï ®â ¨á⮪ ¤®
¢¥à設 u ¨ v ¢ ®áâ â®ç­ëå á¥âïå. Š ª ¬ë §­ ¥¬ («¥¬¬ 27.8),
í⨠¤¢¥ ¢¥«¨ç¨­ë ¬®£ãâ ⮫쪮 ¢®§à áâ âì. à¨ í⮬ â® ®¤­ ,
â® ¤àã£ ï ¢ëàë¢ ¥âáï ¢¯¥àñ¤ ­ 1 (¯®áª®«ìªã ®­¨ á®á¥¤áâ¢ãîâ
¢ ªà âç ©è¥¬ ¯ãâ¨, «¥¬¬ 25.1). ‡ ¬¥â¨¬, çâ® ¯à¨ ¯¥à¥å®¤¥ ®â
¯¥à¢®© á¨âã 樨 ª® ¢â®à®© à ááâ®ï­¨¥ ®â ¨á⮪ ¤® u 㢥«¨ç¨âáï ¯® ªà ©­¥© ¬¥à¥ ­ 2 (®­® ¡ë«® ¬¥­ìè¥ à ááâ®ï­¨ï ¤® v, áâ «® ¡®«ìè¥). à¨ ¯¥à¥å®¤¥ ®â ¢â®à®© áâப¨ ª âà¥â쥩 à ááâ®ï­¨¥ ®â ¨á⮪ ¤® v 㢥«¨ç¨âáï ¯® ªà ©­¥© ¬¥à¥ ­ 2 ¨ â ª
¤ «¥¥.
‡ ¬¥â¨¬, çâ® à ááâ®ï­¨ï ®£à ­¨ç¥­ë ᢥàåã §­ 祭¨¥¬ V
(ªà âç ©è¨© ¯ãâì ­¥ ¯à®å®¤¨â ¤¢ ¦¤ë ç¥à¥§ ®¤­ã ¢¥à設ã),
â ª çâ® ®¡é¥¥ ç¨á«® â ª¨å ç¥à¥¤®¢ ­¨© ¥áâì O(V ), ª ª ¬ë ¨
®¡¥é «¨.
®¤áç¨â ¥¬ ⥯¥àì ®¡é¥¥ ¢à¥¬ï à ¡®âë «£®à¨â¬ ¤¬®­¤á {
Š ௠. Š ¦¤ ï ¨â¥à æ¨ï âॡã¥â ¢à¥¬¥­¨ O(E ), ¨å ¡ã¤¥â
O(V E ), ¯®í⮬㠢ᥣ® ¡ã¤¥â O(V E 2).
‚ à §¤¥«¥ 27.4 ¬ë à á᪠¦¥¬ ® ¤à㣮¬ ¯®¤å®¤¥ ª ¯®¨áªã ¬ ªá¨¬ «ì­®£® ¯®â®ª , ª®â®àë© ¯®§¢®«ï¥â ᤥ« âì íâ® § O(V 2E ).
…£® ãᮢ¥à襭á⢮¢ ­¨¥ ¯®§¢®«ï¥â ¥éñ 㬥­ìè¨âì ¢à¥¬ï à ¡®âë, ¯®«ã稢 ®æ¥­ªã O(V 3) (à §¤¥« 27.5).
“¯à ¦­¥­¨ï
27.2-1
H ©¤¨â¥ ¯®â®ª ç¥à¥§ à §à¥§ (fs; v2; v4g; fv1; v3; tg) ­ à¨á. 27.1 b). —¥¬ã à ¢­ ¯à®¯ã᪭ ï ᯮᮡ­®áâì í⮣® à §à¥§ ?
27.2-2
à®á«¥¤¨â¥ § ¢ë¯®«­¥­¨¥¬ «£®à¨â¬ ¤¬®­¤á {Š ௠¤«ï
Œ¥â®¤ ”®à¤ {” «ª¥àá®­ 567
á¥â¨ à¨á. 27.1 (a).
27.2-3
“ª ¦¨â¥ ¬¨­¨¬ «ì­ë© à §à¥§ ­ à¨á. 27.6, ᮮ⢥âáâ¢ãî騩
­ à¨á®¢ ­­®¬ã ¬ ªá¨¬ «ì­®¬ã ¯®â®ªã. ‚ ª ª¨å á«ãç ïå ¤®¯®«­ïî騩 ¯ãâì 㬥­ìè « ¯®â®ª, ¨¤ã騩 ¢ ®¡à â­®¬ ­ ¯à ¢«¥­¨¨?
27.2-4
„®ª ¦¨â¥, çâ® ¤«ï «î¡ëå ¢¥à設 u ¨ v, «î¡®£® ¯®â®ª f ¨
¯à®¯ã᪭®© ᯮᮡ­®á⨠c ¢ë¯®«­¥­® cf (u; v) + cf (v; u) = c(u; v) +
c(v; u).
27.2-5
‚ᯮ¬­¨¬ ª®­áâàãªæ¨î ¨§ à §¤¥« 27.1, á ¯®¬®éìî ª®â®à®©
á¥âì á ­¥áª®«ìª¨¬¨ ¨á⮪ ¬¨ ¨ á⮪ ¬¨ ᢮¤¨âáï ª ®¡ëç­®©. „®ª ¦¨â¥, çâ® ¥á«¨ ¯à®¯ã᪭ ï ᯮᮡ­®áâì «î¡®£® à¥¡à ¨á室­®©
á¥â¨ ¡ë« ª®­¥ç­®©, â® ¢ ¯®«ã稢襩áï á¥â¨ ¢¥«¨ç¨­ «î¡®£® ¯®â®ª ª®­¥ç­ .
27.2-6
 áᬮâਬ á¥âì á ­¥áª®«ìª¨¬¨ ¨á⮪ ¬¨ ¨ á⮪ ¬¨, ¢ ª®â®à®© ª ¦¤ë© ¨á⮪ si ¯à®¨§¢®¤¨â ஢­® pi ¥¤¨­¨æ ¯®â®ª , ª ¦¤ë© á⮪ tj ¯®âॡ«ï¥â
P ஢­®
Pqj ¥¤¨­¨æ, â.¥. f (si ; V ) = pi ¨
f (V; tj ) = qj . à¨ í⮬ i pi = j qj . Š ª 㧭 âì, ¢®§¬®¦¥­ «¨
¯®â®ª á â ª¨¬¨ ®£à ­¨ç¥­¨ï¬¨, ᢥ¤ï íâã § ¤ çã ª § ¤ ç¥ ® ¬ ªá¨¬ «ì­®¬ ¯®â®ª¥?
27.2-7
„®ª ¦¨â¥ «¥¬¬ã 27.3.
27.2-8
®ª ¦¨â¥, çâ® ¯à¨ ¯®¨áª¥ ¬ ªá¨¬ «ì­®£® ¯®â®ª ¢ á¥â¨ G =
(V; E ) ¤®áâ â®ç­® ᤥ« âì jE j è £®¢, ¥á«¨ ⮫쪮 ¯à ¢¨«ì­® ¢ë¡à âì ¤®¯®«­ïî騥 ¯ã⨠­ ª ¦¤®¬ è £¥. (“ª § ­¨¥. ‘ç¨â ï,
çâ® ¬ ªá¨¬ «ì­ë© ¯®â®ª ¨§¢¥á⥭, ¯®ª ¦¨â¥, ª ª á«¥¤ã¥â ¢ë¡¨à âì ¯ãâ¨.)
27.2-9
H §®¢ñ¬ § ¯ ᮬ á¢ï§­®á⨠(edge connectivity) ­¥®à¨¥­â¨à®¢ ­­®£® £à ä ¬¨­¨¬ «ì­®¥ ç¨á«® àñ¡¥à, ª®â®à®¥ ­¥®¡å®¤¨¬® 㤠«¨âì, ç⮡ë ᤥ« âì £à ä ­¥á¢ï§­ë¬. H ¯à¨¬¥à, á¢ï§­®áâì ¤¥à¥¢ à ¢­ ¥¤¨­¨æ¥, á¢ï§­®áâì 横« à ¢­ 2.
Š ª 㧭 âì á¢ï§­®áâì £à ä á ¯®¬®éìî ¯à®£à ¬¬ë ¯®¨áª ¬ ªá¨¬ «ì­®£® ¯®â®ª ? …ñ á«¥¤ã¥â ¯à¨¬¥­ïâì ­¥ ¡®«¥¥ 祬 ª jV j á¥âï¬, ª ¦¤ ï ¨§ ª®â®àëå ᮤ¥à¦¨â O(V ) ¢¥à設 ¨ O(E ) àñ¡¥à.
27.2-10
à¥¤¯®«®¦¨¬, çâ® ¤«ï ª ¦¤®£® ॡà (u; v) á¥â¨ ®¡à â­®¥
¥¬ã ॡ஠(v; u) â ª¦¥ ¢å®¤¨â ¢ á¥âì ®ª ¦¨â¥, çâ® «£®à¨â¬
¤¬®­¤á {Š ௠âॡã¥â ­¥ ¡®«¥¥ jV j jE j=4 ¨â¥à 権. (“ª § ­¨¥: ¤«ï ª ¦¤®£® ॡà (u; v) ¯à®á«¥¤¨â¥, ª ª ¬¥­ïîâáï (s; u) ¨
(v; t) ¬¥¦¤ã ⥬¨ ¬®¬¥­â ¬¨, ª®£¤ ॡ஠(u; v ) ªà¨â¨ç¥áª®¥.)
568
ƒ« ¢ 27 Œ ªá¨¬ «ì­ë© ¯®â®ª
¨áã­®ª 27.9 27.8 „¢ã¤®«ì­ë© £à ä. Œ­®¦¥á⢮ ¢¥à設 à §¡¨â® ­ ¤¢¥ ç á⨠L ¨ R. (a)  à®á®ç¥â ­¨¥ ¨§ ¤¢ãå àñ¡¥à. (b) Œ ªá¨¬ «ì­®¥ ¯ à®á®ç¥â ­¨¥
á®á⮨⠨§ âàñå í«¥¬¥­â®¢.
27.3 Œ ªá¨¬ «ì­®¥ ¯ à®á®ç¥â ­¨¥ ¢ ¤¢ã¤®«ì­®¬ £à ä¥
H¥ª®â®àë¥ ª®¬¡¨­ â®à­ë¥ § ¤ ç¨ (­ ¯à¨¬¥à, § ¤ ç ® á¥â¨ á
­¥áª®«ìª¨¬¨ ¨á⮪ ¬¨ ¨ á⮪ ¬¨ ¨§ à §¤¥« 27.1) ᢮¤ïâáï ª à §®¡à ­­®© ­ ¬¨ § ¤ ç¥ ® ¬ ªá¨¬ «ì­®¬ ¯®â®ª¥. „à㣮© ¯à¨¬¥à
â ª®£® த | § ¤ ç ® ¬ ªá¨¬ «ì­®¬ ¯ à®á®ç¥â ­¨¨ ¢ ¤¢ã¤®«ì­®¬ £à ä¥ (á¬. à §¤¥« 5.4). ‚ í⮬ à §¤¥«¥ ¯®ª ¦¥¬, ª ª á ¯®¬®éìî ¬¥â®¤ ”®à¤ -” «ª¥àá®­ ¬®¦­® à¥è¨âì íâã § ¤ çã ¤«ï
£à ä G = (V; E ) § ¢à¥¬ï O(V E ).
‡ ¤ ç ® ¬ ªá¨¬ «ì­®¬ ¯ à®á®ç¥â ­¨¨
ãáâì G = (V; E ) | ­¥®à¨¥­â¨à®¢ ­­ë© £à ä.  à®á®ç¥â ­¨¥¬
(matching) ­ §®¢¥¬ ¬­®¦¥á⢮ àñ¡¥à M E , ­¥ ¨¬¥îé¨å ®¡é¨å
ª®­æ®¢ (ª ¦¤ ï ¢¥à設 v 2 V ï¥âáï ª®­æ®¬ ¬ ªá¨¬ã¬ ®¤­®£® à¥¡à ¨§ M ). ã¤¥¬ £®¢®à¨âì, çâ® ¢¥à設 v 2 V ¢å®¤¨â
¢ ¯ à®á®ç¥â ­¨¥ M (is matched), ¥á«¨ ¢ M ¥áâì à¥¡à® á ª®­æ®¬
v; ¢ ¯à®â¨¢­®¬ á«ãç ¥ v ᢮¡®¤­ (is unmatched). Œ ªá¨¬ «ì­®¥
¯ à®á®ç¥â ­¨¥ (maximum matching) | íâ® ¯ à®á®ç¥â ­¨¥ M , ᮤ¥à¦ 饥 ¬ ªá¨¬ «ì­® ¢®§¬®¦­®¥ ç¨á«® àñ¡¥à (jM j > jM 0j ¤«ï
«î¡®£® ¯ à®á®ç¥â ­¨ï M 0). à¨¬¥à ¯ à®á®ç¥â ­¨ï ¯à¨¢¥¤ñ­ ­ à¨á. 27.8.
‚ í⮬ à §¤¥«¥ ¬ë ¡ã¤¥¬ à áᬠâਢ âì ¯ à®á®ç¥â ­¨ï «¨èì ¢
¤¢ã¤®«ì­ëå £à ä å. Œë ¯à¥¤¯®« £ ¥¬, çâ® ¬­®¦¥á⢮ V à §¡¨â®
­ ¤¢ ­¥¯¥à¥á¥ª îé¨åáï ¯®¤¬­®¦¥á⢠L ¨ R, ¨ «î¡®¥ ॡ஠¨§
E ᮥ¤¨­ï¥â ­¥ª®â®àãî ¢¥à設㠨§ L á ­¥ª®â®à®© ¢¥à設®© ¨§
R.
„«ï § ¤ ç¨ ® ¬ ªá¨¬ «ì­®¬ ¯ à®á®ç¥â ­¨¨ ¢ ¤¢ã¤®«ì­®¬ £à ä¥
¥áâì ­¥áª®«ìª® ¬¥â ä®à. ‚®â ­ ¨¡®«¥¥ ¨§¢¥áâ­ ï: L | ¦¥­¨å¨, R | ­¥¢¥áâë, ­ «¨ç¨¥ ॡà (u; v) ®§­ ç ¥â, çâ® u ¨ v
ᮣ« á­ë áâ âì áã¯à㣠¬¨. Œ ªá¨¬ «ì­®¥ ¯ à®á®ç¥â ­¨¥ ¤®áâ ¢«ï¥â ‡€ƒ‘ã ¡®«ìè¥ ¢á¥£® à ¡®âë.
®¨áª ¬ ªá¨¬ «ì­®£® ¯ à®á®ç¥â ­¨ï ¢ ¤¢ã¤®«ì­®¬ £à ä¥
Œë ¡ã¤¥¬ ¨á¯®«ì§®¢ âì ¬¥â®¤ ”®à¤ {” «ª¥àá®­ ¤«ï ¯®¨áª ¬ ªá¨¬ «ì­®£® ¯ à®á®ç¥â ­¨ï ¢ ¤¢ã¤®«ì­®¬ £à ä¥ G = (V; E ) § ¯®«¨­®¬¨ «ì­®¥ ®â jV j ¨ jE j ¢à¥¬ï. „«ï í⮣® à áᬮâਬ á¥âì
G0 = (V 0; E 0), ᮮ⢥âáâ¢ãîéãî ¤¢ã¤®«ì­®¬ã £à äã G (à¨á. 27.9).
â á¥âì áâநâáï â ª: ¤®¡ ¢ï«ïîâáï ¤¢¥ ­®¢ë¥ ¢¥à設ë, ª®â®àë¥ ¡ã¤ãâ ¨á⮪®¬ (s) ¨ á⮪®¬ (t): V 0 = V [ fs; tg. Œ­®¦¥-
Œ ªá¨¬ «ì­®¥ ¯ à®á®ç¥â ­¨¥ ¢ ¤¢ã¤®«ì­®¬ £à ä¥
569
¨áã­®ª 27.10 27.9 ‘¥âì, ᮮ⢥âáâ¢ãîé ï ¤¢ã¤®«ì­®¬ã £à äã. (a) „¢ã¤®«ì­ë© £à ä à¨á. 27.8. ‚뤥«¥­­ë¥
àñ¡à ®¡à §ãîâ ¬ ªá¨¬ «ì­®¥ ¯ à®á®ç¥â ­¨¥.
(b) ‘®®â¢¥âáâ¢ãîé ï á¥âì G0 ¨ ¬ ªá¨¬ «ì­ë© ¯®â®ª ¢ ­¥©. à®¯ã᪭ ï ᯮᮡ­®áâì «î¡®£® ॡà à ¢­ ¥¤¨­¨æ¥; ¯®â®ª ¯® ¢ë¤¥«¥­­ë¬ àñ¡à ¬ à ¢¥­ ¥¤¨­¨æ¥, ¯® ®áâ «ì­ë¬ | ­ã«î. ‚뤥«¥­­ë¥ àñ¡à , ᮥ¤¨­ïî騥 ¢¥àè¨­ë ¨§ L á
¢¥à設 ¬¨ ¨§ R, ᮮ⢥âáâ¢ãîâ ¬ ªá¨¬ «ì­®¬ã ¯ à®á®ç¥â ­¨î ¢ ¤¢ã¤®«ì­®¬
£à ä¥.
á⢮ (­ ¯à ¢«¥­­ëå) àñ¡¥à á¥â¨ G0 â ª®¢®:
E 0 =f(s; u)ju 2 Lg [
[ f(u; v)ju 2 L; v 2 R; (u; v) 2 E g [
f(v; t)jv 2 Rg:
(­ ¯®¬­¨¬, çâ® ç¥à¥§ L ¨ R ®¡®§­ ç îâáï ¤®«¨ £à ä ). ã¤¥¬
áç¨â âì, çâ® ¯à®¯ã᪭ ï ᯮᮡ­®áâì ª ¦¤®£® ॡà à ¢­ ¥¤¨­¨æ¥.
‘«¥¤ãîé ï «¥¬¬ ãáâ ­ ¢«¨¢ ¥â ᮮ⢥âá⢨¥ ¬¥¦¤ã ¯®â®ª ¬¨ ¢ G0 ¨ ¯ à®á®ç¥â ­¨ï¬¨ ¢ G | ­® ¯à¥¦¤¥ ¤ ¤¨¬ ¥éñ ®¤­®
®¯à¥¤¥«¥­¨¥.
®â®ª f ¢ á¥â¨ G = (V; E ) ­ §ë¢ ¥âáï 楫®ç¨á«¥­­ë¬ (integervalued), ¥á«¨ ¢á¥ §­ 祭¨ï f (u; v ) | 楫ë¥.
‹¥¬¬ 27.10
ãáâì G = (V; E ) | ¤¢ã¤®«ì­ë© £à ä á ¤®«ï¬¨ L ¨ R, ¨ G0 =
(V 0 ; E 0) | ᮮ⢥âáâ¢ãîé ï á¥âì. ãáâì M | ¯ à®á®ç¥â ­¨¥
¢ G. ’®£¤ áãé¥áâ¢ã¥â 楫®ç¨á«¥­­ë© ¯®â®ª ¢ G0 á® §­ 祭¨¥¬
jf j = jM j. Ž¡à â­®, ¥á«¨ f | 楫®ç¨á«¥­­ë© ¯®â®ª ¢ G0, â® ¢ G0
­ ©¤¥âáï ¯ à®á®ç¥â ­¨¥ ¨§ jf j í«¥¬¥­â®¢.
„®ª § ⥫ìá⢮
‘­ ç « ¤®ª ¦¥¬, çâ® ¯ à®á®ç¥â ­¨¥ ¯®à®¦¤ ¥â ¯®â®ª, § ¤ ¢ ¯®â®ª f á«¥¤ãî騬 ®¡à §®¬. …᫨ (u; v) 2 M , â® f (s; u) =
f (u; v) = f (v; t) = 1 ¨ f (u; s) = f (v; u) = f (t; v ) = ;1. „«ï ¢á¥å
®áâ «ì­ëå àñ¡¥à (u; v) 2 E 0 ¯®«®¦¨¬ f (u; v) = 0. H¥ä®à¬ «ì­®
£®¢®àï, ª ¦¤®¥ ॡ஠(u; v) 2 M ᮮ⢥âáâ¢ã¥â ¥¤¨­¨ç­®¬ã ¯®â®ªã ¯® ¯ã⨠s ! u ! v ! t. H¨ª ª¨¥ ¤¢ â ª¨å ¯ã⨠­¥ ᮤ¥à¦ â ®¡é¨å ¢¥à設 (ªà®¬¥ ¨á⮪ ¨ á⮪ ) ¨«¨ àñ¡¥à.
—â®¡ë ¯à®¢¥à¨âì, çâ® f ï¥âáï ¯®â®ª®¬, ¤®áâ â®ç­® § ¬¥â¨âì, çâ® f ¯à¥¤áâ ¢¨¬ ¢ ¢¨¤¥ áã¬¬ë ¯®â®ª®¢ ¯® í⨬ ¯ãâï¬.
®â®ª ç¥à¥§ à §à¥§ (L [fsg; R [ftg) à ¢¥­ jM j, ¯®í⮬㠯® «¥¬¬¥
27.5 §­ 祭¨¥ ¯®â®ª jf j à ¢­® jM j.
„®ª ¦¥¬ ®¡à â­®¥. ãáâì jf j | 楫®ç¨á«¥­­ë© ¯®â®ª ¢ G0; ¥£®
§­ 祭¨ï ¬®£ãâ ¡ëâì à ¢­ë 0 ¨«¨ 1, â ª ª ª ¯à®¯ã᪭ ï ᯮᮡ­®áâì àñ¡¥à ®£à ­¨ç¥­ ¥¤¨­¨æ¥©. Ž¯à¥¤¥«¨¬
M = f(u; v)ju 2 L; v 2 R; f (u; v) = 1g:
„®ª ¦¥¬, çâ® M | ¯ à®á®ç¥â ­¨¥. ‚ á ¬®¬ ¤¥«¥, ¨§ ®¤­®© ¢¥à設ë u ­¥ ¬®£ãâ ¢ë室¨âì ¤¢ ॡà (u; v0) ¨ (u; v00), ¯® ª®â®àë¬
570
ƒ« ¢ 27 Œ ªá¨¬ «ì­ë© ¯®â®ª
¯®â®ª à ¢¥­ 1, â ª ª ª ¢å®¤ï騩 ¢ u ¯®â®ª ­¥ ¯à¥¢®á室¨â 1. ®
­ «®£¨ç­ë¬ ¯à¨ç¨­ ¬ ¢ «î¡ãî ¢¥à設ã v ¢å®¤¨â ­¥ ¡®«¥¥ ®¤­®£®
ॡà á ¥¤¨­¨ç­ë¬ ¯®â®ª®¬.
—⮡ë ã¡¥¤¨âìáï, çâ® jM j = jf j, § ¬¥â¨¬, çâ® jM j ¥áâì ¯®â®ª ç¥à¥§ à §à¥§ (L [ fsg; R [ ftg (¯® ª ¦¤®¬ã ॡàã ¨¤ñâ ¯®â®¬
1, ç¨á«® àñ¡¥à ¥áâì M ).
‹¥¬¬ ᢮¤¨â § ¤ çã ® ¬ ªá¨¬ «ì­®¬ ¯ à®á®ç¥â ­¨¨ ª § ¤ ç¥
® ¬ ªá¨¬ «ì­®¬ 楫®ç¨á«¥­­®¬ ¯®â®ª¥. ’ॡ®¢ ­¨ï 楫®ç¨á«¥­­®á⨠㠭 á à ­ìè¥ ­¥ ¡ë«®, ­® ®ª §ë¢ ¥âáï, çâ® ¬¥â®¤ ”®à¤ {
” «ª¥àá®­ ¢á¥£¤ ¤ ñâ 楫®ç¨á«¥­­ë© ¬ ªá¨¬ «ì­ë© ¯®â®ª, ¥á«¨
⮫쪮 ¯à®¯ãáª­ë¥ á¯®á®¡­®á⨠¢á¥å àñ¡¥à 楫ë¥, â ª çâ® á¯¥æ¨ «ì­® § ¡®â¨âáï ® 楫®ç¨á«¥­­®á⨠­¥ ­ ¤®.
’¥®à¥¬ 27.11 (’¥®à¥¬ ® 楫®ç¨á«¥­­®¬ ¯®â®ª¥)
…᫨ ¯à®¯ãáª­ë¥ á¯®á®¡­®á⨠¢á¥å àñ¡¥à | æ¥«ë¥ ç¨á« , â®
¬ ªá¨¬ «ì­ë© ¯®â®ª, ­ ©¤¥­­ë© «£®à¨â¬®¬ ”®à¤ {” «ª¥àá®­ ,
¡ã¤¥â 楫®ç¨á«¥­­ë¬.
„®ª § ⥫ìá⢮
 ª ¦¤®¬ è £¥ (¯à¨ ª ¦¤®¬ ¤®¡ ¢«¥­¨¨ ¯®â®ª ¯® ¤®¯®«­ïî饬㠯ãâ¨) ¯®â®ª ®áâ ñâáï 楫®ç¨á«¥­­ë¬. (®¤à®¡­®¥ ¤®ª § ⥫ìá⢮ ¬ë ®áâ ¢«ï¥¬ ç¨â â¥«î ¢ ª ç¥á⢥ ã¯à.27.3-2.)
‘«¥¤á⢨¥ 27.12
—¨á«® àñ¡¥à ¢ ¬ ªá¨¬ «ì­®¬ ¯ à®á®ç¥â ­¨ï M ¢ ¤¢ã¤®«ì­®¬
£à ä¥ G à ¢­® §­ 祭¨î ¬ ªá¨¬ «ì­®£® ¯®â®ª ¢ á¥â¨ G0.
„®ª § ⥫ìá⢮
® ⥮६¥ 27.11 ¬®¦­® § ¬¥­¨âì á«®¢ "¬ ªá¨¬ «ì­®£® ¯®â®ª " ­ "¬ ªá¨¬ «ì­®£® 楫®ç¨á«¥­­®£® ¯®â®ª ", ¯®á«¥ 祣® á®á« âìáï ­ «¥¬¬ã 27.10.
’ ª¨¬ ®¡à §®¬, çâ®¡ë ­ ©â¨ ¬ ªá¨¬ «ì­®¥ ¯ à®á®ç¥â ­¨¥ ¢
¤¢ã¤®«ì­®¬ £à ä¥ G, ­ ¬ ¤®áâ â®ç­® ¯à¨¬¥­¨âì ¬¥â®¤ ”®à¤ {
” «ª¥àá®­ ¨ ­ ©â¨ ¬ ªá¨¬ «ì­ë© ¯®â®ª ¢ ᮮ⢥áâ¢ãî饩
á¥â¨ G0. Žæ¥­¨¬ ¢à¥¬ï à ¡®âë â ª®£® «£®à¨â¬ . ¨ª ª®¥ ¯ à®á®ç¥â ­¨¥ ¢ ¤¢ã¤®«ì­®¬ £à ä¥ ­¥ ¬®¦¥â ᮤ¥à¦ âì ¡®«¥¥
min(L; R) = O(V ) àñ¡¥à, ¯®í⮬㠧­ 祭¨¥ ¬ ªá¨¬ «ì­®£® ¯®â®ª ¢ G0 à ¢­® O(V ). ‘«¥¤®¢ ⥫쭮, ¢à¥¬ï à ¡®âë «£®à¨â¬ ”®à¤ {” «ª¥àá®­ à ¢­® O(V E ) (á¬. ­ «¨§ «£®à¨â¬ ”®à¤ {
” «ª¥àá®­ ¢ à §¤¥«¥ 27.2).
“¯à ¦­¥­¨ï
27.3-1
à¨¬¥­¨â¥ «£®à¨â¬ ”®à¤ -” «ª¥àá®­ ª á¥â¨ à¨áã­ª 27.9(b).
Š ª ¡ã¤ã⠢룫拉âì ®áâ â®ç­ë¥ á¥â¨ ¯®á«¥ ª ¦¤®£® è £ ?
(à®­ã¬¥àã©â¥ ¢¥à設ë ᢥàåã ¢­¨§ ®â¤¥«ì­® ¢ L ¨ ¢ R; ­ ª ¦¤®¬ è £¥ ¢ë¡¨à ©â¥ ­ ¨¬¥­ì訩 ¢ á¬ëá«¥ «¥ªá¨ª®£à ä¨ç¥áª®£®
¯®à浪 ¤®¯®«­ïî騩 ¯ãâì.)
27.3-2
„®ª ¦¨â¥ ⥮६ã 27.11.
27.3-3 ãáâì G = (V; E ) | ¤¢ã¤®«ì­ë© £à ä ¨ G0 | á®â-
€«£®à¨â¬ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª 571
¢¥âáâ¢ãîé ï á¥âì. Žæ¥­¨âì ᢥàåã ¤«¨­ã «î¡®£® ¤®¯®«­ïî饣®
¯ã⨠¢ G0, ­ ©¤¥­­®£® ¯à¨ à ¡®â¥ ¯à®æ¥¤ãàë Ford{Fulkerson.
27.3-4*
®«­ë¬ (ᮢ¥à襭­ë¬) ¯ à®á®ç¥â ­¨¥¬ (perfect matching) ­ §ë¢ ¥âáï ¯ à®á®ç¥â ­¨¥, ¢ ª®â®à®¥ ¢å®¤ï⠢ᥠ¢¥à設ë. ãáâì
G = (V; E ) | ­¥®à¨¥­â¨à®¢ ­­ë© ¤¢ã¤®«ì­ë© £à ä, ¢ ª®â®à®¬
¤®«¨ L ¨ R ¨¬¥îâ ¯®à®¢­ã í«¥¬¥­â®¢. „«ï ª ¦¤®£® X V ®¯à¥¤¥«¨¬ ¬­®¦¥á⢮ á®á¥¤¥© (neighborhood of) X ä®à¬ã«®©
N (X ) = fy 2 V j(x; y ) 2 E ¤«ï ­¥ª®â®à®£® x 2 X;
(á®á¥¤ï¬¨ ïîâáï ¢¥à設ë, ᮥ¤¨­ñ­­ë¥ ॡ஬ á ­¥ª®â®àë¬
í«¥¬¥­â®¬ ¬­®¦¥á⢠X ). „®ª ¦¨â¥ ⥮६㠕®«« (Hall's
theorem): ¯®«­®¥ ¯ à®á®ç¥â ­¨¥ áãé¥áâ¢ã¥â ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ ¤«ï «î¡®£® A L ¢ë¯®«­¥­® jAj 6 jN (A)j.
27.3-5*
H §®¢¥¬ ¤¢ã¤®«ì­ë© £à ä G = (V; E ) á ¤®«ï¬¨ L ¨ R dॣã«ïà­ë¬ (d-regular), ¥á«¨ á⥯¥­ì ª ¦¤®© ¢¥à設ë v 2 V à ¢­ d. (‡ ¬¥â¨¬, çâ® ¢ â ª®¬ á«ãç ¥ jLj = jRj.) „®ª ¦¨â¥, çâ® ¤«ï
d-ॣã«ïà­®£® £à ä ¢á¥£¤ áãé¥áâ¢ã¥â ¯®«­®¥ ¯ à®á®ç¥â ­¨¥.
27.4 €«£®à¨â¬ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª ‚ í⮬ à §¤¥«¥ ¬ë ¨§« £ ¥¬ ¬¥â®¤ "¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª ". H ¨¡®«¥¥ ¡ëáâàë¥ ¨§ ¨§¢¥áâ­ëå «£®à¨â¬®¢ ¤«ï § ¤ ç¨
® ¬ ªá¨¬ «ì­®¬ ¯®â®ª¥ ¨á¯®«ì§ãîâ ¨¬¥­­® ¥£®. Ž­ ¯à¨¬¥­¨¬ ¨
ª ¤à㣨¬ § ¤ ç ¬, ­ ¯à¨¬¥à ª § ¤ ç¥ ® ¯®â®ª ­ ¨¬¥­ì襩 á⮨¬®áâ¨. ‚ í⮬ à §¤¥«¥, á«¥¤ãï ƒ®«ì¤¡¥à£ã, ¬ë ®¯¨è¥¬ " ®¡é¨©"
¬¥â®¤ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª . “¦¥ ¯à®á⥩è ï ¥£® ॠ«¨§ æ¨ï âॡã¥â ¢á¥£® «¨èì O(V 2E ) è £®¢ ¨ ®¯¥à¥¦ ¥â «£®à¨â¬
¤¬®­¤á -Š ௠(O(V E 2)). ‚ à §¤¥«¥ 27.5 ¬ë ¯®ª ¦¥¬, ª ª ã«ãçè¨âì ®æ¥­ªã ¤® O(V 3).
‚ ®â«¨ç¨¥ ®â «£®à¨â¬ ¤¬®­¤á -Š ௠, ¬ë ­¥ ¯à®á¬ âਢ ¥¬ ¢áî ¢áî ®áâ â®ç­ãî á¥âì ­ ª ¦¤®¬ è £¥, ¤¥©áâ¢ã¥¬
«®ª «ì­® ¢ ®ªà¥áâ­®á⨠®¤­®© ¢¥à設ë. Šà®¬¥ ⮣®, ¬ë ­¥ âॡ㥬, ¢ë¯®«­¥­¨ï § ª®­ á®åà ­¥­¨ï ¯®â®ª ¢ ¯à®æ¥áá¥ à ¡®âë
«£®à¨â¬ , ¤®¢®«ìáâ¢ãïáì ¢ë¯®«­¥­¨¥¬ ᢮©á⢠¯à¥¤¯®â®ª . Œë
¡ã¤¥¬ ­ §ë¢ âì ¯à¥¤¯®â®ª®¬ (preow) äã­ªæ¨î f : V V ! ,
ª®â®à ï ª®á®á¨¬¬¥âà¨ç­ , 㤮¢«¥â¢®àï¥â ®£à ­¨ç¥­¨ï¬, á¢ï§ ­­ë¬ á ¯à®¯ã᪭묨 ᯮᮡ­®áâﬨ, â ª¦¥ â ª®¬ã ¨ ®á« ¡«¥­­®¬ã § ª®­ã á®åà ­¥­¨ï: f (V; u) > 0 ¤«ï ¢á¥å ¢¥à設 u 2 V n fsg.
’ ª¨¬ ®¡à §®¬, ¢ ª ¦¤®© ¢¥à設¥ u (ªà®¬¥ ¨á⮪ ) ¥áâì ­¥ª®â®àë© ­¥®âà¨æ ⥫ì­ë© ¨§¡ë⮪ (excess ow)
e(u) = f (V; u):
(27:8)
R
572
ƒ« ¢ 27 Œ ªá¨¬ «ì­ë© ¯®â®ª
‚¥à設ã (®â«¨ç­ãî ®â ¨á⮪ ¨ á⮪ ) á ¯®«®¦¨â¥«ì­ë¬ ¨§¡ë⪮¬ ­ §®¢ñ¬ ¯¥à¥¯®«­¥­­®© (overowing). (®«ì§ãïáì ¬¥â ä®à®© ­¥ä⥯஢®¤ , ¬®¦­® ᪠§ âì, çâ® ¯à¨å®¤ïéãî ­¥äâì ­¥
ãᯥ¢ î⠮⪠稢 âì, ¨ ¨§¡ë⮪ ­¥ä⨠᫨¢ ¥âáï.)
‚ í⮬ à §¤¥«¥ ¬ë ®¡êïá­¨¬ ¨¤¥î ¬¥â®¤ ¨ ®¯¨è¥¬ ¤¢¥ ®á­®¢­ë¥ ®¯¥à 樨: "¯à®â «ª¨¢ ­¨¥" ¯à¥¤¯®â®ª ¨ "¯®¤êñ¬" ¢¥à設ë.
®á«¥ í⮣® ¤®ª ¦¥¬ ¯à ¢¨«ì­®áâì ®¡é¥£® «£®à¨â¬ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª ¨ ®æ¥­¨¬ ¢à¥¬ï ¥£® à ¡®âë.
Œ®â¨¢¨à®¢ª ‚ ¬¥â®¤¥ ”®à¤ {” «ª¥àá®­ ¬ë ¢ ª ¦¤ë© ¬®¬¥­â ¨¬¥¥¬ ¤¥«®
á ¯®â®ª®¬ ¦¨¤ª®á⨠¯® âàã¡ ¬ ®â ¨á⮪ ª á⮪ã; ­ ª ¦¤®¬
è £¥ ¬ë 㢥«¨ç¨¢ ¥¬ íâ®â ¯®â®ª, ­ å®¤ï ¤®¯®«­ïî騩 ¯ãâì.
†¨¤ª®áâì ­¨ªã¤ ­¥ ¯à®«¨¢ ¥âáï ¯® ¤®à®£¥.
‚ «£®à¨â¬ å ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª ¨§¡ë⮪ ¦¨¤ª®áâ¨
¢ ª ¦¤®© ¢¥à設¥ (¬¥á⥠ᮥ¤¨­¥­¨ï âàã¡) ᫨¢ ¥âáï. Šà®¬¥
⮣®, ¢ ¦­ãî à®«ì ¨£à ¥â 楫®ç¨á«¥­­ë© ¯ à ¬¥âà, ª®â®àë©
¡ã¤¥â ­ §ë¢ âìáï ¢ëá®â®© ¢¥à設ë | ¬ë ¡ã¤¥¬ ¢®®¡à ¦ âì,
çâ® ¢ ¯à®æ¥áá¥ à ¡®âë «£®à¨â¬ ¢¥à設 ¬®¦¥â ¯®¤­¨¬ âìáï
¢¢¥àå. ‚ëá®â ¢¥àè¨­ë ®¯à¥¤¥«ï¥â, ªã¤ ¬ë áâ à ¥¬áï ­ ¯à ¢¨âì ¨§¡ë⮪ ¦¨¤ª®áâ¨: å®âï (¯®«®¦¨â¥«ì­ë©) ¯®â®ª ¦¨¤ª®á⨠¬®¦¥â ¨¤â¨ ¨ á­¨§ã ¢¢¥àå, 㢥«¨ç¨¢ âì ¥£® ¢ â ª®© á¨âã 樨 ­¥«ì§ï. (®¤à®¡­®á⨠á¬. ­¨¦¥.)
‚ëá®â ¨á⮪ ¢á¥£¤ à ¢­ jV j, á⮪ | ­ã«î. ‚ᥠ®áâ «ì­ë¥ ¢¥àè¨­ë ¨§­ ç «ì­® ­ 室ïâáï ­ ¢ëá®â¥ 0, ¨ á® ¢à¥¬¥­¥¬
¯®¤­¨¬ îâáï. „«ï ­ ç « ¬ë ®â¯à ¢«ï¥¬ ¨§ ¨á⮪ ¢­¨§ á⮫쪮
¦¨¤ª®áâ¨, ᪮«ìª® ­ ¬ ¯®§¢®«ïî⠯யãáª­ë¥ á¯®á®¡­®á⨠¢ë室ïé¨å ¨§ ¨á⮪ âàã¡ (íâ® ª®«¨ç¥á⢮ à ¢­® ¯à®¯ã᪭®© ᯮᮡ­®áâ¨ à §à¥§ (s; V n s)). ‚®§­¨ª î騩 (¢ á®á¥¤­¨å á ¨á⮪®¬
¢¥à設 å) ¨§¡ë⮪ ¦¨¤ª®á⨠ᯥࢠ¯à®áâ® ¢ë«¨¢ ¥âáï, ­® § ⥬ ®­ ¡ã¤¥â ­ ¯à ¢«¥­ ¤ «ìè¥.
 áᬠâਢ ï ª ªãî-«¨¡® ¢¥à設ã u ¢ 室¥ à ¡®âë «£®à¨â¬ ,
¬ë ¬®¦¥¬ ®¡­ à㦨âì, çâ® ¢ ­¥© ¥áâì ¨§¡ë⮪ ¦¨¤ª®áâ¨, ­®
çâ® ¢á¥ âàã¡ë, ¯® ª®â®àë¬ ¥éñ ¬®¦­® ®â¯à ¢¨âì ¦¨¤ª®áâì ¨§
u ªã¤ -â® (¢á¥ ­¥­ áë饭­ë¥ âàã¡ë) ¢¥¤ãâ ¢ ¢¥à設ë ⮩ ¦¥
¨«¨ ¡®«ì襩 ¢ëá®âë. ‚ í⮬ á«ãç ¥ ¬ë ¬®¦¥¬ ¢ë¯®«­¨âì ¤àã£ãî ®¯¥à æ¨î, ­ §ë¢ ¥¬ãî " ¯®¤êñ¬®¬" ¢¥à設ë u. ®á«¥ í⮣®
¢¥à設 u áâ ­®¢¨âáï ­ ¥¤¨­¨æã ¢ëè¥ á ¬®£® ­¨§ª®£® ¨§ â¥å ¥ñ
á®á¥¤¥©, ¢ ª®â®à®£® ¢¥¤ñâ ­¥­ áë饭­ ï âàã¡ | ¤à㣨¬¨ á«®¢ ¬¨, ¬ë ¯®¤­¨¬ ¥¬ u ஢­® ­ á⮫쪮, çâ®¡ë ¯®ï¢¨« áì ­¥­ áë饭­ ï âàã¡ , ¢¥¤ãé ï ¢­¨§.
‚ ª®­æ¥ ª®­æ®¢ ¬ë ¤®¡ìñ¬áï ⮣®, çâ® ¢ á⮪ ¯à¨å®¤¨â ¬ ªá¨¬ «ì­® ¢®§¬®¦­®¥ ª®«¨ç¥á⢮ ¦¨¤ª®á⨠(¤«ï ¤ ­­ëå ¯à®¯ã᪭ëå
ᯮᮡ­®á⥩ âàã¡). à¨ í⮬ ¯à¥¤¯®â®ª ¬®¦¥â ¥éñ ­¥ ¡ëâì
¯®â®ª®¬ (¨§¡ë⮪ ¦¨¤ª®á⨠᫨¢ ¥âáï). à®¤®«¦ ï ¯®¤êñ¬
¢¥à設 (ª®â®àë¥ ¬®£ãâ áâ âì ¢ëè¥ ¨á⮪ ), ¬ë ¯®á⥯¥­­®
®â¯à ¢¨¬ ¨§¡ë⮪ ®¡à â­® ¢ ¨á⮪ (çâ® ®§­ ç ¥â ᮪à 饭¨¥
€«£®à¨â¬ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª 573
¯®â®ª ¦¨¤ª®á⨠®â ¨á⮪ ) | ¨ ¯à¥¢à ⨬ ¯à¥¤¯®â®ª ¢ ¯®â®ª (ª®â®àë© ®ª ¦¥âáï ¬ ªá¨¬ «ì­ë¬).
Žá­®¢­ë¥ ®¯¥à 樨
ˆâ ª, «£®à¨â¬ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª ¨á¯®«ì§ã¥â ¤¢¥
®á­®¢­ë¥ ®¯¥à 樨: ¯à®â «ª¨¢ ­¨¥ ¯®â®ª ¨§ ¢¥àè¨­ë ¢ á®á¥¤­îî ¨ ¯®¤êñ¬ ¢¥à設ë. „ ¤¨¬ â®ç­ë¥ ®¯à¥¤¥«¥­¨ï.
ãáâì G = (V; E ) | á¥âì á ¨á⮪®¬ s ¨ á⮪®¬ t, f | ¯à¥¤¯®â®ª ¢ G. ”ã­ªæ¨ï h : V ! ­ §ë¢ ¥âáï ¢ëá®â­®© ä㭪樥©
(height function) ¤«ï ¯à¥¤¯®â®ª f , ¥á«¨ h(s) = jV j, h(t) = 0 ¨
h(u) 6 h(v ) + 1
¤«ï «î¡®£® ®áâ â®ç­®£® ॡà (u; v) 2 Ef . ‘«¥¤ãîé ï «¥¬¬ ¤ ñâ
®ç¥¢¨¤­ãî ¯¥à¥ä®à¬ã«¨à®¢ªã í⮣® ãá«®¢¨ï:
‹¥¬¬ 27.13
ãáâì f | ¯à¥¤¯®â®ª ¢ á¥â¨ G = (V; E ) ¨ h | ¢ëá®â­ ï äã­ªæ¨ï. ’®£¤ ¥á«¨ ¤«ï ¢¥à設 u; v 2 V , ¢ë¯®«­¥­® h(u) > h(v) + 1,
â® ®áâ â®ç­ ï á¥âì ­¥ ᮤ¥à¦¨â ॡà (u; v) ("¯® ªàãâ® ¨¤ã騬
¢­¨§ âàã¡ ¬ ¨¤ñâ ¬ ªá¨¬ «ì­® ¢®§¬®¦­ë© ¯®â®ª".)
’¥¯¥àì ®¯à¥¤¥«¨¬ ®á­®¢­ë¥ ®¯¥à 樨.
à®æ¥¤ãà Push(u; v) ¯à¨¬¥­¨¬ , ¥á«¨ ¢¥à設 u ¯¥à¥¯®«­¥­ (â® ¥áâì cf (u; v ) > 0) ¨ ¥á«¨ h(u) = h(v ) + 1. à¨ í⮬ ¯®â®ª
¨§ ¢¥à設ë u ¢ ¥ñ á®á¥¤ v à áâñâ | ¥£® 㢥«¨ç¥­¨¥ ®£à ­¨ç¥­®
¨§¡ë⪮¬ ¦¨¤ª®á⨠¢ u ¨ ®áâ â®ç­®© ¯à®¯ã᪭®© ᯮᮡ­®áâìî
ॡà (u; v).
N
\textsc{Push}($u,v$)
1 $\triangleright$ ¤ ­®: ¢¥à設 $u$ ¯¥à¥¯®«­¥­ ,
$c_f(u,v)>0$ ¨ $h(u)=h(v)+1$.
2 $\triangleright$ ­ ¤®: ¯à®â®«ª­ãâì
$d_f(u,v)=\min(e[u],c_f(u,v)$ ¥¤¨­¨æ ¯®â®ª ¨§ $u$ ¢
3 $d_f(u,v)\leftarrow\min(e[u],c_f(u,v)$
4 $f[u,v]\leftarrow f[u,v]+d_f(u,v)$
5 $f[v,u]\leftarrow -f[u,v]$
6
$e[u]\leftarrow e[u]-d_f(u,v)$
7
$e[v]\leftarrow e[v]+d_f(u,v)$
$v$.
Œë ¯à¥¤¯®« £ ¥¬, çâ® ¨§¡ë⮪ ¢ ¢¥à設¥ à ¢¥­ e[u] > 0, ¨ çâ®
®áâ â®ç­ ï ¯à®¯ã᪭ ï ᯮᮡ­®áâì ॡà (u; v) â ª¦¥ ¯®«®¦¨â¥«ì­ . ®íâ®¬ã ¬ë ¬®¦¥¬ ­ ¯à ¢¨âì min(e[u]; cf (u; v)) > 0 ¥¤¨­¨æ ¯®â®ª ¨§ u ¢ v (¬ë ¢ëç¨á«ï¥¬ íâã ¢¥«¨ç¨­ã ¢ áâப¥ 3),
­¥ ¯à¥¢ëᨢ ¯à®¯ã᪭®© ᯮᮡ­®á⨠¨ ­¥ ᤥ« ¢ ¨§¡ë⮪ ®âà¨æ ⥫ì­ë¬. ‘«¥¤®¢ ⥫쭮, ¥á«¨ äã­ªæ¨ï f ®áâ ­¥âáï ¯à¥¤¯®â®ª®¬ (¥á«¨ ®­ ¨¬ ¡ë« ). Œë ¨§¬¥­ï¥¬ f ¢ áâப å 4-5 ¨ e ¢ áâப å
6-7.
“á«®¢¨¥ h(u) = h(v) + 1 £ à ­â¨àã¥â, çâ® ¬ë ­ ¯à ¢«ï¥¬ ¤®¯®«­¨â¥«ì­ë© ¯®â®ª «¨èì ¯® àñ¡à ¬, ¨¤ã騬 ¢­¨§ á ¥¤¨­¨ç­®©
574
ƒ« ¢ 27 Œ ªá¨¬ «ì­ë© ¯®â®ª
à §­¨æ¥© ¢ëá®â. ‚¯à®ç¥¬, ¡®«¥¥ ªàãâë¥ àñ¡à 㦥 ­ áëé¥­ë ¨
â ª («¥¬¬ 27.13)
Ž¯¥à æ¨ï Push ­ §ë¢ ¥âáï ¯à®â «ª¨¢ ­¨¥¬ ¨§ ¢¥à設ë u
¢ ¢¥à設ã v (¯à¨¬¥­ñ­­ë¬ ª ¢¥à設¥ u). à®â «ª¨¢ ­¨¥ ­ §ë¢ ¥âáï ­ áëé î騬 (saturating), ¥á«¨ ¢ १ã«ìâ ⥠ॡà®
(u; v ) áâ ­®¢¨âáï ­ áë饭­ë¬ (saturated), â® ¥áâì ¥á«¨ cf (u; v )
®¡à é ¥âáï ¢ ­ã«ì (ॡ஠¨á祧 ¥â ¨§ ®áâ â®ç­®© á¥â¨); ¢
¯à®â¨¢­®¬ á«ãç ¥ ¯à®â «ª¨¢ ­¨¥ áç¨â îâ ­¥­ áëé î騬
(nonsaturating).
à®æ¥¤ãà Lift(u) ¯®¤­¨¬ ¥â ¯¥à¥¯®«­¥­­ãî ¢¥à設ã u ­ ¬ ªá¨¬ «ì­ãî ¢ëá®âã, ª®â®à ï ¤®¯ãá⨬ ¯® ®¯à¥¤¥«¥­¨î ¢ëá®â­®©
ä㭪樨. ®á¬®âਬ ­ ᮮ⭮襭¨¥ ¢ëá®â ¢¥àè¨­ë ¨ ¥ñ á®á¥¤¥© ¢ ®áâ â®ç­®© á¥â¨. ® ®¯à¥¤¥«¥­¨î ¢ëá®â­®© ä㭪樨 ¢ëá®â ¢¥àè¨­ë ¯à¥¢®á室¨â ¢ëá®âã á®á¥¤ ¢ ®áâ â®ç­®© á¥â¨ ­¥
¡®«¥¥ 祬 ­ 1. …᫨ ¥áâì á®á¥¤, ª®â®àë© ­ ¥¤¨­¨æã ­¨¦¥, â®
¬®¦­® ¢ë¯®«­¨âì ¯à®â «ª¨¢ ­¨¥ (­® ­¥«ì§ï ¢ë¯®«­¨âì ¯®¤êñ¬).
…᫨ ¢á¥ á®á¥¤¨ ­¥ ­¨¦¥, â® ¯à®â «ª¨¢ ­¨¥ ¢ë¯®«­¨âì ­¥«ì§ï, ¯®¤êñ¬ | ¬®¦­®, ¯®á«¥ 祣® ¢®§¬®¦­® ¯à®â «ª¨¢ ­¨¥. ‚®â ª ª
¢ë£«ï¤¨â ¯à®æ¥¤ãà ¯®¤êñ¬ (lifting):
\textsc{Lift}($u$)
1 $\triangleright$ ¤ ­®: ¢¥à設 $u$ ¯¥à¥¯®«­¥­ ; ¤«ï «î¡®£®
ॡà $(u,v)\in E_f$ ¢ë¯®«­¥­® ­¥à ¢¥­á⢮ $h(u)\le h(v)$.
2 $\triangleright$ ­ ¤®: 㢥«¨ç¨âì $h[u]$, ¯®¤£®â®-
¢«ïï ¯à®â «ª¨¢ ­¨¥
¨§ ¢¥à設ë $u$
3
$h[u]\leftarrow
1+\min\{h[v]|(u,v)\ in E_f\}$
‡ ¬¥â¨¬, çâ® ¥á«¨ ¢¥à設 u ¯¥à¥¯®«­¥­ , â® ¢ Ef ­ ©¤ñâáï
¯® ªà ©­¥© ¬¥à¥ ®¤­® ॡà®, ¢ë室ï饥 ¨§ u (¬¨­¨¬ã¬ ¢ áâப¥ 3
¡¥àñâáï ¯® ­¥¯ãá⮬㠬­®¦¥áâ¢ã). —â®¡ë ¤®ª § âì íâ®, ¢á¯®¬­¨¬, çâ® f [V; u] = e[u] > 0, ¯®í⮬ã áãé¥áâ¢ã¥â ¯® ªà ©­¥©
¬¥à¥ ®¤­ â ª ï ¢¥à設 v, ¤«ï ª®â®à®© f (v; u) > 0. ®«ãç ¥¬
cf (u; v ) = c(u; v) ; f [u; v ] = c(u; v ) + f [v; u] > 0;
íâ® ®§­ ç ¥â, çâ® (u; v) 2 Ef . (…᫨ ¢ ¢¥à設¥ ¦¨¤ª®áâì ¢ë«¨¢ ¥âáï, â® ®­ ®âªã¤ -â® ¯à¨å®¤¨â, ¨ ¥áâì १¥à¢, á®áâ®ï騩
¢ 㬥­ì襭¨¨ í⮣® ¯à¨å®¤ .)
Ž¡é ï á奬 «£®à¨â¬ €«£®à¨â¬ ­ 稭 ¥âáï á ¢ë§®¢ Initialize-Preflow, § ¤ î饣® ­ ç «ì­ë© ¯à¥¤¯®â®ª:
8
>
< c(u; v ) ¥á«¨ u = s;
f [u; v] = > ;c(v; u) ¥á«¨ v = s;
(27:9)
:
0 ¢ ®áâ «ì­ëå á«ãç ïå.
€«£®à¨â¬ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª 575
\textsc{Initialize-Preflow}($G,s$)
1 for (¤«ï) ª ¦¤®© ¢¥à設ë $u\in V[G]$
2
do $h[u]\leftarrow 0$
$e[u]\leftarrow 0$
4 for (¤«ï) ª ¦¤®£® ॡà $(u,v)\in E[G]$
5
do $f[u,v]\leftarrow 0$
6
$f[v,u]\leftarrow 0$
7
$h[s]\leftarrow |V[G]|$
8 for (¤«ï) ª ¦¤®© ¢¥à設ë $u\in Adj[s]$
9
do $f[s,u]\leftarrow c(s,u)$
10
$f[u,s]\leftarrow -c(s,u)$
11
$e[u]\leftarrow c(s,u)$
‚ ¬ áᨢ¥ h åà ­ïâáï ¢ëá®âë, ¢ ¬ áᨢ¥ e | ¨§¡ë⪨, c(u; v)
| ¯à®¯ãáª­ë¥ á¯®á®¡­®á⨠(áç¨â ¥¬, çâ® ®­¨ § ¤ ­ë â ª, çâ®
¢ëç¨á«¥­¨¥ c(u; v) âॡã¥â ¢à¥¬¥­¨ O(1)). ®â®ª § ¯¨áë¢ ¥âáï
¢ ¬ áᨢ f .
®â®ª ¯® ª ¦¤®¬ã ॡàã, ¢ë室ï饬㠨§ ¨á⮪ s, áâ ­®¢¨âáï à ¢­ë¬ ¯à®¯ã᪭®© ᯮᮡ­®á⨠í⮣® ॡà . ® ®áâ «ì­ë¬ àñ¡à ¬ ¯®â®ª à ¢¥­ 0. ‚ ª ¦¤®© ᬥ¦­®© á ¨á⮪®¬ ¢¥à設¥
v ¯®ï¢«ï¥âáï ¨§¡ë⮪ e[v ] = c(s; v). H ç «ì­ ï ¢ëá®â § ¤ ¥âáï
ä®à¬ã«®©
u = s;
h[u] = jV0j;; ¥á«¨
¢ ¯à®â¨¢­®¬ á«ãç ¥.
â® ¤¥©á⢨⥫쭮 ¢ëá®â­ ï äã­ªæ¨ï, â ª ª ª àñ¡à (u; v), ¤«ï
ª®â®àëå h[u] > h[v] + 1, ¢ë室ïâ ⮫쪮 ¨§ ¨á⮪ (u = s), ­®
í⨠àñ¡à ­ áëé¥­ë ¨ ¨å ­¥â ¢ ®áâ â®ç­®© á¥â¨.
à®£à ¬¬ Generic-Preflow-Push ¤ ñâ ®¡éãî á奬㠫£®à¨â¬ , ®á­®¢ ­­®£® ­ ¯à®â «ª¨¢ ­¨¨ ¯à¥¤¯®â®ª .
\textsc{Generic-Preflow-Push}
1 \textsc{Initialize-Preflow}
2
while (¯®ª ) ¢®§¬®¦­ë ®¯¥à 樨 ¯®¤êñ¬ ¨«¨ ¯à®â «ª¨¢ ­¨ï
3
do ¢ë¯®«­¨âì ®¤­ã ¨§ íâ¨å ®¯¥à 権
‘«¥¤ãîé ï «¥¬¬ ¯®ª §ë¢ ¥â, çâ® ¯®ª ¥áâì å®âì ®¤­ ¯¥à¥¯®«­¥­­ ï ¢¥à設 , ª ª ï-â® ¨§ ®¯¥à 権 ¯®¤êñ¬ ¨«¨ ¯à®â «ª¨¢ ­¨ï ¢®§¬®¦­ .
‹¥¬¬ 27.14 (‚ ¯¥à¥¯®«­¥­­®© ¢¥à設¥ ¢®§¬®¦­® «¨¡® ¯à®â «ª¨¢ ­¨¥, «¨¡® ¯®¤êñ¬)
ãáâì f | ¯à¥¤¯®â®ª ¢ á¥â¨ G = (V; E ). ãáâì h | ¢ëá®â­ ï
äã­ªæ¨ï ¤«ï f ¨ ¢¥à設 u ¯¥à¥¯®«­¥­ . ’®£¤ ¢ u ¢®§¬®¦­® «¨¡®
¯à®â «ª¨¢ ­¨¥, «¨¡® ¯®¤êñ¬.
„®ª § ⥫ìá⢮
576
ƒ« ¢ 27 Œ ªá¨¬ «ì­ë© ¯®â®ª
®áª®«ìªã h | ¢ëá®â­ ï äã­ªæ¨ï, â® h(u) 6 h(v) + 1 ¤«ï «î¡®£® ®áâ â®ç­®£® ॡà (u; v). …᫨ ¢ u ­¥¢®§¬®¦­® ¯à®â «ª¨¢ ­¨¥, â® ¤«ï ¢á¥å ®áâ â®ç­ëå àñ¡¥à (u; v) ¢ë¯®«­¥­® ­¥à ¢¥­á⢮
h(u) < h(v ) + 1, ¨§ 祣® á«¥¤ã¥â, çâ® h(u) 6 h(v ), ¨ ¢ ¢¥à設¥ u
¢®§¬®¦¥­ ¯®¤êñ¬.
Š®à४⭮áâì ¬¥â®¤ Š®à४⭮áâì ¬¥â®¤ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª ¬ë ¤®ª ¦¥¬ ¢ ¤¢ íâ ¯ . ‘­ ç « ¬ë ¤®ª ¦¥¬, çâ® ¥á«¨ «£®à¨â¬
®áâ ­®¢¨âáï, â® ¯à¥¤¯®â®ª f ¢ íâ®â ¬®¬¥­â ¡ã¤¥â ¬ ªá¨¬ «ì­ë¬ ¯®â®ª®¬. ‡ ⥬ ¬ë ¤®ª ¦¥¬, çâ® «£®à¨â¬ ¤¥©á⢨⥫쭮
®áâ ­®¢¨âáï.  ç­ñ¬ á â ª®£® § ¬¥ç ­¨ï (®ç¥¢¨¤­®£® á«¥¤ãî饣® ¨§ ®¯¨á ­¨ï ¯à®æ¥¤ãàë ¯®¤êñ¬ ).
‹¥¬¬ 27.15 (‚ëá®â ¢¥àè¨­ë ­¥ ã¡ë¢ ¥â)
à¨ ¨á¯®«­¥­¨¨ ¯à®£à ¬¬ë Generic-Preflow-Push ¢ëá®â h[u] «î¡®© ¢¥à設ë u 2 V ¬®¦¥â ⮫쪮 ¢®§à áâ âì (¯à¨ ª ¦¤®¬ ¯®¤êñ¬¥ í⮩ ¢¥àè¨­ë ¯® ¬¥­ì襩 ¬¥à¥ ­ ¥¤¨­¨æã).
‹¥¬¬ 27.16
‚® ¢à¥¬ï ¢ë¯®«­¥­¨ï ¯à®£à ¬¬ë Generic-Preflow-Push
äã­ªæ¨ï h ®áâ ñâáï ¢ëá®â­®© ä㭪樥©.
„®ª § ⥫ìá⢮
®á¬®âਬ, çâ® ¯à®¨á室¨â ¯à¨ ¯à®â «ª¨¢ ­¨¨ ¨ ¯à¨ ¯®¤êñ¬¥.
à¨ ¯®¤êñ¬¥ ¢¥à設ë u ¬ë § ¡®â¨¬áï ® ⮬, çâ®¡ë ¢ë室ï騥 ¨§ u ®áâ â®ç­ë¥ àñ¡à ­¥ ­ àãè «¨ ®¯à¥¤¥«¥­¨¥ ¢ëá®â­®©
ä㭪樨. —â® ¦¥ ª á ¥âáï ¢å®¤ïé¨å àñ¡¥à, â® á ­¨¬¨ ­¥ ¬®¦¥â
¡ëâì ¯à®¡«¥¬, â ª ª ª ¢ëá®â ¢¥à設ë u ⮫쪮 ¢®§à áâ ¥â.
 áᬮâਬ ⥯¥àì ¯à®æ¥¤ãàã Push(u; v). ‹¥£ª® ¯®­ïâì, çâ®
ªàãâ® ¨¤ã騥 ¢­¨§å ­¥­ áë饭­ë¥ àñ¡à ¯®ï¢¨âìáï ­¥ ¬®£ãâ. ®«¥¥ ä®à¬ «ì­®, íâ ¯à®æ¥¤ãà ¬®¦¥â ¤®¡ ¢¨âì ॡ஠(v; u) ¢ Ef ,
â ª¦¥ 㤠«¨âì ॡ஠(u; v) ¨§ Ef . ‚ ¯¥à¢®¬ á«ãç ¥ h[v] = h[u];1
¨ h ®áâ ñâáï ¢ëá®â­®© ä㭪樥©. ‚® ¢â®à®¬ á«ãç ¥ 㤠«¥­¨î
ॡà ᮯãâáâ¢ã¥â ®â¬¥­ ᮮ⢥âáâ¢ãî饣® ®£à ­¨ç¥­¨ï ¨ h
á­®¢ ®áâ ñâáï ¢ëá®â­®© ä㭪樥©.
„®ª ¦¥¬ ®¤­® ¢ ¦­®¥ ᢮©á⢮ ¢ëá®â­®© ä㭪樨.
‹¥¬¬ 27.17
ãáâì G = (V; E ) | á¥âì á ¨á⮪®¬ s ¨ á⮪®¬ t. ãáâì f |
¯à¥¤¯®â®ª ¢ G, h | ¢ëá®â­ ï äã­ªæ¨ï ¤«ï f . ’®£¤ ¢ ®áâ â®ç­®© á¥â¨ Gf ­¥ áãé¥áâ¢ã¥â ¯ã⨠¨§ ¨á⮪ ¢ á⮪.
„®ª § ⥫ìá⢮
ãáâì íâ® ­¥ â ª ¨ â ª®© ¯ãâì áãé¥áâ¢ã¥â. “áâà ­ïï 横«ë,
¬®¦­® áç¨â âì, çâ® ®­ ¯à®á⮩ ¨ ¯®â®¬ã ¤«¨­ ¥£® ¬¥­ìè¥ jV j.
à¨ í⮬ ¢ëá®â ¯ ¤ ¥â ®â jV j ¤® ­ã«ï. ‘«¥¤®¢ ⥫쭮, ¢ ¯ãâ¨
¥áâì ॡà®, £¤¥ ¢ëá®â ¯ ¤ ¥â ¯® ªà ©­¥© ¬¥à¥ ­ 2 | â ª®¥
ॡ஠­¥ ¬®¦¥â ¢å®¤¨âì ¢ ®áâ â®ç­ãî á¥âì.
’¥®à¥¬ 27.18 (Š®à४⭮áâì ¬¥â®¤ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª )
€«£®à¨â¬ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª 577
…᫨ ¯à®£à ¬¬ Generic-Preflow-Push, ¯à¨¬¥­ñ­­ ï ª á¥â¨
G = (V; E ) á ¨á⮪®¬ s ¨ á⮪®¬ t ®áâ ­ ¢«¨¢ ¥âáï, â® ¯®«ãç î騩áï ¯à¥¤¯®â®ª f , ¡ã¤¥â ¬ ªá¨¬ «ì­ë¬ ¯®â®ª®¬ ¤«ï G.
„®ª § ⥫ìá⢮
‹¥¬¬ 27.14 £ à ­â¨àã¥â, çâ® ¢ ¬®¬¥­â ®áâ ­®¢ª¨ ¯¥à¥¯®«­¥­­ëå ¢¥à設 ¢ á¥â¨ ­¥â (¨§¡ë⮪ ¢ ª ¦¤®© à ¢¥­ ­ã«î). ‡­ ç¨â, ¢ íâ®â ¬®¬¥­â ¯à¥¤¯®â®ª ï¥âáï ¯®â®ª®¬. ® «¥¬¬¥
27.16 äã­ªæ¨ï h ¡ã¤¥â ¢ëá®â­®© ä㭪樥©, ¨ ¯®â®¬ã («¥¬¬ 27.17) ¢ ®áâ â®ç­®© á¥â¨ Gf ­¥â ¯ã⨠¨§ s ¢ t. ® ⥮६¥ ®
¬ ªá¨¬ «ì­®¬ ¯®â®ª¥ ¨ ¬¨­¨¬ «ì­®¬ à §à¥§¥ ¯®â®ª f ¬ ªá¨¬ «¥­.
€­ «¨§ ¬¥â®¤ —⮡ë ã¡¥¤¨âì, çâ® «£®à¨â¬ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª ®áâ ­ ¢«¨¢ ¥âáï, 㪠¦¥¬ ¢¥àå­¨¥ £à ­¨æë ®â¤¥«ì­® ¤«ï ç¨á« ¯®¤êñ¬®¢, ­ áëé îé¨å ¨ ­¥­ áëé îé¨å ¯à®â «ª¨¢ ­¨©. ®á«¥
í⮣® áâ ­¥â ïá­®, çâ® ¢à¥¬ï à ¡®âë «£®à¨â¬ ¥áâì O(V 2E ).
 ç­ñ¬ á â ª®© ¢ ¦­®© «¥¬¬ë:
‹¥¬¬ 27.19
ãáâì G = (V; E ) | á¥âì á ¨á⮪®¬ s ¨ á⮪®¬ t, f | ¯à¥¤¯®â®ª ¢ G. ’®£¤ ¤«ï «î¡®© ¯¥à¥¯®«­¥­­®© ¢¥à設ë u ­ ©¤¥âáï
¯à®á⮩ ¯ãâì ¨§ u ¢ s ¢ ®áâ â®ç­®© á¥â¨ Gf .
„®ª § ⥫ìá⢮.
†¨¤ª®áâì, ᫨¢ ¥¬ ï ¢ ¢¥à設¥ u, ¯®¯ ¤ ¥â â㤠¨§ ¨á⮪ s ¯® ª ª®¬ã-â® ¯ãâ¨: áãé¥áâ¢ã¥â ¯ãâì ¨§ s ¢ u, ¯® àñ¡à ¬ ª®â®à®£® ¨¤ñâ ¯®«®¦¨â¥«ì­ë© ¯®â®ª. (”®à¬ «ì­® ¬®¦­® à áá㦤 âì â ª: à áᬮâਬ ¬­®¦¥á⢮ U â¥å ¢¥à設, ¨§ ª®â®àëå
¢ u ¬®¦­® ¯à®©â¨ ¯® àñ¡à ¬ á ¯®«®¦¨â¥«ì­ë¬ ¯®â®ª®¬. …᫨
á।¨ ­¨å ­¥â ¨á⮪ , â® ¢ U ­¨ ¯® ª ª¨¬ àñ¡à ¬ ¦¨¤ª®áâì ­¥
¢å®¤¨â. Žâáî¤ á«¥¤ã¥â, çâ® e(U ) (á㬬 ¢á¥å ¨§¡ë⪮¢ ¢¥à設
¢ U ), à ¢­ ï f (V; U ) = f (V n U; U ) + f (U; U ) = f (V n U; U ) 6 0, â ª
çâ® ¢á¥ ¨§îë⪨ à ¢­ë 0.)
ˆâ ª, ¢®§ì¬ñ¬ ¯ãâì ¨§ s ¢ u, ¯® ¢á¥¬ àñ¡à ¬ ª®â®à®£® ¨¤ñâ
¯®«®¦¨â¥«ì­ë© ¯®â®ª, ¨ ®¡à ⨬ ¥£® àñ¡à . Ž¡à â­ë¥ àñ¡à ¢å®¤ïâ ¢ ®áâ â®ç­ãî á¥âì. „«ï ¤®ª § ⥫ìá⢠ã⢥ত¥­¨ï
«¥¬¬ë ®áâ ñâáï 㤠«¨âì 横«ë (¥á«¨ ®­¨ ¥áâì).
‘«¥¤ãîé ï «¥¬¬ ®£à ­¨ç¨¢ ¥â ¢ëá®âã ¢¥à設ë, ¨ ⥬ á ¬ë¬
ç¨á«® ¢®§¬®¦­ëå ¯®¤êñ¬®¢.
‹¥¬¬ 27.20
à¨ ¨á¯®«­¥­¨¨ ¯à®£à ¬¬ë Generic-Preflow-Push ¢ëá®â «î¡®© ¢¥à設ë v 2 V ­¨ª®£¤ ­¥ ¯à¥¢§®©¤ñâ 2jV j ; 1.
„®ª § ⥫ìá⢮
® ®¯à¥¤¥«¥­¨î ¢ëá®âë h[s] = jV j ¨ h[t] = 0. ®¤êñ¬ ¯à¨¬¥­¨¬ ⮫쪮 ª ¯¥à¥¯®«­¥­­ë¬ ¢¥à設 ¬ | ¯®á¬®âਬ, ­ ª ª®©
¢ëá®â¥ ®­¨ ¬®£ãâ ¡ëâì. ãáâì u | ¯¥à¥¯®«­¥­­ ï ¢¥à設 . ®
«¥¬¬¥ 27.19, ¢ Gf áãé¥áâ¢ã¥â ¯à®á⮩ ¯ãâì p ¨§ í⮩ ¢¥àè¨­ë ¢
s. ® ®¯à¥¤¥«¥­¨î ¢ëá®â­®© ä㭪樨, ¢ëá®â ­¥ ¬®¦¥â ã¡ë¢ âì
578
ƒ« ¢ 27 Œ ªá¨¬ «ì­ë© ¯®â®ª
¡®«¥¥ 祬 ­ 1 ¢¤®«ì àñ¡¥à á¥â¨ Gf , ¢ëá®â ª®­¥ç­®© ¢¥à設ë
¯ã⨠(â.¥. s) à ¢­ jV j. ãâì (¡ã¤ãç¨ ¯à®áâë¬) ᮤ¥à¦¨â ­¥
¡®«¥¥ jV j ; 1 àñ¡¥à, â ª çâ® ¢ëá®â ¥£® ­ ç « ­¥ ¯à¥¢®á室¨â
2jV j ; 1.
‘«¥¤á⢨¥ 27.21 (Žæ¥­ª ç¨á« ¯®¤êñ¬®¢)
à¨ ¨á¯®«­¥­¨¨ ¯à®£à ¬¬ë Generic-Preflow-Push ®¡é¥¥ ç¨á«® ®¯¥à 権 ¯®¤êñ¬ ­¥ ¯à¥¢®á室¨â 2jV j2.
„®ª § ⥫ìá⢮
‚ëá®â ¢¥àè¨­ë ¯à¨ ¯®¤êñ¬¥ 㢥«¨ç¨¢ ¥âáï, ­® ­¥ ¬®¦¥â
áâ âì ¡®«ìè¥ 2jV j ; 1, ¯®í⮬㠫î¡ãî ¢¥à設ã v 2 V n fs; tg
¬®¦­® ¯®¤­ïâì á ¬®¥ ¡®«ì襥 2jV j ; 1 à §. ‚ᥣ® â ª¨å ¢¥à設 jV j ; 2, ¯®í⮬㠮¡é¥¥ ç¨á«® ¯®¤êñ¬®¢ ­¥ ¯à¥¢®á室¨â
(2jV j ; 1)(jV j ; 2j) < 2jV j2.
‹¥¬¬ 27.22 (Žæ¥­ª ç¨á« ­ áëé îé¨å ¯à®â «ª¨¢ ­¨©) à¨
¨á¯®«­¥­¨¨ ¯à®£à ¬¬ë Generic-Preflow-Push ª®«¨ç¥á⢮ ­ áëé îé¨å ¯à®â «ª¨¢ ­¨© ­¥ ¯à¥¢®á室¨â 2jV jjE j.
„®ª § ⥫ìá⢮
 áᬮâਬ ­ áëé î騥 ¯à®â «ª¨¢ ­¨ï ¬¥¦¤ã ¢¥à設 ¬¨
u; v 2 V (¢ ®¡¥ áâ®à®­ë). …᫨ å®âï ¡ë ®¤­® ¯à®â «ª¨¢ ­¨¥ ¡ë«®,
â® å®âï ¡ë ®¤­® ¨§ àñ¡¥à (u; v) ¨«¨ (v; u) ¯à¨­ ¤«¥¦¨â E . ãáâì
¨¬¥«® ¬¥áâ® ­ áëé î饥 ¯à®â «ª¨¢ ­¨¥ ¨§ u ¢ v. ®á«¥ ­¥£®
ॡ஠(u; v) ¨á祧«® ¨§ ®áâ â®ç­®© á¥â¨ Gf . „«ï ⮣®, ç⮡ë
í⮠ॡ஠¯®ï¢¨«®áì, ­¥®¡å®¤¨¬® ¯à®â®«ª­ãâì ¯®â®ª ¨§ v ¢ u, ­®
í⮣® ­¥«ì§ï ᤥ« âì, ¯®ª ­¥ ¡ã¤¥â ¢ë¯®«­¥­® h[v] = h[u] + 1,
â.¥. h[v] ­¥®¡å®¤¨¬® 㢥«¨ç¨âì ¯® ªà ©­¥© ¬¥à¥ ­ 2.
®á¬®âਬ ­ §­ 祭¨¥ á㬬ë h[u] + h[v] ¢ ¬®¬¥­âë ­ áëé îé¨x ¯à®â «ª¨¢ ­¨ï ¬¥¦¤ã u ¨ v. ‡ ¬¥â¨¬, çâ® ¯à®â «ª¨¢ ­¨¥
¢®§¬®¦­®, ⮫쪮 ¥á«¨ ¢ëá®âë ¢¥à設 u ¨ v ®â«¨ç îâáï ­ ¥¤¨­¨æã. ®í⮬㠯¥à¢ ï á㬬 ­¥ ¬¥­ìè¥ 1, ¯®á«¥¤­ïï á㬬 ­¥
¡®«ìè¥ (2jV j ; 1) + 2(jV j ; 2) = 4jV j ; 3. „¢¥ á®á¥¤­¨¥ áã¬¬ë ®â«¨ç îâáï ¯® ªà ©­¥© ¬¥à¥ ­ 2. ’ ª¨¬ ®¡à §®¬, ¢á¥£® ¨¬¥¥âáï ­¥
¡®«¥¥ ((4jV j; 3) ; 1)=2+1 = 2jV j; 1 ­ áëé îé¨å ¯à®â «ª¨¢ ­¨©.
(Œë ¤®¡ ¢¨«¨ ¥¤¨­¨æã, ç⮡ë ãç¥áâì ¨ ¯¥à¢®¥, ¨ ¯®á«¥¤­¥¥ ¯à®â «ª¨¢ ­¨¥.). ‘«¥¤®¢ ⥫쭮, ®¡é¥¥ ç¨á«® ­ áëé îé¨å ¯à®â «ª¨¢ ­¨© (¤«ï ¢á¥å àñ¡¥à) ­¥ ¯à¥¢®á室¨â (2jV j ; 1)jE j < 2jV jjE j.
‹¥¬¬ 27.23 (Žæ¥­ª ç¨á« ­¥­ áëé îé¨å ¯à®â «ª¨¢ ­¨©)
à¨ ¨á¯®«­¥­¨¨ ¯à®£à ¬¬ë Generic-Preflow-Push ç¨á«® ­¥­ áëé îé¨å ¯à®â «ª¨¢ ­¨© ­¥ ¯à¥¢®á室¨â 4jV j2(jV j + jE j).
„®ª § ⥫ìá⢮
 §®¢ñ¬ ¯®â¥­æ¨ «®¬ á㬬㠢ëá®â ¯¥à¥¯®«­¥­­ëå ¢¥à設, ¨
¡ã¤¥¬ ᬮâà¥âì, ª ª ¬¥­ï¥âáï ¯®â¥­æ¨ « (®¡®§­ 稬 ¥£® ) ¢
室¥ ¨á¯®«­¥­¨ï ¯à®£à ¬¬ë. ˆ§­ ç «ì­® = 0. ®¤ê¥¬ ¯à®¨§¢®«ì­®© ¢¥à設ë u 㢥«¨ç¨¢ ¥â ­¥ ¡®«¥¥, 祬 ­ 2jV j (¢ëá®â ¢¥àè¨­ë ­¥ ¯à¥¢®á室¨â 2jV j, «¥¬¬ 27.20). H áëé î饥 ¯à®â «ª¨¢ ­¨¥ ¨§ ­¥ª®â®à®© ¢¥à設ë u ¢ ­¥ª®â®àãî ¢¥à設ã v ¬®¦¥â
㢥«¨ç¨âì ¯®â¥­æ¨ « «¨èì § áçñâ ¯®ï¢«¥­¨ï ­®¢®© ¯¥à¥¯®«­¥­-
€«£®à¨â¬ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª 579
­®© ¢¥à設ë v (â ª ¡ã¤¥â, ¥á«¨ v | ­¥ á⮪ ¨ ­¥ ¨á⮪), â®
¥áâì ­¥ ¡®«¥¥ 祬 ­ 2jV j. H ª®­¥æ, ­¥­ áëé î饥 ¯à®â «ª¨¢ ­¨¥ ¨§ u ¢ v 㬥­ìè ¥â ¯® ªà ©­¥© ¬¥à¥ ­ ¥¤¨­¨æã, â ª ª ª
¢¥à設 u ¯¥à¥áâ ñâ ¡ëâì ¯¥à¥¯®«­¥­­®© ¨ á« £ ¥¬®¥ h[u] ¨á祧 ¥â, ¯®ï¢¨âìáï ¬®¦¥â «¨èì á« £ ¥¬®¥ h[v] (¥á«¨ ¢¥à設 v
­¥ á⮪, ­¥ ¨á⮪ ¨ ­¥ ¡ë« ¯¥à¥¯®«­¥­­®©), ª®â®à®¥ ­ ¥¤¨­¨æã
¬¥­ìè¥.
’ ª¨¬ ®¡à §®¬, ®¡é ï á㬬 , ­ ª®â®àãî 㢥«¨ç¨¢ ¥âáï ¢® ¢à¥¬ï à ¡®âë ¯à®£à ¬¬ë, ­¥ ¯à¥¢®á室¨â (2jV j)(2jV j2) +
(2jV j)(2jV jjE j) = 4jV j2 (jV j + jE j) (¬ë ¨á¯®«ì§ã¥¬ á«¥¤á⢨¥ 27.21
¨ «¥¬¬ã 27.22) H® > 0, ¯®í⮬㠮¡é ï á㬬 , ­ ª®â®àãî
㬥­ìè¨âáï, ¨ ⥬ á ¬ë¬ ®¡é¥¥ ª®«¨ç¥á⢮ ­¥­ áëé îé¨å
¯à®â «ª¨¢ ­¨©î ­¥ ¯à¥¢®á室¨â 4jV j2(jV j + jE j).
’¥®à¥¬ 27.24
Ž¡é¥¥ ç¨á«® ®¯¥à 権 ¯®¤êñ¬ ¨ ¯à®â «ª¨¢ ­¨ï ¯à¨ ¨á¯®«­¥­¨¨ ¯à®£à ¬¬ë Generic-Preflow-Push ­ á¥â¨ G = (V; E ) à ¢­®
O (V 2 E ).
„®ª § ⥫ìá⢮
à¨¬¥­ï¥¬ á«¥¤á⢨¥ 27.21 ¨ «¥¬¬ë 27.22, 27.23.
‘«¥¤á⢨¥ 27.25
€«£®à¨â¬, ®á­®¢ ­­ë© ­ ¯à®â «ª¨¢ ­¨¨ ¯à¥¤¯®â®ª , ¬®¦­®
ॠ«¨§®¢ âì â ª, çâ®¡ë ­ á¥â¨ G = (V; E ) ¢à¥¬ï ¥£® à ¡®âë
¡ë«® O(V 2E ).
„®ª § ⥫ìá⢮
‹¥£ª® ¢¨¤¥âì (ã¯à. 27.4-1), çâ® ¬®¦­® ¢ë¯®«­¨âì ¯®¤êñ¬ § ¢à¥¬ï O(V ) ¨ ¯à®â «ª¨¢ ­¨¥ § ¢à¥¬ï O(1), çâ® ¨ ¤ ñâ âॡ㥬ãî ®æ¥­ªã.
“¯à ¦­¥­¨ï
27.4-1
Š ª ॠ«¨§®¢ âì «£®à¨â¬ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª â ª,
çâ®¡ë ­ ¯®¤êñ¬ ã室¨«® ¢à¥¬ï O(V ), ¨ ­ ¯à®â «ª¨¢ ­¨¥ O(1)?
(à¨ í⮬ ®¡é¥¥ ¢à¥¬ï ¡ã¤¥â O(V 2E ).)
27.4-2
„®ª ¦¨â¥, çâ® «£®à¨â¬ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª , ­ ¢á¥
O(V 2) ¯®¤êñ¬®¢ âà â¨â O(V E ) ¢à¥¬¥­¨.
27.4-3
„®¯ãá⨬, ¬ë ­ 諨 ¬ ªá¨¬ «ì­ë© ¯®â®ª ¢ á¥â¨ G ¬¥â®¤®¬ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª . Š ª ⥯¥àì ¡ëáâà® ­ ©â¨ ¬¨­¨¬ «ì­ë© à §à¥§?
27.4-4
Š ª ­ ©â¨ ¬ ªá¨¬ «ì­®¥ ¯ à®á®ç¥â ­¨¥ ¢ ¤¢ã¤®«ì­®¬ £à ä¥,
¨á¯®«ì§ãï ¬¥â®¤ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª ? Š ª®¢® ¢à¥¬ï à ¡®âë ¢ 襣® «£®à¨â¬ ?
27.4-5
ãáâì ¢á¥ ¯à®¯ãáª­ë¥ á¯®á®¡­®á⨠àñ¡¥à á¥â¨ G = (V; E ) |
æ¥«ë¥ ç¨á« ®â 1 ¤® k. Žæ¥­¨â¥ ¢ â¥à¬¨­ å jV j, jE j ¨ k ¢à¥¬ï à -
580
ƒ« ¢ 27 Œ ªá¨¬ «ì­ë© ¯®â®ª
¡®âë «£®à¨â¬ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª . (“ª § ­¨¥: ᪮«ìª®
­¥­ áëé îé¨å ¯à®â «ª¨¢ ­¨© ¬®¦­® ¯à¨¬¥­¨âì ª ­¥­ áë饭­®¬ã ॡàã, ¯à¥¦¤¥ 祬 ®­® áâ ­¥â ­ áë饭­ë¬?)
27.4-6
„®ª ¦¨â¥, çâ® áâபã 7 ¯à®æ¥¤ãàë Initialize-Preflow
¬®¦­® § ¬¥­¨âì áâப®©
h[s] jV [G]j ; 2;
­¥ ­ àãè ï ª®à४⭮á⨠¨ ­¥ ¬¥­ïï ᨬ¯â®â¨ª¨ ¢à¥¬¥­¨ à ¡®âë «£®à¨â¬ .
27.4-7
Ž¡®§­ 稬 ç¥à¥§ f (u; v) à ááâ®ï­¨¥ (ª®«¨ç¥á⢮ àñ¡¥à) ®â ¢¥à設ë u ¤® ¢¥à設ë v ¢ ®áâ â®ç­®© á¥â¨ Gf . ®ª ¦¨â¥, çâ® ¢®
¢à¥¬ï ¢ë¯®«­¥­¨ï ¯à®£à ¬¬ë Generic-Preflow-Push ®áâ ñâáï
¢¥à­ë¬¨ á«¥¤ãî騥 ã⢥ত¥­¨ï: ¥á«¨ h[u] < jV j, â® h[u] 6
f (u; t); ¥á«¨ h[u] > V , â® h[u] 6 f (u; s).
27.4-8*
Š ª ¨ ¢ ¯à¥¤ë¤ã饬 ã¯à ¦­¥­¨¨, f (u; v) ®¡®§­ ç ¥â à ááâ®ï­¨¥ ®â ¢¥à設ë u ¤® ¢¥à設ë v ¢ ®áâ â®ç­®© á¥â¨ Gf . Š ª ¨§¬¥­¨âì «£®à¨â¬ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª , çâ®¡ë ¢® ¢à¥¬ï ¥£®
à ¡®âë ®áâ ¢ «¨áì ¢¥à­ë¬¨ â ª¨¥ ã⢥ত¥­¨ï: ¥á«¨ h[u] < jV j,
â® h[u] = f (u; t); ¥á«¨ h[u] > V , â® h[u] = f (u; s). („®¯®«­¨â¥«ì­ë¥ ¤¥©áâ¢¨ï ¤®«¦­ë 㪫 ¤ë¢ âìáï ¢ O(V E ) ®¯¥à 権.)
27.4-9
®ª ¦¨â¥, çâ® ç¨á«® ­¥­ áëé îé¨å ¯à®â «ª¨¢ ­¨©, ¢ë¯®«­¥­­ëå ¯à®£à ¬¬®© Generic-Preflow-Push ­ á¥â¨ G = (V; E ),
­¥ ¯à¥¢®á室¨â 4jV j2jE j (¥á«¨ jV j > 4).
27.5 €«£®à¨â¬ ¯®¤­ïâì-¨-¢-­ ç «®
®«ì§ãïáì ¬¥â®¤®¬ ¯à®â «ª¨¢ ­¨ï ¯à¥¤¯®â®ª , ¬ë ¯à¨¬¥­ï«¨
®¯¥à 樨 ¯®¤êñ¬ ¨ ¯à®â «ª¨¢ ­¨ï ¢ ¡®«¥¥ ¨«¨ ¬¥­¥¥ ¯à®¨§¢®«ì­®¬ ¯®à浪¥. ®«¥¥ ¯à®¤ã¬ ­­ë© ¯®à冷ª ¢ë¯®«­¥­¨ï íâ¨å ®¯¥à 権 ¯®§¢®«ï¥â 㬥­ìè¨âì ¢à¥¬ï à ¡®âë «£®à¨â¬ (¯® áà ¢­¥­¨î
á ®æ¥­ª®© O(V 2E ) ¨§ á«¥¤á⢨ï 27.25). ‚ í⮬ à §¤¥«¥ ¬ë à áᬮâਬ «£®à¨â¬ "¯®¤­ïâì-¨-¢-­ ç «®" (lift-to-front algorithm),
¨á¯®«ì§ãî騩 íâã ¨¤¥î; ¢à¥¬ï ¥£® à ¡®âë ¥áâì O(V 3), ç⮠ᨬ¯â®â¨ç¥áª¨ ¯® ªà ©­¥© ¬¥à¥ ­¥ å㦥, 祬 O(V 2E ).
€«£®à¨â¬ "¯®¤­ïâì-¨-¢-­ ç «®" åà ­¨â ¢á¥ ¢¥à設ë á¥â¨ ¢
¢¨¤¥ ᯨ᪠. €«£®à¨â¬ ¯à®á¬ âਢ ¥â íâ®â ᯨ᮪, ­ 稭 ï á
£®«®¢ë. ¨ ­ 室¨â ¢ ­¥¬ ¯¥à¥¯®«­¥­­ãî ¢¥à設ã u. ‡ ⥬ «£®à¨â¬ "®¡á«ã¦¨¢ ¥â" íâã ¢¥à設ã, ¯à¨¬¥­ïï ª ­¥© ®¯¥à 樨
¯®¤êñ¬ ¨ ¯à®â «ª¨¢ ­¨ï ¤® â¥å ¯®à, ¯®ª ¨§¡ë⮪ ­¥ áâ ­¥â
à ¢­ë¬ ­ã«î. …᫨ ¤«ï í⮣® ¢¥à設㠯à¨è«®áì ¯®¤­ïâì, ¥ñ ¯¥à¥-
€«£®à¨â¬ ¯®¤­ïâì-¨-¢-­ ç «®
581
¬¥é îâ ¢ ­ ç «® ᯨ᪠(®âáî¤ ¨ ­ §¢ ­¨¥ «£®à¨â¬ ), ¨ ¯à®á¬®âà ᯨ᪠­ 稭 ¥âáï ¢­®¢ì.
à¨ ­ «¨§¥ «£®à¨â¬ ¯®«ì§ã¥¬áï ¯®­ï⨥¬ ¤®¯ãá⨬®£® ॡà | à¥¡à ®áâ â®ç­®© á¥â¨, ¯® ª®â®à®¬ã ¢®§¬®¦­® ¯à®â «ª¨¢ ­¨¥. ‘­ ç « ¬ë ¨§ã稬 ­¥ª®â®àë¥ ¨å ᢮©á⢠¨ à áᬮâਬ
¯à®æ¥áá " ®¡á«ã¦¨¢ ­¨ï" ¢¥à設ë.
„®¯ãáâ¨¬ë¥ àñ¡à ãáâì f | ¯à¥¤¯®â®ª ¢ á¥â¨ G = (V; E ), h | ¢ëá®â­ ï
äã­ªæ¨ï. H §®¢¥¬ ॡ஠(u; v) ¤®¯ãáâ¨¬ë¬ (admissible), ¥á«¨ ®­®
¢å®¤¨â ¢ ®áâ â®ç­ãî á¥âì (cf (u; v) > 0) ¨ h(u) = h(v)+1 Žáâ «ì­ë¥ àñ¡à ¬ë ¡ã¤¥¬ ­ §ë¢ âì ­¥¤®¯ãá⨬묨 (inadmissible). Ž¡®§­ 稬 ç¥à¥§ Ef;h ¬­®¦¥á⢮ ¤®¯ãá⨬ëå àñ¡¥à; á¥âì Gf;h =
(V; Ef;h) ­ §®¢ñ¬ á¥âìî ¤®¯ãá⨬ëå àñ¡¥à (admissible network).
Ž­ á®á⮨⠨§ àñ¡¥à, ¯® ª®â®àë¬ ¢®§¬®¦­® ¯à®â «ª¨¢ ­¨¥.
®áª®«ìªã ¢¤®«ì ¤®¯ãá⨬®£® à¥¡à ¢ëá®â 㬥­ìè ¥âáï, ¨¬¥¥â
¬¥áâ® â ª ï «¥¬¬ :
‹¥¬¬ 27.26 („®¯ãáâ¨¬ë¥ àñ¡à ®¡à §ãîâ 横«¨ç¥áª¨© £à ä)
ãáâì f | ¯à¥¤¯®â®ª ¢ á¥â¨ G = (V; E ); ¯ãáâì h | ¢ëá®â­ ï
äã­ªæ¨ï. ’®£¤ á¥âì ¤®¯ãá⨬ëå àñ¡¥à Gf;h = (V; Ef;h) ­¥ ᮤ¥à¦¨â 横«®¢.
®á¬®âਬ, ª ª ¨§¬¥­ïîâ á¥âì ¤®¯ãá⨬ëå àñ¡¥à ®¯¥à 樨
¯®¤êñ¬ ¨ ¯à®â «ª¨¢ ­¨ï.
‹¥¬¬ 27.27
ãáâì f | ¯à¥¤¯®â®ª ¢ á¥â¨ G = (V; E ) ¨ h | ¢ëá®â­ ï äã­ªæ¨ï. ãáâì (u; v) | ¤®¯ãá⨬®¥ ॡ஠¨ ¢¥à設 u ¯¥à¥¯®«­¥­ .
’®£¤ ¯® (u; v) ¢®§¬®¦­® ¯à®â «ª¨¢ ­¨¥. ‚ १ã«ìâ ⥠¢ë¯®«­¥­¨ï í⮩ ®¯¥à 樨 ­®¢ë¥ ¤®¯ãáâ¨¬ë¥ àñ¡à ­¥ ¯®ï¢«ïîâáï, ­®
ॡ஠(u; v) ¬®¦¥â áâ âì ­¥¤®¯ãá⨬ë¬.
„®ª § ⥫ìá⢮
‚ १ã«ìâ ⥠¯à®â «ª¨¢ ­¨ï ¢ ®áâ â®ç­®© á¥â¨ ¬®¦¥â ¯®ï¢¨âìáï ⮫쪮 ॡ஠(v; u). ®áª®«ìªã ॡ஠(u; v) ¤®¯ãá⨬®, â®
h(v ) = h(u) ; 1, ¨ ¯®â®¬ã ॡ஠(v; u) ­¥¤®¯ãá⨬®. …᫨ ¯à®â «ª¨¢ ­¨¥ ®ª §ë¢ ¥âáï ­ áëé î騬, â® ¢ १ã«ìâ ⥠cf (u; v) = 0
¨ ॡ஠(u; v) ¨á祧 ¥â ¨§ ®áâ â®ç­®© á¥â¨ (¨ áâ ­®¢¨âáï ­¥¤®¯ãá⨬ë¬).
‹¥¬¬ 27.28
ãáâì f | ¯à¥¤¯®â®ª ¢ á¥â¨ G = (V; E ) ¨ h | ¢ëá®â­ ï äã­ªæ¨ï. …᫨ ¢¥à設 u ¯¥à¥¯®«­¥­ ¨ ¨§ ­¥¥ ­¥ ¢ë室¨â ¤®¯ãá⨬ëå
àñ¡¥à, â® ¢®§¬®¦¥­ ¯®¤êñ¬ ¢¥à設ë u. ®á«¥ ¯®¤êñ¬ ¯®ï¢¨âáï
¯® ªà ©­¥© ¬¥à¥ ®¤­® ¤®¯ãá⨬®¥ ॡà®, ¢ë室ï饥 ¨§ ¢¥à設ë u
¨ ­¥ ¡ã¤¥â àñ¡¥à, ¢å®¤ïé¨å ¢ u.
„®ª § ⥫ìá⢮
Š ª ¬ë ¢¨¤¥«¨ («¥¬¬ 27.14), ¢ ¯¥à¥¯®«­¥­­®© ¢¥à設¥ u ¢®§¬®¦­® «¨¡® ¯à®â «ª¨¢ ­¨¥, «¨¡® ¯®¤êñ¬. ’ ª ª ª ¨§ u ¤®¯ãáâ¨¬ë¥ àñ¡à ­¥ ¢ë室ïâ, â® ¯à®â «ª¨¢ ­¨¥ ¢ ­¥© ­¥¢®§¬®¦­®,
¨ ¢®§¬®¦¥­ ¯®¤êñ¬. à¨ í⮬ ¢ëá®â ¢¥à設ë 㢥«¨ç¨¢ ¥âáï
582
ƒ« ¢ 27 Œ ªá¨¬ «ì­ë© ¯®â®ª
â ª, çâ® ¯à®â «ª¨¢ ­¨¥ áâ ­®¢¨âáï ¢®§¬®¦­ë¬, â® ¥áâì ¯®ï¢«ï¥âáï ¤®¯ãá⨬®¥ ॡà®.
à®¢¥à¨¬ ¢â®à®¥ ã⢥ত¥­¨¥ «¥¬¬ë. à¥¤¯®«®¦¨¬, çâ® ¯®á«¥ ¯®¤êñ¬ ¨¬¥¥âáï ¤®¯ãá⨬®¥ ॡ஠(v; u). ’®£¤ h(v) = h(u)+
1 | ¤® ¯®¤êñ¬ ¡ë«® ¢ë¯®«­¥­® h(v ) > h(u)+1. ® ®¯à¥¤¥«¥­¨î
¢ëá®â­®© ä㭪樨 ॡ஠(u; v) ¤®«¦­® ¡ëâì ­ áë饭­ë¬ (¤® ¨
¯®á«¥ ¯®¤êñ¬ | ¯®¤êñ¬ ­¥ ¬¥­ï¥â ¯®â®ª®¢), ¨ ¯®â®¬ã ­¥ ¢å®¤¨â ¢ ®áâ â®ç­ãî á¥âì ¨ ­¥ ï¥âáï ¤®¯ãá⨬ë¬.
‘¯¨áª¨ á®á¥¤¥©
€«£®à¨â¬ "¯®¤­ïâì-¨-¢-­ ç «®" ¨á¯®«ì§ã¥â á¯¥æ¨ «ì­ë© ᯮᮡ åà ­¥­¨ï àñ¡¥à á¥â¨ G = (V; E ). ˆ¬¥­­®, ¤«ï ª ¦¤®© ¢¥à設ë
u 2 V ¨¬¥¥âáï ®¤­®áâ®à®­­¥ á¢ï§¢­­ë© ᯨ᮪ á®á¥¤¥© (neighbor
list) N [u]. ‚¥à設 v 䨣ãà¨àã¥â ¢ í⮬ ᯨ᪥, ¥á«¨ (u; v ) 2 E
¨«¨ ¥á«¨ (v; u) 2 E . ’ ª¨¬ ®¡à §®¬, ᯨ᮪ N [u] ᮤ¥à¦¨â ¢á¥
¢¥à設ë v, ¤«ï ª®â®àëå (u; v) ¨¬¥¥â è ­á ¯®ï¢¨âìáï ¢ ®áâ â®ç­®© á¥â¨. ¥à¢ë© í«¥¬¥­â í⮣® ᯨ᪠®¡®§­ ç ¥âáï head[N [u]];
á«¥¤ãî騩 § ¢¥à設®© v á®á¥¤ | next;neighbor[v]. …᫨ ¢¥à設 v | ¯®á«¥¤­ïï ¢ ᯨ᪥, â® next ; neighbor[v] =nil.
®à冷ª ¢ ᯨ᪥ á®á¥¤¥© ¬®¦¥â ¡ëâì ¯à®¨§¢®«ì­ë¬; ®­ ­¥ ¬¥­ï¥âáï ¢ 室¥ à ¡®âë (¢á直© à § «£®à¨â¬ ¯à®á¬ âਢ ¥â ᯨ᮪ á®á¥¤¥© ¢ ®¤­®¬ ¨ ⮬ ¦¥ ¯®à浪¥). „«ï ª ¦¤®© ¢¥à設ë u
åà ­¨âáï 㪠§ ⥫ì current[u] ­ ®ç¥à¥¤­®© í«¥¬¥­â ᯨ᪠N [u].
ˆ§­ ç «ì­® current[u] ãáâ ­®¢«¥­ ­ head[N [u]].
Ž¡à ¡®âª ¯¥à¥¯®«­¥­­®© ¢¥à設ë
Ž¡à ¡®âª ¯¥à¥¯®«­¥­­®© ¢¥à設ã u á®á⮨⠢ ⮬, çâ® ¥ñ
à §àï¦ îâ (discharge), ¯à®â «ª¨¢ ï ¢¥áì ¨§¡ë⮪ ¯®â®ª ¢ á®á¥¤­¨¥ ¯® ¤®¯ãáâ¨¬ë¬ àñ¡à ¬. ˆ­®£¤ ¤«ï í⮣® ­¥®¡å®¤¨¬® ᮧ¤ âì ­®¢ë¥ ¤®¯ãáâ¨¬ë¥ àñ¡à , ¯®¤­ï¢ ¢¥à設ã u.
\textsc{Discharge}($u$)
1 while $e[u]>0$
2 do $v\leftarrow current[u]$
3
if $v=$\textsc{nil}
4
then \textsc{Lift($u$)}
5
$current[u]\leftarrow head[N[u]]$
6
elseif $c_f(u,v)>0$ and $h[u]=h[v]+1$
7
then \textsc{Push($u,v$)}
8
else $current[u]\leftarrow next-neighbor[v]$
H à¨á. 27.10 ¯®ª § ­ë ­¥áª®«ìª® ¨â¥à 権 横« while (áâப¨
1{8).
Š ¦¤ ï ¨â¥à æ¨ï 横« while ¯à®¨§¢®¤¨â ®¤­® ¨§ âàñå ¤¥©á⢨©:
1. …᫨ ¬ë ¤®è«¨ ¤® ª®­æ ᯨ᪠(v =nil), â® ¬ë ¯®¤­¨¬ ¥¬
¢¥à設ã u (áâப 4) ¨ ¯¥à¥å®¤¨¬ ª ­ ç «ã ᯨ᪠N [u] (áâப 5). Œë 㢨¤¨¬ («¥¬¬ 27.29), çâ® ¯®¤êñ¬ ¢®§¬®¦¥­.
€«£®à¨â¬ ¯®¤­ïâì-¨-¢-­ ç «®
583
27.10  §à浪 ¢¥à設ë. ’ॡã¥âáï 15 ¯®¢â®à¥­¨© 横« while ¢
¯à®æ¥¤ãॠDischarge, çâ®¡ë ¯à®â®«ª­ãâì ¢¥áì ¨§¡ë⮪ ¨§ ¢¥à設ë y. ®ª § ­ë ⮫쪮 á®á¥¤¨ ¢¥à設ë y ¨ àñ¡à , ᮥ¤¨­ïî騥
¨å á y. ‚­ãâਠª ¦¤®© ¢¥à設ë 㪠§ ­ ¨§¡ë⮪ ¢ ­¥© ¯¥à¥¤ ᮮ⢥âáâ¢ãî饩 ¨â¥à 樥©; á«¥¢ 㪠§ ­ ¢ëá®â ¢¥à設ë. ‘¯à ¢ ¯®ª § ­ ᯨ᮪ N [y]; ¢ë¤¥«¥­ á®á¥¤ current[y]. ( ) ˆ§­ ç «ì­® ¨§¡ë⮪ ¢ y à ¢¥­ 19 ¨ current[y] = s. ˆ§ y ­¥ ¢ë室ïâ ¤®¯ãáâ¨¬ë¥ àñ¡à ,
¯®í⮬㠯¥à¢ë¥ âਠ¨â¥à 樨 ᤢ¨£ îâ 㪠§ ⥫ì current[y]. H ç¥â¢¥à⮬ è £¥ ¬ë ¤®è«¨ ¤® ª®­æ ᯨ᪠. ®¤­¨¬ ¥¬ ¢¥à設ã y
¨ ¯¥à¥å®¤¨¬ ª ­ ç «ã ᯨ᪠. (b) ‚ëá®â ¢¥à設ë y áâ « à ¢­®©
1. ñ¡à (y; s) ¨ (y; x) | ­¥¤®¯ãáâ¨¬ë¥ (è £¨ 5-6), ॡ஠(y;

Similar documents

ð Z - MAIK

ð Z - MAIK @RâaŠ™ëŠÏ@å×bäŽÔÜß@a…@†vŽß@ÕèîÏ@ìnäj¾@æa…@Îì×ìrß@oî×@éÜí‰bß@Loía@éîÛëa †vŽß@å׉ìàȾ æa…@ābväß@ RÍîbß@åãaŠÏ@ÝîjàÌß@oî×@ Râb@éÜí‰bß Nåç‰bàÈÌÏ @oî×@ @aìÔm@æa…@æb¹a@å׉ìiìrß@ìо@pŠ@ò׊i@æa…@ò»‰@aëb...

More information