thiết kế thuật toán-vét cạn và tham lam

52
N i dung c a ch ươ ng này trình bày hai chi ế nl ượ c thi ế tk ế thu t gi i thôngd ng là vét c n và tham lam. N i dung c a ch ươ ng, ngoài ph n trình bày v các ph ươ ng pháp còn có nh ng ví d c th , c

Upload: nhat-minh-le

Post on 14-Jul-2016

261 views

Category:

Documents


9 download

DESCRIPTION

kkkkkkjjjnnnnjjj

TRANSCRIPT

Nội dung của chươ ng này trình bày hai chiến lượ c thiết k ếthuật giải thôngdụng là vét cạn và tham lam. Nội dung của chươ ng, ngoài phần trình bày vềcác phươ ng pháp còn có những ví dụcụthể, cảthuật giải và càiđặt,

đểngườ iđọc cómột cái nhìn chi tiết vềviệc từthuật toánđến chươ ng trình.1. Vét cạn (Exhausted search)Vét cạn, duyệt, quay lui… là một sốtên gọi tuy khôngđồng ngh ĩ a nhưngcùng chỉmột phươ ng pháp r ấtđơ 

n giản trong tin học:tìm nghiệm của một bàitoán bằng cách xem xét tất cảcác phươ ng án có thể.Đối vớ i con ngườ i phươ ng pháp này thườ ng là không khảthi vì sốphươ ng án cần kiểm tra quá lớ n. Tuy nhiênđối vớ i máy tính, nhờ tố

cđộxửlí nhanh, máy tính có thểgiải r ất nhiều bài toán bằng phươ ng pháp vét cạn.Ư uđiểm lớ n nhất của phươ ng pháp vét cạn làluônđảm bảo tìm ra nghiệmchính xác. Ngoài ra phươ ng pháp vét cạn còn có một số 

ưuđiểm so vớ i các phươ ng pháp khác làđòi hỏi r ất ít bộnhớ và càiđặtđơ n giản. Hạn chếduy nhấtcủa phươ ng pháp này làthờ i gian thự c thi rất lớ n,độphức tạ

 p thườ ngở bậc mũ.Dođó vét cạn thườ ng chỉáp dụng tốt vớ i các bài toán có kích thướ c nhỏ.1.1. Bài toán tìm cấu hình tổhợ pThườ ng những bài toán trong Tin học có yêu cầu dạng: tìm cácđối tượ ng xthoảmãn nh

ữngđiều kiện nhấtđịnh trong một tậ p S cácđối tượ ng cho tr ướ c. Bàitoán tìm cấu hình tổhợ  p là bài toán yêu cầu tìm cácđối tượ ng x có dạng là mộtvector thoảmãn cácđiều kiện sau:1. Đối tượ ng x g

ồm n phần tử: x = (x1,x2,…xn).2. Mỗi phần tửxicó thểnhận một trong các giá tr ịr ờ i r ạc a1, a2, … am.3. x thoảmãn các ràng buộc có thểcho bở i hàm logic G(x).Tuỳ

từng tr ườ ng hợ  p mà bài toán có thểyêu cầu: tìm một nghiệm, tìm tất cả nghiệm hoặcđếm sốnghiệm.Tr ướ c hết chúng ta nhắc lại một sốcấu hình tổhợ  p cơ bản.

