仿¥ãHabræ§ãã³ã³ããããªã¢ã«ãªããã£ãã€ãŒãŒã·ã§ã³ã«ã€ããŠã話ããŸãã
å€ä»£ïŒå°ãªããšãåäžçŽã®åãããïŒãããæ°åŠè
ã¯ãå¿
èŠã§æçšãªç©ã®ããéã®
ããŒã«ãããã¯ããã¯ã«æé©ã«å
¥ããæ¹æ³ãç¥ããŸããã
ãããã¶ãã¯ãšãã®ãµãã¿ã¹ã¯ã®
åé¡ãå®åŒåãããŸãã-äœåãã®ïŒ -ã³ã³ãã¥ãŒã¿ç§åŠè
ãæå·äœæè
ãããã«ã¯èšèªåŠè
ã«èå³ãæã£ãŠããã
2次å
ã®ããã±ãŒãžã³ã°ïŒ2次å
ã®ãã³ãããã³ã°ïŒã®åé¡ã®1ã€ã§ãã
ã³ã³ãããŒã® ãããã³ã° ïŒ
ãã³ãããã³ã°åé¡ ïŒã¯ããããã¶ãã¯ã®åé¡ããçããŸããã ããã€ãã®ããªãšãŒã·ã§ã³ãåã³ç Žæ£ããã®ã§ãããããåå¶éãããã¹ããªããã®2次å
ãããã³ã°ïŒ2次å
ã¹ããªãããããã³ã°ã2DSPïŒã«è¡ããŸããã ãã§ã«èå°è£ã«ã©ãã ãé¢çœããã®ãæ®ã£ãŠããã®ãæããŠãã ããã ããããç§ãã¡ã¯åé¡ãæ©ãçµããŠããŸããã 2DSPã«ã¯2ã€ã®å
¥åãªãã·ã§ã³ããããŸããããã¯ããããªããžã§ã¯ãã®ã»ãããäºåã«ããã£ãŠããå ŽåïŒãªãã©ã€ã³ã®åé¡ïŒãšãããŒã¿ããããã§å°çããå ŽåïŒãªã³ã©ã€ã³ã®åé¡ïŒã§ãã
ãã®èšäºã§ã¯ããªãã©ã€ã³ããªã¢ã³ã2DSPã解決ããããã®ã¢ã«ãŽãªãºã ã«ã€ããŠèª¬æããŸãã ã«ããã®äžã«ã¯ãå°ãã®çŽ æãšè²ã®ä»ããæ£æ¹åœ¢ã®åçããããããããŸãã
å®éãåé¡ã¯äœã§ããïŒ
2次å
ã®ãããã³ã°åé¡ã®ç¹æ®ãªã±ãŒã¹ãšããŠã2DSPã¯ãç¹å®ã®åœ¢ç¶ã®ãªããžã§ã¯ããç¹å®ã®åœ¢ç¶ã®æéæ°ã®ã³ã³ãããŒã«ãããã³ã°ããããšã«ããã䜿çšãããã³ã³ãããŒã®æ°ãæå°ã«ãªããããªããžã§ã¯ãã®æ°ãŸãã¯äœç©ïŒããã¯ãããïŒãæå€§ã«ãªããŸãã 2次å
ããã±ãŒãžãšã®éãã¯ãã³ã³ããã1ã€ãããªãããšã§ããã³ã³ããã®æ°ãæå°åãã代ããã«ã1ã€ã®é«ããæå°åããŸãã å¿
èŠã«å¿ããŠæå€§ã®æ¢±å
å¯åºŠãæäŸããŸãã
åé¡ã¯NPå°é£ã§ãããããç ç©¶ã¯äž»ã«è¿äŒŒè§£æ³ã¢ã«ãŽãªãºã ã®éçºã«çŠç¹ãåœãŠãŠããŸãã ïŒ
éºäŒçã¢ã«ãŽãªãºã ã¯Habréã§èšåãããŸããïŒã è¿äŒŒã¢ã«ãŽãªãºã ã¯ãäžå®ã®ç²ŸåºŠã§æé©ãªãœãªã¥ãŒã·ã§ã³ãèŠã€ããŸãããããŒã¿ã»ããã®æé©ãªããã±ãŒãžåãä¿èšŒãããã®ã§ã¯ãããŸããã ãã®å Žåãæé©æ§ã®åºæºã¯ãæé©åããããšãããã®ã«ãã£ãŠç°ãªããŸãã
ç§ã¯ãæãåçŽãªæŠç¥ãšãããã人çã§ã©ã®ããã«é©çšããããã«ã€ããŠèª¬æããŸãïŒããŒã«ã®å
¥ã£ãããã¯ããã¯ãé€ãïŒã
ãããã£ãŠãnåã®é·æ¹åœ¢ã®ã»ãããšãå¹
Wãåºå®ãããé«ããç¡éã®åå¶éã®ã³ã³ãããŒã¬ã©ã¹ããããŸãã å¹
ã®åé·æ¹åœ¢ã¯Wãè¶
ããŸãããã¿ã¹ã¯ã¯ãã°ã©ã¹ãã§ããã ãå°ããããããã«ããªãŒããŒã¬ã€ã亀差ãªãã§é·æ¹åœ¢ãã°ã©ã¹ã«å
¥ããããšã§ãã ãã¹ãŠã®é·æ¹åœ¢ãçŽäº€ããŠããã¯ããå¿
èŠããããå転ã§ããªãããšã«åæããŸãããã
 |  |  |  |
