เรม เรมิ่ การออกแบบอัลกอรั...

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

Upload: others

Post on 02-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

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

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

เร ม

เรม

มปญหามปญหา

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

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

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

Y

ยอมรบได ?

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

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

จบ

Y

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

AB C D

VDD

X

GND

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

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

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

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

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

อลกอรทม อลกอรทม (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

}}

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

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

กลวธการออกแบบอลกอรทมกลวธการออกแบบอลกอรทม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

}

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

แบบท 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 ตว

ตวหมมากตวหมมาก : : สม สม + + นบนบ 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

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

ถาชา กใช ถาชา กใช 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 ของปรมาณขอมลตองเปลยนอลกอรทมตองเปลยนอลกอรทมตองเปลยนขอกาหนดของปญหา

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) ...

สรปสรป

เขาใจปญหาญ

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

รวธวเคราะห