Mã nguồn cài đặt thuận toán leo đồi cơ bản

Một phần của tài liệu Các kỹ thuật kiểm thử cấu trúc chương trình theo hướng tiếp cận kiểm thử dựa (Trang 65 - 70)

C. Hƣớng phát triển của đề tài:

2. Mã nguồn cài đặt thuận toán leo đồi cơ bản

package com.search.algorithm;

publicclass LeoDoi extends Library {

publicstaticvoid main(String[] args) {

LeoDoi obj = new LeoDoi(); Node a13 = new Node(); a13.nodeId = 13;

Node a12 = new Node(); a12.nodeId = 12;

Node a11 = new Node(); a11.nodeId = 11;

Node a10 = new Node(); a10.nodeId = 10;

Node a9 = new Node(); a9.nodeId = 9;

Node a8 = new Node(); a8.nodeId = 8;

Node a7 = new Node(); a7.nodeId = 7;

Node a6 = new Node(); a6.nodeId = 6;

Node a5 = new Node(); a5.nodeId = 5;

Node a4 = new Node(); a4.nodeId = 4;

Node a3 = new Node(); a3.nodeId = 3;

Node a2 = new Node(); a2.nodeId = 2;

Node a1 = new Node(); a1.nodeId = 1;

Node a0 = new Node(); a0.nodeId = 0; obj.addSubgoal(a1); obj.addSubgoal(a3); obj.addSubgoal(a6); obj.addSubgoal(a7); obj.addSubgoal(a9); obj.addSubgoal(a11); obj.addSubgoal(a12);

System.out.print("Danh sach subgoal ban dau:"); for(inti = 0; i<obj.SUBGOAL.size(); i++){

System.out.print(obj.SUBGOAL.get(i).nodeId); if(i!=obj.SUBGOAL.size()-1) System.out.print("--"); } obj.NodePass.add(a0); intstop = 1; // thuchienvong lap do {

inta = (int )(Math.random() * 50 + 1); intb = (int )(Math.random() * 50 + 1); intc = (int )(Math.random() * 50 + 1); double[] arrRandom = { a, b, c };

doublecostCS = obj.costFinalFnij(arrRandom);

System.out.print(" 3 so dau tien:"+a+"--"+b+"--"+c+"--->chi phi:"+costCS);

// chay ham pathTree de lay raduongdicua arrRandom obj.NodePass.clear();

System.out.print("\node pass sau khi xoa:"); for (inti = 0; i<obj.NodePass.size(); i++) { System.out.print(obj.NodePass.get(i).nodeId); if(i!=obj.NodePass.size()-1)

System.out.print("--"); }

obj.pathTree(arrRandom, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);

System.out.print("\n Cac nut ma {"

+ arrRandom[0] + "," + arrRandom[1] + "." + arrRandom[2] + "} di qua la: ");

for (inti = 0; i<obj.NodePass.size(); i++) { System.out.print(obj.NodePass.get(i).nodeId); if(i!=obj.NodePass.size()-1)

System.out.print("--"); }

//duyetdanhsach subgoal xemneu nut cuoicungcuaduongdidicotrong subgoal

//thixoakhoi subgoal va them vao SAVE

for (inti = 0; i<obj.SUBGOAL.size(); i++) {

if (obj.SUBGOAL.get(i).nodeId == obj.NodePass.get(obj.NodePass .size() - 1).nodeId) {

obj.SUBGOAL.remove(obj.SUBGOAL.get(i)); obj.addSave(arrRandom, stop);

} }

System.out.print("\n Subgoal sau khi xoa:"); for (inti = 0; i<obj.SUBGOAL.size(); i++) { System.out.print(obj.SUBGOAL.get(i).nodeId); if(i!=obj.SUBGOAL.size()-1) System.out.print("--"); } obj.createNeighbour(arrRandom); doublecostneighbour = 0f;

System.out.print("\n Neighbour size: " + obj.neighbour.size() + " data ");

for (inti = 0; i<obj.neighbour.size(); i++) {

System.out.print("{" + obj.neighbour.get(i).arr[0] + "," + obj.neighbour.get(i).arr[1] + ","

+ obj.neighbour.get(i).arr[2] + "}"); }

// kiemtraxem cost neighbournhohon cost csthithuchien for (inti = 0; i<obj.neighbour.size(); i++) {

costneighbour = obj.costFinalFnij(obj.neighbour.get(i).arr); if (costneighbour<costCS) {

System.out.print("\n Hang xom co chi phi nho hon {" + obj.neighbour.get(i).arr[0] + ","

+ obj.neighbour.get(i).arr[1] + ","

+ obj.neighbour.get(i).arr[2] + "}---> voi chi phi:"+costneighbour);

obj.NodePass.clear();

System.out.print("\node pass sau khi xoa:");

for (intiiii = 0; iiii<obj.NodePass.size(); iiii++) { System.out.print(obj.NodePass.get(iiii).nodeId); if(iiii!=obj.NodePass.size()-1)

System.out.print("--"); }

obj.pathTree(obj.neighbour.get(i).arr, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);

System.out.print("\n Cac nut di qua la: "); for (intii = 0; ii<obj.NodePass.size(); ii++) { System.out.print(obj.NodePass.get(ii).nodeId); if(ii!=obj.NodePass.size()-1)

System.out.print("--"); }

for (intiii = 0; iii<obj.SUBGOAL.size(); iii++) { if (obj.SUBGOAL.get(iii).nodeId == obj.NodePass .get(obj.NodePass.size() - 1).nodeId) { obj.SUBGOAL.remove(obj.SUBGOAL.get(iii)); obj.addSave(obj.neighbour.get(i).arr, stop); } }

System.out.print("\n Subgoal sau khi xoa:"); for (intiiii = 0; iiii<obj.SUBGOAL.size(); iiii++) { System.out.print(obj.SUBGOAL.get(iiii).nodeId); if(iiii!=obj.SUBGOAL.size()-1) System.out.print("--"); } } }

System.out.print("\n SAVE sau vong lap thu "+stop); for (inti = 0; i<obj.SAVE.size(); i++)

System.out.print("{" + obj.SAVE.get(i).arr[0] + ","

+ obj.SAVE.get(i).arr[1] + "," + obj.SAVE.get(i).arr[2] + "}");

obj.neighbour.clear(); stop++;

} while (stop<= obj.MAX&&obj.SUBGOAL.size()>0); //in raketquakiemnghiem

System.out.print("\nSUBGOAL size:" + obj.SUBGOAL.size() + " - data:");

for (inti = 0; i<obj.SUBGOAL.size(); i++){ System.out.print(obj.SUBGOAL.get(i).nodeId); if(i!=obj.SUBGOAL.size()-1)

System.out.print("--"); }

System.out.print("\nSAVE size:" + obj.SAVE.size() + " - data:"); for (inti = 0; i<obj.SAVE.size(); i++)

System.out.print("{" + obj.SAVE.get(i).arr[0] + ","

+ obj.SAVE.get(i).arr[1] + "," + obj.SAVE.get(i).arr[2] + "}-" + obj.SAVE.get(i).cost);

} }

Một phần của tài liệu Các kỹ thuật kiểm thử cấu trúc chương trình theo hướng tiếp cận kiểm thử dựa (Trang 65 - 70)

Tải bản đầy đủ (PDF)

(82 trang)