Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 22 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
22
Dung lượng
417,5 KB
Nội dung
MÁYTÍNH,ĐỘPHỨCTẠPVÀ
MÁY TÍNH,ĐỘPHỨCTẠPVÀ
TÍNH KHÔNGTHỂGIẢI ĐƯỢC
TÍNH KHÔNGTHỂGIẢI ĐƯỢC
Giảng viên : PGS.TSKH VŨ ĐÌNH HÒA
Giảng viên : PGS.TSKH VŨ ĐÌNH HÒA
MỞ ĐẦU
MỞ ĐẦU
TÌNH HUỐNG
TÌNH HUỐNG
•
Bạn được làm thuê cho một công ty với tư
Bạn được làm thuê cho một công ty với tư
cách là nhà thiết kế thuật toán.
cách là nhà thiết kế thuật toán.
•
Công ty sẽ tham gia thị trường cạnh tranh
Công ty sẽ tham gia thị trường cạnh tranh
“bandersnatch cao cấp”.
“bandersnatch cao cấp”.
•
Có phương pháp nào để tạo ra một tập các quy
Có phương pháp nào để tạo ra một tập các quy
cách kĩ thuật cho mỗi bài toán của thị trường
cách kĩ thuật cho mỗi bài toán của thị trường
bandersnatch đặt ra?
bandersnatch đặt ra?
MỞ ĐẦU
MỞ ĐẦU
PHẢI LÀM GÌ?
PHẢI LÀM GÌ?
•
Xác định chính xác bài toán = tham vấn
Xác định chính xác bài toán = tham vấn
phòng bandersnatch.
phòng bandersnatch.
•
Lao vào công việc với đầy bầu nhiệt
Lao vào công việc với đầy bầu nhiệt
huyết
huyết
MỞ ĐẦU
MỞ ĐẦU
KẾT QUẢ
KẾT QUẢ
•
Vài tuần trôi qua
Vài tuần trôi qua
•
Giấy tờ tràn ngập
Giấy tờ tràn ngập
•
Không tìm được bất kì thuật toán nào
Không tìm được bất kì thuật toán nào
–
phải mất hàng năm để xây dựng một thuật toán cho
phải mất hàng năm để xây dựng một thuật toán cho
một modun
một modun
–
Có rất nhiều modun cho bài toán
Có rất nhiều modun cho bài toán
MỞ ĐẦU
MỞ ĐẦU
PHẢI LÀM THẾ NÀO
PHẢI LÀM THẾ NÀO
•
Nếu viết báo cáo rằng
Nếu viết báo cáo rằng
“
“
Tôi thật ngu ngốc vì khôngthể tìm được thuật toán
Tôi thật ngu ngốc vì khôngthể tìm được thuật toán
nào”
nào”
→
→
Bạn sẽ bị sa thải’
Bạn sẽ bị sa thải’
•
Cần chứng minh rằng bài toán được giao là
Cần chứng minh rằng bài toán được giao là
không thểgiải dễ dàng được
không thểgiải dễ dàng được
MỞ ĐẦU
MỞ ĐẦU
LỜI KHUYÊN
LỜI KHUYÊN
•
Việc chứng minh tínhkhôngthểgiảiđược =
Việc chứng minh tínhkhôngthểgiảiđược =
chứng minh không tồn tại một thuật toán hữu
chứng minh không tồn tại một thuật toán hữu
hiệu.
hiệu.
•
Lý thuyết sau đây chỉ ra rằng cần chứng minh
Lý thuyết sau đây chỉ ra rằng cần chứng minh
bài toán của bạn là bài toán NP-đầy đủ.
bài toán của bạn là bài toán NP-đầy đủ.
•
Nó có độ khó tương đương với độ khó lớp các
Nó có độ khó tương đương với độ khó lớp các
bài toán khác mà nhiều chuyên gia phải bó tay.
bài toán khác mà nhiều chuyên gia phải bó tay.
MỞ ĐẦU
MỞ ĐẦU
LỜI KHUYÊN
LỜI KHUYÊN
•
Tính NP-đầy đủ cho ta thấy:
Tính NP-đầy đủ cho ta thấy:
→
→
Khả năng tìm ra thuật toán tốt cho
Khả năng tìm ra thuật toán tốt cho
bài toán khó.
bài toán khó.
→
→
Cách chuyển hướng tiếp cận: giải
Cách chuyển hướng tiếp cận: giải
gần đúng hoặc tìm lời giải cho những
gần đúng hoặc tìm lời giải cho những
trường hợp đặc biệt
trường hợp đặc biệt
BÀI TOÁN, THUẬT TOÁN VÀĐỘPHỨC TẠP
BÀI TOÁN, THUẬT TOÁN VÀĐỘPHỨC TẠP
MỘT SỐ KHÁI NIỆM CƠ BẢN
MỘT SỐ KHÁI NIỆM CƠ BẢN
•
Một bài toán/vấn đề là gì?
Một bài toán/vấn đề là gì?
:
:
→
→
Một câu hỏi có tính tổng quát cần được trả
Một câu hỏi có tính tổng quát cần được trả
lời.
lời.
→
→
T
T
hường chứa một số tham số hay biến tự do
hường chứa một số tham số hay biến tự do
chưa được xác định giá trị.
chưa được xác định giá trị.
→
→
Miêu tả:(1) các tham số, (2) các yêu cầu về
Miêu tả:(1) các tham số, (2) các yêu cầu về
câu trả lời.
câu trả lời.
BÀI TOÁN, THUẬT TOÁN VÀĐỘPHỨC TẠP
BÀI TOÁN, THUẬT TOÁN VÀĐỘPHỨC TẠP
MỘT SỐ KHÁI NIỆM CƠ BẢN
MỘT SỐ KHÁI NIỆM CƠ BẢN
•
Bài toán
Bài toán
:
:
→
→
Ví dụ: Bt “Người du lịch”.
Ví dụ: Bt “Người du lịch”.
٧
٧
Các thành phố
Các thành phố
٧
٧
Các khoảng cách
Các khoảng cách
? Yêu cầu: tìm hoán vị tròn
? Yêu cầu: tìm hoán vị tròn
sao cho tổng trọng số cạnh:
sao cho tổng trọng số cạnh:
nhỏ nhất.
nhỏ nhất.
٭
٭
Ý nghĩa:
Ý nghĩa:
{ }
m
ccC ,,,c
21
=
( )
ji
ccd ,
m
ccc
πππ
,,,
21
),(),(
)1()(
1
1
)1()(
ππππ
ccdccd
m
m
i
ii
+
∑
−
=
+
BÀI TOÁN, THUẬT TOÁN VÀĐỘPHỨC TẠP
BÀI TOÁN, THUẬT TOÁN VÀĐỘPHỨC TẠP
MỘT SỐ KHÁI NIỆM CƠ BẢN
MỘT SỐ KHÁI NIỆM CƠ BẢN
•
Một dữ kiện/input của bài toán:
Một dữ kiện/input của bài toán:
1
c
2
c
3
c
4
c
10
9
9
5
6
3
{ }
4321
,,,c cccC
=
( )
10,
21
=
ccd
( )
5,
31
=
ccd
( )
9,
41
=
ccd
( )
6,
32
=
ccd
( )
9,
42
=
ccd
( )
3,
43
=
ccd
Sắp
xếp:
3421
,,, cccc
Là lời giải:
27
min
=
length
[...]... THUẬT TOÁN VÀĐỘPHỨCTẠP MỘT SỐ KHÁI NIỆM CƠ BẢN • Thuật toán: →Gồm các thủ tục “từng bước-từng bước” giải quyết bài toán →Có thể xem như một chương trình viết bằng ngôn ngữ máy • Một TT giải quyết được bài toán П nếu nó có lời giải cho mọi dữ kiện/input I của bài toán đó BÀI TOÁN, THUẬT TOÁN VÀĐỘPHỨCTẠP MỘT SỐ KHÁI NIỆM CƠ BẢN • Thuật toán: Thế nào là một TT hiệu quả (efficiency)? – Chạy được với... THUẬT TOÁN VÀĐỘPHỨCTẠP MỘT SỐ KHÁI NIỆM CƠ BẢN • Hàm thời gian: Cho mỗi kích thước đầu vào một lượng thời gian lớn nhất để giải quyết trường hợp của bài toán đó THUẬT TOÁN THỜI GIAN ĐA THỨC VÀ NHỮNG BÀI TOÁN KHÔNGGIẢIĐƯỢC • 1 hàm f(n) là O(g(n)) khi • • • hằng c, k: |f(n)|=k 1 thuật toán thời gian đa thức có độphứctạp là O(p(n)) với p(n) là một hàm đa thức n chỉ kích thước đầu vào 1... THỨC VÀ NHỮNG BÀI TOÁN KHÔNGGIẢIĐƯỢC • Ảnh hưởng của công nghệ máy tính đến các hàm phứctạp thời gian Time complexity function n Present computer N1 Computer 100 times faster Computer 1000 times faster 100N1 1000N1 n2 N2 10N2 31.6N2 n3 N3 4.64N3 10N3 n5 N4 2.5N4 3.98N4 2n N5 3n N6 N5+6.64 N6+4.19 N5+9.97 N6+6.29 THUẬT TOÁN THỜI GIAN ĐA THỨC VÀ NHỮNG BÀI TOÁN KHÔNGGIẢIĐƯỢC • Một bài toán là không thể. .. p(n) là một hàm đa thức n chỉ kích thước đầu vào 1 thuật toán thời gian lũy thừa nếu hàm phứctạp thời gian của nó không có giới hạn (bao gồm cả một số hàm phứctạp thời gian không đa thức như n log n ) THUẬT TOÁN THỜI GIAN ĐA THỨC VÀ NHỮNG BÀI TOÁN KHÔNGGIẢIĐƯỢC • Bảng so sánh một số hàm phứctạp thời gian lũy thừa và đa thức Time complexity function n n2 n3 n5 2n 3n Size n 10 20 00001s 00002s 0001s... lượng m các thành xét cả –Để tính một cách chính xác thì phải phố số các khoảng cách vàđộ lớn các khoảng cách giữa các thành phố BÀI TOÁN, THUẬT TOÁN VÀĐỘPHỨCTẠP MỘT SỐ KHÁI NIỆM CƠ BẢN • Lược đồ mã hóa: – Miêu tả đầu vào của một bài toán cụ thể bằng một chuỗi kí tự – Độ dài đầu vào của trường hợp I của bài toán П là số kí tự trong chuỗi kí tự của lược đồ mã hóa – Độ dài này là cách đo hình thức... nghĩa tương đối vì: • Độphứctạp về thời gian được định nghĩa trong trường hợp xấu nhất • Một thuật toán 2n nghĩa là có ít nhất một trường hợp bài toán cỡ n cần bằng ẫy thời gian • Hầu hết trong thực tế cần ít thời gian hơn nhiều THUẬT TOÁN THỜI GIAN ĐA THỨC VÀ NHỮNG BÀI TOÁN KHÔNGGIẢIĐƯỢC • Một số nhận xét • Ex1, thuật toán đơn hình (simplex) cho lập trình • tuyến tính có độphứctạp lũy thừa [Klee... Chạy được với tất cả các input – Thời gian tính toán nhanh nhất Yêu cầu về thời gian có tính quyết định xem một thuật toán có hiệu quả để đưa vào thực tế hay không BÀI TOÁN, THUẬT TOÁN VÀĐỘPHỨCTẠP MỘT SỐ KHÁI NIỆM CƠ BẢN • Thuật toán: Yêu cầu về thời gian – Có thể miêu tả hàm một biến (Kích thước của một bài toán cụ thể) – Đo kích thước của bài toán cụ thể theo cách thông thường – Ex, bài toán “người... thước bài toán cụ thể П(I) BÀI TOÁN, THUẬT TOÁN VÀĐỘPHỨCTẠP MỘT SỐ KHÁI NIỆM CƠ BẢN • Lược đồ mã hóa: – Ví dụ: Bài toán người thương gia đi du lịch ٭Lđmh sử dụng bộ kí tự: {c, [, ], /, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9} ٭Chuỗi mã hóa: “c[1] c[2] c[3] c[4] // 10 / 5 / 9 // 6 / 9 // 3” ٭ Độ dài đầu vào là 32 ٭Các trường hợp bài toán phức tạp, có thể mã hóa bằng chuỗi tương tự, không phải chuỗi... toán là khôngthểgiảiđược nếu quá khó • • để tìm ra một thuật toán thời gian đa thức để giải quyết nó Với kích thước bài toán có hạn thì việc so sánh giữa thuật toán đa thức hữu hiệu và thuật toán lũy thừa không hữu hiệu có nhiều ngoại lệ Ex: xem bảng so sánh ở slide trước, thuật toán 2n nhanh hơn thuật toán n5 với n . MÁY TÍNH, ĐỘ PHỨC TẠP VÀ
MÁY TÍNH, ĐỘ PHỨC TẠP VÀ
TÍNH KHÔNG THỂ GIẢI ĐƯỢC
TÍNH KHÔNG THỂ GIẢI ĐƯỢC
Giảng viên : PGS.TSKH. chứng minh tính không thể giải được =
Việc chứng minh tính không thể giải được =
chứng minh không tồn tại một thuật toán hữu
chứng minh không tồn tại