U E D R , A S I H C RSS

TAOCP/Basic Concepts

1. 1.1 Algorithms


1.1. •Œ๊ณ ฆฌฆ˜ E(œ ฆฌ“œ˜ •Œ๊ณ ฆฌฆ˜(Euclid's algorithm))

~cpp 
–‘˜  •ˆ˜ m๊ณผ n ฃผ–กŒ„•Œ, ๊ทธ๊ฒƒ“ค˜ ตœŒ€๊ณต•ˆ˜(greatest common divisor)
(m๊ณผ n„ ‘ ‚˜ˆ„Š” ๊ฐ€žฅ ฐ –‘˜  •ˆ˜)ฅผ ๊ตฌ•œ‹ค.
E1. [‚˜จธ€ ๊ตฌ•˜๊ธฐ] m„ nœผกœ ‚˜ˆ„๊ณ  ‚˜จธ€ฅผ rผ •˜ž.(0 <= r < n)
E2. [๊ทธ๊ฒƒ 0ธ๊ฐ€?] r = 0 , •Œ๊ณ ฆฌฆ˜€ ‚œ‹ค; n ‹ต‹ค.
E3. [ค„๊ธฐ] m <- n, n <- r œผกœ „ค ••œ‹ค, ๊ทธฆฌ๊ณ  E1‹จ๊ณ„กœ Œ•„๊ฐ„‹ค.โ– 

~cpp 
Fig 1. •Œ๊ณ ฆฌฆ˜ E˜ ˆœ„œ„

        |<------------------------------------------------------|
       โ†“                                                       |
--------------------          ------------------ •„‹ˆ˜ค   -------------
| E1.‚˜จธ€ ๊ตฌ•˜๊ธฐ |-------->( E2.๊ทธ๊ฒƒ 0ธ๊ฐ€? )-------->| E3.ค„๊ธฐ |
--------------------          ------------------          -------------
                                        |˜ˆ
                                       โ†“

m = 119 ™€ n = 544 ๊ฐ€ ฃผ–กŒ‹ค๊ณ  •˜ž
E1 ‹จ๊ณ„—„œ ‹œž‘. m„ nœผกœ ‚˜ˆ„ € 0๊ณ  ‚˜จธ€Š” 119‹ค. ๊ทธŸฌ€กœ r <- 119
E2 ‹จ๊ณ„—„œ r โ‰  0 €กœ  šฉ˜€ •ŠŠ”‹ค
E3 ‹จ๊ณ„—„œ m <- 544, n <- 119
๊ฒƒœผกœ ฒ˜Œ— m < n ์ด๋ฉด ํ•ญ์ƒ m๊ณผ n์ด ๊ตํ™˜๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค
šฐฆฌŠ” ‹คŒ๊ณผ ๊ฐ™€ ƒˆกœš ‹จ๊ณ„ฅผ ถ”๊ฐ€•  ˆ˜ žˆ‹ค(๊ผญ •„š”•˜ง„ •Š‹ค)

~cpp 
E0. [m >= n ธ€ ™•ธ•˜๊ธฐ] m < n ผ, m <-> n „ ๊ต™˜•œ‹ค

E1œผกœ Œ•„๊ฐ€„œ 544/119 = 4+68/119, ๊ทธŸฌ€กœ r <- 68
‹ค‹œ E2Š”  šฉ˜€•Š๊ณ 
E3—„œ m <- 119, n <- 68
‹คŒˆœ™˜—„œ r <- 51, m <- 68, n <- 51
‹คŒ— r <- 17, m <- 51, n <- 17
งˆ€ง‰œผกœ 51„ 17กœ ‚˜ˆ„—ˆ„•Œ, r <- 0, ๊ทธ๋Ÿฌ๋ฏ€๋กœ E2์—์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ข…๋ฃŒ๋œ๋‹ค
119™€ 544˜ ตœŒ€๊ณต•ˆ˜Š” 17‹ค


1.2. •Œ๊ณ ฆฌฆ˜˜ 5๊ฐ€€ ค‘š”•œ Šน•

1) œ •œ„ฑ(Finiteness)
•Œ๊ณ ฆฌฆ˜€ œ •œ•œ ‹จ๊ณ„ ›„— •ƒ ข…ฃŒ˜–••œ‹ค

2) …™•„ฑ(Definiteness)
•Œ๊ณ ฆฌฆ˜˜ ๊ฐ ‹จ๊ณ„Š”  •™•žˆ  •˜˜–••œ‹ค

