Top Banner
การออกแบบอัลกอริทึม การออกแบบอัลกอริทึม วงจรการออกแบบอัลกอริทึม วงจรการออกแบบอัลกอริทึม เร เรม ปัญหา มีปัญหา หาวิธีแก้ไข N ยอมรับ ยอมร บข้อกําหY N หมด ปร บข อกาหนด หมด ได้ ? Y ยอมรบ ได้ ? ของปัญหา หวัง? ปรบขอกาหนด ของปัญหา หวัง? จบ Y รถโรงเรียน รถโรงเรียน การออกแบบวงจรรวม การออกแบบวงจรรวม A B C D V DD X GND
12

เรม เรมิ่ การออกแบบอัลกอรั ิทิึมึsomchai/2110327/2553/01-intro.pdf · หนูดาวเป ็นลูกสาวกก

Mar 02, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: เรม เรมิ่ การออกแบบอัลกอรั ิทิึมึsomchai/2110327/2553/01-intro.pdf · หนูดาวเป ็นลูกสาวกก

การออกแบบอลกอรทมการออกแบบอลกอรทม

วงจรการออกแบบอลกอรทมวงจรการออกแบบอลกอรทม

เร ม

เรม

มปญหามปญหา

หาวธแกไขหาวธแกไข

Nยอมรบยอมรบ ปรบขอกาหนดYN

หมด ปรบขอกาหนดหมดได ?

Y

ยอมรบได ?

ร นของปญหาหวง?

ปรบขอกาหนดของปญหาหวง?

จบ

Y

รถโรงเรยนรถโรงเรยน การออกแบบวงจรรวมการออกแบบวงจรรวม

AB C D

VDD

X

GND

Page 2: เรม เรมิ่ การออกแบบอัลกอรั ิทิึมึsomchai/2110327/2553/01-intro.pdf · หนูดาวเป ็นลูกสาวกก

การออกแบบวงจรการออกแบบวงจร

XAB

B DX

DC

BCD

A CVDDX

DC

DDX

BAC D

X = (A+B)•(C+D)

GND

BAC

A B

DAB C D

GNDA B VDD

X

GND

ดาวมหาลย ดาวมหาลย : : สาวมาดสาวมาดหนดาวเปนลกสาวกก

จบช นม 6 โรงเรยนบานหนองใหญจบชนม.6 โรงเรยนบานหนองใหญคณแมขายไรขายนา สงดาวเขามาเรยนมหาลยมาเรยนอยในกรงเทพ ยนเวอรซต ท ทนสมยมาเรยนอยในกรงเทพ ยนเวอรซตททนสมย

ดาวสวยดาวเร ดดาวเดน คนมนสวยทาอะไรกเดนกเลยถกพรเซนตใหเปนดาวมหาลยกเลยถกพรเซนตใหเปนดาวมหาลยเพอนๆทคณะ ปลมดาวสดๆเลยนะฮะ

หน, ดาว, เปน, ลก, สาว, กก, จบ, ช น, ม 6, โรงเรยน, บาน, หนอง, ใหญ,จบ, ชน, ม 6, โรงเรยน, บาน, หนอง, ใหญ,

คณ, แม, ขาย, ไร, ขาย, นา, สง, ดาว, เขา, มา, เรยน, มหาลย, มา, เรยน, อย, ใน, กรงเทพ, ยนเวอรซต , ท, ทนสมย,มา, เรยน, อย, ใน, กรงเทพ, ยนเวอรซต, ท, ทนสมย,

ดาว, สวย, ดาว, เร ด, ดาว, เดน, คน, มน, สวย, ทา, อะไร, ก, เดน, ก, เลย, ถก, พรเซนต, ให, เปน, ดาว, มหาลย, , , , , , , , ,เพอน, ๆ, ท, คณะ, ปลม, ดาว, สด, ๆ, เลย, นะ, ฮะ,

ขอกาหนดของปญหาขอกาหนดของปญหา ลกษณะของขอมลขาเขา (input) ( p )

ผลลพธท ตองการ

ต.ย. : ปญหาตวหมมาก (majority problem) input : ขอมลจานวน n ตว input : ขอมลจานวน n ตว output : คน TRUE เมอมขอมลทมคาซากนเกน n/2

: ไมเชนนน คน FALSE: ไมเชนนน คน FALSE