ãœãŒã¹ããŒã¿ ïŒ20äžçŽã®åãããã¥ãŒããºã ïŒ | åå¶éè»ç· | å
è£
ãªãã·ã§ã³ïŒæªãïŒ | ããã±ãŒãžã³ã°ãªãã·ã§ã³ïŒããè¯ãïŒ |
ãã®åé¡ã«ã¯ãããã¯ãããé·æ¹åœ¢ã®é«ããã¹ããªããã®å¹
ã§å²ã£ãåèšé¢ç©ã«çãããšããçæ³çãªãœãªã¥ãŒã·ã§ã³ãããããšãããããŸãã
åç©åã¢ã«ãŽãªãºã
2DSPã®ãªãã©ã€ã³ããŒãžã§ã³ã§ã¯ããã¹ãŠã®ããã¯ãããé·æ¹åœ¢ã®ãµã€ãºãããã«ããããããç¹å®ã®åºæºã«åŸã£ãŠãœãŒããéžæãã°ã«ãŒãåããŸãã¯é©åãªå Žæãžã®åçŽãªãã³ããå¯èœã§ãã ã»ãšãã©ã®ã¢ã«ãŽãªãºã ã¯ããã«åºã¥ããŠããŸãïŒ
- ã¬ãã«ïŒã¬ãã«ïŒ
- æ£ïŒæ£ïŒ
- ãã©ããïŒå¹³é¢ïŒ
ãã©ããã¢ã«ãŽãªãºã ã¯é·æ¹åœ¢ãäºãã«å³å¯ã«è¿ã¥ããŠé
眮ããŸãããããã¯äžèŠãããšæããããããããŸããããããã¯æãæåããæŠç¥ã§ã¯ãããŸããã ã¬ãã«1ã¯ãã¹ããªãããéžæãããé·æ¹åœ¢ã®1ã€ãšåãé«ãã®ã¬ãã«ã«åå²ããä»ã®ãã¹ãŠãç¹å®ã®åºæºã«åŸã£ãŠç¹å®ã®ã¬ãã«ã«é
眮ããŸãã ã·ã§ã«ãã·ã§ã«ãã¯ãäžåºŠã«è€æ°ã®ã·ã§ã«ãïŒã·ã§ã«ãïŒãäºåã«æ±ºå®ãããããã«æ²¿ã£ãŠé·æ¹åœ¢ãããã·ã¥ããŸãããã®åäœã¯ãªã³ã©ã€ã³ã¢ã«ãŽãªãºã ã®å
žåã§ãããããã¯ãŸã£ããå¥ã®è©±ã§ãã
äžè¬çãªåèªã«æ¡åŒµãããããããã¹ãŠãé çªã«åŠçããæ¹ãé©åã§ãã
次ã®ãã£ããæžå°é«


圌ããèšãããã«ãã¢ã«ãŽãªãºã ã¯ãé¡ã«ãã é·æ¹åœ¢ã¯é«ãã®å¢å ãªãïŒé«ãã®æžå°ã®ãã³ãïŒã§äžŠã¹æ¿ããããæé«ã¯ã¹ããªããã®å·Šäžé
ã«ãããããã«ããé«ããçããæåã®ã¬ãã«ãåæåããŸãã æ®ãã®é·æ¹åœ¢ã¯å·Šããå³ã«é
眮ãããŸãããçŸåšã®ã¬ãã«ã«ã¯ã¹ããŒã¹ããããŸãã ã¬ãã«ã«åãŸããªãé·æ¹åœ¢ã¯äžã«é
眮ãããæ¬¡ã®ã¬ãã«ã圢æããŸãã
次ã®2ã€ã®äŸã«ã€ããŠãåã¢ã«ãŽãªãºã ã®å³ãäœæããŸããæç¢ºã«ããããã«ãå·ŠåŽã§ã¯é·æ¹åœ¢ã®åœ¢ç¶ãé·ããªããå³åŽã§ã¯ããæ£æ¹åœ¢ã«ãªããŸãã
NFDHã¢ã«ãŽãªãºã å
¥åïŒããã¯ããé·æ¹åœ¢ã®æ°nã
é·æ¹åœ¢ã®å¯žæ³
{wïŒLiïŒ; hïŒLiïŒ}ããã³ã¹ããªããå¹
W
åºåïŒã¹ããªããã§åŸããããããã³ã°ã®é«ãã
1ïŒã¬ãã«= 0; hïŒã¬ãã«ïŒ= 0; wïŒã¬ãã«ïŒ= 0; i = 1
2ïŒhïŒL1ïŒâ¥hïŒL2ïŒâ¥...â¥hïŒLnïŒã®ããã«ãé«ããå¢å ããªãé ã«é·æ¹åœ¢ããœãŒãããŸã
3ïŒã¹ããªããã®äžéšã§å·Šæãã®é·æ¹åœ¢Liãããã¯
4ïŒhïŒã¬ãã«ïŒ= hïŒLiïŒ; wïŒã¬ãã«ïŒ= wïŒLiïŒ
5ïŒi = 2..nã®å Žå
6ïŒW-wïŒã¬ãã«ïŒâ¥wïŒLiïŒã®å Žå
7ïŒé·æ¹åœ¢Li-1ã®å³åŽã«é·æ¹åœ¢Liãè©°ãã
8ïŒwïŒã¬ãã«ïŒ+ = wïŒLiïŒ
9ïŒelse [W-wïŒã¬ãã«ïŒ<wïŒLiïŒ]
10ïŒåã®ã¬ãã«ã®äžã«æ°ããã¬ãã«ãäœæããæ°ããã¬ãã«ã«é·æ¹åœ¢Liãããã¯ããŸã
11ïŒã¬ãã«++; wïŒã¬ãã«ïŒ= wïŒLiïŒ; hïŒã¬ãã«ïŒ= hïŒã¬ãã«-1ïŒ+ hïŒLiïŒ
12ïŒçµäºããå Žå
13ïŒçµäº
14ïŒH = hïŒã¬ãã«ïŒãå°å·
ãã¡ãŒã¹ããã£ããã®æžå°


