1 | var hillClimbing = function() {} // ���s�t��k������Ҫ� (���O)
|
2 |
|
3 | hillClimbing.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 |
|
22 | module.exports = hillClimbing; // �N���s�t��k�����O�ץX�C
|