2011-12-28 60 views
5

tôi phải thực hiện một hình dung của IDA * (lặp đi lặp lại sâu sắc Một ngôi sao) thuật toán khi nó đang chạy một vấn đề 15 câu đố. Chính xác, tôi cần hình dung cây và câu đố .IDA * với 15 câu đố, giúp đỡ cần thiết

Thuật toán IDA * tương tự như thuật toán A *. link 123

Có 3 điều tôi cần phải thực hiện:

1) Mã IDA *.

2) Sau đó, IDA * được kết nối với sự cố (15 câu đố).

3) Và sau đó, tôi cần phải hình dung cây của thuật toán.

Nhưng tôi tin rằng ai đó trước đây phải triển khai mã cho IDA * đang chạy vấn đề 15 câu đố. Tôi cần sự giúp đỡ của bạn để tìm mã nguồn này để tôi không dành 2 tháng viết mã đã được viết bởi người khác trước đây, để tôi có thời gian để tập trung vào việc hình dung.

15-câu đố link 1, link 2

Tôi biết một số C, C++ và C#.

Tôi cần một mã nguồn đơn giản, mà tôi sẽ hiểu, trong đó bạn nhập một bảng như một câu đố và nó cung cấp cho bạn trở lại như một bảng với câu đố được giải quyết.

Thứ hai, ngôn ngữ lập trình nào từ phần 3 ở trên bạn đề xuất tôi sử dụng để trực quan hóa?

Tôi đã tìm thấy một số hiện thực:

IDA* in LISP

A* in C++, tôi cần IDA *

IDA* in java

IDA* in pheudocode link1link2link3

IDA* in C

IDA* with 15-puzzle

15-puzzle solved in an applet

A * và IDA * mà giải quyết câu đố trượt (một này sử dụng các mẫu mà không được định nghĩa)

+3

Nếu đây là thành phần cốt lõi trong nghiên cứu của bạn, hãy đặt câu hỏi này là ngu xuẩn - bạn sẽ gặp khó khăn khi chỉ định tín dụng và bạn sẽ không học cách tự làm điều này. Nếu không, xem xét việc tham khảo tác phẩm của người khác nếu bạn không có thời gian để tự làm công việc –

+0

@george mano: xem liên kết này (tuy nhiên nó nằm trong java) - http://www.brian-borowski.com/Phần mềm/Puzzle /. Cuộn xuống giữa trang. bạn sẽ tìm thấy mã nguồn ở đó. – Ashwin

Trả lời

0

IDA * mất khoảng mười phút để thực hiện. Chức năng heuristic của bạn là tầm thường, tôi đoán bạn ít nhất là quản lý để thực hiện khoảng cách manhattan (có heuristics tốt hơn, nhưng điều này sẽ làm).

Sau đó, bạn chỉ cần triển khai A * và sau đó thêm tiêu chí giới hạn cắt bỏ. Bài viết trên Wikipedia mà bạn liên kết thậm chí có triển khai bằng Python bạn chỉ có thể dịch.