a) T ổ hợ  pMột tổhợ  p chậ p k của n là một tậ p con k phần tửcủa tậ p n phần tử.Chẳng hạn tậ p {1,2,3,4} có các tổhợ  p chậ p 2 là: {1,2}, {1,3, {1,4, {2,3}, {2,4},{3,4}. Vì trong tậ p hợ  p các phần tử

không phân biệt thứtựnên tậ p {1,2} cũng làtậ p {2,1} và dođó, ta coi chúng chỉlà một tổhợ  p.

  Bài toánđặt ra cho chúng ta làhãy xácđịnh tất c

ảcác tổhợ p châp k củatập n phần tử .Để đơ n giản ta chỉxét bài toán tìm các tổhợ  p của tậ p các số nguyên từ1đến n.Đối vớ i một tậ p hữu hạn bất kì, bằ

ng cáchđánh sốthứtựcủacác phần tử, ta cũngđưađượ c vềbài toánđối vớ i tậ p các sốnguyên từ1đến n. Nghiệm cần tìm của bài toán tìm các tổhợ  p chậ p k của n phần t

ửphải thoảmãncácđiều kiện sau:1. Là một vector x =(x1,x2,…xk )2. xilấy giá tr ịtrong tậ p {1,2,…n}3. Ràng buộc: xi<xi+1vớ i mọi giá tr ịi từ1đến k-1.Có ràng buộ

c 3 là vì tậ p hợ  p không phân biệt thứtựphần tửnên ta sắ p xế p các phần tửtheo thứtựtăng dần.b) Chỉ nh hợ  p l ặ pChỉnh hợ  p lặ p chậ p k của n là một dãy k thành ph

ần, mỗi thành phần là một phần tửcủa tậ p n phần tử, có xétđến thứtựvà không yêu cầu các thành phần khácnhau.Một ví dụdễthấy nhất của chỉnh hợ  p lặ p là các dãy nhịphân. Mộ

t dãy nhị  phânđộdài m là một chỉnh hợ  p lặ p chậ p m của tậ p 2 phần tử{0,1}. Chẳng hạn101 là một dãy nhịphânđộdài 3. Ngoài ra ta còn có 7 dãy nhịphânđộdài 3 nữalà 000, 001, 010, 011, 100, 110, 111. Vì có xét thứtựnên dãy 101 và dãy 011 là 2dãy khác nhau. Nhưvậy, bài toánxácđịnh tấ

t cảcác chỉnh hợ p lặp chập k của tập nphần tử  yêu cầu tìm các nghiệm nhưsau:1. Là một vector x =(x1,x2,…xk )2. xilấy giá tr ịtrong tậ p {1,2,…n}3. Không có ràng buộc nào giữ

a các thành phần.Chú ý là cũng nhưbài toán tìm tổhợ  p, ta chỉxétđối vớ i tậ p n sốnguyên từ 1đến n. Nếu tậ p hợ  p cần tìm chỉnh hợ  p không phải là tậ p các sốnguyên từ1đến nthì ta có thể đánh s

ốcác phần tửcủa tậ pđóđể đưa vềtậ p các sốnguyên từ1đến nc) Chỉ nh hợ  p không l ặ pKhác vớ i chỉnh hợ  p lặ p là các thành phầnđượ c phép lặ p lại, tứ

c là có thể giống nhau, chỉnh hợ  p không lặ p chậ p k của tậ p n phần tửcũng là một dãy k thành phần lấy từtậ p n phần tửcó xét thứtựnhưng các thành phần khôngđượ c phépgiống nhau.

You're reading a free preview. Pages 3 to 29 are not shown in this preview.

Đọc phiên bản đầy đủ

  Chẳng h

ạn có n ngườ i, một cách chọn ra k ngườ iđểxế p thành một hàng làmột chỉnh hợ  p không lặ p chậ p k của n.Một tr ườ ng hợ  pđặc biệt của chỉnh hợ  p không lặ p là hoán vị. Hoán vịcủ

amột tậ p n phần tửlà một chỉnh hợ  p không lặ p chậ p n. Nói một cách tr ực quan thìhoán vịcủa tậ p n phần tửlà phép thayđổi vịtrí của các phần tử(dođó mớ i gọi làhoán vị). Nghi

ệm của bài toántìm các chỉnh hợ p không lặp chập k của tập n số nguyên từ 1đến nlà các vector x thoảmãn cácđiều kiện:1. x có k thành phần: x = (x1,x2,…xk)2. Các giá tr ịxi lấy trong tậ p {1,2,..n}3. Ràng buộ

c: các giá tr ịxiđôi một khác nhau, tức là xi≠xj vớ i mọi i≠ j.Đó là một sốbài toán tìm cấu hình tổhợ  p cơ bản. Chúng ta sẽxem xét một số  bài toán khácđểthấy tính phổbiến của lớ  p các bài toán d

