Lecturer: ¦¿®¶·ç
Teaching Assistants (TAs):
§õ«T½å ©Ð¤l»¨ ªL¾ô¼Ý
Time: ¶g¤G 14:00~16:50
Place: ¶g¤G ¤u¤À](E6) A207
TA Class:
¶g¤G 13:00~13:50
¤u¤À](E6) A207
½Ð¤j®a¥ýÆ[¬Ý¤§«eªº½Òµ{¤¶²Ð¼v¤ù:
https://youtu.be/1muNkALTSr8
*½Ð¥[¿ïªº¦P¾Ç·V«ä¡A¦]¬°¥»½Òµ{¬°¸ê¤u¨t¥²×½Ò¡A½Òµ{¤£¤Î®æ¤ñ²v¬°15%+-5%¡C×Ū¥»½Ò
µ{»Ýnú¥æmidterm project¡Bterm project¥H¤Î¨C¶g¤â¼g§@·~6-10ÃD¡A¥ô¿ï¤GÃD§@µª¡F¨C¶g½u
¤Wµ{¦¡§@·~3ÃD¡A¦Ü¤Ö§¹¦¨¤@ÃD¡F¨C¶g§U±Ð½Òµ{¤À²Õ³ø§i¤@¤p®É¡A»Ý¤W¶Ç§@·~¸ÑÃD§ë¼v¤ù¡C
*«Øij¥i¥H±Ä¥Î¥ý¬Ý²ßÃD¡AµM«á¦AÅ¥½Ò©Î¨ì½Òµ{¼v¤ù¤¤¾Ç·|¸Ñ¨M°ÝÃD§Þ³Nªº¤è¦¡¾Ç²ß¡A®ÄªG¸û¨Î!
EEClass: (CE3005B)
Scope:
- Designs and Analysis of Many Classical Algorithms
Introduction to Several Machine Learning/Deep
Learning Algorithms (2019¶}©l·s¼W)
- Introduction to Gate-based Quantum Algorithms and Quantum
Annealing Algorithms (2021¶}©l·s¼W) for Midterm and Final Projects
Scoring¡G
- ´Á¤¤¦Ò(¤ÀªR»P³]p·§©À)(
25%23%)
- ´Á¥½¦Ò(¤ÀªR»P³]p·§©À)(
30%27%)
- ´Á¤¤±MÃD(
10%9%)
- ´Á¥½±MÃD(
10%9%)
- §@·~¡Bµ{¦¡³]p§@·~¡B³ø§i¡B½Òµ{°Ñ»P«×(
25%32%)
Textbooks:
- My Book's Manuscript: (ºtºâªk³]p«äºû»P¤ÀªR¤èªk)
AlgBook(Ch1-8).zip
(®ÑÄy§Y±N¥Xª©¡Aª©Åv
©Ò¦³¡A¯ó½Z¶È¨Ñ×½Ò¦P¾Ç°Ñ¦Ò¡A½Ð¤Å´²¼½¬y¥X:)
- My Another Book: (»´ÃP¾Ç¶q¤lµ{
¦¡³]p -- ±q¶q¤l¦ì¤¸¨ì¶q¤lºtºâªk)
- R.C.T. Lee et. al., Introduction to the Design and Analysis
of Algorithms -- A Strategic Approach (2/e), McGraw Hill,
2005.
- Thomas Cormen, Charles
Leiserson, Ronald Rivest and Clifford Stein, Introduction to Algorithms (3/e),
MIT Press, 2009.
Reference Books:
- ±i¤¸µ¾, ¶q¤l¹q¸£»P¶q¤lpºâ, ùÖ®p, 2020.
- ³¯«Ø§»(Ķ), ¶q¤lpºâ¹ê¾Ô, ùÖ®p, 2020.
- ªL¤j¶Q, TensorFlow + Keras ²`«×¾Ç²ß¤H¤u´¼¼z¹ê°ÈÀ³¥Î, ³ÕºÓ¤å¤Æ, 2017.
- »ôÃñd¼Ý, Deep Learning -- ¥ÎPython¶i¦æ²`«×¾Ç²ßªº°ò¦²z½×¹ê§@, O'REILLY, (§d¹ÅªÚ
Ķ, ùÖ®p¸ê°T¥Xª©), 2017.
- Algorithm Design: Foundations, Analysis, and Internet
Examples, Michael T. Goodrich, Roberto Tamassia, Wiley, 2002.
(¦³¤¤Ä¶¥»)
- Computer Algorithms, Ellis Horowitz et. al., Silicon Press,
2008.
-
¤¤¤åJavaµ{¦¡³]p (²Ä¤Tª©) SIM-908A , ¦¿®¶·ç µÛ, ¾§ªL¥Xª©ªÀ, 2006.
-
ª«¥ó¾É¦V¸ê®Æµ²ºc ¡X ¨Ï¥ÎJava»y¨¥, ¦¿®¶·ç µÛ, ªQ±^¹Ï®Ñ¤½¥q, 2005.
- Algorithms, S. Dasgupta, C. Papadimitriou and U. Vazirani,
McGraw Hill, 2008.
- Programming Challenges, Steven S. Skiena and Miguel Revilla,
Elsevier, 2003.
- The Algorithm Design Manual, Steven S. Skiena, Elsevier.
Programming:
¦w¸Ë½Òµ{¬ÛÃö³nÅé¤Îì©lµ{¦¡½X: Jeep7 (for
JAVA platform on Windows)
1 ¦w¸ËJava Development Kit (JDK): http://java.sun.com/javase/downloads/index.jsp
2 ¦w¸ËMinGW C++ Compiler
(G++):
http://prdownloads.sf.net/mingw/MinGW-3.0.0-1.exe?download
3 ¦w¸Ë³Ì·sPython 3 Interpreter:
https://www.anaconda.com/
4 ¦w¸ËJeep7(
Java
editor for
every
programmers v7.0)
(¤U¸ü: Jeep7Setup&SourceCode.exe)
(¨¾¬r³nÅé·|»~§P¬°¤£¦w¥þ³nÅé¡A¦ý«OÃÒ¦w¥þ¡A½Ð¦w¤ß¨Ï¥Î¡C)
5 ³]©w¸ô®|°Ñ¼Æ:
ª`·N¡A³o·|¦]¬°§A¦w¸Ë¤W¦C¤£¦P³nÅ骺¤£¦Pª©¥»¦Ó¤£¦P¡A¤]·|¦]¬°§A¦w¸Ëªº§@·~¨t²Îª©¥»¤£¦P¦Ó¤£¦P¡C¥H¤U¬°°w¹ïWindows§@·~¨t²Îªº³]©w:
¿ï¾Ü
[±±¨î¥x][¨t²Î¤Î¦w¥þ©Ê][¨t²Î][¶i¶¥¨t²Î³]©w][Àô¹ÒÅܼÆ]¡A§ä¥X[path]Åܼƨëö¤U[½s¿è]¡A¨Ã¦b¨äÅܼÆÈ¥½ºÝ¥[¤J¥H¤U¤º®e:
;JDK¦w¸Ë¥Ø
¿ý\bin;MinGW¦w¸Ë¥Ø¿ý\ bin;Python¦w¸Ë¥Ø¿ý;Jeep7¦w¸Ë¥Ø¿ý
(¨Ò¦p: ;C:\Program
Files\Java\jdk-9.0.4\bin;C:\MinGW\bin;C:\Users\yourname\Anaconda3;C:\Jeep7)
6 ¤U¸ü½d¨Òµ{¦¡(
Sample.c)(
Sample.cpp)(
Sample.java)(
Sample.py)Àx
¦s©óC:\Jeep7¥Ø¿ý¤¤¡A«ö¤U®à±Jeep7¹Ï¥Ü°õ¦æJeep7³nÅé¡A¨Ã¨Ï¥Î [¶}ÂÂÀÉ]¿ï¶µ¸ü¤J½d¨Òµ{¦¡¶i¦æ[½sĶ][°õ¦æ]¡C
ACM°ê»Ú¤j¾Ç¥Í
µ{¦¡³]p ÄvÁÉ (ACM International Collegiate Programming Contest,
ACM-ICPC) (ACM-ICPC&EPC.ppt)
Syllabus:
- (2/18)0. ºtºâªk½Òµ{¤¶²Ð (AlgSmallTalk.pptx)
- (2/25)1. »{ÃѺtºâªk --
±q¹ÃШ찪¶¥µ{¦¡»y¨¥: (Alg-Intro.pptx) (ACM-ICPC&EPC.ppt)
.1 ºtºâªk¦WºÙªº¥Ñ¨Ó
.2 ¤°»ò¬Oºtºâªk?
.3 ºtºâªkªº¨Ò¤l
.4 ¦p¦óªí¥Üºtºâªk?
.5 ¦p¦ó¹ê§@ºtºâªk? (EuclidGCD.c)(EuclidGCD.cpp)(EucidCGDClass1.java)(EucidCGDClass.java)(EuclidGCD.py)
.6 ºtºâªkªº¥¿½T©Ê
Homework1: (For 2/25. Select
two problems out of A, B, ..., and G and handwrite their
solutions. Due day: before noon of next class on 3/4)
A.
¨Ï¥ÎµêÀÀ½X(pseudocode)¼g¤@Óºtºâªk¡A¿é¤J¤@Ó¾ã¼Æn(n>2)¨Ã¨Ã§PÂ_n¬O§_¬°½è¼Æ(prime)(Write
an algorithm using the pseudo code to input an integer n and
output (decide) if n is a prime.)
B. ¨Ï¥ÎµêÀÀ½X(pseudocode)¼g¤@Óºtºâªk¡A¿é¤J¤@Ó¾ã¼Æn(n>2)¨Ã¿é¥X¤p©ónªº³Ì¤j¦]¼Æ
(factor) (Write an algorithm using the pseudo code to input an
integer n and output the n's largest factor that is less than
n.)
C. ¨Ï¥ÎµêÀÀ½X
(pseudocode)¼g¤@Óºtºâªk¡A¿é¤J¤@Ó¾ã¼Æn(n>2)¨Ã¿é¥X©Ò¦³n°£¤F¥»¨¥H¥~ªº¥¿¦]¼Æ(factor)Á`©M
(Write an algorithm using the pseudo code to input an integer
n and output the total summation of all n's factors except n.)
D.
¨Ï¥ÎµêÀÀ½X(pseudocode)¼g¤@Óºtºâªk¡A¿é¤J¾ã¼Æn¤Îm(n>m>2)¡A¿é¥X©Ò¦³¤ñn¤p¨Ã¤j©ómªºnªº¦]¼Æ(factor)Á`©M¡A
YµL ¦¹¦]¼Æ«h¿é¥X0 (Write an algorithm using the pseudo code to input
integers n and m, and output all n's factors larger than m and
less than n.)
E. ¨Ï¥ÎµêÀÀ½X(pseudocode)¼g¤@Óºtºâªk¡A¿é¤J¤@Ó¾ã¼Æn(n>2)¨Ã§PÂ_n¬O§_¬°§¹¬ü¼Æ(perfect
number)¡C¤@Ó§¹¬ü¼Æ¬O¤@Ó¥¿¾ã¼Æ¡A¥¦©Ò¦³ªº¯u¦]¼Æ(§Y°£¤F¦Û¨¥H¥~ªº¦]¼Æ)ªº©M¡A«ê¦nµ¥©ó¥¦¥»¨¡C (Write an
algorithm using the pseudo code to input an integer n and
output (decide) if n is a perfect number. Note that a perfect
number is a positive integer that is equal to the sum of its
proper positive divisors, that is, the sum of its positive
divisors excluding the number itself.)
F. ¨Ï¥ÎµêÀÀ½X(pseudocode)¼g ¤@Óºtºâªk¡A¿é¤J¤@Ó¾ã¼Æn(n>0)¨Ã§PÂ_n¬O§_¬°§Ö¼Ö¼Æ(happy
number) (Write an algorithm to input an integer n and output
(decide) if n is a happy number.)
µù:
§Ö¼Ö¼Æ¦³¥H¤Uªº¯S©Ê¡G¦bµ¹©wªº¶i¦ì¨î¤U¡A¸Ó¼Æ¦r©Ò¦³¼Æ¦ì(digits)ªº¥¤è©M¡A±o¨ìªº·s¼Æ¦A¦¸¨D©Ò¦³¼Æ¦ìªº¥¤è©M¡A¦p¦¹«½Æ¶i
¦æ¡A³Ì²×µ²ªG¥²¬°1¡C¨Ò ¦p¡A¥H¤Q¶i¦ì¬°¨Ò¡G
28 ¡÷ 22+82= 68 ¡÷ 62+82=100
¡÷
12+02+02=1¡A¦]¦¹28¬O§Ö¼Ö¼Æ
G. ¨Ï¥ÎµêÀÀ½X (pseudocode)
¼g¤@Óºtºâªk¡A¿é¤J¤@Ó¾ã¼Æ n (n > 2)¡A¨Ã§PÂ_ n ¬O§_¬°ªü©i´µ§§¼Æ (Armstrong
number)(Write an algorithm using the pseudo code to input an
integer n and decide if n is an Armstrong number.)
µù: ªü©i´µ§§¼Æ (Armstrong number) ¬O«ü¤@Ó d ¦ì¼Æ¦r¡A¨ä¨CӼƦrªº d
¦¸¤èÁ`©Mµ¥©ó¸Ó¼Æ¥»¨¡C¨Ò¦p¡G
153 = 13 + 53 + 33 = 153
9474 = 94 + 44 + 74 +
44
= 9474
- 2.
(3/4)ºtºâªk½ÆÂø«×¤ÀªR½d¨Ò(¥H±Æ§Çºtºâªk¬°¨Ò)(Alg-Analysis.pptx) (´Á¤¤±MÃD»P´Á¥½±MÃD¬ÛÃö¤¶²Ð:2025-qc-talk.zip)
.1 ºtºâªkªº®Ä¯à
.2 ºtºâªkªº®É¶¡½ÆÂø«×
.3 ¤jOº¥¶i°O¸¹
.4 °§Cºtºâªk®É¶¡½ÆÂø«×¶q¯Å
.5 º¥¶i°O¸¹(asymptotical
notation): Big O, Big Omega, Theta
.6
¦h¶µ¦¡®É¶¡¡B«ü¼Æ®É¶¡¤Î°°¦h¶µ¦¡®É¶¡ºtºâªk
.7 ®ðªw±Æ§Ç(bubble sort)ºtºâªk
.8 ´¡¤J±Æ§Ç(insertion sort)ºtºâªk
Homework 2: (Select two problems
out of A, B, ..., and H and handwrite their solutions.
Due day: before noon of next class on 3/11)
A.
¨Ï¥ÎµêÀÀ½X(pseudocode)¼g¤@Ӯɶ¡½ÆÂø«×¬°O(sqrt(n))ªººtºâªk¡A¿é¤J¤@Ó¾ã¼Æn(n>2)¨Ã¿é¥X©Ò¦³n°£¤F¥»¨¥H¥~ªº¥¿¦]¼Æ
(factor)Á`©M¡A§A¥²¶·¤ÀªRºtºâªkªº®É¶¡½ÆÂø«×¡C
B.
¨Ï¥ÎµêÀÀ½X(pseudocode)¼g¤@Ӯɶ¡½ÆÂø«×¬°O(sqrt(n))ªººtºâªk¡A¿é¤J¾ã¼Æn¤Îm(n>m>2)¡A¿é¥X©Ò¦³¤ñn¤p¨Ã¤j©ó
mªºnªº¦]¼Æ (factor)Á`©M¡AYµL¦¹¦]¼Æ«h¿é¥X0¡A¤ÀªRºtºâªkªº®É
¶¡»PªÅ¶¡½ÆÂø«×¡C
C. ¨Ï¥ÎµêÀÀ½X(pseudocode)¼g¤@Ӯɶ¡½ÆÂø«×¬°O(sqrt(n))ªººtºâªk¡A¿é¤J¤@
Ó¾ã¼Æ(n>2)¨Ã§PÂ_n¬O§_¬°§¹¬ü¼Æ (perfect number)¡A§A¥²¶·¤ÀªRºtºâªkªº³Ì®t¤Î³Ì¨Î®É¶¡½ÆÂø«×¡C
D. ¨Ï¥ÎµêÀÀ½X(pseudocode)¼g¤@Óºtºâªk¡A¥H¿é¤J¤@Ө㦳nÓ¤¸¯Àªº¶°¦XS¨Ã¿é¥XSªº
幂¶°(power set)¡A§A¥²¶·¤ÀªRºtºâªkªº®É¶¡½ÆÂø«×¡C (Write an algorithm to input a
set S of n elements and output the power set of S. You must
analyze the time complexity of your algorithm.)
E. ¤ÀªR¶O§B¯Ç¦è¼Æ¦Cºtºâªk»P»¼°j¶O§B¯Ç¦è¼Æ¦Cºtºâªk¤§ªÅ¶¡
½ÆÂø«×
F. µe¥Xn log n¡Bn log2
n¡Bn2¤În3¹Ï §Î(for n=2, 4, 8, ...,
128)¨Ã¤ñ¸û¤§¡C
G. Y¤@ºtºâªkAªº®É¶¡½ÆÂø«×¬°6 x 2n=O(2n)¥i¥H¦bn=10ªº®ÉÔ¯Ó¶O¤@¤p®É¸Ñ¨M°ÝÃD
X¡A¦Ó¥t¤@ӸѨM°ÝÃDXªººtºâªkBªº®É¶¡½ÆÂø«×¬°5 x
n3 =
O(n3)¡A
«h½Ð°Ý·ín=10®Éºt
ºâªkBn¯Ó¶O¦h¤Ö®É¶¡§¹¦¨?
H. Y¤@ºtºâªkAªº®É¶¡½ÆÂø
«×¬°6 x 2n=O(2n)¥i
¥H¦bn=10ªº®ÉÔ¯Ó¶O¤@¤p®É¸Ñ¨M°ÝÃDX¡A¦Ó¥t¤@ӸѨM°Ý
ÃDXªººtºâªkBªº®É¶¡
½ÆÂø«×¬°5 x n3 =O(n3)¡A«h½Ð°Ý·ín¬°
¦óȮɺtºâªkBn¯Ó¶O¤@¤p®É¤~¥i¥H§¹
¦¨?
I.
(¦¹ÃD¶È¨Ñ°Ñ¦Ò¡A¤£¦C¤J¤â¼g§@·~¤Î¹ê²ß½Ò¤fÀY³ø§i½d³ò¡A¤]¤£¦C¤J¦Ò¸Õ½d³ò)
¨Ï ¥ÎµêÀÀ½X¼g¥X°ï¿n±Æ§Ç(heap
sort)ºtºâªk¡A¤ÀªR¨ä®É¶¡»PªÅ¶¡½ÆÂø«×¡C
J. (¦¹
ÃD¶È¨Ñ°Ñ¦Ò¡A¤£¦C¤J¤â¼g§@·~¤Î
¹ê²ß½Ò¤fÀY³ø§i½d³ò¡A¤]¤£¦C¤J
¦Ò¸Õ½d³ò)
¨Ï
¥ÎµêÀÀ½X¼g¥X¥H¤U¾Þ§@:
¥Hbinary
heap¹ê²{priority
queueªºoperations¡A¥]¬A
insert(p): Inserts a new
element with priority p;
extractMax(): Extracts an
element with maximum
priority; remove(i): Removes
an element pointed by an
iterator i;
changePriority(i, p):
Changes the priority of an
element pointed by i to p;
¥H¤W¾Þ§@³£¨ã¦³O(log n)ªºtime
complexity¡F¦ÓgetMax():
Returns an element with
maximum priority; «h¨ã¦³O(1)
time complexity¡C
VVVVVVVV
¥H¤U¤º®e©|«Ý§ó·s (2025-0218) VVVVVVVV
- 5. (3/28) ¾÷¾¹¾Ç²ßºtºâªk (Machine Learning algorithms) (ML.pptx)²`«×¾Ç²ßºtºâªk(DeepLearning.pptx)
(½Ð¦P¾Ç¶}©lÆ[¬ÝMidterm Project§ë¼v¤ù¤Î¼v¤ù¡A¶}©l·Ç³Æ¹ê§@Midterm
Project)(Midterm-Project.pptx)
§ë¼v¤ù: https://drive.google.com/drive/folders/1OiRiTyf5xMbHxlUEg2LUbXT9Z9GqgLZu?usp=sharing
±Ð¾Ç¼v¤ù:
ºtºâªk½Òµ{_¾÷
¾¹¾Ç²ßÀô¹Ò¦w¸Ë¤§±Ð¾Ç¼v¤ù
ºtºâªk½Òµ{_Machine Learning_01_DNN
ºtºâªk½Òµ{_Machine Learning_02_CNN
ºtºâªk½Òµ{_Machine Learning_03_LSTM
ºtºâªk½Òµ{_Machine Learning_04_GRU
- (4/11) Midterm
Exam. (½d³ò¬°³æ¤¸1-4±Â½Ò¤º®e)
¦Ò¸Õ®É¶¡: 4/11 14:00~16:20 ¡C
¦Ò¸Õ¦aÂI: ¤uµ{¤À] ¤T¶¡±Ð«Ç
½Ð¨Ì·Ó§U±Ð¦w±Æ®y¦ì¤J®y°Ñ¥[¦Ò¸Õ
- (Deadline: 4/18) Midterm
Project: Mechanical parts (Bolt, Nut, Washer, Pin)
Recognition (¦ûÁ`¤À12%)(½Ð
¨Ì§U±Ð³W©w¤è¦¡©ó4/18¤¤¤È12:00«e½u¤Wú ¥æ)¡C
- ³æ¤¸6¡B7¡B8(qc-talk.pptx)(qc-talk-full.pptx)
(QBookCh1.zip)(QBookCh2.zip)(QBookCh3.zip)(QBookCh4.zip)(QBookCh5.zip)(QBookCh6.zip)(QBookCh7.zip)
- (4/18)
6. ¶q¤lºtºâªk1
Homework 6:
½m²ß1.1-1.4¡F2.1-2.4;3.1-3.5¦@p13ÃD¡C¨C¦ì¦P¾Ç¨C³¹¥ô¿ï¤@ÃDú¥æ¡A¦]¦¹§@·~¦@p3ÃD¡C¥t¥~¡A½m²ß1.5¤Î2.5¬°¥[¤ÀÃD¡A¥i¥H
¤@¨Ö¼g¤J¥»¦¸§@·~¤¤¡C¥»¦¸§@·~¥i¥H»s§@¬°¹q¤lÀÉ¡A½Ð¨Ì§U±Ð³W©w©ó4/25¤¤¤È12:00«e½u¤Wú¥æ¡C
- (4/25) 7. ¶q¤l ºtºâªk2
Homework 7: ½m²ß4.1-4.5¥ô¿ï1ÃD¡F½m²ß5.1-5.4¥ô¿ï1ÃD¡A¦]¦¹¦@
p2ÃD¡C¥»¦¸ §@·~¥i¥H»s§@¬°¹q¤lÀÉ¡A½Ð¨Ì§U±Ð³W©w©ó5/2¤¤¤È12:00«e½u¤Wú¥æ¡C
- (5/2) 8.
¶q¤lºtºâªk3 (RSA.zip)(FFT.zip)
Homework 8: ½m²ß
6.1-6.5¥ô¿ï1ÃD¡F½m²ß7.1-7.5¥ô¿ï2ÃD¡A¦]¦¹¦@
p2ÃD¡C¥»¦¸ §@·~¥i¥H»s§@¬°¹q¤lÀÉ¡A½Ð¨Ì§U±Ð³W©w©ó5/9¤¤¤È12:00«e½u¤Wú¥æ¡C
½m²ß 7.1: ³]p¶q¤lµ{¦¡±N 5 Ó¶q¤l¦ì¤¸ªì©lª¬ºA³]©w¬°
'11011'¡A¥ý¥H¥¬¬¥»®²y±Åã¥Ü¶q¤l¦ì¤¸ª¬ºA¡AµM«á¥[¤J¶q¤l³Å¥ß¸ÅÜ´«½u¸ô«á¡A¦A¥H¥¬¬¥»®²y±Åã¥Ü¶q¤l¦ì¤¸¸g¹L¶q¤l³Å¥ß¸ÅÜ´«¤§«áªºª¬ºA¡A³Ì«á¦A¥[¤J
°f¶q¤l³Å¥ß¸ÅÜ´«½u¸ô¡A¦Ó¥B¦P¼Ë¥H¥¬¬¥»®²y±Åã¥Ü¶q¤l¦ì¤¸ª¬ºA¡C¦bµ{¦¡ªº³Ì«á¥²¶·Åã¥Ü¾ãÅé¶q¤l½u¸ô¡Aµ{¦¡¥i¥Hª½±µ©I¥s¥»³¹´£
¨Ñªº qft ¤Î iqft
¨ç¼Æ«Øºc¶q¤l³Å¥ß¸ÅÜ´«½u¸ô¤Î°f¶q¤l³Å¥ß¸ÅÜ´«½u¸ô¡A¨Ã¥B¥H¶q¤l¹hªº§Î¦¡¥[¤J¶q¤l½u¸ô¤¤¡C½Ðª`·N¡Aµ{¦¡µL¶·¥[¤J©w¸q qft
¤Î iqft¨ç¼Æªº²Ó¸`¡A¦ý¬O¦b©I¥s³o 2 Ó¨ç¼Æ¤§«en¥ý°õ¦æ©w¸q³o 2 Ó¨ç¼Æªºµ{¦¡¡C
½m²ß 7.2: ³]p¶q¤lµ{¦¡³z¹L¶q¤l¬Û¦ì¦ô´ú¡A¥H 3
Óp¼Æ¦ì¤¸ªº´ú¶qµ²ªG±À¾É¥X¤\¥¿ÅÜ´«T¹h¥»¼xȹïÀ³ªº¬Û¦ì¡Cµ{¦¡¥²¶·Åã¥Ü¾ãÅé¶q¤l½u¸ô¡Ap¼Æ¦ì¤¸ªº´ú¶qµ²ªGª½¤è¹Ï¡A¥H¤Î¥Ñ´ú¶qµ²ªG±À¾É¥Xªº¬Û¦ì¡Cµ{¦¡¥i¥H
ª½±µ©I¥s¥»³¹´£¨Ñªº iqft
¨ç¼Æ«Øºc°f¶q¤l³Å¥ß¸ÅÜ´«½u¸ô¡A¨Ã¥B¥H¶q¤l¹hªº§Î¦¡¥[¤J¶q¤l½u¸ô¤¤¡C½Ðª`·N¡Aµ{¦¡µL¶·¥[¤J©w¸q iqft
¨ç¼Æªº²Ó¸`¡A¦ý¬O¦b©I¥s iqft ¨ç¼Æ¤§«en¥ý°õ¦æ©w¸q iqft ¨ç¼Æªºµ{¦¡¡C
½m²ß 7.3: ³]p¶q¤lµ{¦¡³z¹L¶q¤l¬Û¦ì¦ô´ú¡A¥H 6 Óp¼Æ¦ì¤¸ªº´ú¶qµ²ªG±À¾É¥X±a 𝜋 /3 °Ñ¼Æ¤\¥¿ÅÜ´« P
¹h¥»¼xȹïÀ³ªº¬Û¦ì¡Cµ{¦¡¥u»ÝnÅã¥Üp¼Æ¦ì¤¸ªº´ú¶qµ²ªGª½¤è¹Ï¡A¥H¤Î¥Ñ´ú¶qµ²ªG±À¾É¥Xªº¬Û¦ì¡Cµ{¦¡¥i¥Hª½±µ©I¥s¥»³¹´£¨Ñªº
iqft ¨ç¼Æ«Øºc°f¶q¤l³Å¥ß¸ÅÜ´«½u¸ô¡A¨Ã¥B¥H¶q¤l¹hªº§Î¦¡¥[¤J¶q¤l½u¸ô¤¤¡C½Ðª`·N¡Aµ{¦¡µL¶·¥[¤J©w¸q iqft
¨ç¼Æªº²Ó¸`¡A¦ý¬O¦b©I¥s iqft ¨ç¼Æ¤§«en¥ý°õ¦æ©w¸q iqft ¨ç¼Æªºµ{¦¡¡C
½m²ß 7.4: ³]p¶q¤lµ{¦¡«Øºc¨Ï¥Î 2 Ó¶q¤lp¼Æ¦ì¤¸¡A¹ïÀ³ 𝑓(𝑥) = 11𝑥
(mod 15) ªº¶q¤l¬Û¦ì¦ô´ú½u¸ô¡A¨Ã¨Ï¥Î¶q¤l¹q¸£¼ÒÀÀ¾¹°õ¦æ¶q¤l½u¸ô¡AÀò±o¶q¤lp¼Æ¦ì¤¸ªº´ú¶qµ²ªG¡A¥H¨D¥X𝑓(𝑥)ªº¶g´Á¡Cµ{¦¡¥i¥H
ª½±µ©I¥s¥»³¹´£¨Ñªº qc_mod15 ¤Î iqft
¨ç¼Æ«Øºc¶q¤l¼Ò¾½u¸ô¤Î°f¶q¤l³Å¥ß¸ÅÜ´«½u¸ô¡A¨Ã¥B¥H¶q¤l¹hªº§Î¦¡¥[¤J¶q¤l½u¸ô¤¤¡Cµ{¦¡ªº³Ì«á¥²¶·Åã¥Ü¾ãÅé¶q¤l½u¸ô¡A¨ÃÅã¥Ü¶q¤lp¼Æ¦ì¤¸ªº´ú¶qµ²ªG¥H¤Î®Ú
¾Ú´ú¶qµ²ªG±o¨ìªº¶g´Á¦ô´úÈ¡C½Ðª`·N¡Aµ{¦¡µL¶·¥[¤J©w¸q qc_mod15 ¤Î iqft ¨ç¼Æªº²Ó¸`¡A¦ý¬O¦b©I¥s³o 2
Ó¨ç¼Æ¤§«en¥ý°õ¦æ©w¸q³o 2 Ó¨ç¼Æªºµ{¦¡¡C
½m²ß 7.5: ³]p¶q¤lµ{¦¡«Øºc¨Ï¥Î 4 Ó¶q¤lp¼Æ¦ì¤¸¡A¹ïÀ³𝑓(𝑥) = 7𝑥
(mod 15) ªº¶q¤l¬Û¦ì¦ô´ú½u¸ô¡A¨Ã¨Ï¥Î¶q¤l¹q¸£¼ÒÀÀ¾¹°õ¦æ¶q¤l½u¸ô¡AÀò±o¶q¤lp¼Æ¦ì¤¸ªº´ú¶qµ²ªG¡A¥H¨D¥X𝑓(𝑥) ªº¶g´Á¡Cµ{¦¡
¥i¥Hª½±µ©I¥s¥»³¹´£¨Ñªº qc_mod15 ¤Î iqft
¨ç¼Æ«Øºc¶q¤l¼Ò¾½u¸ô¤Î°f¶q¤l³Å¥ß¸ÅÜ´«½u¸ô¡A¨Ã¥B¥H¶q¤l¹hªº§Î¦¡¥[¤J¶q¤l½u¸ô¤¤¡Cµ{¦¡ªº³Ì«á¥²¶·Åã¥Ü¾ãÅé¶q¤l½u¸ô¡A¨ÃÅã¥Ü¶q¤lp¼Æ¦ì¤¸ªº´ú¶qµ²ªG¥H¤Î®Ú
¾Ú´ú¶qµ²ªG±o¨ìªº¶g´Á¦ô´úÈ¡C½Ðª`·N¡Aµ{¦¡µL¶·¥[¤J©w¸q qc_mod15 ¤Î iqft ¨ç¼Æªº²Ó¸`¡A¦ý¬O¦b©I¥s³o 2
Ó¨ç¼Æ¤§«en¥ý°õ¦æ©w¸q³o 2 Ó¨ç¼Æªºµ{¦¡¡C
- 9. (5/9)°Ý
ÃD¤U¬É»P°ÝÃD¤ÀÃþ: P¡BNP¡BNP§xÃø»PNP§¹¥þ°ÝÃD
*¤@Ó°ÝÃD
ªº¤U¬É¬°¥ô¦ó¯à¸Ñ¨M¦¹°ÝÃDªººtºâªk¦Ü¤Ö©Ò»Ýªº®É¶¡½ÆÂø«×¡C(The lower bound
of a problem is the least time complexity required for
any algorithm which can be used to solve this problem.)
*NP§¹¥þ°ÝÃD²z½×:
Y¥ô¦ó¤@ÓNP§¹¥þ°ÝÃD¥i¦b¦h¶µ¦¡®É¶¡³Q¸Ñ¨M¡A«h¨C¤@ÓNP°ÝÃD¬Ò¥i¦b¦h¶µ¦¡®É¶¡Àò±o¸Ñ¨M(¤]´N¬OP=NP)¡C
If any one NP-complete problem can be solved in polynomial
time, then every problem in NP can also be solved in
polynomial time (i.e., P=NP). (ProblemLB.zip)(Recipe, Cook, Carp, and Bernstein)(NPC.zip)
* Solving NP-hard Problems with Quantum Annealing (AWS-Braket-Experience.pptx)
*(NPC
²z½×´úÅç¤Î¸Ñµª)
Homework 9: (A-S¥ô¿ï¨âÃD)
(¥»¦¸ §@·~±Ä¤â¼g«á©ç·Ó¤W¶Ç¤è¦¡Ãº¥æ¡A½Ð¨Ì§U±Ð³W©w©ó5/10¤¤¤È12:00«e½u¤Wú¥æ¡C)
(¥»¦¸¹ê²ß½Ò³ø§i±Ä¥Î³æ¼Æ©ÎÂù¼Æú¥æ§ë¼v¤ù¿ý¼vÀɮפβ³øÀɮפ覡¶i¦æ¡A½Ð¨Ì§U±Ð³W©w®É¶¡¤Î¤è¦¡½u¤Wú¥æ¡C)
A. ¥H¤Uªº±Ôz¬O¹ïÁÙ¬O¿ù¡A¨Ã¸ÑÄÀ¹ï©Î¿ùªºì¦]:
Y§Ú̯àÃÒ©ú¥ô¦ó¤@Ó NPC°ÝÃDªº³ÌÃaª¬ªp°ÝÃD¤U¬É(worst case problem lower
bound)¬O«ü¼Æ¨ç¼Æ¶q¯Å¡A«h§Ṳ́w¸gÃÒ©ú NP¤£µ¥©óP¡C
B. ¥H¤Uªº±Ôz¬O¹ïÁÙ¬O¿ù¡A¨Ã¸ÑÄÀ¹ï©Î¿ùªºì¦]:
Y§Ú̯àÃÒ©ú¥ô¦ó¤@Ó NPC°ÝÃDªº³ÌÃaª¬ªp°ÝÃD¤U¬É(worst case problem lower
bound)¬O¦h¶µ¦¡¨ç¼Æ¶q¯Å¡A«h§Ṳ́w¸gÃÒ©ú NPµ¥©óP¡C
C. ¥H¤Uªº±Ôz¬O¹ïÁÙ¬O¿ù¡A¨Ã¸ÑÄÀ¹ï©Î¿ùªºì¦]:
Y§Ú̯ઽ§ä¨ì¤@Ó½T©w©Êºtºâªk¡A¦b³Ì®tª¬ªp¤U¥H¦h¶µ¦¡®É¶¡½ÆÂø«×¸Ñ¨M¤@ÓNPC°ÝÃD¡A«h§Ṳ́w¸gÃÒ©úNPµ¥©óP¡C
D. ¥H¤Uªº±Ôz¬O¹ïÁÙ¬O¿ù¡A¨Ã¸ÑÄÀ¹ï©Î¿ùªºì¦]:
¤H̤w¸gÃÒ©ú: ¨S¦³¥ô¦ó½T©wºtºâªk(deterministic algorithm)¥i¥H¦b³Ì®tª¬ªp(worst
case)¤U¡A¥H¦h¶µ¦¡®É¶¡½ÆÂø«×¸Ñ¨MNPC°ÝÃD¡C
E. ¥H¤Uªº±Ôz¬O¹ïÁÙ¬O¿ù¡A¨Ã¸ÑÄÀ¹ï©Î¿ùªºì¦]:
¤H̤w¸gÃÒ©ú: ¨S¦³¥ô¦ó½T©wºtºâªk(deterministic algorithm)¥i¥H¦b³Ì®tª¬ªp(worst
case)¤U¡A¥H¦h¶µ¦¡®É¶¡½ÆÂø«×¸Ñ¨MNP-hard°ÝÃD¡C
F. ¥H¤Uªº±Ôz¬O¹ïÁÙ¬O¿ù¡A¨Ã¸ÑÄÀ¹ï©Î¿ùªºì¦]:
¥ô¦óNPC°ÝÃD¥i¥Hpolynomially reduces to¥t¤@ÓNPC°ÝÃD¡C
G. ÃÒ©ú¤ä°t¶°°ÝÃD(dominating set problem)¬°NP°ÝÃD¡CÃÒ©ú¤ä°t¶°°ÝÃD(dominating set
problem)¬°NP°ÝÃD¡C
H. ÃÒ©úÂIÂл\°ÝÃD(vertex cover problem)¬°NP°ÝÃD¡C
I. ÃÒ©ú¶°¹Î°ÝÃD(clique problem)¬°NP°ÝÃD¡C
J. ÃÒ©úµÛ¦â°ÝÃD(chromatic coloring problem)¬°NP°ÝÃD¡C
K. ÃÒ©ú0/1 I¥]°ÝÃD(0/1 knapsack problem)¬°NP°ÝÃD¡C
L. ÃÒ©ú3-º¡¨¬°ÝÃD(3-SAT problem)¬°NP°ÝÃD¡C
M. ÃÒ©ú³Ì¤j³Î°ÝÃD(Max cut problem)¬°NP°ÝÃD¡C
N. ÃÒ©ú¥v©Z·S¾ð°ÝÃD(Steiner tree problem)¬°NP°ÝÃD¡C
O. ÃÒ©ú¹º¤À°ÝÃD(partition problem)¬°NP°ÝÃD¡C
P. ÃÒ©úÀ»¤¤¶°¦X°ÝÃD(hitting set problem)¬°NP°ÝÃD¡C
Q. ÃÒ©ú¤Tºû¤Ç°t°ÝÃD(3-dimensional matching problem)¬°NP°ÝÃD¡C
R. ÃÒ©úConvex Hull°ÝÃDªº°ÝÃD¤U¬É¬°Omega(n log n)
S. µe¥Xmerge sortºtºâªkªº¤TÓ¤¸¯À(1,2,3)ªºdecision tree
- 10. (5/16)
§R´M(prune-and-search)ºtºâªk: (Alg-Prune&Search.pptx)
§R´M(prune-and-search)ºtºâªk¥]§t¦h¦¸¡¥N
(iteration)¡A¦b¨C¤@¦¸ªº¡¥N¤¤¡A§¡§R°£(prune)¿é¤J¸ê®Æªº¤@³¡¤À(°²³]¬°f³¡¥÷,
0<f<1)¡A¦Ó«á¦A»¼°j¦a(recursively)¥H¬Û¦Pªººtºâªk¦b³Ñ¾lªº¸ê®Æ¤¤·j´M(search)¥X¸Ñµª¡C
¦b¸g¹L¤@©w¦¸¼Æªº¡¥N«á¡A ¿é¤J¸ê®Æªº³W¼Ò±N·|Åܱo¬Û·í¤p¡A¦Ó¯à¦b±`¼Æ®É¶¡¤ºª½±µ§ä¥X¸Ñµª¡C
°²³]¤@Ó§R°£-·j´Mºtºâªkªº®É¶¡½ÆÂø«×¬°T(n)¡A¨Ã¥B¨C¦¸¡
¥N©Ò»Ýªº®É¶¡ ¬°O(nk)(k¬°¤j©ó0ªº±`¼Æ)¡A«hT(n)=T((1-f)n)+O(nk)¡C¥Ñ©ó 1-f<1¡A§ÚÌ¥i±oT(n)=O(nk)¡C
.1
§R´M(prune-and-search)ºtºâªk·§©À¤¶²Ð
.2 ¤G¤¸·j´M(binary search)ºtºâªk
.3 ¿ï¨ú(selection)»P¤¤¦ì¼Æ(median)ºtºâªk
.4 ¨îªº¤@¶ê¤ß
(constrained 1-center)ºtºâªk
.5 ¥Y¥](Convex Hull)ºtºâªk: (ConvexHull.zip)
Homework 10:
(A) Á|¤@Ó8Ó¤¸¯Àªº°}¦C¬°¨Ò»¡©ú¤G¤¸·j´Mºtºâªk°õ¦æ±¡§Î¡A¤À§O»¡©ú³Ì¨Îª¬ªp®É¶¡½ÆÂø«×§ä¨ì¥Ø
¼Ð¤¸¯À¡B³ÌÃaª¬ªp®É¶¡½ÆÂø«×§ä¨ì¥Ø¼Ð¤¸¯À¤Î³ÌÃaª¬ªp®É¶¡½ÆÂø«×§ä¤£¨ì¥Ø¼Ð¤¸¯À¡C
(B) ¦b¿ï¨ú§R´Mºtºâªk¤¤¡AY¨CÓ¤À³Î¤l¶°§ï¬°3Ó¤¸¯À¡A«h¨ä³ÌÃaª¬ªp®É¶¡½ÆÂø«×¬O§_¨ÌµM¬° O(n)¡A¬°¤°»ò?
(C) ¦b¿ï¨ú§R´Mºtºâªk¤¤¡A±N¨CÓ¤À³Î¤l¶°§ï¬°6Ó¤¸¯À«á«·s¤ÀªR¨ä®É¶¡½ÆÂø«×¡C
(D) ¦³¤@Ó§R´Mºtºâªk¨ä®É¶¡½ÆÂø«×¬°
T(n)=T((7/8)n)+cn2¡A ¸Ô²Ó¤ÀªR¨ä®É¶¡½ÆÂø«×¨Ã¥H¤jO°O¸¹ªí¥Ü¡C
(E) ¥H§R´Mºtºâªk¸Ñ¨M¥H¤U¨îªº¤@¶ê¤ß°ÝÃD:
(0,0),(1,1),(2,2),(3,3),(4,2),(5,1),(6,0),(2,0)¡A¶ê¤ß¦by=0¤W¡C(¥i
¥Hºë½Tø¹Ï»¡©ú§Y¥i)
(F) ¥H§R´Mºtºâªk¸Ñ¨M¥H¤U¨îªº¤@¶ê¤ß°ÝÃD:
(0,0),(1,1),(2,2),(3,3),(4,2),(5,1),(6,0),(4,0)¡A¶ê¤ß¦by=3¤W¡C(¥i
¥Hºë½Tø¹Ï»¡©ú§Y¥i)
-
Áú«D (¬ù¦è¤¸«e 281
¥Í¡A¦è¤¸«e 233 ¦~¨ò) ¬O¾Ô°ê¥½´Áªº
«ä·Q®a¡A¬O¤¤°ê¥j¥Nªk®a«ä·Qªº¥Nªí¤Hª«¡C¾Ô°ê®É´Á¡A»ô¡B·¡¡B¿P¡BÁú¡B»¯¡BÃQ¡B¯³¤C¶¯¨Ã¥ß¡CĬ¯³´¿´£¥X«n¥_¦XÁa¤»°ê¥H§Ü¯³ªº¾Ô²¤«ä
·Q¡A¨Ï¯³°ê
¤Q¤¦~µLªk¦V¦è¥X§L§ðÀ»¦ì©ó¨äªFÃä¥B«n¥_¦XÁaªº¤»°ê¡C¦ý¬O«á¨Ó±i»ö¥HªF¦è³s¾îªº¥~¥æµ¦²¤¡A¹C»¡¦U°ê¥Ñ¦XÁa§Ü¯³ÂàÅܬ°³s¾î¿Ë¯³¡A¦Ó
Åý¯³°ê±o¥H»·¥æªñ§ð¡A³vº¥¨Ö§]¤»°ê¡C
Áú«D¦b¡mÁú«D¤l¡P¦sÁú¡n½g¤¤´£¨ì:¡u½Ñ«J¥iÅú¹¦ÓºÉ¡v¡A·N«ä¬O»¡¯³°ê¥i¤Æ¾ã
¬°¹s¡A¤]´N¬O±N¤@Ó¾ãÅé¦XÁa§Ü¯³ªº¤»°ê¤Æ¤À¦¨³\
¦h¹s´²³¡¥÷¡AµM«á¹³Åú¦Y®á¸¨º¼Ë¡A¤@ÂI¤@ÂIªº³v¨B«I¦û·À¤`¤»°ê¡A¦Ó¹F¦¨¤@²Î¤Ñ¤Uªº¥Øªº¡C
¥»³æ¤¸©Ò¤¶²Ðªººtºâªk¡A¥]¬A¤G¤¸·j´Mºtºâªk¡B¿ï¨ú»P¤¤¦ì¼Æºtºâªk¤Î¨îªº¤@¶ê¤ßºtºâªk¡A³£±Ä¥Î§R´M¸ÑÃDµ¦²¤¸Ñ¨M°ÝÃD¡C³oÓµ¦²¤´N
¬OÃþ¦ü¡u¤Æ¾ã¬°¹s¡AÅú¹¦ÓºÉ¡vªº·§©À¡C§R´Mºtºâªk
¥]§t³\¦hªº¡¥N¡A
¨C¦¸¡¥N³£¹Á¸Õ§R°£©T©w¤ñ¨Òªº¿é¤J¸ê®Æ¡A¦Ó«á¦A»¼°j¦a±q³Ñ¾l¸ê®Æ¤¤·j´M¥X¸Ñµª¡AY¤´µMµLªk§ä¥X¸Ñµª«h¦A§R°£©T©w¤ñ¨Òªº¿é¤J¸ê®Æ¡C
³o¼Ë¸g¹L´X¦¸¡¥N«á¡A¿é¤J¸ê®Æªº³W¼Ò±N·|¤p¨ì¨¬¥HÅý°ÝÃD¦b±`¼Æ®É¶¡¤º
ª½±µ¸Ñ¨M¡A¦]¦Ó±o¨ì°ÝÃDªº¸Ñµª¡C¤@¯ë¦Ó¨¥¡A¾ãÓ§R´Mºtºâªkªº®É¶¡½ÆÂø«×»P¨CÓ¡¥Nªº®É¶¡½ÆÂø«×¨ã¦³¬Û¦Pªº¶q¯Å¡A¦]¦¹§R´Mºtºâ¬O¤@
Ó¦³®Ä²vªººtºâªk¡C
- 11. (5/23) ³g°ýºtºâªk(greedy
algorithm): (Alg-Greedy.pptx)
³g°ýºtºâªk(greedy
algorithm)¤@¨B¨B¦a«Øºc¥X¤@Ó°ÝÃDªº§¹¾ã¸Ñµª¡C¨ä¨C¤@¨B³£Âǥѳg°ý¸ÑÃDµ¦²¤(greed
strategy)¼W¥[¤@³¡¥÷ªº¸Ñµª¨ì§¹¾ã¸Ñµª¤¤¡C©Ò¿×³g°ý¸ÑÃDµ¦²¤¬°:
¨C¤@¦¸³£¿ï¾Ü·í¤U³Ì¦nªº³¡¥÷¸Ñµª¥[¤J§¹¾ã¸Ñµª¤¤¡C
.1 I¥]ºtºâªk(knapsack algorithm)
(±a¥X0/1I¥]°ÝÃD«á¥i¥H¦b¤§«áÁ¿±ÂNP-hard°ÝÃD)
.2 ¬¡°Ê¿ï¾Ü(activity
selection)ºtºâªk
.3 Huffman½s½X(Huffman coding)ºtºâªk
.4 Kruskal³Ì¤p¥Í¦¨¾ð(minimum spanning
tree, MST)ºtºâªk
.5 Prim³Ì¤p¥Í¦¨¾ð(minimum spanning
tree, MST)ºtºâªk
.6 Dijkstraºtºâªk
Homework 11: (§tHomework
12¤§ B¡BC¡BD¦@10ÃD¥ô¿ï2ÃD)
(A) ¤@ÓI¥]®e¶q¬°
10¡A²{¦b¦³5Óª««~¡A «¶q¤À§O¬°4¡B3¡B6¡B2¡B5¡A»ù®æ¤À§O¬°10¡B9¡B
12¡B4¡B8¡A¨DI¥]¯à°÷¸Ë¤J¹s¸H(fractional)ª««~ªº³Ì¤j»ùȬ°¦ó?
(B) µ¹©w 5 Ó¬¡°Ê¡A¨ä¬¡°Ê°Ï¶¡¤À§O¬° [0,18), [3, 5), [4, 16), [2, 9), [10,
15)¡A½Ð´yz¦p¦ó¥H¬¡°Ê¿ï¾Üºtºâªk§ä¥X³Ì¦hªº¬Û®e¬¡°ÊÁ`¼Æm(¥²¶·¼g¥Xmªº¼ÆÈ)¡C
(C)
§Q¥ÎHuffman ½s ½Xºtºâªk´À¥H¤U¦r¤¸½s½XA(46%)¡B B(7%)¡BC
(28%)¡BD (19%)¡C(³Æµù:¬A¸¹¤¤¬°¦r¤¸¥X²{ÀW²v)
(D) §Q¥ÎKruskalºtºâªk¨D¥X¥H¤Uªº¹Ï(graph)ªº³Ì¤p¥Í¦¨¾ð (minimum spanning tree, MST)
(E) §Q¥ÎPrimºtºâªk¨D¥X¥H¤Wªº¹Ï(graph)ªº³Ì¤p¥Í¦¨¾ð (minimum spanning tree,
MST)
(F).
§Q¥ÎDijkstraºtºâªk¨D¥H¤U¹Ï(graph)³»ÂI4¨ì¦U³»ÂIªº³Ìµu¸ô®|(shortest
path)¤Î¨ä¶ZÂ÷(¦¨¥»)¡Cµù: »Ýn¼g¥X¨C¦¸¡¥N¨CÓ¸`ÂI¤§³Ì
µu¸ô®|§ó·sªº¹Lµ{¡C

(G).
©Ó¤WÃD¡A§Q¥ÎDijkstraºtºâªk¨D³»ÂI1¨ì¦U³»ÂIªº³Ìµu¸ô®|(shortest path)¤Î¨ä¶ZÂ÷(¦¨¥»)¡Cµù: »Ýn¼g¥X¨C¦¸¡¥N¨CÓ¸`ÂI¤§³Ì
µu¸ô®|§ó·sªº¹Lµ{¡C
-
12.
(5/23) ¨Ï ¥Î³g°ý(greedy)ºtºâªk¥H ¤Î°ÊºA³W¹º(dynamic
programming)ºtºâªk¸Ñ¨M³Ìµu¸ô®|°ÝÃD: (Alg-SP.pptx)
°t¦X±Ð°È³B³Ð·s±Ð¾Çpµeªº¬ã¨s¶iµ{¡A¥»¤é¤§«áªº©Ò¦³½Òµ{
¦b ½u¤W¥H¦P¨B½Òµ{¤è¦¡¸Ñ»¡¤§«á±Ä¥Î«D¦P ¨B½u¤W½Òµ{¤è¦¡¶i¦æ±Ð¾Ç¡A¦P¾Ç¥i¥H¦Û¦æ¦w
±Æ½Òµ{¾Ç²ß¶i«×¾Ç²ß¡A¦ý¬O¥²¶·¦p´Áú¥æ§@·~¡C
½Ð¦P¾ÇÅéÅç¤@¤U¦P¨B»P«D¦P¨B½u¤W±Ð¾ÇªºÀu¯ÊÂI¡A¦b6/14Á|¦æ½u¤W´Á¥½¦Ò®É¦^õXµ¹§Ṵ́ѦҡC)
¥Ñ ¥[Åv¦³¦V¹Ï(weighted digraph)¤¤ªº¬YÓ³»ÂI©Î¸`ÂI
(vertex or
node)v¨ì¹Ï¤¤ªº¥t¤@¸`ÂIu¡AYv¨ìu¤§¶¡¦s¦b¤@±ø¸ô®|(path)¡A«h¸ô®|¤¤©Ò¸g¹LªºÃä(edge)ªºÅvÈ(weight)Á`¦XºÙ¬°¸ô®|ªº¦¨¥»
(cost)©Î¶ZÂ÷(distance)¡A¦Ó©Ò¦³¸ô®|¤¤¨ã¦³³Ì¤p¦¨¥»©Î¶ZÂ÷ªº¸ô®|«hºÙ¬°³Ìµu¸ô®|(shortest
path)¡C
µÛ¦Wªº³Ìµu¸ô®|ºtºâªk¥]¬A¡G
(0)
¥»¦¸½Òµ{·§n»¡©ú(§t³g°ýºtºâªk¤Î°ÊºA³W¹ººtºâªk¤§¤ñ¸û»¡©ú)(¼v¤ùºô§}:https://youtu.be/YYg8iLf1ej4)
(1) ¦h¶¥¹Ï³Ìµu¸ô®|ºtºâªk(¨Ï¥Î°ÊºA³W¹º¸ÑÃDµ¦²¤)(¼v¤ùºô§}:https://youtu.be/GQ4xKH4MpYI)
(2)
Dijkstraºtºâªk(¨Ï¥Î³g°ý¸ÑÃDµ¦²¤)(¤W¶g¦P¨B½Òµ{¤¤¤w¸Ñ»¡¡A¦]¦¹¤£¥]§t¦b¦¹¦¸½Òµ{¼v¤ù¤¤)
(3) Bellman-Fordºtºâªk(¨Ï¥Î°ÊºA³W¹º¸ÑÃDµ¦²¤)(¼v¤ùºô§}:https://youtu.be/jc-NLpcV6vY)
(4)
Floyd-Warshallºtºâªk(¨Ï¥Î°ÊºA³W¹º¸ÑÃDµ¦²¤)(¼v¤ùºô§}:https://youtu.be/UdTjmFy7J_E)
Homework 12:
A. ¨Ï¥Î°ÊºA³W¹ººtºâªk¨D¥H¤U¦h¶¥¹Ïªº³Ìµu¸ô®|¡C

B.
µe¹Ï»¡©ú§Q¥Î§Q¥ÎFloyd-Warshallºtºâªk¨D¥H¤U¹Ï(graph)¥þ¹ï³Ìµu¸ô®|(all-pair
shortest path)¶ZÂ÷(¦¨¥»)(¦¹¹Ïªº±Ò©l¶ZÂ÷¯x°}¦p¤U¡A¥H¸g¹Lªº¤¤¶¡¸`ÂI¬°s, a, b, c,
dªº¶¶§Ç¼g¥X¶ZÂ÷¯x°}ªº§ïÅܹLµ{¡C)
(d->bªº¥[Åv¦b¹Ï§Î»Pªí®æ¤¤»~´Ó¬°¤£¤@PªºÈ¡A¦P¾Ç¥i¥H±N¤§§ï¬°5©Î6Åý¹Ï§Î»Pªí®æ¤@P«á¸ÑÃD³£ºâµª¹ï¡C)

C.
¨D¥X¥H¤Uµ¹©w¹Ï(graph)ªºFloyd-Warshallºtºâªkªº±Ò©l«e¸`ÂI¯x°}(°}¦C)¡A¨Ã¨D¥X³Ì«áªº«e¸`ÂI¯x°}(°}
¦C)¡C

D. °w¹ï¥H¤Uªºµ¹©w¹Ï¡A¦C¥XBellman- Ford³Ìµu¸ô®|ºtºâ ªk°õ¦æ¹Lµ{¡A
»¡©úBellman
-Ford³Ìµu¸ô®|ºtºâªk¦p¦óÀˬd¥X¤@µ¹©w¹Ï¨ã¦³t´`Àô(negative-weight cycle)¡C

-
13.
(5/30) ¾ð·j´M(tree
search)»P¦^·¹(backtracking)ºtºâªk: (TreeSearch.pptx)
- Slides and Videos: (Alg4-1203(NoMark).pptx)
(§ó¥¿: §ë¼v¤ù²Ä36©M37¶ ¾ð²Ä¤T¼h¥kÃ䪺¤TÓ¸`ÂI¥Ñ¥ª¦Ó¥k¨Ì§Ç¬°"2' "4' "5")
Youtube video:https://youtu.be/mM93FheJEGQ)
*³\¦h°ÝÃDªº´M§ä¸Ñµª¹Lµ{¥i¥H¨Ï¥Î¾ð
(tree)¨Óªí¹F¡A³oÃþ°ÝÃD¤]³£¥i¥H«Øºc ¥X¸ÑµªªÅ¶¡¾ð(solution space
tree)¡C¦]¦¹n§ä¨ì³o¨Ç°ÝÃDªº¸Ñµª¡A¤£ºÞ¬O¥i¦æ¸Ñ(feasible solution)©Î¬O³Ì¨Î¸Ñ(optimal
solution)¡A´NÂàÅܦ¨¤@Ó¾ð·j´M(tree search)°ÝÃD¡C
*¦³³\¦h¤èªk¥i¥H«ô³X(visit)»P©Ý®i(expand)¤@ӸѵªªÅ¶¡¾ð¡A¥]¬A²`«×Àu¥ý·j´M(depth- first search, DFS)¡B¼s«×Àu¥ý·j´M (breadth- first search,
BFS)¡Bµn¤s·j´M(hill climbing search, HCS)¥H¤Î³Ì¨ÎÀu¥ý·j´M(best-first
search)µ¥ºtºâªk¡C
* ¼s«×Àu¥ý·j´M(breadth-first search, BFS)ºtºâªk
* ²`«×Àu¥ý·j´M(depth-first search, DFS)ºtºâªk
* µn¤s·j´Mªk(hill climbing search,
HCS)ºtºâªk
* ³Ì¨ÎÀu¥ý·j´Mªk(best-first search)ºtºâªk
* ¦^·¹(backtracking)ºtºâªk
Homework 13:
A. µ¹©w¤@¶°¦XS={7, 4, 1, 2,
11}¥H¤Î¤@¥[Á`È10¡A§Q¥Î²`«×Àu¥ý·j´Mªk¨Ó¸Ñ¤l¶°¦X¥[Á`°ÝÃD¡A§A¥²¶·µe¥X¸Ñ¥X°ÝÃDªº¸Ñ
µªªÅ¶¡¾ð(solution space tree)¡C
B. ¥H²`«×Àu¥ý·j´Mºtºâªk§ä¥X¥H¤U¹Ï
(graph)ªºº~¦Ìº¸¹y°j¸ô (Hamiltonian circuit)¡A§A¥²¶·µe¥X¸Ñ¥X°ÝÃD
ªº¸Ñ µªªÅ¶¡¾ð(solution space
tree)¡C
C. ¥H¼s«×Àu¥ý·j´Mºtºâªk§ä¥X¤W¹Ïªºº~¦Ìº¸¹y
°j¸ô¡A§A¥²¶·µe¥X¸Ñ¥X°ÝÃD
ªº¸ÑµªªÅ¶¡¾ð(solution space
tree)¡C
D. ¥HªÅ³æ ®æªº²¾°Ê¤è¦V¬°¤W¤U¥ª¥kªº¦¸§Ç¡A¥H¼s«×Àu¥ý·j
´Mºt ºâªk¤U¸Ñ¨M¥H¤U
ªº¤K«÷¹Ï(8- puzzle)°ÝÃD¡C
°_
©lª¬ºA:
¥Ø¼Ðª¬ºA:
E. ¥HªÅ³æ ®æªº²¾°Ê¤è¦V¬°¤W¤U¥ª¥kªº¦¸§Ç¡A¥H²`«×Àu¥ý·j
´Mºt ºâªk¸Ñ¨MDÃD¤¤
ªº¤K«÷¹Ï(8- puzzle)°ÝÃD¡C
F. ¥HªÅ³æ®æªº²¾°Ê¤è¦V¬°¤W¤U¥ª¥kªº¦¸§Ç¡A¥Hµn¤s·j´Mºtºâªk¸Ñ¨MDÃD¤¤ªº¤K«÷¹Ï(8-puzzle)°ÝÃD¡C¦Óµû¦ô¨ç¼Æ¬°
¤è¶ô¿ù¸mªº¼Æ¥Ø¡AY¦³¬Û¦Pªº ±¡§Î¡A«h¥HªÅ³æ®æ²¾°Ê¤è¦V¤W¤U¥ª¥k¬°¨äÀu¥ý¶¶§Ç¡C
G. ¥HªÅ³æ®æªº²¾°Ê¤è¦V¬°¤W¤U¥ª¥kªº¦¸§Ç¡A¥H³Ì¨ÎÀu¥ý·j
´Mºtºâªk¸Ñ¨MDÃD¤¤ªº¤K«÷¹Ï
(8-puzzle)°ÝÃD¡C¦Óµû¦ô¨ç¼Æ¬°¤è¶ô¿ù¸mªº¼Æ¥Ø¡AY¦³¬Û¦Pªº±¡§Î¡A«h¥HªÅ³æ®æ²¾°Ê¤è
¦V¤W¤U¥ª¥k¬°¨äÀu¥ý¶¶§Ç¡C
- 14. (6/6) ¤À¤ä©w¬É(Branch and Bound)ºtºâªk (Branch&Bound.zip)
(Youtube video Part1: https://youtu.be/KUlDxRV6fsU)(Youtube video Part2: https://youtu.be/R91wC81n6Yk)
*¤À¤ä©w¬É(branch and bound)¬O¤@Ó«ô ³X»P©Ý®i¸Ñ
µªªÅ¶¡¾ðªº¯S®í¤èªk¡A¥Î©ó§ä¥X°ÝÃDªº³Ì¨Î¸Ñ¡C¨ä°µªk¬Û·í©ó§ä¥X¤@ºØ¤èªk¨Ó¤Á³Î¥X¸ÑµªªÅ¶¡ªº¤À¤ä(branch)¡AµM«á¥H¤W¬É
(upper bound)»P¤U¬É(lower bound)ªº·§©À¨Ó¥[§Ö³Ì¨Î¸Ñªº·j´M¡C
*¹ï©ó´M§ä³Ì¤p¦¨¥»(minimum
cost)¸Ñµªªº³Ì¨Î¤Æ°ÝÃD¦Ó¨¥¡A¤À¤ä©w¬Éºtºâªk·|°w¹ï¨C¤@¤À¤äªº¸Ñµª¹w´ú¨ä¦¨¥»¤U¬É(lower
bound)¡A¨Ã§Q¥Î§ä¥X¥i¦æ¸Ñ¨Ó±o¨ì°ÝÃDªº¦¨¥»¤W¬É(upper
bound)¡C¦pªG¦³¤@Ӹѵªªº¦¨¥»¤U¬É¶W¹L°ÝÃD¦¨¥»¤W¬É¡A«h³oӸѤ£¥i¯à¬O³Ì¨Îªº¡A¦]¦¹ºtºâªk·|¤¤¤î(terminate)»P
³oӸѬÛÃöÁpªº¾ãÓ¤À¤äªº ·j´M¡C
*¦Ó¹ï©ó´M§ä³Ì¤j§Q¯q(maximum
benefit)¸Ñµªªº³Ì¨Î¤Æ°ÝÃD¦Ó¨¥¡A¤À¤ä©w¬Éºtºâªk·|°w¹ï¨C¤@¤À¤äªº¸Ñµª¹w´ú¨ä§Q¯q¤W¬É(upper
bound)¡A¨Ã§Q¥Î§ä¥X¥i¦æ¸Ñ¨Ó±o¨ì°ÝÃDªº§Q¯q¤U¬É(lower
bound)¡C¦pªG¦³¤@Ӹѵªªº§Q¯q¤W¬É§C©ó°ÝÃD§Q¯q¤U¬É¡A«h³oӸѤ£¥i¯à¬O³Ì¨Îªº¡A¦]¦¹ºtºâªk·|¤¤¤î(terminate)»P
³oӸѬÛÃöÁpªº¾ãÓ¤À¤äªº ·j´M¡C
.1 °ò¥»·§©À
.2 ¤À¤ä©w¬Éºtºâªk(°t¦Xµn¤s·j´Mªk)¸Ñ¨M¦h¶¥¹Ï³Ìµu¸ô®|°ÝÃD
.3 ¤À¤ä©w¬Éºtºâªk(°t¦X³Ì¨ÎÀu¥ý·j´M
ªk)¸Ñ¨M®È¦æ±À¾Pû°ÝÃD
.4 ¤À¤ä©w¬Éºtºâªk(°t¦X³Ì¨ÎÀu¥ý·j´M
ªk)¸Ñ¨M0/1I¥]°ÝÃD
.5 ¤@Ó¯S®íªº¤À¤ä©w¬Éºtºâªk: A*ºtºâªk
Homework 14: (A-
G¿ï2ÃD)
A.
¥H¤À¤ä©w¬Éºtºâªk¸Ñ¨M¥H¤U¦h¶¥¹Ï³Ìµu¸ô®|°ÝÃD¡C
B.
µ¹©w¤@0/1I¥]°ÝÃD¡A¨äI¥]¥i¸ü«C=10,¥B¦³¤Tª««~ªº«¶q¤À§O¬°10, 3, 5¡A¦Ó¨ä§Q¼í¤À§O¬°40, 20,
30¡A¨D¥X¥i¥H©ñ¤JI¥]¤¤ª««~§Q¼íªºtȪº³Ì¤p¤Æ¡A¨Ï¥Î¤À¤ä©w¬Éºtºâªk¨Ó¸Ñ¦¹0/1I¥]°ÝÃD¡C ¡]µù:
¥²¶·µe¥X·j´M¾ð¡^(¦¹ÃD¨Ï¥Îtªº¥Ø¼Ð¨ç¼ÆÈ¡A¦]¦¹feasible solution¬O¨D¥Xupper bound¡A¦Ó¥B§Ṳ́£Â_
¦a¹Á¸Õ°§Cupper bound)
C. ¦P¤W ÃD¡A¦ý¥Ø¼Ð§ï¬°¨D ¥X¥i¥H©ñ¤JI
¥]¤¤ª««~§Q¼íªº³Ì¤j¤Æ¡A¨Ï¥Î¤À¤ä©w¬Éºtºâªk¨Ó¸Ñ¦¹0/1I¥]°Ý ÃD¡C ¡]µù:
¥²¶·µe¥X·j´M¾ð¡^(¦¹ÃD¨Ï¥Î¥¿ªº¥Ø¼Ð¨ç¼ÆÈ¡A¦]¦¹feasible solution¬O¨D¥Xlower
bound¡A¦Ó¥B§Ṳ́£Â_¦a¹Á¸Õ´£°ªlower bound)
D.
¨Ï¥ÎA*ºtºâªk¨Ó¸Ñ¥H¤U¤§¦h¶¥¹Ï³Ìµu¸ô®|°ÝÃD¡C¡]µù: ¥²¶·µe¥X·j´M¾ð¡^
E. ±NAÃDªºS»PT¹ï½Õ¡A½bÀY¤Ï¦V¸ÑÃD¡C
F. ±NBÃD©Ò¦³¦¨¥»¼¥H2´î3¸ÑÃD¡C
G. ±NCÃDªºª««~«¶q§ï¬°20, 5, 6¸ÑÃD¡C
H. ±NDÃDªºV0»PV8¹ï½Õ¡A½bÀY¤Ï¦V¸Ñ¥ÑV8¨ìV0ªº³Ì¬q¸ô®|°ÝÃD¡C
- 5/30 ºtÁ¿: "AIÛ²z" by ³¯¥°°a
±Ð±Â (»Ýñ¨ì)
- 6/6 ºtÁ¿: "¶q¤lªÈÄñ¥Ñõ¾Ç¡A¬ì¾Ç¡A¨ì¬ì§Þ" by ±i¼y·ç ±Ð±Â (»Ýñ¨ì)
- 6/13
Final Examination
14:00-16:30(®Ñ±µ§¸Õ¡A½d³ò¬°´Á¤¤¦Ò¤§«á±Ð±Âªº¤º®e¡A§t¶q¤lºtºâªk¡B°Ý
ÃD¤U¬É»P°ÝÃD¤ÀÃþ¡B§R´Mºtºâªk¡B
³g°ýºtºâªk¡B
³Ìµu¸ô®|ºtºâªk¡B¾ð·j´M»P¦^·¹ºtºâªk¡B
¤À¤ä©w¬Éºtºâªk)
(30%)
- Term
Project (Deadline 6/20 12:00PM) (12%)
³]p¶q¤lµ{¦¡«Øºc¨Ï¥Î c (2 <= c <= 8)Ó¶q
¤lp¼Æ¦ì¤¸(counting bits)¡A¹ïÀ³𝑓(𝑥) = a𝑥 (mod
15)
ªº¶q¤l¬Û¦ì¦ô´ú½u¸ô¡A¨Ã¨Ï¥Î¶q¤l¹q¸£¼ÒÀÀ¾¹°õ¦æ¶q¤l½u¸ô¡AÀò±o¶q¤lp¼Æ¦ì¤¸ªº´ú¶qµ²ªG¡A¥H¨D¥X𝑓(𝑥)
ªº¶g´Á¡Cµ{¦¡¥i¥Hª½±µ©I¥s¨Ã¯Ç¤J²Ä¤C³¹´£¨Ñªº qc_mod15 ¤Î iqft
¨ç¼Æ«Øºc¶q¤l¼Ò¾½u¸ô¤Î°f¶q¤l³Å¥ß¸ÅÜ´«½u¸ô¡A¨Ã¥B¥H¶q¤l¹hªº§Î¦¡¥[¤J¶q¤l½u¸ô¤¤¡Cµ{¦¡ªº¿é¤J¬°c¤Îa(¤¤¶¡¥HªÅ¥Õ¹j¶})¡A¿é¥Xµ²ªG¬°°w¹ï
counting bits¥Ñ¤p¦Ó¤j±Æ§Ç¡A¨Ã¤À¦æ¦C¥Xcounting bits¥H
¤Î¨ä¹ïÀ³ªº¶g´Á(¤¤¶¡¥HªÅ¥Õ¹j¶})¡C
¨Ò¦p¡AY¸I¨ìtest caseªº¿é¤J¬°3 13¡A«h¿é¥X¬°:
000 1
010 4
100 2
110 4
- 15.
¦I¤ú§Qºtºâªk(Hungarian Algorithm)(HungarianAlg.zip)(Optional)
ºtºâªk½Òµ{
_0608(¦I¤ú§Qºtºâªk)¼v¤ù
Homework
15: ¥»¶g¥u¦³¨âÃD¡A¦]¦¹¨CӾǥͳ£n°µ³o¨âÃD§@·~¡A¦ý¥»¶g¤£»Ýú¥æ¼v¤ù»P²³ø¡C
A. ¨Ï¥Î¦I¤ú§Qºtºâªk(Hungarian
algorithm)¨Ó¸Ñ¥H¤Uªº³Ì¤p¦¨¥»«ü¬£°ÝÃD(assignment problem)¡]µù:
¥²¶·¼g¥Xºtºâªk°õ¦æ¹Lµ{¤¤ªº¨CÓ¤¤¶¡µ²ªG¡^
|
Task A
|
Task B
|
Task C
|
Tim
|
$1
|
$2
|
$3
|
Bob
|
$2
|
$3
|
$2
|
Alex
|
$2
|
$2
|
$3
|
B. »¡©ú¦p¦ó¨Ï¥Î¦I¤ú§Qºtºâªk(Hungarian
algorithm)¸Ñ¨M³Ì¤p¼Ú¤ó¥±Åv«°t¹ï(Minimum Euclidean Weighted
Matching)°ÝÃD¡C©Ò¿×³Ì¤p¼Ú¤ó¥±Åv« °t¹ï°ÝÃD´yz¦p¤U:
µ¹©wnÓÂI(n¬°°¸¼Æ)¡A¦p¦ó±N¦¹nÓÂI¤Ç°t§Î¦¨n/2ÓÂI¹ï¡AÅý¨CÓÂI¹ï§Î¦¨¤@±ø½u¬q¡A¦Ó¦¹n/2±ø½u¬q¨ã¦³³Ì¤pªºªø«×Á`©M¡C