3) ž… ฅ(Input)
•Œ๊ณ ฆฌฆ˜€ 0๊ฐœ ƒ˜ ž… ฅ„ ๊ฐ€ง„‹ค

4) ถœ ฅ(Output)
•Œ๊ณ ฆฌฆ˜€ •˜‚˜ ƒ˜ ถœ ฅ„ ๊ฐ€ง„‹ค

5) šจœจ„ฑ(Effectiveness)
•Œ๊ณ ฆฌฆ˜€ †ต šจœจ œผกœ ˆ˜–‰˜„ก ๊ธฐŒ€œ‹ค


1.3. •Œ๊ณ ฆฌฆ˜˜ ๊ฐœ…„ ˆ˜•™  ง‘•ก ˜ ๊€๊ณ„กœ ‚˜ƒ€‚๊ธฐ

๊ณ„‚ฐ ธ ฐฉ•(computational method)„ 4Œ˜ (Q,I,ฮฉ,f)กœ ˜•‹„ ๊ฐ–ถฐ  •˜•˜ž
QŠ” €ถ„ง‘•ฉ I™€ ฮฉฅผ ฌ••˜Š” ง‘•‹ค
fŠ” Q—„œ Q ž๊ธฐž‹ œผกœ ๊ฐ€Š” •ˆ˜‹ค
ฮฉ˜ “  ›†Œ q— Œ€•˜—ฌ f(q)Š” q™€ ๊ฐ™•„••œ‹ค.
Q : ๊ณ„‚ฐ
I : ž… ฅ
ฮฉ : ถœ ฅ
f : ๊ณ„‚ฐ ๊ทœ™
ง‘•ฉ I˜ ›†Œ x˜ ž… ฅ€ ๊ณ„‚ฐˆ˜—, x0, x1, x2,..., ฅผ ‹คŒ๊ณผ ๊ฐ™  •˜•œ‹ค
~cpp 
	x0 = x	๊ณ 	xk + 1 = f(xk) (k >= 0)
ฮฉ— †•˜Š” xk — Œ€•˜—ฌ k๊ฐ€ ๊ฐ€žฅ ž‘€  •ˆ˜ผ ๊ณ„‚ฐˆ˜—€ k‹จ๊ณ„—„œ ข…ฃŒœ‹ค๊ณ  •œ‹ค. ๊ทธฆฌ๊ณ   ๊ฒฝšฐ— xกœ€„ฐ ๊ฒฐ๊ณผ xk๊ฐ€ ƒ„ฑœ‹ค๊ณ  •œ‹ค.

•Œ๊ณ ฆฌฆ˜ EŠ” ‹คŒ๊ณผ ๊ฐ™ Ÿฐ ๊€๊ณ„กœ ˜•‹™”œ‹ค.
Qฅผ “  ‹จผ (n), “  ˆœ„œžˆŠ” Œ (m,n), “  ˆœ„œžˆŠ” 4Œ (m,n,r,1), (m,n,r,2), (m,n,p,3) (m,n,pŠ” –‘˜  •ˆ˜, r€ Œ •„‹Œ  •ˆ˜)˜ ง‘•ผ •˜ž.
Iฅผ “  Œ (m,n)˜ €ถ„ง‘•ผ •˜ž.
ฮฉฅผ “  ‹จผ (n)˜ €ถ„ง‘•ผ •˜ž.
fŠ” ‹คŒ๊ณผ ๊ฐ™  •˜œ‹ค.
~cpp 
f((m,n)) = (m,n,0,1};	f((n)) = (n);
f((m,n,r,1)) = (m, n, m„ nœผกœ ‚˜ˆˆ ‚˜จธ€, 2);
r = 0  f((m,n,r,2)) = (n), ๊ทธ ‡€ •Šœผ (m,n,r,3);
f((m,n,p,3)) = (n,p,p,1).

