UNPKG

1.14 kBJavaScriptView Raw
1var hillClimbing = function() {} // ���s�t��k������Ҫ� (���O)
2
3hillClimbing.prototype.run = function(s, maxGens, maxFails) { // ���s�t��k���D����
4 console.log("s=%s", s); // �L�X��l��
5 var fails = 0; // ���Ѧ��Ƴ]�� 0
6 // ���N�� gen<maxGen�A�B�s�򥢱Ѧ��� fails < maxFails �ɡA�N������մM���n���ѡC
7 for (var gens=0; gens<maxGens && fails < maxFails; gens++) {
8 var snew = s.neighbor(); // ���o�F�񪺸�
9 var sheight = s.height(); // sheight=�ثe�Ѫ�����
10 var nheight = snew.height(); // nheight=�F��Ѫ�����
11 if (nheight >= sheight) { // �p�G�F��Ѥ�ثe�ѧ�n
12 s = snew; // �N���ʹL�h
13 console.log("%d: %s", gens, s); // �L�X�s����
14 fails = 0; // ���ʦ��\�A�N�s�򥢱Ѧ����k�s
15 } else // �_�h
16 fails++; // �N�s�򥢱Ѧ��ƥ[�@
17 }
18 console.log("solution: %s", s); // �L�X�̫��쪺���Ӹ�
19 return s; // �M��Ǧ^�C
20}
21
22module.exports = hillClimbing; // �N���s�t��k�����O�ץX�C