1 4 3 3 3 1 3problem

ตวหมมากคอ 3 TRUEproblem instanceinput instance

1 4 7 3 3 1 2

ไมมตวหมมาก FALSE

SortingSorting

Input Outputp p

Page 3: เรม เรมิ่ การออกแบบอัลกอรั ิทิึมึsomchai/2110327/2553/01-intro.pdf · หนูดาวเป ็นลูกสาวกก

Median and SelectionMedian and Selection

k = 10

Input Outputp p

Minimum Spanning TreeMinimum Spanning Tree

Input Outputp p

Traveling Salesman ProblemTraveling Salesman Problem

Input Outputp p

Convex HullConvex Hull

Input Outputp p

Page 4: เรม เรมิ่ การออกแบบอัลกอรั ิทิึมึsomchai/2110327/2553/01-intro.pdf · หนูดาวเป ็นลูกสาวกก

Bin PackingBin Packing

Input Outputp p

Primality TestingPrimality Testing

8338169264555846052842102071 NO

Input Outputp p

FactoringFactoring

179424673 2038074743

22801763489=

8338169264555846052842102071=

8338169264555846052842102071

Input Outputp p

String MatchingString Matching

You are the fairest of your sex You are the fairest of your sexYou are the fairest of your sex,

Let me be your hero;

You are the fairest of your sex,

Let me be your hero;

I love you as one over x,

As x approaches zero.

I love you as one over x,

As x approaches zero.pp

Positively.

pp

Positively.

you

Input Outputp p

Page 5: เรม เรมิ่ การออกแบบอัลกอรั ิทิึมึsomchai/2110327/2553/01-intro.pdf · หนูดาวเป ็นลูกสาวกก

Approximate String MatchingApproximate String Matching

You are the fairest of your sex You are the fairest of your sexYou are the fairest of your sex,

Let me be your hero;

You are the fairest of your sex,

Let me be your hero;

I love you as one over x,

As x approaches zero.

I love you as one over x,

As x approaches zero.pp

Positively.

pp

Positively.

heero

Input Outputp p

SatisfiabilitySatisfiability