åã®ã¢ã«ãŽãªãºã ãšåæ§ã«ã次ã®é·æ¹åœ¢ããšã«ãå ŽæãæåŸã®ã¬ãã«ã ãã§ãªããæäœã¬ãã«ããæ€çŽ¢ããããšããéãããããŸãã ãããã£ãŠããæåã®é©åã-é·æ¹åœ¢ã¯äžããæåã®é©åãªã¬ãã«ã«é
眮ãããŸãã çŽèгçã«ã¯ãããã±ãŒãžã³ã°ã®æ¹ãåªããŠããŸãã å¥ã®éèŠãªéãã¯ããã©ãŒãã³ã¹ã§ããææªã®å Žåããã¹ãŠã®ã¬ãã«ãããã ã¢ããã§ãã¹ãŠã®ã¹ãããã§èæ
®ããå¿
èŠãããããã§ãã
FFDHã¢ã«ãŽãªãºã å
¥åïŒããã¯ããé·æ¹åœ¢ã®æ°nã
é·æ¹åœ¢ã®å¯žæ³
{wïŒLiïŒ; hïŒLiïŒ}ããã³ã¹ããªããå¹
W
åºåïŒã¹ããªããã§åŸããããããã³ã°ã®é«ãã
1ïŒã¬ãã«= 0; hïŒã¬ãã«ïŒ= 0; i = 1; LevelNum = 1
2ïŒhïŒL1ïŒâ¥hïŒL2ïŒâ¥...â¥hïŒLnïŒã®ããã«ãé«ããå¢å ããªãé ã«é·æ¹åœ¢ããœãŒãããŸã
3ïŒã¹ããªããã®äžéšã§å·Šæãã®é·æ¹åœ¢Liãããã¯ããŸãã hïŒã¬ãã«+ 1ïŒ= hïŒLiïŒ
4ïŒfor i = 2..n do
5ïŒãã¹ãŠã®ã¬ãã«ãïŒäžããïŒååãªã¹ããŒã¹ã®ããæäœã¬ãã«ã§æ€çŽ¢ããŸã
6ïŒãã®ãããªã¬ãã«ãååšããå Žå
7ïŒé·æ¹åœ¢Liããã®ã¬ãã«ã§å·Šæãã§ããã¯
8ïŒãã®ä»[æ¢åã®ãã¹ãŠã®ã¬ãã«ã«ååãªã¹ããŒã¹ããªã]
9ïŒLevelNum ++; level = LevelNum; hïŒã¬ãã«ïŒ= hïŒã¬ãã«-1ïŒ+ hïŒLiïŒ
10ïŒæ°ããã¬ãã«ã§é·æ¹åœ¢Liãããã¯ãã
11ïŒçµäºããå Žå
12ïŒçµäº
13ïŒH = hïŒã¬ãã«ïŒãå°å·
ãã¹ããã£ãããé«ããªã


åã®ã¢ã«ãŽãªãºã ã®ä¿®æ£ã ãã®æ¬è³ªã¯ãæåã®é·æ¹åœ¢ã§ã¯ãªããæ¬¡ã®é·æ¹åœ¢ã®ãããã³ã°ã«é©ããã¬ãã«ã®ãã®ã§ãããæé©ãªãã®ãéžæãããŸãã æé©ãªã¬ãã«ã¯ãçŸåšã®åè§åœ¢ãããã¯ããåŸã«ã¹ããŒã¹ãæå°éã«ãªãã¬ãã«ã§ãã ç°¡åã«èšãã°ãæå°ã®é©åãªã¹ããŒã¹ãéžæãããã¬ãã«ã®ããè¯ãå
å¡«ã«è²¢ç®ããŸãã
BFDHã¢ã«ãŽãªãºã å
¥åïŒããã¯ããé·æ¹åœ¢ã®æ°nã
é·æ¹åœ¢ã®å¯žæ³
{wïŒLiïŒ; hïŒLiïŒ}ããã³ã¹ããªããå¹
W
åºåïŒã¹ããªããã§åŸããããããã³ã°ã®é«ãã
1ïŒã¬ãã«= 0; hïŒã¬ãã«ïŒ= 0; i = 1; LevelNum = 1
2ïŒhïŒL1ïŒâ¥hïŒL2ïŒâ¥...â¥hïŒLnïŒã®ããã«ãé«ããå¢å ããªãé ã«é·æ¹åœ¢ããœãŒãããŸã
3ïŒã¹ããªããã®äžéšã§å·Šæãã®é·æ¹åœ¢Liãããã¯ããŸãã hïŒã¬ãã«+ 1ïŒ= hïŒLiïŒ
4ïŒfor i = 2..n do
5ïŒãã¹ãŠã®ã¬ãã«ãæ€çŽ¢ããŠãååãªã¹ããŒã¹ããããæ®ãã®ã¹ããŒã¹ãæå°ã®ã¬ãã«ãæ¢ããŸã
6ïŒãã®ãããªã¬ãã«ãååšããå Žå
7ïŒé·æ¹åœ¢Liããã®ã¬ãã«ã§å·Šæãã§ããã¯
8ïŒãã®ä»[æ¢åã®ãã¹ãŠã®ã¬ãã«ã«ååãªã¹ããŒã¹ããªã]
9ïŒæäžäœã¬ãã«ã®äžã«æ°ããã¬ãã«ãäœæããé·æ¹åœ¢Liãããã¯ããŸã
10ïŒLevelNum ++; level = LevelNum; hïŒã¬ãã«ïŒ= hïŒã¬ãã«-1ïŒ+ hïŒLiïŒ
11ïŒçµäºããå Žå
12ïŒçµäº
13ïŒH = hïŒã¬ãã«ïŒãå°å·
ãããã¶ãã¯0-1