2. 1.3. MIX

 ฑ…˜ ˆ˜งŽ€ €ถ„—„œ MIX–ธ–๊ฐ€ “ฑžฅ•œ‹ค. ”ฐผ„œ …žŠ”   ˆ„ ฃผ˜ ๊นŠ๊ฒŒ ๊ณต€•••œ‹ค.

2.1. 1.3.1. Description of MIX

2.1.1. šฉ–๊ณผ ‘œ๊ธฐ•

  • Words( Partitial fieslds of wordsฌ•จ)
    —ฌ„ฏ ฐ”Šธกœ ฃจ–ง„‹ค. •œ ฐ”Šธ—Š” 0~63๊นŒ€ ˆซž๊ฐ€ “ค–๊ฐˆ ˆ˜ žˆ‹ค. ๊ทธฆผœผกœ ‚˜ƒ€‚ ‹คŒ๊ณผ ๊ฐ™‹ค.
    0 1 2 3 4 5
    ยฑ Byte Byte Byte Byte Byte
    •„“œ  œ•œ ฃผ–งˆ ˆ˜ žˆ‹ค. ˜•‹€ (L:R)‹ค. (L~R˜ ฒ”œ„ฅผ œ•œ‹ค.)
    <!> ˜ˆ) (0:0)Š” €˜ธ, (1:5)Š” €˜ธ๊ฐ€ —†Š” ˆซž, (3:4)Š” 3,4ฒˆงธ ฐ”Šธ
  • Registers
     ˆ€Šค„ฐŠ” •ž— †Œฌธž r„ ™—ฌ ‘œ๊ธฐ
    A, X register
    ยฑ Byte Byte Byte Byte Byte
  • I register - rI1~rI6๊นŒ€ žˆŒ.
    ยฑ Byte Byte
    J register
    + Byte Byte
    ๊ทธ ™—
    Overfolw toggle - on, off
    Comparison indicator, - EQUAL, LESS, GREATER
    Input, Output Devices
  • Instruction format
    0 1 2 3 4 5
    ยฑ A A I F C
    C - … น– ฝ”“œ(the poeration code)
    F - … น–˜ €๊ฒฝ(a modification of the operation code). (L:R)ผ 8L+R = F
    ยฑAA - ฉ”ฆฌ ฃผ†Œ(the address)
    I - ธฑŠค(the index specification). ๊ฐ’ 1~6œผกœ rI1~rI6— žˆŠ” ‚šฉ๊ณผ ฉ”ฆฌ ฃผ†Œฅผ ”•
    —ฌ๊ธฐ„œ ”•ง„ ฃผ†Œฅผ M, M— “ค–žˆŠ” ๊ฐ’„ CONTETNS(M)ผ๊ณ  •œ‹ค.
  • Notation
    ~cpp OP ADDRESS, I(F)
    ๊ฐ™€ ˜•‹œผกœ “‹ค.
    <!> ''˜ˆ) LDAŠ” … น– ฝ”“œ๊ฐ€ 8‹ค.
    LDA 2000, 2(0:3) € || + || 2000 |||| 2 || 3 || 8 || ๊ณผ ๊ฐ™‹ค.''

