5

Tôi đang cố gắng thực hiện Stoachastic Hill Climbing trong Java. Tôi hiểu rằng algorthim này tạo ra một giải pháp mới được chọn ngẫu nhiên và sau đó chấp nhận giải pháp dựa trên mức độ tồi tệ của nó. Ví dụ, nếu nó rất xấu sau đó nó sẽ có một cơ hội nhỏ và nếu slighlty xấu của nó sau đó nó sẽ có nhiều cơ hội được chọn nhưng tôi không chắc chắn làm thế nào tôi có thể thực hiện xác suất này trong java.Stochastic Hill Climbing

Khi phát triển trên Google, tôi đã xem xét phương trình này, ở đâu;

  • f respresent các phòng tập thể dục cũ
  • f' respresent các phòng tập thể dục mới
  • T là một tham số

enter image description here

Tôi không thực sự chắc chắn làm thế nào để giải thích phương trình này.

Ai đó có thể vui lòng giúp tôi về cách tôi có thể triển khai tính năng này trong Java không?

+0

'Pr() 'là xác suất. Vì vậy, 'Pr (accept)' là xác suất chấp nhận giải pháp cho 'f',' f'' và 'T' đã cho. –

+0

Để giúp bạn, chúng tôi cần thêm thông tin về mã bạn đã thử và lý do mã không phù hợp với nhu cầu của bạn. Một ví dụ sẽ được nhiều đánh giá cao. –

+0

Xin chào Alex, tôi đang cố gắng hiểu thuật toán này. Tôi không thực sự chắc chắn làm thế nào để thực hiện nó trong Java. – Mikey

Trả lời

4

Phía bên trái của phương trình p sẽ là gấp đôi từ 0 đến 1, bao gồm. oldFitness, newFitnessT cũng có thể tăng gấp đôi.

Bạn sẽ có một cái gì đó tương tự như sau trong mã của bạn:

double p = 1/(1 + Math.exp((oldFitness - newFitness)/T)); 
if (Math.random() < p) { 
    // accept the new solution 
0

Bạn có thể tìm thấy một cách đánh giá thấp về thuật toán leo đồi trong cuốn sách này Artificial Intelligence a Modern Approach. Cuốn sách này cũng có một kho lưu trữ mã, here bạn có thể tìm thấy điều này.

Và đây là triển khai HillClimbing (HillclimbingSearch.java) trong java. Nhưng tệp java này yêu cầu phải nhập một số tệp nguồn khác. Sẽ tốt hơn nếu bạn nhìn vào kho lưu trữ mã. Trong lớp này, bạn có một tìm kiếm công cộng() phương pháp -

public List<Action> search(Problem p){} 

Từ chữ ký phương pháp bạn có thể thấy phương pháp này đòi hỏi phải có p Problem và trả List của Action. Để nhận các số ProblemAction này, bạn phải sử dụng khung aima.

Bạn có thể tìm thấy một số giải thích thêm về ngẫu nhiên đồi leo here

Hy vọng nó sẽ giúp.
Cảm ơn rất nhiều.

Các vấn đề liên quan