ããã«è©³ããæ»åšãã䟡å€ããããŸãã
ãããã¶ãã¯0-1ã¯ããããã¶ãã¯åé¡ã®ç¹æ®ãªã±ãŒã¹ã§ãã äž»ãªè³ªåïŒãããã42ã§ã¯ãªããçµæã®ããã±ãŒãžã³ã°ããªã¥ãŒã ïŒã«
çããã ãã§ãªãã
ãœãªã¥ãŒã·ã§ã³ïŒããã±ãŒãžåããå¿
èŠãããã¢ã€ãã ã®ãªã¹ãïŒãæäŸããããšã泚ç®ã«å€ããŸãã æé ã¯æ¬¡ã®ãšããã§ããé·æ¹åœ¢ã¯é«ãã®å¢å ããªãé ã«ãœãŒããããŸãã æåã®é·æ¹åœ¢ã¯æ°ããã¬ãã«ã«ããã¯ãããŸãã ãã®ã¬ãã«ã§ã¯ããããã¶ãã¯0-1åé¡ã®è§£æ±ºçããããŸããããã¯ãé¢ç©ãæå€§åãããé·æ¹åœ¢ã®ãªã¹ããæäŸããŸãã éžæãããé·æ¹åœ¢ãããã¯ãããã¢ã³ããã¯ããããªã¹ãããæœåºãããã¬ãã«ãéããããæ°ããé·æ¹åœ¢ãéããŸã-éåžžã©ãããæ®ãã®æåã®ïŒæé«ïŒãåæåãããŸãã é·æ¹åœ¢ãã§ãããŸã§ç¹°ãè¿ããŸãã
ã¢ã«ãŽãªãºã KP01 å
¥åïŒããã¯ããé·æ¹åœ¢ã®æ°nã
é·æ¹åœ¢ã®å¯žæ³
{wïŒLiïŒ; hïŒLiïŒ}ããã³ã¹ããªããå¹
W
åºåïŒã¹ããªããã§åŸããããããã³ã°ã®é«ãã
1ïŒhïŒL1ïŒâ¥hïŒL2ïŒâ¥...â¥hïŒLnïŒã®ããã«ãé«ããå¢å ããªãé ã«é·æ¹åœ¢ããœãŒãããŸã
2ïŒã¬ãã«= 0
3ïŒå±éãããé·æ¹åœ¢ãããéã«
4ïŒæåã«ã¢ã³ããã¯ãããé·æ¹åœ¢ãããã¯ãLiãèšã
5ïŒhïŒã¬ãã«ïŒ+ = hïŒLiïŒ
6ïŒKP01ã€ã³ã¹ã¿ã³ã¹ã解決ãã
7ïŒéžæããé·æ¹åœ¢ãããã¯
8ïŒã¬ãã«=ã¬ãã«+ 1
9ïŒãã°ããã®é
10ïŒå°å·H = hïŒã¬ãã«ïŒ
ã¹ããªãããã£ãã


