Sự khác biệt giữa thuật toán heuristic và xấp xỉ?


9

tôi có một vấn đề liên quan đến tình huống sau đây

Tôi có hai mảng số như thế này:

index/pos     0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15 
Array 1(i):   1   2   3   4   7   5   4   3   7   6   5   1   2   3   4   2
Array 2(j):   4   4   8  10  10   7   7  10  10  11   7   4   7   7   4

Bây giờ giả sử mảng thứ hai rất khó tính nhưng tôi đã nhận thấy rằng nếu tôi thêm

A [i] + A [i + 1]

trong mảng 1 tôi nhận được số rất gần với số A [j] trong mảng 2.

  1. Là giải pháp của tôi là một heuristic hoặc gần đúng?

  2. Nếu tôi có lý do để tin rằng tôi sẽ không bao giờ vượt quá giá trị của A [j] bằng + -x với thuật toán này và có thể chứng minh nó, thì giải pháp của tôi sẽ là một heuristic hay gần đúng?

Có tài liệu nào liên quan đến các câu hỏi heuristic so với các câu hỏi gần đúng cho các vấn đề của lớp P trong đó giải pháp có thể đạt được trong thời gian đa thức nhưng đầu vào quá lớn đối với thuật toán đa thời gian là thực tế.

cảm ơn bạn


Trước tiên bạn cần xác định những gì bạn muốn gần đúng để đánh giá xem phương pháp của bạn có phải là gần đúng hay không.
Dan

Chính xác thì vấn đề tối ưu hóa bạn đang cố gắng giải quyết là gì? Một khi điều đó đã được biết thì nếu bạn chứng minh được giới hạn thì heuristic của bạn sẽ trở thành một xấp xỉ. Ngoài ra, các vấn đề duy nhất (cổ điển, tức là không phát trực tuyến) trong P có thuật toán xấp xỉ (mà tôi biết) là các thuật toán dòng cực đại.
Nicholas Mancuso

ok vì vậy điều tôi muốn tính là các số trong mảng thứ hai. nhưng điều này mất quá nhiều thời gian, tuy nhiên tôi đã nhận ra rằng nếu tôi cộng hai giá trị liên tiếp của mảng 1 lại với nhau thì tôi sẽ nhận được một cái gì đó ổn và tôi có thể chứng minh rằng ước tính sẽ luôn nằm trong + -x. alg ban đầu để tính toán A [j] là O (n ^ 100)
user6697

Tôi hiểu bạn muốn tính các số trong mảng thứ hai, nhưng công thức bài toán tối ưu hóa là gì. Cho X tính Y theo các ràng buộc của Z. Nói rằng bạn muốn tính một số hàm tùy ý không có ích.
Nicholas Mancuso

Giải pháp của bạn là một ví dụ hoàn hảo của một heuristic!
Bjorn Lindqvist

Câu trả lời:


11

Một heuristic, về bản chất là một linh cảm, ví dụ, trường hợp bạn mô tả ( "Tôi nhận thấy nó là gần", bạn không có một bằng chứng nó là như vậy) là một heuristic. Như đang giải quyết vấn đề nhân viên bán hàng du lịch bằng cách bắt đầu ở một đỉnh ngẫu nhiên và đi đến điểm gần nhất chưa được truy cập mỗi bước. Đó là một ý tưởng hợp lý , không nên đưa ra một giải pháp quá tệ. Trong trường hợp này, có thể thấy rằng nó sẽ không luôn đưa ra một giải pháp tốt.

1+εε


1
Bạn đã sử dụng mẫu xấu, TSP khó gần đúng, do đó, không có PTAS cho TSP, cũng không có phép tính xấp xỉ 2 cho TSP dễ dàng hiển thị nếu có xấp xỉ 2 thời gian đa thức cho TSP có thuật toán thời gian đa thức để giải bài toán chu kỳ hamiltonian , Tôi nghĩ bạn có nghĩa là TSP số liệu là trường hợp đặc biệt nhưng vẫn không có PTAS trong trường hợp này (và đã chứng minh là không thể có PTAS ngoại trừ P = NP). Tôi sẽ đề nghị chọn đóng gói bin để nói về điều này. (hoặc bất kỳ vấn đề đơn giản nào khác).

@SaeedAmiri, nó chỉ nhằm mục đích minh họa. Có lẽ không phải là ví dụ tốt nhất (như bạn nêu), nhưng vấn đề rất dễ hiểu. Cảm ơn các bình luận.
vonbrand

Vì vậy, nếu bạn hiểu đây là ví dụ sai tại sao bạn không sửa nó?

P= =NP

P= =NPPNP

6

Bạn có thể thấy câu trả lời rất thú vị này về Heuristic trong Wikipedia:

"heuristic là một kỹ thuật được thiết kế để giải quyết vấn đề nhanh hơn khi các phương pháp cổ điển quá chậm. Mục tiêu của heuristic là tạo ra một giải pháp đủ nhanh, đủ tốt để giải quyết vấn đề trong tay."

Heuristic có thể xuất phát từ lý thuyết hoặc kinh nghiệm thực nghiệm, nhưng các thuật toán gần đúng có nền tảng lý thuyết vững chắc (giải pháp có thể chứng minh).


4

P= =NPP

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.