2.1.2. —ฐ‚ฐ

  • Loading operators.
    CONTENTS(M)„  ˆ€Šค„ฐ— „ฃŠ”‹ค.
    LDA, LDX, LDi, LDAN, LDXN, LDiN žˆ‹ค.
  • Storing operators.
     ˆ€Šค„ฐ˜ ๊ฐ’„ CONTENTS(M)— „ฃŠ”‹ค.
    STA, STX, STi, STJ, STZ๊ฐ€ žˆ‹ค.
  • Arithmetic operators.
    ‚ฌ™—ฐ‚ฐ„ •œ‹ค. ADD, SUB, MUL, DIV๊ฐ€ žˆ‹ค.
  • Address transfer operators.
     —ฐ‚ฐ—„œ M€ ฉ”ฆฌ …€„ ๊ฐ€ฆฌ‚ค€ •Š๊ณ , ๊ทธƒ€˜ธžˆŠ” ˆซžกœ “ฐธ‹ค. ENTr, ENNr, INCr, DECr๊ฐ€ žˆ‹ค. ( r€ A, X, 1~6)
    <!> ˜ˆ) ENTA 2000 - > rA || + || 0 || 0 || 0 || 2000 ||
  • Comparison operator
     ˆ€Šค„ฐ™€ CONTENTS(M)„ น„๊ต•„œ LESS, GREATER, EQUAL„ „ค ••˜Š” … น–‹ค. CMPA, CMPX, CMPi๊ฐ€ žˆ‹ค. CMPiฅผ •  •ŒŠ” •ž— „ธ žฆฌ๊ฐ€ 0ผ๊ณ  ๊ฐ€ ••œ‹ค.
  • Jump operators.
    M ๊ฐ€ฆฌ‚คŠ” ฉ”ฆฌ …€กœ  ”„•œ‹ค. JSJฅผ นผ  ”„ฅผ •˜„œ  ”„ … น– ‹คŒ œ„น˜ฅผ rJ—  €žฅ•œ‹ค. the comparison indicatorฅผ šฉ•˜๊ฑฐ‚˜(JL, JE, JG, JGE, JLE, JNE) ,  ˆ€Šค„ฐ(JrN, JrZ, JrP, JrNN, JrNZ, JrNP)ฅผ šฉ•œ‹ค.
  • Miscellaneous operators.
    ‹œ”„Šธ … น€ rA™€ rXฅผ ‚ฌšฉ•œ‹ค. SLA, SRA, SLAX, SRAX, SLC, SRC๊ฐ€ žˆ‹ค. M€ ‹œ”„Šธ•˜Š” šŸˆ˜ฅผ ‚˜ƒ€‚ธ‹ค.
    MOVE… น€ FงŒผ CONTENTS(M)„ rI1 ๊ฐ€ฆฌ‚คŠ” ฉ”ฆฌ …€กœ ๊ฐ’„ ณต‚ฌ•œ‹ค.
    <!> ''˜ˆ1) rI1 = 1001ผ •Œ MOVE 1000,(3)
    CONTENTS(1000) -> CONTENTS(1001), rI1 = 1002
    CONTENTS(1001) -> CONTENTS(1002), rI1 = 1003
    CONTENTS(1002) -> CONTENTS(1003), rI1 = 1004''
    ๊ทธŸผ ‹คŒ—” ––๊ฒŒ ˜‚˜?
    <!> ˜ˆ2) rI1 = 2000ผ •Œ MOVE 1000,(3)
    ''CONTENTS(1000) -> CONTENTS(2000), rI1 = 2001
    CONTENTS(1001) -> CONTENTS(2001), rI1 = 2002
    CONTENTS(1002) -> CONTENTS(2002), rI1 = 2003''
    (rI1๊ฐ’ ค‘๊ฐ„ค‘๊ฐ„ ฐ”€ŒŠ”๊ฒŒ •„‹ˆผ ‹ค ‚˜๊ณ  FงŒผ ”•ง„‹ค๊ณ  ƒ๊ฐ•˜ผ --„ธ™˜)
  • NOP … น€ •„๊ฒƒ„ •˜€ •ŠŠ”‹ค.
    HLT … น€ ๊ธฐ๊ณ„ฅผ ฉˆถ˜‹ค(The machine stops.)
  • Input-output opertors.
    •„𔕠 •Œ  ค๊ณ  ƒžต–ˆ‹ค.
  • Conversion operators.
    NUM€ rAXฅผ ๊ฐ€€๊ณ  ˆซžกœ ฐ”๊พธ– rA—  €žฅ•œ‹ค. ๊ฐ ฐ”Šธ๊ฐ€ •œ žฆฌกœ ฐ”€ŒŠ”ฐ, ผ˜ žฆฌงŒ ๊ฐ€€๊ณ  ฐ”๊พผ‹ค(10 -> 0, 23->3 )
    CHARŠ” rAฅผ ๊ฐ€€๊ณ  ฌธž ฝ”“œกœ ฐ”๊พธ– rAX—  €žฅ•œ‹ค.
  • Timing
    ๊ฐ … น–Š” ‹ค–‰ ‹œ๊ฐ„(excution time) žˆ‹ค.