ãåå²çµ±æ²»ãã®ååã«åºã¥ããŠFFDNãæ¹åããããã«èšèšãããã¢ã«ãŽãªãºã ã ãŸããã¹ããªããã®ååãããåºãé·æ¹åœ¢ãéžæãããŸãã æåã«æ¢±å
ãããŸãã ãããã®ãã¡ãããã«åºããã®ãéžæãããŸããã¹ããªããã®2/3ãããåºãã§ãã FFDHã¢ã«ãŽãªãºã ãè©°ã蟌ãŸããŠããŸãã ãããã®äžã«ã
次ã®ã¬ãã«ããå§ããŸãããïŒã¬ãã«RãšåŒã³ãŸãããïŒãæ®ãã®1ã€ã¯ããã¯ãããŠããŸãããããã¯ãŸã 1/2ããåºãã§ããããã§ã«2/3ã§ãã ãŸããFFDHã䜿çšããŠããã±ãŒãžåãããŸãã ãã®åå²ã¯ãã¬ãã«Rã§å§ãŸããããã±ãŒãžã®çŸåšã®äžéšå¢çã§çµãããã¡ããã©ããã¯ããããã®ã®å³åŽã«1/3ã®å¹
ã®ç©ºãé åãäœæããŸãïŒã€ãŸããé·æ¹åœ¢1/2 <å¹
<= 2/3ã®äžã«æ¡åŒµããŸããïŒã 1/2ã¹ãã©ã€ããããçãæ®ãã®ãã¹ãŠã®é·æ¹åœ¢ã¯ãæåã«åãFFDHã䜿çšããŠã圢æãããé åã«è©°ã蟌ãŸããåãŸããªãå Žåã¯äžããè©°ããããŸãã èšèã§ã¯é¢åã«èãããŸãããç»åã¯ããé®®æã«ãªããŸãã ãããŠãç§ã®æåŠçãªãšã¯ãµãµã€ãºã«ãã§ã«ç²ããŠãã人ã®ããã«-æ¬äŒŒã³ãŒãïŒ
SFã¢ã«ãŽãªãºã å
¥åïŒããã¯ããé·æ¹åœ¢ã®æ°nã
é·æ¹åœ¢ã®å¯žæ³
{wïŒLiïŒ; hïŒLiïŒ}ããã³ã¹ããªããå¹
W
åºåïŒã¹ããªããã§åŸããããããã³ã°ã®é«ãã
1ïŒmâ¥1ãLå
ã®ãã¹ãŠã®é·æ¹åœ¢ã®æå€§æŽæ°ãšããŸã
æå€§ã§å¹
1 = m
2ïŒé·æ¹åœ¢ã®ãªã¹ãLã2ã€ã®ãµããªã¹ãL1ãšL2ã«åå²ããŸã
L1ã¯ãå¹
ããã倧ããé·æ¹åœ¢ã®ãªã¹ãã§ã
1 /ïŒm + 1ïŒãL2ã¯æå€§1 /ïŒm + 1ïŒã®å¹
ã®é·æ¹åœ¢ã®ãªã¹ã
3ïŒFFDHã¢ã«ãŽãªãºã ã䜿çšããŠãL1é·æ¹åœ¢ãã¹ããªããã«è©°ããŸã
4ïŒãã®ãããã³ã°ã®ãããã¯ãåé
眮ããŠãå¹
ã®ãããã¯ã
ïŒm + 1ïŒ/ïŒm + 2ïŒããã倧ããå Žåãå¹
ãããå°ãã
æå€§ïŒm + 1ïŒ/ïŒm + 2ïŒ
5ïŒå¹
ãæå€§ã§1 /ïŒm + 2ïŒã®é·æ¹åœ¢ãé åRã«è©°ãã
é·æ¹åœ¢ãäžéšã«éãªããªãããã«FFDHã¢ã«ãŽãªãºã ã䜿çšãã
Rã®RãšRã«åãŸããªããã®ã¯ãL1ã®ãããã³ã°ã®äžã«ãããã³ã°ãããŸãã
6ïŒåã¬ãã«ã®é«ãã远å ããããšã«ãããã¹ããªããã®é«ããåºåããŸã
åå ãã


ã©ãããããã®ã¢ã«ãŽãªãºã ã¯å
¥åããŒã¿ã®ç¹å®ã®æ§è³ªã®ããã«æçãããŸããããŸããå®éã®ç¶æ³ã«ã¯ååšããæš©å©ããããŸãã ããã§ããã¹ãŠãèªåã§çè§£ã§ããããã«ãªããŸãã éåžžã®ããã«ãå¢å ããªãé«ãã§ãœãŒããããé·æ¹åœ¢ã¯ãã¢ã§çµåããããã¢ã®é«ãã®å·®ãæå®ãããåæ°ïŒéåžž0ã10ïŒ
ïŒãè¶
ããªãããã«ããŸãã å¥ã®æ¡ä»¶ã¯ããããã®åèšå¹
ãã¹ããªããã«åãŸãããšã§ãã çµæã®ãã¹ãŒããŒé·æ¹åœ¢ãã¯ãNFDHãšFFDHã䜿çšããŠãã¢ãªãã§æ®ããšäžç·ã«ããã¯ãããæé©ãªãœãªã¥ãŒã·ã§ã³ãéžæãããŸãã
é·æ¹åœ¢ãå¹
ã§äžŠã¹æ¿ããããåçŽæ¹åã«çµåãããå Žåããã®ã¢ã«ãŽãªãºã ã«ã¯ããªãšãŒã·ã§ã³ããããŸããããã¯ããã¢ã®å¹
ã®æå€§åå·®ãæå®ã®ããŒã»ã³ãæ°ã ãåãæ¡ä»¶ã§è¡ãããŸãã
çµåã¢ã«ãŽãªãºã å
¥åïŒããã¯ããé·æ¹åœ¢ã®æ°nã
é·æ¹åœ¢ã®å¯žæ³
{wïŒLiïŒ; hïŒLiïŒ}ãaãšããŠã®å®æ°ã¬ã³ã
å²åãšã¹ããªããå¹
W
åºåïŒã¹ããªããã§åŸããããããã³ã°ã®é«ãã
1ïŒhïŒL1ïŒâ¥hïŒL2ïŒâ¥...â¥hïŒLnïŒã®ããã«ãé«ããå¢å ããªãé ã«é·æ¹åœ¢ããœãŒãããŸã
2ïŒj = 1
3ïŒäžæ¹ãj + 1â€n do
4ïŒifïŒhïŒLjïŒ-hïŒLj + 1ïŒïŒ/ hïŒLjïŒ* 100 <ã¬ã³ã
ãããŠwïŒLjïŒ+ wïŒLj + 1ïŒâ€W
5ïŒwïŒLjïŒ+ = wïŒLj + 1ïŒ
6ïŒj + = 2
7ïŒãã®ä»
8ïŒj ++
9ïŒçµäºããå Žå
10ïŒçµäº
11ïŒNFDHããã³FFDHã¢ã«ãŽãªãºã ãå®è¡ããŠãé·æ¹åœ¢ãããã¯ããŸã
12ïŒæé©ãªãœãªã¥ãŒã·ã§ã³ãããå
ã®ã€ã³ã¹ã¿ã³ã¹ã®å®è¡å¯èœãªãããã³ã°ãæ§ç¯ããŸã
13ïŒåã¬ãã«ã®é«ãã远å ããããšã«ãããã¹ããªããã®é«ããåºåããŸã
å転ããªãåºã®å€©äº


