-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMain.java
69 lines (55 loc) · 2.69 KB
/
Main.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import java.util.List;
import IA.Bicing.Estaciones;
import aima.search.framework.Problem;
import aima.search.framework.Search;
import aima.search.framework.SearchAgent;
import aima.search.informed.HillClimbingSearch;
import practica.PracBoard;
import practica.PracGoalTest;
import practica.PracHeuristicFunction;
import practica.PracSuccessorFunction;
/*
* Basado en Main.java de ProbIA5
*/
public class Main {
public static void main(String args[]) throws Exception{
/*De momento, inicialización manual. Caso del test para el punto extra */
int nest = 25;
int nbic = 1250;
int dem = Estaciones.EQUILIBRIUM;
int seed = 1234;
int maxFurgonetas = 5;
Estaciones estaciones = new Estaciones(nest, nbic, dem, seed);
/*Genera solución inicial mediante magia negra (sin hacer, solución vacía)*/
PracBoard board = new PracBoard(estaciones, maxFurgonetas);
//board.creaSolucionInicial(PracBoard.TipoSolucion.VACIA,seed);
board.creaSolucionInicial(PracBoard.TipoSolucion.NORMAL,seed);
//board.creaSolucionInicial(PracBoard.TipoSolucion.NORMAL_RANDOM,seed);
//board.creaSolucionInicial(PracBoard.TipoSolucion.GREEDY,seed);
System.out.println("La solucion inicial usa " + board.getFurgonetasEnUso() + " furgonetas");
board.print();
System.out.println("Beneficio por bicis: " + board.beneficioTotal(true));
System.out.println("Beneficio real: " + board.getBeneficioReal());
System.out.println("Distancia total recorrida: " + board.getTotalTravelDist());
System.out.println();
Problem p = new Problem(board, new PracSuccessorFunction(PracSuccessorFunction.SearchType.HillClimbing), new PracGoalTest(), new PracHeuristicFunction(PracHeuristicFunction.Function.Heuristico_2));
Search alg = new HillClimbingSearch();
SearchAgent agent = new SearchAgent(p, alg);
System.out.println();
System.out.println("Actions:");
printActions(agent.getActions());
System.out.println();
PracBoard finalBoard = (PracBoard)alg.getGoalState();
System.out.println("Furgonetas usadas: " + finalBoard.getFurgonetasEnUso());
finalBoard.print();
System.out.println("Beneficio por bicis: " + finalBoard.beneficioTotal(true));
System.out.println("Beneficio real: " + finalBoard.getBeneficioReal());
System.out.println("Distancia total recorrida: " + finalBoard.getTotalTravelDist());
}
private static void printActions(List actions) {
for (int i = 0; i < actions.size(); i++) {
String action = (String) actions.get(i);
System.out.println(action);
}
}
};