ạng này.d) Bài toán x ế  p hậuCho bàn cờ vua nxn. Hãy xế p n con hậu lên bàn cờ sao cho không con nàokhống chếcon nào. Hai 2 con hậu khống chếnhau nếu chúngở trên cùng mộthàng, một cột hoặc mộtđườ ng chéo.Chẳng hạn ta có một cáchđặt sau, các ôđ

en là các vịtríđặt hậu:Đểchuyển bài toán này v ềdạng chuẩn của bài toán tìm cấu hình tổhợ  p, tacó có nhận xét: mỗi con hậu phảiở trên một hàng và một cột. Dođó ta coi con hậuthứiở hàng i và nế

u biết x[i] là cộtđặt con hậu thứi thì ta suy rađượ c lờ i giải.Vậy nghiệm của bài toán có thểcoi là một vector x gồm n thành phần vớ i ý ngh ĩ a:1. Con hậu thứiđượ cđặtở hàng i và cột x[i].2. x[i] l

ấy giá tr ịtrong tậ p {1,2…n}3. Ràng buộc: các giá tr ịx[i] khác nhau từngđôi một và không có 2 con hậuở  trên cùng mộtđườ ng chéo.Trong phần càiđặt, chúng ta sẽphân tích chi tiết vềcác ràng buộc trên.

You're Reading a Free Preview

Page 3 is not shown in this preview.TẢI VỀ

You're Reading a Free Preview

Page 4 is not shown in this preview.TẢI VỀ

Similar to Thiết kế thuật toán-vét cạn và tham lam

BÀI TẬP LỚN

Chuyên đề đồ thị trong lập trình Pascal [FULL]

Thuật giải di truyền cho bài toán người du lịch

bai tap BFS

Toán rời rạc (1)

BÀI TOÁN TÔ MÀU ĐỒ THỊ

Bài toán người đi du lịch

Quy hoạch động

Mot So Bai Toan Quy Hoach Dong Kinh Dien

Quy Hoach Dong

BaiGiang OTOMAT&NNHT

Qui hoạch động

Các Bài Toán Duyệt

quyhoach_dong

Otomat và ngôn ngữ hình thức

Giải thuật chia để trị

TTNT

Tri tue

Bai Toan Toi Uu Va Thuat Toan Tham Lam

Tai Lieu Giao Khoa Chuyen Tin 2

ctdl&giaithuat16

Cac Ham Va Thu Tuc Trong Pascal

Kien_truc_bo_lenh_MIPS

Quy Hoach Dong

Quy Hoach Dong

Bai_giang_CTDL&GT

Chuong_2_-_Cac_thuat_toan_sap_xep

giai thuat doi sanh mau

Chuyen De On Thi HSG - Do Thi Trong Lap Trinh Pascal - BVP.pdf

Bai Giang Phuong Phap Tinh

Thêm từ Người dùng này

6464VP

Tai Lieu Giao Khoa Chuyen Tin 2 Www.itperday

Mot So Bai Toan Quy Hoach Dong Kinh Dien

Thiết kế thuật toán-vét cạn và tham lamJul 28, 2012 by nhuthangbk

(0 ratings)3.2K views

EMBED

DOWNLOAD

ADD TO LIBRARYDownload as PDF, TXT

More informationRELATED

BÀI TẬP LỚNby Kienmoi Rio

Chuyên đề đồ thị trong lập trình Pascal [FULL]by Dustin Đỗ

Thuật giải di truyền cho bài toán người du lịchby Cá Chép

bai tap BFSby traminh83

PreviousNextPage 1 of 7ABOUT

Browse books Site directory Giới thiệu về Scribd Meet the team Our blog

Tham gia nhóm của chúng tôi! Contact Us

ĐỐI TÁC

Nhà xuất bản Nhà phát triển / API

MEMBERSHIPS

Join today Invite Friends Gifts

HỖ TRỢ

Trợ giúp FAQ Accessibility Báo chi Purchase help AdChoices

PHÁP LÝ

Điều khoản Bảo mật Bản quyền

Copyright © 2016 Scribd Inc.Terms of service Accessibility Privacy Mobile Site Site Language: 

Tiếng Việt