2.2. 1.3.3 Applications to Permutations

MIX ”„กœ๊ทธžจ˜ ˜ˆ œฅผ —ฌ€‹ค. ค‘š”•œ ˆœ—˜ „ฑงˆ(properties of permutations)„ †Œ๊ฐœ•œ‹ค.

ˆœ—€ abcdefฅผ žฌฐฐ—(rearrangement)‚˜ ฆ„ฐ”๊พธ๊ธฐ(renaming)ฅผ •„œ –Š”‹ค๊ณ  ณผ ˆ˜ žˆ‹ค. ฅผ ‹คŒ๊ณผ ๊ฐ™ ‘œ‹œ•  ˆ˜ žˆ‹ค.(p.164ฐธกฐ)
( a b c d e f )
( c d f b e a )
ˆœ™˜ ‘œ‹œ(a cycle notation)กœ “ฐ ‹คŒ๊ณผ ๊ฐ™‹ค
( a c f ) ( b d )
•„ค : a๊ฐ€ cกœ ฐ”€ŒŠ” ๊ฒƒ(a goes to c)„ a->cผ๊ณ  ‘œ‹œ•œ‹ค. ”ฐผ„œ œ„˜ ‘œ˜„€ a->c->f->a, b->d->bฅผ ‚˜ƒ€‚ธ‹ค.e->e๊ฐ™ €•˜€ •ŠŠ” ๊ฒƒ€ ƒžต•œ‹ค.

2.2.1. Products of permutations

‘ ˆœ—„ ๊ณฑ•œ‹ค. (•„ฑ•ˆ˜™€ น„Šท•˜‹ค.)
(a b c d e f ) ร— (a b c d e f )
(c d f b e a ) (b d c a f e )
= (a b c d e f )
(c a e d f b )
ฅผ a cycle notationœผกœ “ฐ
(a c f ) (b d )(a b d )(e f) = (a c e f b)
๊ณผ •€ ™€„ฐ ‹œž‘•„œ ˜คฅธœผกœ ๊ฐ€„œ ฐพŠ” ฐฉ‹‹ค. a€„ฐ ‹œž‘•˜ a->c๊ณ , c—„œ ‹œž‘•˜ c->f->eŸฐ ‹œผกœ ฐพ„ ˆ˜ žˆ‹ค.  ๊ณผ •„ “จ„ฐกœ ‹œ„•ž.

2.2.2. Algorithm A