ãŸã ã¹ããŒã¹ã¬ãã«ã«ãšã©ãŸãããšã«å°æããŠããå Žåã¯ããã®ã¢ã«ãŽãªãºã ãæé©ã§ãã é·æ¹åœ¢ã¯é«ãã®å¢å ã«ãã£ãŠãœãŒããããŸãïŒäºæ³å€ã«ãããã§ããïŒïŒãããŠãããã€ãã®ä¿®æ£ãå ããBFDHã¢ã«ãŽãªãºã ãé©çšãããŸãã åã¬ãã«ã«ã¯ãåºããšã倩äºãããããŸãã å¯èœãªéããé·æ¹åœ¢ã¯ãåºãã«å·Šããå³ã«è©°ã蟌ãŸããŸãã å Žæãçµãããšãã倩äºããå³ããå·Šã«è©°ã蟌ãããšããŸãã 倩äºã«ã¹ããŒã¹ããªãå Žåã¯ãæ°ããã¬ãã«ã®ã¿ãå§ãŸããŸãã BFDHã®æé«ã®äŒçµ±ã§ã¯ãããããæ®µéã§ãæåã«ãåºããæ¬¡ã«ã倩äºãã®ãã¹ãŠã®ã¬ãã«ãæé©ãªå Žæã§è¡šç€ºãããŸãã ã芧ã®ãšãããããã±ãŒãžã³ã°ã¯ââæªããããŸããã ãã®ã¡ãœããã¯ãã倩äºãã«æå°ã®é·æ¹åœ¢ãæ£åžžã«ããã¯ããŸãã
FCNRã¢ã«ãŽãªãºã å
¥åïŒããã¯ããé·æ¹åœ¢ã®æ°nã
é·æ¹åœ¢ã®å¯žæ³
{wïŒLiïŒ; hïŒLiïŒ}ããã³ã¹ããªããå¹
W
åºåïŒã¹ããªããã§åŸããããããã³ã°ã®é«ãã
1ïŒhïŒL1ïŒâ¥hïŒL2ïŒâ¥...â¥hïŒLnïŒã®ããã«ãé«ããå¢å ããªãé ã«é·æ¹åœ¢ããœãŒãããŸã
2ïŒfor i = 1..n do
3ïŒLiãäžéã«éããå Žå
4ïŒå€©äºã«Liãæå°éã®æ®äœã¹ããŒã¹ã§è©°ãã
5ïŒãã®ä»[Liã¯äžéã«éããŠããªã]
6ïŒLiãããã¢å®çŸå¯èœã§ããã°
7ïŒæå°ã®æ®äœã¹ããŒã¹ã§åºã«ãªããŠã ãè©°ãã
8ïŒãã®ä»[Liã¯ããã¢å®è¡äžå¯èœ]
9ïŒã¬ãã«++;
10ïŒçµäºããå Žå
11ïŒçµäºããå Žå
12ïŒçµäº
13ïŒã¹ããªããã®é«ãHãåºåããŸããããã¯ãåã¬ãã«ã®é«ãã远å ããããšã«ããæ±ããããŸã
ã¹ã¬ã€ã¿ãŒ


