Bắt đầu bài thi SAT


24

Tôi muốn làm một người giải SAT đầu tiên. Tôi biết cuộc thi SAT và hội nghị SAT, và chỉ có rất nhiều bài viết về chủ đề này. Tôi là một người bắt đầu, một người bắt đầu choáng ngợp. Tôi nên bắt đầu từ đâu? Cuối cùng, tôi muốn thúc đẩy công nghệ hiện đại. Tôi muốn một số lời khuyên của chuyên gia về cách bắt đầu, để tôi sẽ không lãng phí thời gian của mình vào những thứ không cần thiết quá sớm. Cảm ơn nhiều.


6
Bạn đã thực hiện thuật toán DPLL chưa? Bạn đã tinh chỉnh và đánh bóng việc thực hiện của mình để nó chạy cực nhanh chưa?
Jukka Suomela

5
Cẩm nang về sự hài lòng - amazon.co.uk/ (có thể kiểm tra một thư viện, chi phí khá cao).
MGwynne

1
@Jukka: bình luận -> trả lời?
Suresh Venkat

4
Tôi không đồng ý với Jukka. Tại sao phải phát minh lại bánh xe? Không có lý do để làm lại những gì MiniSAT đã cung cấp nguồn mở. Nếu bạn quan tâm đến việc thêm vào khung CDCL, phần bổ sung của bạn sẽ hiển thị trong hiệu suất MiniSAT được tăng cường. Ngoài ra, DPLL tự nó là không đủ; rất nhiều cải tiến đã được thực hiện. Về cơ bản, hãy làm theo câu trả lời của Mikolas!
Huck Bennett

1
Xem thêm câu hỏi liên quan cstheory.stackexchange.com/q/1988
András Salamon

Câu trả lời:


18

Một tổng quan tuyệt vời cho người mới bắt đầu được đưa ra bởi bài viết sau từ năm 2009.

Có một số cách để đi vào các khía cạnh kỹ thuật. Bạn thậm chí có thể bắt đầu với bài báo gốc Davis-Putnam. Nó là vô cùng rõ ràng và có ví dụ chi tiết. Khi thảo luận về tối ưu hóa SAT trong một khóa học, chúng tôi đã phát hiện ra rằng một vài người có thể tưởng tượng đã ở đó. Bài viết của Davis-Logeman-Loveland (tôi cảm thấy) ít hướng dẫn hơn, nhưng nó quá ngắn để bạn có thể đọc nó.

Có thể có những cách để bắt kịp sự phát triển của 50 năm tới. Tôi muốn giới thiệu slide bài giảng. Chỉ cần tìm kiếm 'DPLL' sẽ đưa ra nhiều hướng dẫn. Nếu bạn duyệt qua chúng, tôi chắc chắn sương sẽ tan - ở một mức độ nào đó. Ngoài ra còn có nhiều khảo sát hữu ích. Bài báo Zhang-Malik là một nơi tốt để bắt đầu. Có một số bài viết trong Sổ tay về sự hài lòng mà bạn có thể thấy hữu ích.

Tôi thứ hai gợi ý của Mikolaos. Mã MiniSAT sạch và có kích thước có thể quản lý được. Bạn có thể chơi với nó. Có một số người giải quyết khác bạn có thể thử. CryptoMiniSat cũng khá sạch sẽ. Bạn cũng nên tham khảo công việc của Armin Biere , người viết bộ giải SAT và viết về cách viết bộ giải SAT.


17

Tôi đề nghị trước tiên hiểu những kỹ thuật nào thực sự nâng cao người giải quyết, mà tôi sẽ đề xuất tổng quan và phân tích sau đây .

Sau đó, tôi khuyên bạn nên tải xuống mã nguồn của minisat và đọc mô tả của nó .

Tất nhiên nó có thể là cá nhân nhưng tôi thấy việc xem mã nguồn có giá trị nhất.


9

Nếu bạn bị choáng ngợp bởi tất cả các công việc ngoài kia, tại sao bạn không bắt đầu giả vờ rằng trước đó không ai làm việc về vấn đề này? Nếu mục tiêu của bạn cuối cùng là xây dựng một người giải SAT cạnh tranh, thì đó sẽ là một hành trình khá dài. Bằng cách bắt đầu chỉ chơi xung quanh mà không 'kiểm tra các giải pháp', có thể nói, bạn có nhiều thứ để đạt được hơn là thua cuộc.

nmnm

nm


9

Bắt đầu với một bài khảo sát tốt. Thật dễ dàng để tấn công từng đối tượng và bị nhầm lẫn bởi các tên khác nhau trong tài liệu cho cùng một kỹ thuật và cùng tên được sử dụng cho các kỹ thuật khác nhau. Thật dễ dàng để tái hiện các trận chiến thuật toán cũ (danh sách xảy ra so với danh sách đầu-đuôi so với hai chữ được xem để triển khai DPLL chẳng hạn) nếu bạn không biết trạng thái của nghệ thuật là gì.

Giải quyết thỏa mãn bởi Gomes, et. al. sẽ cung cấp cho bạn vị trí thô của đất.

Cải thiện trình giải SAT bằng cách sử dụng các kỹ thuật tiên tiến của Manthey sẽ đưa bạn đến gần hơn với hiện tại.

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.