A1. “  ™ฝ ๊„˜ธ— ” „ ‚จ๊ธ‹ค. ˜คฅธฝ ๊„˜ธฅผ ™ฝ ๊„˜ธ ‹คŒ ฌธžกœ ฐ”๊พธ๊ณ  ” „ ‚จ๊ธ‹ค.
˜ˆ) (a c f g) -> (a c f g a
A2. ™—„œ ˜คฅธœผกœ ๊ฐ€„œ ”  —†Š” ฒซฒˆงธ ฌธžฅผ STARTผ๊ณ  •œ‹ค. ™ฝ ๊„˜ธ™€ ๊ทธ ฌธžฅผ ถœ ฅ•˜๊ณ  ” „ ‚จ๊ธ‹ค. “  ฌธž— ”  ‚จ„ ๊ฒฝšฐ ข…ฃŒ•œ‹ค.
A3. ‹คŒฌธžฅผ CURRENTกœ „ธŒ…•œ‹ค.
A4. ˜คฅธœผกœ ๊ฐ€„œ CURRENT™€ ๊ฐ™€ ฌธžฅผ ฐพŠ”‹ค. ฐพ€ ๊ฒฝšฐ ” „ ‚จ๊ธฐ๊ณ  A3กœ ๊ฐ„‹ค. ( ฐพ๊ณ  ˜คฅธ๊นŒ€ ๊ฐ€ A5กœ ๊ฐ„‹ค.)
A5. STARTโ‰  CURRENT CURRENTฅผ ถœ ฅ•˜๊ณ  ‹ ™€„ฐ ‹œž‘•„œ A4กœ ๊ฐ„‹ค.( ๊ฐ™œผ A6กœ ๊ฐ„‹ค.)
A6. (™„ „•œ ‚ฌ„ ฐพ•˜œผ€กœ) ˜คฅธฝ ๊„˜ธฅผ ‹ซ๊ณ  A2กœ ๊ฐ„‹ค.
* Timing
ž˜ ๊ฒ ‹ค.

2.2.3. Another Approach(Algorithm B)

What is this computer-oriented method for permutation multipulication?
˜คฅธ—„œ ™œผกœ ˜ค„œ ‹ต„ ฐพŠ” ฐฉ•‹ค.
(—ฌ๊ธฐ„œŠ” ฑ…— žˆŠ” Table2(p.173)ฅผ ••œ‹ค. „ธกœ •œ ค„ Tiฅผ ‚˜ƒ€‚ธ‹ค. ๊ทธ ฐ–— i, j, Z ๊ฐ’„  – †“œผ ••  ˆ˜ žˆ‹ค. n€ ฌธž˜ ๊ฐœˆ˜‹ค.)
B1. “  1โ‰คkโ‰คn— Œ€•„œ Tk โ† k. ˜คฅธ€„ฐ ฝ„ €น„ฅผ •œ‹ค.
B2. ‹„ ˜คฅธ€„ฐ •˜‚˜”ฉ ฝœผ„œ
)  Zโ†0•˜๊ณ  B2ฐ˜ณต
(  B4กœ.
๊ทธ ™—Š” iธ xiฅผ ๊ฐ€€๊ณ  B3กœ
B3. Zโ†”Tiฅผ •˜๊ณ  ‚˜„œ Ti = 0 jโ†iฅผ •œ ’ค B2กœ.
B4. Tj โ† Z ›„— B2กœ.
  • Timing
    —ฐŠตฌธ œ10— žˆ‹ค.

2.2.4. Inverse

ˆœ— —ฐ‚ฐ„ ›ž˜Œ€กœ ŒฆฌŠ” ˆœ—(—ญ–‰ ฌ๊ณผ น„Šท•˜‹ค.)
ฉ”ฆฌฅผ งŽ “ฐ ‰ฝ๊ฒŒ •๊ฒฐ( Y[Xk โ† k )
•˜€งŒ žฌฏธ‚ผ•„ nใ…ฃ งคšฐ ฌ๊ณ  ‚จŠ” ฉ”ฆฌ๊ฐ€ —†‹ค๊ณ  •ž.

2.2.5. Algorithm I

(ฒˆ—„ Table 3(p.177)ฅผ „œ •˜ œ‹ค.)

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:09
Processing time 0.0362 sec