YES))(( yxyx ))(( yyx = true

NOxyxyx ))(( NOxyxyx ))((

Input Outputp p

HaltingHaltingx = 7

YESwhile (x > 1) {if (x is even) YES then x = x/2else x = 3x+1

}

x = 7

while (x 1) {if (x is even)

x 7

if (x is even)

then x = x/2else x = 3x+1

NO

Input Output}

p p

ขนตอนการออกแบบอลกอรทมขนตอนการออกแบบอลกอรทม

เร ม

เรม

มปญหา

หาวธแกไขหาวธแกไข

ยอมรบ หมด ปรบขอกาหนดN YN

ได ? หวง?ร นของปญหา

Y

จบ

Y

Page 6: เรม เรมิ่ การออกแบบอัลกอรั ิทิึมึsomchai/2110327/2553/01-intro.pdf · หนูดาวเป ็นลูกสาวกก

อลกอรทม อลกอรทม (Algorithm)(Algorithm) ลาดบการทางานเชงคานวณซงแปลงตวอยางขอมลขาเขาของปญหา ไปเปนผลลพธท ตองการ

n, mไปเปนผลลพธทตองการ

ข นตอนวธการแกไขปญหาดวย

m > 0คอมพวเตอร

GCD( n, m ) { t เศษของ

YGCD( n, m ) {while ( m > 0 ) {t = n mod m

t เศษของ n m

n = mm = t n m

m t}return n Euclid

Algorithm} nAlgorithm

อลกอรทมการหารากท อลกอรทมการหารากท 3 3 โดยใชเครองคดเลขถก ๆ ทมป มหารากทสอง 1

กดจานวนทตองการหารากท 3

กดปมหารากทสอง 1 คร ง ลวกดปมคณ

2x 11 กดปมหารากทสอง 1 ครง แลวกดปมคณ

กดป มหารากทสอง 2 คร ง แลวกดป มคณ

22

1121

x

กดป มหารากทสอง 4 คร ง แลวกดป มคณ

ป 8 ป

42 2

11211

21

x กดป มหารากทสอง 8 ครง แลวกดป มคณ

...

x

842 2

11211

211

21

ทาเชนนจนกระท งเมอกดป มรากทสองแลวได 1 เสมอ

ป ป

2222x

หลงกดป มคณครงสดทาย กดป มรากทสองอกครงจะไดคาตอบ 1111111111

...

21

21

21

21

23 168422

xx

ตวหมมากตวหมมาก : : นบแตละตววามกตวนบแตละตววามกตว1 4 3 3 3 1 3 นบ 1 ม 2 ตว

4 1 นบ 4 ม 1 ตวนบ 3 ม 4 ตว true

1 4 7 3 3 1 2 นบ 1 ม 2 ตวนบ 4 ม 1 ตวนบ 7 ม 1 ตวนบ 3 ม 2 ตวhasMajority( d[1..n] ) { นบ 3 ม 2 ตวนบ 3 ม 2 ตวนบ 1 ม 2 ตว

j y( [ ] ) {for (i = 1; i <= n; i++) {

c = 0;f (j 1 j < j++) นบ 1 ม 2 ตว

นบ 2 ม 1 ตว falsefor (j = 1; j <= n; j++)if (d[i] == d[j]) c++

if (c > n/2) return TRUE( / )}return FALSE

}}

อลกอรทมอลกอรทม ตองหาผลลพธท ถกตอง ในเวลาอนจากดใหกบขอมลขาเขาทกรปแบบของปญหา

เราตองการอลกอรทมท เราตองการอลกอรทมททางานถกตองทางานไดรวดเรวมประสทธภาพใช ใชหนวยความจานอย ๆทาความเขาใจไดงาย

Page 7: เรม เรมิ่ การออกแบบอัลกอรั ิทิึมึsomchai/2110327/2553/01-intro.pdf · หนูดาวเป ็นลูกสาวกก

กลวธการออกแบบอลกอรทมกลวธการออกแบบอลกอรทมBrute force

Divide and ConquerDynamic ProgrammingDynamic Programming

Greedy Algorithmy gState-Space Search

Randomized AlgorithmRandomized AlgorithmApproximation Algorithm

...

ขนตอนการออกแบบอลกอรทมขนตอนการออกแบบอลกอรทม

เร ม

เรม

มปญหา

หาวธแกไข

ยอมรบ หมด ปรบขอกาหนดN YยอมรบN

ได ? หวง?ร นของปญหา

Y

ยอมรบได ?

จบ

Y

เวลาการทางานเวลาการทางาน

รบไมได ชาไป

กรณอาเรยไมมตวหมมากกรณอาเรยไมมตวหมมาก

ตวหมมากตวหมมาก : sort + : sort + นบนบ1 4 3 3 3 1 3

นบ 1 ม 2 ตว1 1 3 3 3 3 4นบ 3 ม 4 ตว

1 1 3 3 3 3 4true

hasMajority( d[1..n] ) {sort( d );c = 0; i = 1for (j = 1; j <= n; j++)

if (d[i] == d[j]) {if (d[i] d[j]) {if (++c > n/2) return TRUE

} else {i = j; c = 1

}return FALSEreturn FALSE

}

Page 8: เรม เรมิ่ การออกแบบอัลกอรั ิทิึมึsomchai/2110327/2553/01-intro.pdf · หนูดาวเป ็นลูกสาวกก

เวลาการทางานเวลาการทางาน

แบบท 1แบบท 1

กรณอาเรยไมมตวหมมากกรณอาเรยไมมตวหมมาก

ตวหมมากตวหมมาก : sort + : sort + นบตวกลางนบตวกลางนบ 3 ม 4 ตว1 1 3 3 3 3 41 1 3 3 3 3 4

1 1 2 3 3 4 7 นบ 3 ม 2 ตว

hasMajority( d[1..n] ) {sort( d );c = 0; i = n/2; for (j = 1; j <= n; j++)for (j = 1; j <= n; j++)

if (d[i] == d[j]) c++if (c > n/2) return TRUEreturn FALSE

}

ตวหมมากตวหมมาก : sort + : sort + นบตวกลางนบตวกลางนบ 3 ม 4 ตว1 1 3 3 3 3 41 1 3 3 3 3 4

1 1 2 3 3 4 7 นบ 3 ม 2 ตว

hasMajority( d[1..n] ) {sort( d );c = 0; i = n/2for (j = i; j>=1 AND d[i]==d[j]; j--) c++for (j = i; j>=1 AND d[i]==d[j]; j--) c++for (j = i+1; j<=n AND d[i]==d[j]; j++) c++if (c > n/2) return TRUEreturn FALSE

}

ตวหมมากตวหมมาก : : สม สม + + นบนบ

สมได 4 นบ 4 ม 1 ตว1 4 7 3 3 1 2 สมได 4 นบ 4 ม 1 ตว1 4 7 3 3 1 2

1 4 3 3 3 1 3 สมได 3 นบ 3 ม 4 ตว1 4 3 3 3 1 3 สมได 3 นบ 3 ม 4 ตว

1 4 3 3 3 1 3 สมได 3 นบ 3 ม 4 ตว

1 4 3 3 3 1 3 สมได 1 นบ 1 ม 2 ตว

Page 9: เรม เรมิ่ การออกแบบอัลกอรั ิทิึมึsomchai/2110327/2553/01-intro.pdf · หนูดาวเป ็นลูกสาวกก

ตวหมมากตวหมมาก : : สม สม + + นบนบ hasMajority( d[1..n] ) {

0 i d (1 )c = 0; i = random(1, n)for (j = 1; j <= n; j++)

if (d[i] == d[j]) c++( [ ] [j]) cif (c > n/2) return TRUEreturn FALSE

} }

hasMajority( d[1 n] ) {โอกาสทของจรงมตวหมมากแตสมไมพบ < ½

hasMajority( d[1..n] ) {for (k = 1; k<=30; k++) {

c = 0; i = random(1, n)for (j = 1; j <= n; j++)if (d[i] == d[j]) c++

if (c > n/2) return TRUEif (c > n/2) return TRUE}return FALSE

} โอกาสทของจรงมตวหมมากแตสมไมพบ < (½)30

เปรยบเทยบเวลาการทางานเปรยบเทยบเวลาการทางาน

นบแตละตววามกตว

นบแตละตววามกตว

สม + นบ

กรณอาเรยมตวหมมากกรณอาเรยไมมตวหมมาก กรณอาเรยมตวหมมากกรณอาเรยไมมตวหมมาก

การวเคราะหเวลาการทางานการวเคราะหเวลาการทางาน Experimental Analysisp y

แปลงอลกอรทมเปนโปรแกรม สงทางานกบขอมลขาเขาหลาย ๆ แบบ สงทางานกบขอมลขาเขาหลาย ๆ แบบ จบเวลา วาดกราฟ หาความสมพนธของเวลากบปรมาณขอมล

Mathematical Analysis วเคราะหหาความสมพนธของจานวนคาสงททางาน วเครา หหาความสมพนธของจานวนคาสงททางานกบปรมาณขอมลทไดรบ

hasMajority( d[1 n] )

n

hasMajority( d[1..n] )for (i = 1; i <= n; i++)c = 0;

n

n

i 1

for (j = 1; j <= n; j++)if ( d[i] == d[j] ) c++

if (c > n/2) return TRUEj 1

1

i

n1

= n2

return FALSE

ขนตอนการออกแบบอลกอรทมขนตอนการออกแบบอลกอรทม

เร ม

เรม

มปญหา

หาวธแกไข

Nยอมรบ ปรบขอกาหนดYN

หมด ปรบขอกาหนดหมดได ?

Y

ร นของปญหาหวง?

ปรบขอกาหนดของปญหาหวง?

จบ

Y

Page 10: เรม เรมิ่ การออกแบบอัลกอรั ิทิึมึsomchai/2110327/2553/01-intro.pdf · หนูดาวเป ็นลูกสาวกก

Steiner TreeSteiner Treeจงวาดตนไมตอจดทงหลายใหม

ความยาวรวมของเสนเชอมทสนสด

n = 3n 3Simpson method (1750)ใชไดถามมภายใน 120o

ขอมลจานวนมาก ใชเวลานานขอมลจานวนมาก ใชเวลานาน

ใช GeoSteiner หาคาตอบของปญหาขนาด 532 ปม ใชเวลา 2.5 ชวโมง (ป ค.ศ. 1998)

http://www.diku.dk/hjemmesider/ansatte/martinz/geosteiner/

ปรบขอกาหนดปรบขอกาหนดSteiner tree Minimum Spanning tree

Steiner tree ชา

MinimumSpanning

Treeเรว

Tree

Length(MST) 2 Length(Steiner tree)

เปรยบเทยบผลเปรยบเทยบผล

ป โเปนชวโมง

สนกวา 10%

Steiner tree

เปนวนาท

Minimum Spanning Tree

Page 11: เรม เรมิ่ การออกแบบอัลกอรั ิทิึมึsomchai/2110327/2553/01-intro.pdf · หนูดาวเป ็นลูกสาวกก

ถาชา กใช ถาชา กใช CPU CPU เรวขนไมไดหรอ เรวขนไมไดหรอ ?? ได ในบางกรณ

เปลยนเครอง เปลยนภาษา เปลยน compiler เปลยนโปรแกรมแกรมเมอร กได แตไดในบางกรณเปลยนโปรแกรมแกรมเมอร กได แตไดในบางกรณ

ต.ย. t1(n) = 10-6n2 n คอปรมาณขอมล ต.ย. t1(n) 10 n n คอปรมาณขอมล

ถา CPU เรวขน 10 เทา 21

622

71122

1010

)()(

nn

ntnt

จะได t2(n) = t1(n)/10 ดวยเวลาเทาเดม CPU ใหม 12

12

10

1010

nn

nn

จะแกปญหาทมปรมาณขอมลเพมขนอก เทา

n 1000 2000 3000 4000 5000 6000 7000

16.310

n 1000 2000 3000 4000 5000 6000 7000t1(n) 10 40 90 160 250 360 490t ( ) 1 4 9 16 25 36 49t2(n) 1 4 9 16 25 36 49

ถาชา กใช ถาชา กใช CPU CPU เรวขนไมไดหรอ เรวขนไมไดหรอ ?? ต.ย. t1(n) = 10-102n n คอปรมาณขอมล1( )

ถา CPU เรวขน 32 เทา CPU ใ ป ป ดวยเวลาเทาเดม CPU ใหมจะแกปญหาทมปรมาณขอมล

เพมขนอกประมาณ 5 ตว !!!

2210

)()(

1010

1122

nn

ntnt

22

2log32log

)232(log2log1

12

n n

nn

121032

210 10

nn

n

12

222

52log32log 1

nnn

12 2322 nn n 40 45 50 55 100 200 300

t1(n) 1.11003 3.51004 1.11006 3.61007 1.31021 1.61051 2.01081

t2(n) 3.41001 1.11003 3.51004 1.11006 4.01019 5.01049 6.41079

4.01019 มลลวนาท หนงพนลานป !!!

ประสทธภาพของหนวยประมวลผลประสทธภาพของหนวยประมวลผล

Moore's Lawคอมพวเตอรแรงขน 2 เทาทก 18 เดอน

ถาชาถาชา ถา t(n) = 10-102n ( )

Moore's Law : อก 7.5 ป เรวขน 32 เทา แกปญหาไดขนาดเพมอกแค 5 !!! แกปญหาไดขนาดเพมอกแค 5 !!!

โดยท วไป ถาเวลาเปนฟงกชนแบบ exponential ของปรมาณขอมลตองเปลยนอลกอรทมตองเปลยนอลกอรทมตองเปลยนขอกาหนดของปญหา

Page 12: เรม เรมิ่ การออกแบบอัลกอรั ิทิึมึsomchai/2110327/2553/01-intro.pdf · หนูดาวเป ็นลูกสาวกก

AlAl--KhwariKhwarizzmi mi AlgorithmAlgorithm Abū Abdallāh Muḥammad ibn Mūsā al-Khwārizmīḥ

นกคณตศาสตร (ค.ศ. 780 – 850) เขยนหนงสอ "Al it i d I d " ( ) ป "Algoritmi de numero Indorum" (ภาษาลาตน) แปลวา"Al-Khwarizmi on the Hindu Art of Reckoning" (องกฤษ)

นาระบบจานวนทมเลขศนยมาใชในตะวนออกกลางและยโรป เสนอขนตอนอยางมระบบในการแกสมการเชงเสนและสมการ

กาลงสอง อนเปนทมาของพชคณต (algebra) ...

สรปสรป

เขาใจปญหาญ

รวธออกแบบอลกอรทมรวธออกแบบอลกอรทม

รวธวเคราะห