ã¬ãã«ã«åå²ããããšãªããããã©ãããªãã¢ã«ãŽãªãºã ã®æä»£ãæ¥ãŸããã Sleatorã¢ã«ãŽãªãºã ã¯ãããã¯ããã¯ãããã¯ãããšããçŽæçãªååã䜿çšããŸããæå€§ã®ã¢ã€ãã ãäžã«æããå°ããªã¢ã€ãã ã§åããŸãã å€èŠ³ã¯æ¬¡ã®ãšããã§ãã é·æ¹åœ¢ãããã¹ããªããã®ååãããå¹
ãåºããå¹
ã®åºããã®ãéžæãããæšæž¬ããå·Šã«æããŠã©ã³ãã ã«ç©ã¿éããããŸãã æ®ãã®ãã®ã¯ãå¢å ããªãé«ãã§ãœãŒããããæ¢ã«é
眮ãããŠãããã®ã«åãã£ãŠå·Šããå³ã«
次ã
ã«ç©ã¿éãããå§ããŸãã ãããã®åèšå¹
ãã¹ããªããã®å¹
ã®ååãè¶
ãããšããã«ãæ®ãã®ã¹ããªããã¯ããçŸæç¹ã§ã¯å°ãªãããšããååã«åŸã£ãŠãå·ŠïŒã¹ããªããã®å·Šç«¯ããéå§ïŒãŸãã¯å³ïŒäžå€®ããïŒã«æ£ãã°ããŸãã å³ãããããããã«ãããã¯ã¹ããããã®æ¹æ³ã§æ¬ãç©ã¿éããæ¹ã䟿å©ã§ãã
Sleatorã¢ã«ãŽãªãºã å
¥åïŒããã¯ããé·æ¹åœ¢ã®æ°nã
é·æ¹åœ¢ã®å¯žæ³
{wïŒLiïŒ; hïŒLiïŒ}ããã³ã¹ããªããå¹
W
åºåïŒã¹ããªããã§åŸããããããã³ã°ã®é«ãã
1ïŒLãé·æ¹åœ¢ã§æ§æããã2ã€ã®ãµããªã¹ãL1ããã³L2ã«åå²ãã
ããããå¹
ã1/2ãã倧ãããæå€§ã§1/2ã®å¹
ã
2ïŒL1ã®ãã¹ãŠã®é·æ¹åœ¢ãå·Šäžã«æããŠç©ã¿éããŸã
ã¹ããªããã®äžéšããéå§ããŸãã hstackãèšç®ãã
3ïŒãããã³ã°ã¯Hstackããäžã«ç¶ããŸã
4ïŒå¢å ããªãé«ãã«åŸã£ãŠL2ã®é·æ¹åœ¢ããœãŒãããŸã
iïŒnïŒã«å¯ŸããŠhïŒLiïŒâ¥hïŒLi + 1ïŒ
5ïŒHtallããªã¹ãL2ã®æãé«ãé·æ¹åœ¢ã®é«ããšããŸãã
6ïŒå·Šããå³ã«å·Šæãã§é·æ¹åœ¢ãè©°ãã
è©°ããã¹ããŒã¹ãäžååã«ãªããŸã§ã¹ããªããã®ç«¯
é·æ¹åœ¢ãŸãã¯ãã¹ãŠã®é·æ¹åœ¢ãããã¯ãããŠãã
7ïŒã¹ããªãããåçŽç·ã§2ã€ã®çããã»ã°ã¡ã³ãã«åå²ããŸãã
å
éšãååãããå¯èœæ§ã®ããé·æ¹åœ¢ã1ã€ããå¯èœæ§ããããŸã
瞊ç·ã§ã
8ïŒHrightãšHleftãå³åŽã®é·æ¹åœ¢ã®é«ããšãã
ïŒããããå·ŠïŒå·ŠïŒãŸãã¯å³ïŒã®ãšããžãæã€ã¹ããªããã®åå
åçŽç·ã«é£æ¥ããŠãããããã®å
éšã鮿ãããŠãã
瞊ç·ã§
9ïŒå±éãããé·æ¹åœ¢ãããéã«
10ïŒé·ãååã®æ°Žå¹³ç·ãæã
é«ããHleftãšHrightã§ããé·æ¹åœ¢
11ïŒåŸç¶ã®æ¢±å
ã¯ãã¹ãŠå·ŠåŽã«ãªããŸã
ãŸãã¯ã¹ããªããã®å³ã»ã°ã¡ã³ã
12ïŒæå°ã®é«ããšããã¯ã®ã»ã°ã¡ã³ããéžæããŸã
ã¹ããªããã®ç«¯ãã
ãã¹ãŠã®é·æ¹åœ¢ã宿ãããŸã§ã®çžŠç·
ããã¯ãããŠããããåãŸããªãé·æ¹åœ¢ããã
13ïŒçµäº
14ïŒå°å·H =æå€§{Hleft; Hright}
ããŒã¯


ããã§ãã远å ã®ãé«ããããããå°å
¥ãããã¬ãã«ã¬ã¹ã¢ã«ãŽãªãºã ïŒ
| | | _ _ ___ |
| | | | | _ | _ | | |
| | | _ | | | | |
| _ _ _ _ _ _ _ _ _ | | .. | _ | _ | _ | _ _ | _ | _ _ |
0 0 0 0 0 0 0 0 0 1 0 3 2 3 0 3 3
ããã¯ãã¹ããªãããå¡ãã€ã¶ããããšãæãå¡ãã€ã¶ãããŠããªãé åãšãã®å¹
ã远跡ã§ããé
åã§ãã æåã¯ãŒãã§åããããŸãã é·æ¹åœ¢ã¯ãå¢å ããªããçªç¶ã®å¹
ã§ãœãŒããããŸãã æ¬¡ã«ãã¢ã«ãŽãªãºã ã®åã¹ãããã§ïŒ
1.æäœé åã®äœçœ®ãèšç®ãããŸã-é
åã®æå°å€ã®ã€ã³ããã¯ã¹ã
2.æãé©åãªé·æ¹åœ¢ãéžæãããŸã-æåã«ããã®é åã«åãŸããæ¬¡ã«ãã§ããã ãåºãå¡ãã€ã¶ãããŸãã
3.é©åãªé·æ¹åœ¢ãèŠã€ãã£ãå Žåãæ¬¡ã®ããããã®æ¹æ³ã§ãã®é åã«é
眮ãããŸãã
3.1ããšãªã¢ã®å·Šç«¯ã
3.2è¿é£ã®1ã€ãã¹ããªããã®ãšããžã§ããå Žåãããé«ãè¿é£ã«è¿ãå Žåããšããžã«è¿ãã
3.3è¿é£ã®1ã€ãã¹ããªããã®ç«¯ã§ããå Žåãããäœãé£ã«è¿ãããã®åŸç«¯ããé ãã é·æ¹åœ¢ã®å¹
ã«å¯Ÿå¿ããé
åã®å€ã«ããã®é«ãã远å ãããŸãã
4.é©åãªé·æ¹åœ¢ããªãå Žåããšãªã¢ã¯ããã®é«ããæãè¿ããšããžã®é«ãã«æããããšã«ãã£ãŠãå¡ãã€ã¶ããããŸãã
ãã®ã¢ã«ãŽãªãºã ã䜿çšããŠãããªã¹ããã¬ã€ãããããããã§ã«äœæããããšãèãã§ããïŒ
ããŒã¯ã¢ã«ãŽãªãºã å
¥åïŒããã¯ããé·æ¹åœ¢ã®æ°nã
é·æ¹åœ¢ã®å¯žæ³
{wïŒLiïŒ; hïŒLiïŒ}ããã³ã¹ããªããå¹
W
åºåïŒã¹ããªããã§åŸããããããã³ã°ã®é«ãã
1ïŒwïŒLiïŒâ¥wïŒLi + 1ïŒâ¥..â¥WïŒLnïŒã®ããã«ãå¢å ããªãå¹
ã«åŸã£ãŠé·æ¹åœ¢ããœãŒãããŸã
2ïŒåé
眮ããªã·ãŒã«ã€ããŠ
ïŒå·Šç«¯ãæãé«ãé£äººãæãå°ããé£äººïŒdo
3ïŒé·æ¹åœ¢ãããã¯ãããŠããªãé
4ïŒæãäœãã®ã£ãããèŠã€ãã
5ïŒwïŒLiïŒâ€GapWidthã®å Žå
6ïŒé
眮ããªã·ãŒã䜿çšããŠæé©ãªåè§åœ¢ãé
眮ãã
7ïŒé
åã®èŠçŽ ãé©åãªé«ãã«äžãã
8ïŒãã®ä»
9ïŒæäžäœã®é«ããŸã§ã®ã£ãããäžãã
10ïŒçµäºããå Žå
11ïŒçµäº
12ïŒçµäº
13ïŒæå€§ã®ãšã³ããªãæã€é
åã®èŠçŽ ã¯ããããã³ã°ã®å
šäœã®é«ãã瀺ããŸã
14ïŒåé
眮ããªã·ãŒã«ãã£ãŠååŸãããç·æ¢±å
é«ããæ¯èŒããæé©ãªãœãªã¥ãŒã·ã§ã³ãè¿ããŸã
誰ãè¯ã
åã¢ã«ãŽãªãºã ã®çµæã¯åž¯åå¹
ã®ã¬ãã«ã§ãããå°ãªãã»ã©è¯ãã§ãã ããã«å¯Ÿããæé©ã®æ¯çã«ãã£ãŠæšå®ã§ããŸãïŒ

2ã»ããã®ãœãŒã¹ããŒã¿ã®çµæãæ¯èŒããŸãã
| æé© æ±ºå® | Nfdh | Ffdh | Bfdh | Kp01 | SF | åå ãã | FCNR | ã¹ã¬ã€ã¿ãŒ | ãã«ãŒã¯ |
---|
ã»ãã1 | 149 | 0.65 | 0.71 | 0.71 | 0.71 | 0.75 | 0.61 | 0.83 | 0.68 | 0.72 |
ã»ãã2 | 140 | 0.66 | 0.77 | 0.77 | 0.78 | 0.77 | 0.70 | 0.84 | 0.51 | 0.71 |
Floor Ceilingã¢ã«ãŽãªãºã ãäž¡æ¹ã®ããŒã¿ã»ããã§åã£ãããšãããããŸãã Sleatorã¯æåã®ã»ããã§ããè¯ãçµæã瀺ããå察ã«Joinã¯2çªç®ã®ã»ããã«ããé©ããŠããããšã«æ³šæããŠãã ããã ããããããã¯ãã¹ãŠçµ±èšã«éããŸããã
ãšãããŒã°
ç°¡åãªå®åŒåã«ããããã€ããªããã±ãŒãžã³ã°ã®ã¿ã¹ã¯ã¯ããªããžã§ã¯ãã®çŽæ¥çãªæ¢±å
ãææã®åæãè³éã®å²ãåœãŠãã¯ã©ã¹ã¿ãŒã§ã®ã¿ã¹ã¯ã®èšç»ãªã©ãèšå€§ãªæ°ã®å®çšçãªã¢ããªã±ãŒã·ã§ã³ã«é©çšã§ããŸãã 人çã«ã¯æŽç·Žãããåé¡ã¯ã»ãšãã©ãããŸããããããã€ãã®æ¡ä»¶ãéãããŠãããããç¶æ³ãå€é
åŒæéã§éæã§ããåªãããœãªã¥ãŒã·ã§ã³ãåããçŸããæ°åŠã¢ãã«ã«æžããããšãã§ããŸãã ãããŠãäžåºŠããã¿ãã©ã€å¹æã®çµæãšããŠãç Žæ£ãããæ¡ä»¶ã¯ããªãã®ééãèŠããæ±ºå®ã¯ãã¹ãŠã®ç¡åã®äººã«æž¡ããŸãã äžçãäžå®å
šã§ããã®ã¯ãã®ãããªä»®å®ã®ããã§ãã
æ°ãæ£ã£ããã®ã 次ã®éšåã§ã¯ãã¿ã¹ã¯ã®ãªã³ã©ã€ã³ããŒãžã§ã³ãšãªãã·ã§ã¢ã¢ã«ãŽãªãºã ã«ã€ããŠã話ããããšæããŸãã é 匵ã£ãŠïŒ
ã€ã³ã¹ãã¬ãŒã·ã§ã³ã®æºïŒ
Nthabiseng Ntene
2Dæåã¹ããªãããããã³ã°åé¡ãžã®ã¢ã«ãŽãªãºã çã¢ãããŒãããããã»ãã·ã³ã¬ãŒ
ãããã¶ãã¯ã®åé¡äºæ¬¡å
ãããã³ã°ã«é¢ãã調æ»ã¬ãã«ã¢ã«ãŽãªãºã ãšã·ã§ã«ãã¢ã«ãŽãªãºã ïŒæ³šæãæ¶ç®èšèšïŒ
ã³ãŒãïŒQtïŒïŒ
ã¢ã«ãŽãªãºã
packager.h packager.cppGui
window.h window.cpp renderarea.h renderarea.cpp main.cppUPDïŒ
ãªã³ã©ã€ã³ã¢ã«ãŽãªãºã