Revision 47:93548bd95321

View differences:

misc/eclipse/GenerateDenseGridInstance.launch
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
3
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
4
<listEntry value="/deconflictiontools/src/main/java/tt/jointeuclid2ni/probleminstance/generator/GenerateDenseGridInstance.java"/>
5
</listAttribute>
6
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
7
<listEntry value="1"/>
8
</listAttribute>
9
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
10
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="tt.jointeuclid2ni.probleminstance.generator.GenerateDenseGridInstance"/>
11
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-env src/main/resources/environments/empty-unbounded.xml -nagents 24 -radius 90 -cellsize 200 -seed 1000"/>
12
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="deconflictiontools"/>
13
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
14
</launchConfiguration>
misc/eclipse/GenerateInstance.launch
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
3
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
4
<listEntry value="/deconflictiontools/src/main/java/tt/jointeuclid2ni/probleminstance/generator/GenerateInstance.java"/>
5
</listAttribute>
6
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
7
<listEntry value="1"/>
8
</listAttribute>
9
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
10
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="tt.jointeuclid2ni.probleminstance.generator.GenerateInstance"/>
11
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-env src/main/resources/environments/empty-unbounded.xml -nagents 24 -radius 90 -gridpattern 4  -gridstep 100 -seed 1000"/>
12
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="deconflictiontools"/>
13
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
14
</launchConfiguration>
misc/eclipse/Solver.launch
8 8
</listAttribute>
9 9
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
10 10
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="tt.jointeuclid2ni.Solver"/>
11
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-method KSFO -problemfile /home/capino/projects/deconfliction/repo/experiments/ksfo/instances/empty-unbounded-r-90-g4-s100/152.xml -timeout 60000 -maxtime 3500 -gridstep 50 -showvis -summary -grid 4 -k 100"/>
11
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-method KSFO -problemfile src/main/resources/problems/grid16.xml -timeout 60000 -maxtime 3500 -gridstep 100 -showvis -summary -grid 4 -k 50"/>
12 12
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="deconflictiontools"/>
13 13
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
14 14
</launchConfiguration>
src/main/java/tt/jointeuclid2ni/probleminstance/generator/ConflictGenerator.java
31 31

  
32 32
    private static final int MAX_SPEED = 1;
33 33
    private static final int MAX_ATTEMTPS_PROBLEM = 50;
34
    private static final int MAX_ATTEMTPS_MISSION = 150;
35
    private static final int MAX_ATTEMTPS_START_TARGET = 2500;
34
    private static final int MAX_ATTEMPTS_MISSION = 150;
35
    private static final int MAX_ATTEMPTS_START = 2500;
36
    private static final int MAX_ATTEMPTS_TARGET = 2500;
36 37

  
37 38
    private List<ProblemCreatedListener> listeners;
38 39

  
......
56 57
        this.maxTime = calculateMaxTime(environment);
57 58
    }
58 59

  
59
    private DirectedGraph<Point, Line>[] createGraphs(Environment environment, int[] bodyRadiuses, int[][] gridPatter, int step) {
60
    private DirectedGraph<Point, Line>[] createGraphs(Environment environment, int[] bodyRadiuses, int[][] gridPattern, int step) {
60 61
        DirectedGraph[] directedGraphs = new DirectedGraph[agents];
61 62
        for (int a = 0; a < agents; a++) {
62
            directedGraphs[a] = Discretization.createGrid(environment, bodyRadiuses[a], gridPatter, step);
63
            directedGraphs[a] = Discretization.createGrid(environment, bodyRadiuses[a], gridPattern, step);
63 64
        }
64 65
        return directedGraphs;
65 66
    }
......
168 169

  
169 170
            } catch (PathNotFoundException e) {
170 171
            }
171
        } while (attempts++ < MAX_ATTEMTPS_MISSION);
172
        } while (attempts++ < MAX_ATTEMPTS_MISSION);
172 173

  
173 174
        throw new MissionNotAddedException();
174 175
    }
......
182 183
    }
183 184

  
184 185
    private AgentMission generateMission(ExtensibleProblem problem, int agent) throws MissionNotAddedException {
186

  
185 187
        Point start = null;
186
        Point target = null;
187
        int attempts = 0;
188
        int startPointAttempts = 0;
189
    	do {
190
        	start = randomVertex(agent);
188 191

  
189
        while (attempts++ < MAX_ATTEMTPS_START_TARGET) {
190
            do {
192
        	if (startPointAttempts++ > MAX_ATTEMPTS_START) {
193
        		throw new MissionNotAddedException();
194
        	}
195
        } while (collidesWithOtherStartPoint(problem, agent, start));
191 196

  
192
	        	do {
193
	            	start = randomVertex(agent);
194
	            } while (collidesWithOtherStartPoint(problem, agent, start) && attempts++ < MAX_ATTEMTPS_START_TARGET);
197
    	Point target = null;
198
    	int targetPointAttempts = 0;
199
        do {
200
        	target = randomVertex(agent);
195 201

  
196
	            do {
197
	            	target = randomVertex(agent);
198
	            } while (collidesWithOtherTargetPoint(problem, agent, target) && attempts++ < MAX_ATTEMTPS_START_TARGET);
199

  
200
            } while (start == target && attempts++ < MAX_ATTEMTPS_START_TARGET);
201
        }
202
        	if (targetPointAttempts++ > MAX_ATTEMPTS_TARGET) {
203
        		throw new MissionNotAddedException();
204
        	}
205
        } while (collidesWithOtherTargetPoint(problem, agent, target) || start == target);
202 206

  
203 207
        Verbose.printf(" -- -- -- -- new random mission S:%s G:%s%n", start, target);
204 208

  
205
        if (attempts < MAX_ATTEMTPS_START_TARGET)
206
            return new AgentMissionImpl(start, target, bodyRadiuses[agent], MAX_SPEED);
207
        else
208
            throw new MissionNotAddedException();
209
        return new AgentMissionImpl(start, target, bodyRadiuses[agent], MAX_SPEED);
209 210
    }
210 211

  
211 212
    private Trajectory solveMission(AgentMission mission, int agent) throws PathNotFoundException {
......
250 251
    private Point randomVertex(int agent) {
251 252
        List<Point> list = listsOfVertices[agent];
252 253
        int size = list.size();
253

  
254 254
        return list.get(random.nextInt(size));
255 255
        //return Util.sampleFreeSpace(environment.getBounds(), inflatedObstacles[agent], random);
256 256
    }
257 257

  
258 258
    protected static Rectangle shrinkRectangle(Rectangle rect, int by) {
259
            return new Rectangle(      new Point(rect.getCorner1().x+by, rect.getCorner1().y+by),
260
                                        new Point(rect.getCorner2().x-by, rect.getCorner2().y-by)
261
                                      );
259
            return new Rectangle(new Point(rect.getCorner1().x+by, rect.getCorner1().y+by),
260
                                 new Point(rect.getCorner2().x-by, rect.getCorner2().y-by)
261
                                 );
262 262
    }
263 263
}
src/main/java/tt/jointeuclid2ni/probleminstance/generator/GenerateDenseGridInstance.java
1
package tt.jointeuclid2ni.probleminstance.generator;
2

  
3
import java.io.File;
4
import java.io.FileInputStream;
5
import java.io.FileNotFoundException;
6
import java.io.FileOutputStream;
7
import java.util.Arrays;
8
import java.util.LinkedList;
9
import java.util.List;
10
import java.util.Random;
11

  
12
import tt.euclid2i.Point;
13
import tt.euclid2i.discretization.LazyGrid;
14
import tt.euclid2i.probleminstance.Environment;
15
import tt.euclid2i.region.Rectangle;
16
import tt.jointeuclid2ni.probleminstance.AgentMission;
17
import tt.jointeuclid2ni.probleminstance.AgentMissionImpl;
18
import tt.jointeuclid2ni.probleminstance.EarliestArrivalProblem;
19
import tt.jointeuclid2ni.probleminstance.EarliestArrivalProblemXMLDeserializer;
20
import tt.jointeuclid2ni.probleminstance.EarliestArrivalProblemXMLSerializer;
21
import tt.jointeuclid2ni.probleminstance.generator.exception.MissionNotAddedException;
22
import tt.jointeuclid2ni.probleminstance.generator.exception.ProblemNotCreatedException;
23
import tt.util.Args;
24
import tt.util.Verbose;
25
import tt.vis.problemcreator.main.ExtensibleProblem;
26

  
27
public class GenerateDenseGridInstance {
28

  
29
    private boolean verbose = false;
30
    private String environmentFile;
31
    private int agents;
32
    private int step;
33
    private int seed;
34
	private int cellSize;
35
	private int agentRadius;
36

  
37
    public GenerateDenseGridInstance(String environmentFile, int agents, int cellWidth, int agentRadius, int seed) {
38
        this.environmentFile = environmentFile;
39
        this.agents = agents;
40
        this.cellSize = cellWidth;
41
        this.agentRadius = agentRadius;
42
        this.seed = seed;
43
    }
44

  
45
    private void run() throws ProblemNotCreatedException {
46
        Verbose.setVerbose(verbose);
47
        Random random = new Random(seed);
48
        Environment environment = readEnvironment(environmentFile);
49

  
50
        ExtensibleProblem problem = new ExtensibleProblem();
51
        problem.setEnvironment(environment);
52

  
53
        LinkedList<Point> starts = new LinkedList<Point>();
54
        LinkedList<Point> targets = new LinkedList<Point>();
55

  
56
        for(int x=cellSize/2; x <= 1000-cellSize/2; x += cellSize) {
57
	        for(int y=cellSize/2; y <= 1000-cellSize/2; y += cellSize) {
58
	        	starts.add(new Point(x,y));
59
	        	targets.add(new Point(x,y));
60
	        }
61
        }
62

  
63
        for (int i=0; i<agents; i++) {
64
        	Point start = starts.remove(random.nextInt(starts.size()));
65
        	Point target = targets.remove(random.nextInt(targets.size()));
66
        	problem.addAgent(start, target, agentRadius, 1);
67
        }
68

  
69
        EarliestArrivalProblemXMLSerializer.serialize(problem, System.out);
70
    }
71

  
72
    private Environment readEnvironment(String environmentFile) {
73
        EarliestArrivalProblem problem;
74

  
75
        try {
76
            File file = new File(environmentFile);
77
            FileInputStream inputStream = new FileInputStream(file);
78
            problem = EarliestArrivalProblemXMLDeserializer.deserialize(inputStream);
79
        } catch (FileNotFoundException e) {
80
            throw new RuntimeException("Environment could not be loaded");
81
        }
82

  
83
        return problem.getEnvironment();
84
    }
85

  
86
    public static void main(String[] args) throws ProblemNotCreatedException {
87

  
88
        String environmentFile = Args.getArgumentValue(args, "-env", true);
89
        int agents = Integer.parseInt(Args.getArgumentValue(args, "-nagents", true));
90
        int radius = Integer.parseInt(Args.getArgumentValue(args, "-radius", true));
91
        int cellSize = Integer.parseInt(Args.getArgumentValue(args, "-cellsize", true));
92
        int seed = Integer.parseInt(Args.getArgumentValue(args, "-seed", true));
93

  
94
        GenerateDenseGridInstance main = new GenerateDenseGridInstance(environmentFile, agents, cellSize, radius, seed);
95
        main.run();
96
    }
97
}
src/main/java/tt/jointeuclid2ni/probleminstance/generator/GenerateInstance.java
45 45
        int[] bodyRadiuses = prefillBodyRadiuses(agents, radius);
46 46

  
47 47
        EarliestArrivalProblem instance = ConflictGenerator.generateSingleInstance(environment, bodyRadiuses, pattern, this.step, seed, new Rectangle(new Point(0,0), new Point(1000,1000)));
48

  
49 48
        EarliestArrivalProblemXMLSerializer.serialize(instance, System.out);
50 49
    }
51 50

  
src/main/java/tt/jointtraj/separableflow/SeparableFlowOptimizer.java
29 29
			// Find initial unconstrained trajectories
30 30
			trajectories = initUnconstrainedTrajectories(trajectoryOptimizers, maxCost, runtimeDeadlineMs);
31 31

  
32
			if (trajectories == null)
33
				return null;
34

  
32 35
			// Iteratively replan
33 36
			int iterations = nAgents * (k - 2);
34 37
		    trajectories = iterativelyReplan(trajectories, trajectoryOptimizers, constraints, iterations,
35 38
					maxCost, runtimeDeadlineMs);
36 39

  
37
		    // Replan with hard-constraints
38
		    trajectories = replanWithInfiniteWeight(trajectories, trajectoryOptimizers, constraints, maxCost, runtimeDeadlineMs);
40
		    if (trajectories == null)
41
		    	return null;
42

  
43
			// Replan with hard-constraints
44
			trajectories = replanWithInfiniteWeight(trajectories, trajectoryOptimizers, constraints, maxCost, runtimeDeadlineMs);
45

  
39 46
		}
40 47

  
41 48
		return trajectories;
src/main/resources/problems/grid12.xml
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<multiagentproblem>
3
<environment>
4
<obstacles/>
5
<bounds>
6
<point>
7
<x>-1000</x>
8
<y>-1000</y>
9
</point>
10
<point>
11
<x>2000</x>
12
<y>2000</y>
13
</point>
14
</bounds>
15
</environment>
16
<agents>
17
<agent>
18
<start>
19
<point>
20
<x>700</x>
21
<y>900</y>
22
</point>
23
</start>
24
<target>
25
<point>
26
<x>700</x>
27
<y>900</y>
28
</point>
29
</target>
30
<radius>90</radius>
31
<maxspeed>1</maxspeed>
32
</agent>
33
<agent>
34
<start>
35
<point>
36
<x>300</x>
37
<y>100</y>
38
</point>
39
</start>
40
<target>
41
<point>
42
<x>100</x>
43
<y>100</y>
44
</point>
45
</target>
46
<radius>90</radius>
47
<maxspeed>1</maxspeed>
48
</agent>
49
<agent>
50
<start>
51
<point>
52
<x>100</x>
53
<y>100</y>
54
</point>
55
</start>
56
<target>
57
<point>
58
<x>300</x>
59
<y>100</y>
60
</point>
61
</target>
62
<radius>90</radius>
63
<maxspeed>1</maxspeed>
64
</agent>
65
<agent>
66
<start>
67
<point>
68
<x>100</x>
69
<y>900</y>
70
</point>
71
</start>
72
<target>
73
<point>
74
<x>100</x>
75
<y>700</y>
76
</point>
77
</target>
78
<radius>90</radius>
79
<maxspeed>1</maxspeed>
80
</agent>
81
<agent>
82
<start>
83
<point>
84
<x>700</x>
85
<y>100</y>
86
</point>
87
</start>
88
<target>
89
<point>
90
<x>100</x>
91
<y>500</y>
92
</point>
93
</target>
94
<radius>90</radius>
95
<maxspeed>1</maxspeed>
96
</agent>
97
<agent>
98
<start>
99
<point>
100
<x>300</x>
101
<y>900</y>
102
</point>
103
</start>
104
<target>
105
<point>
106
<x>100</x>
107
<y>300</y>
108
</point>
109
</target>
110
<radius>90</radius>
111
<maxspeed>1</maxspeed>
112
</agent>
113
<agent>
114
<start>
115
<point>
116
<x>500</x>
117
<y>300</y>
118
</point>
119
</start>
120
<target>
121
<point>
122
<x>900</x>
123
<y>700</y>
124
</point>
125
</target>
126
<radius>90</radius>
127
<maxspeed>1</maxspeed>
128
</agent>
129
<agent>
130
<start>
131
<point>
132
<x>900</x>
133
<y>300</y>
134
</point>
135
</start>
136
<target>
137
<point>
138
<x>700</x>
139
<y>700</y>
140
</point>
141
</target>
142
<radius>90</radius>
143
<maxspeed>1</maxspeed>
144
</agent>
145
<agent>
146
<start>
147
<point>
148
<x>700</x>
149
<y>500</y>
150
</point>
151
</start>
152
<target>
153
<point>
154
<x>300</x>
155
<y>500</y>
156
</point>
157
</target>
158
<radius>90</radius>
159
<maxspeed>1</maxspeed>
160
</agent>
161
<agent>
162
<start>
163
<point>
164
<x>900</x>
165
<y>100</y>
166
</point>
167
</start>
168
<target>
169
<point>
170
<x>300</x>
171
<y>700</y>
172
</point>
173
</target>
174
<radius>90</radius>
175
<maxspeed>1</maxspeed>
176
</agent>
177
<agent>
178
<start>
179
<point>
180
<x>300</x>
181
<y>500</y>
182
</point>
183
</start>
184
<target>
185
<point>
186
<x>300</x>
187
<y>900</y>
188
</point>
189
</target>
190
<radius>90</radius>
191
<maxspeed>1</maxspeed>
192
</agent>
193
<agent>
194
<start>
195
<point>
196
<x>500</x>
197
<y>100</y>
198
</point>
199
</start>
200
<target>
201
<point>
202
<x>900</x>
203
<y>300</y>
204
</point>
205
</target>
206
<radius>90</radius>
207
<maxspeed>1</maxspeed>
208
</agent>
209
</agents>
210
</multiagentproblem>
src/main/resources/problems/grid16.xml
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<multiagentproblem>
3
<environment>
4
<obstacles/>
5
<bounds>
6
<point>
7
<x>-1000</x>
8
<y>-1000</y>
9
</point>
10
<point>
11
<x>2000</x>
12
<y>2000</y>
13
</point>
14
</bounds>
15
</environment>
16
<agents>
17
<agent>
18
<start>
19
<point>
20
<x>500</x>
21
<y>500</y>
22
</point>
23
</start>
24
<target>
25
<point>
26
<x>500</x>
27
<y>100</y>
28
</point>
29
</target>
30
<radius>90</radius>
31
<maxspeed>1</maxspeed>
32
</agent>
33
<agent>
34
<start>
35
<point>
36
<x>500</x>
37
<y>700</y>
38
</point>
39
</start>
40
<target>
41
<point>
42
<x>100</x>
43
<y>900</y>
44
</point>
45
</target>
46
<radius>90</radius>
47
<maxspeed>1</maxspeed>
48
</agent>
49
<agent>
50
<start>
51
<point>
52
<x>900</x>
53
<y>700</y>
54
</point>
55
</start>
56
<target>
57
<point>
58
<x>700</x>
59
<y>300</y>
60
</point>
61
</target>
62
<radius>90</radius>
63
<maxspeed>1</maxspeed>
64
</agent>
65
<agent>
66
<start>
67
<point>
68
<x>100</x>
69
<y>700</y>
70
</point>
71
</start>
72
<target>
73
<point>
74
<x>900</x>
75
<y>100</y>
76
</point>
77
</target>
78
<radius>90</radius>
79
<maxspeed>1</maxspeed>
80
</agent>
81
<agent>
82
<start>
83
<point>
84
<x>100</x>
85
<y>500</y>
86
</point>
87
</start>
88
<target>
89
<point>
90
<x>500</x>
91
<y>900</y>
92
</point>
93
</target>
94
<radius>90</radius>
95
<maxspeed>1</maxspeed>
96
</agent>
97
<agent>
98
<start>
99
<point>
100
<x>900</x>
101
<y>900</y>
102
</point>
103
</start>
104
<target>
105
<point>
106
<x>900</x>
107
<y>900</y>
108
</point>
109
</target>
110
<radius>90</radius>
111
<maxspeed>1</maxspeed>
112
</agent>
113
<agent>
114
<start>
115
<point>
116
<x>700</x>
117
<y>700</y>
118
</point>
119
</start>
120
<target>
121
<point>
122
<x>500</x>
123
<y>700</y>
124
</point>
125
</target>
126
<radius>90</radius>
127
<maxspeed>1</maxspeed>
128
</agent>
129
<agent>
130
<start>
131
<point>
132
<x>300</x>
133
<y>700</y>
134
</point>
135
</start>
136
<target>
137
<point>
138
<x>500</x>
139
<y>300</y>
140
</point>
141
</target>
142
<radius>90</radius>
143
<maxspeed>1</maxspeed>
144
</agent>
145
<agent>
146
<start>
147
<point>
148
<x>300</x>
149
<y>300</y>
150
</point>
151
</start>
152
<target>
153
<point>
154
<x>700</x>
155
<y>100</y>
156
</point>
157
</target>
158
<radius>90</radius>
159
<maxspeed>1</maxspeed>
160
</agent>
161
<agent>
162
<start>
163
<point>
164
<x>900</x>
165
<y>500</y>
166
</point>
167
</start>
168
<target>
169
<point>
170
<x>300</x>
171
<y>300</y>
172
</point>
173
</target>
174
<radius>90</radius>
175
<maxspeed>1</maxspeed>
176
</agent>
177
<agent>
178
<start>
179
<point>
180
<x>700</x>
181
<y>900</y>
182
</point>
183
</start>
184
<target>
185
<point>
186
<x>700</x>
187
<y>900</y>
188
</point>
189
</target>
190
<radius>90</radius>
191
<maxspeed>1</maxspeed>
192
</agent>
193
<agent>
194
<start>
195
<point>
196
<x>300</x>
197
<y>100</y>
198
</point>
199
</start>
200
<target>
201
<point>
202
<x>100</x>
203
<y>100</y>
204
</point>
205
</target>
206
<radius>90</radius>
207
<maxspeed>1</maxspeed>
208
</agent>
209
<agent>
210
<start>
211
<point>
212
<x>100</x>
213
<y>100</y>
214
</point>
215
</start>
216
<target>
217
<point>
218
<x>300</x>
219
<y>100</y>
220
</point>
221
</target>
222
<radius>90</radius>
223
<maxspeed>1</maxspeed>
224
</agent>
225
<agent>
226
<start>
227
<point>
228
<x>100</x>
229
<y>900</y>
230
</point>
231
</start>
232
<target>
233
<point>
234
<x>100</x>
235
<y>700</y>
236
</point>
237
</target>
238
<radius>90</radius>
239
<maxspeed>1</maxspeed>
240
</agent>
241
<agent>
242
<start>
243
<point>
244
<x>700</x>
245
<y>100</y>
246
</point>
247
</start>
248
<target>
249
<point>
250
<x>100</x>
251
<y>500</y>
252
</point>
253
</target>
254
<radius>90</radius>
255
<maxspeed>1</maxspeed>
256
</agent>
257
<agent>
258
<start>
259
<point>
260
<x>300</x>
261
<y>900</y>
262
</point>
263
</start>
264
<target>
265
<point>
266
<x>100</x>
267
<y>300</y>
268
</point>
269
</target>
270
<radius>90</radius>
271
<maxspeed>1</maxspeed>
272
</agent>
273
</agents>
274
</multiagentproblem>
src/main/resources/problems/grid20.xml
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<multiagentproblem>
3
<environment>
4
<obstacles/>
5
<bounds>
6
<point>
7
<x>-1000</x>
8
<y>-1000</y>
9
</point>
10
<point>
11
<x>2000</x>
12
<y>2000</y>
13
</point>
14
</bounds>
15
</environment>
16
<agents>
17
<agent>
18
<start>
19
<point>
20
<x>500</x>
21
<y>500</y>
22
</point>
23
</start>
24
<target>
25
<point>
26
<x>500</x>
27
<y>100</y>
28
</point>
29
</target>
30
<radius>90</radius>
31
<maxspeed>1</maxspeed>
32
</agent>
33
<agent>
34
<start>
35
<point>
36
<x>500</x>
37
<y>700</y>
38
</point>
39
</start>
40
<target>
41
<point>
42
<x>100</x>
43
<y>900</y>
44
</point>
45
</target>
46
<radius>90</radius>
47
<maxspeed>1</maxspeed>
48
</agent>
49
<agent>
50
<start>
51
<point>
52
<x>900</x>
53
<y>700</y>
54
</point>
55
</start>
56
<target>
57
<point>
58
<x>700</x>
59
<y>300</y>
60
</point>
61
</target>
62
<radius>90</radius>
63
<maxspeed>1</maxspeed>
64
</agent>
65
<agent>
66
<start>
67
<point>
68
<x>100</x>
69
<y>700</y>
70
</point>
71
</start>
72
<target>
73
<point>
74
<x>900</x>
75
<y>100</y>
76
</point>
77
</target>
78
<radius>90</radius>
79
<maxspeed>1</maxspeed>
80
</agent>
81
<agent>
82
<start>
83
<point>
84
<x>100</x>
85
<y>500</y>
86
</point>
87
</start>
88
<target>
89
<point>
90
<x>500</x>
91
<y>900</y>
92
</point>
93
</target>
94
<radius>90</radius>
95
<maxspeed>1</maxspeed>
96
</agent>
97
<agent>
98
<start>
99
<point>
100
<x>900</x>
101
<y>900</y>
102
</point>
103
</start>
104
<target>
105
<point>
106
<x>900</x>
107
<y>900</y>
108
</point>
109
</target>
110
<radius>90</radius>
111
<maxspeed>1</maxspeed>
112
</agent>
113
<agent>
114
<start>
115
<point>
116
<x>700</x>
117
<y>700</y>
118
</point>
119
</start>
120
<target>
121
<point>
122
<x>500</x>
123
<y>700</y>
124
</point>
125
</target>
126
<radius>90</radius>
127
<maxspeed>1</maxspeed>
128
</agent>
129
<agent>
130
<start>
131
<point>
132
<x>300</x>
133
<y>700</y>
134
</point>
135
</start>
136
<target>
137
<point>
138
<x>500</x>
139
<y>300</y>
140
</point>
141
</target>
142
<radius>90</radius>
143
<maxspeed>1</maxspeed>
144
</agent>
145
<agent>
146
<start>
147
<point>
148
<x>300</x>
149
<y>300</y>
150
</point>
151
</start>
152
<target>
153
<point>
154
<x>700</x>
155
<y>100</y>
156
</point>
157
</target>
158
<radius>90</radius>
159
<maxspeed>1</maxspeed>
160
</agent>
161
<agent>
162
<start>
163
<point>
164
<x>900</x>
165
<y>500</y>
166
</point>
167
</start>
168
<target>
169
<point>
170
<x>300</x>
171
<y>300</y>
172
</point>
173
</target>
174
<radius>90</radius>
175
<maxspeed>1</maxspeed>
176
</agent>
177
<agent>
178
<start>
179
<point>
180
<x>700</x>
181
<y>900</y>
182
</point>
183
</start>
184
<target>
185
<point>
186
<x>700</x>
187
<y>900</y>
188
</point>
189
</target>
190
<radius>90</radius>
191
<maxspeed>1</maxspeed>
192
</agent>
193
<agent>
194
<start>
195
<point>
196
<x>300</x>
197
<y>100</y>
198
</point>
199
</start>
200
<target>
201
<point>
202
<x>100</x>
203
<y>100</y>
204
</point>
205
</target>
206
<radius>90</radius>
207
<maxspeed>1</maxspeed>
208
</agent>
209
<agent>
210
<start>
211
<point>
212
<x>100</x>
213
<y>100</y>
214
</point>
215
</start>
216
<target>
217
<point>
218
<x>300</x>
219
<y>100</y>
220
</point>
221
</target>
222
<radius>90</radius>
223
<maxspeed>1</maxspeed>
224
</agent>
225
<agent>
226
<start>
227
<point>
228
<x>100</x>
229
<y>900</y>
230
</point>
231
</start>
232
<target>
233
<point>
234
<x>100</x>
235
<y>700</y>
236
</point>
237
</target>
238
<radius>90</radius>
239
<maxspeed>1</maxspeed>
240
</agent>
241
<agent>
242
<start>
243
<point>
244
<x>700</x>
245
<y>100</y>
246
</point>
247
</start>
248
<target>
249
<point>
250
<x>100</x>
251
<y>500</y>
252
</point>
253
</target>
254
<radius>90</radius>
255
<maxspeed>1</maxspeed>
256
</agent>
257
<agent>
258
<start>
259
<point>
260
<x>300</x>
261
<y>900</y>
262
</point>
263
</start>
264
<target>
265
<point>
266
<x>100</x>
267
<y>300</y>
268
</point>
269
</target>
270
<radius>90</radius>
271
<maxspeed>1</maxspeed>
272
</agent>
273
<agent>
274
<start>
275
<point>
276
<x>300</x>
277
<y>500</y>
278
</point>
279
</start>
280
<target>
281
<point>
282
<x>300</x>
283
<y>900</y>
284
</point>
285
</target>
286
<radius>90</radius>
287
<maxspeed>1</maxspeed>
288
</agent>
289
<agent>
290
<start>
291
<point>
292
<x>500</x>
293
<y>100</y>
294
</point>
295
</start>
296
<target>
297
<point>
298
<x>900</x>
299
<y>300</y>
300
</point>
301
</target>
302
<radius>90</radius>
303
<maxspeed>1</maxspeed>
304
</agent>
305
<agent>
306
<start>
307
<point>
308
<x>700</x>
309
<y>300</y>
310
</point>
311
</start>
312
<target>
313
<point>
314
<x>500</x>
315
<y>500</y>
316
</point>
317
</target>
318
<radius>90</radius>
319
<maxspeed>1</maxspeed>
320
</agent>
321
<agent>
322
<start>
323
<point>
324
<x>100</x>
325
<y>300</y>
326
</point>
327
</start>
328
<target>
329
<point>
330
<x>900</x>
331
<y>500</y>
332
</point>
333
</target>
334
<radius>90</radius>
335
<maxspeed>1</maxspeed>
336
</agent>
337
</agents>
338
</multiagentproblem>
src/main/resources/problems/grid24.xml
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<multiagentproblem>
3
<environment>
4
<obstacles/>
5
<bounds>
6
<point>
7
<x>-1000</x>
8
<y>-1000</y>
9
</point>
10
<point>
11
<x>2000</x>
12
<y>2000</y>
13
</point>
14
</bounds>
15
</environment>
16
<agents>
17
<agent>
18
<start>
19
<point>
20
<x>500</x>
21
<y>500</y>
22
</point>
23
</start>
24
<target>
25
<point>
26
<x>500</x>
27
<y>100</y>
28
</point>
29
</target>
30
<radius>90</radius>
31
<maxspeed>1</maxspeed>
32
</agent>
33
<agent>
34
<start>
35
<point>
36
<x>500</x>
37
<y>700</y>
38
</point>
39
</start>
40
<target>
41
<point>
42
<x>100</x>
43
<y>900</y>
44
</point>
45
</target>
46
<radius>90</radius>
47
<maxspeed>1</maxspeed>
48
</agent>
49
<agent>
50
<start>
51
<point>
52
<x>900</x>
53
<y>700</y>
54
</point>
55
</start>
56
<target>
57
<point>
58
<x>700</x>
59
<y>300</y>
60
</point>
61
</target>
62
<radius>90</radius>
63
<maxspeed>1</maxspeed>
64
</agent>
65
<agent>
66
<start>
67
<point>
68
<x>100</x>
69
<y>700</y>
70
</point>
71
</start>
72
<target>
73
<point>
74
<x>900</x>
75
<y>100</y>
76
</point>
77
</target>
78
<radius>90</radius>
79
<maxspeed>1</maxspeed>
80
</agent>
81
<agent>
82
<start>
83
<point>
84
<x>100</x>
85
<y>500</y>
86
</point>
87
</start>
88
<target>
89
<point>
90
<x>500</x>
91
<y>900</y>
92
</point>
93
</target>
94
<radius>90</radius>
95
<maxspeed>1</maxspeed>
96
</agent>
97
<agent>
98
<start>
99
<point>
100
<x>900</x>
101
<y>900</y>
102
</point>
103
</start>
104
<target>
105
<point>
106
<x>900</x>
107
<y>900</y>
108
</point>
109
</target>
110
<radius>90</radius>
111
<maxspeed>1</maxspeed>
112
</agent>
113
<agent>
114
<start>
115
<point>
116
<x>700</x>
117
<y>700</y>
118
</point>
119
</start>
120
<target>
121
<point>
122
<x>500</x>
123
<y>700</y>
124
</point>
125
</target>
126
<radius>90</radius>
127
<maxspeed>1</maxspeed>
128
</agent>
129
<agent>
130
<start>
131
<point>
132
<x>300</x>
133
<y>700</y>
134
</point>
135
</start>
136
<target>
137
<point>
138
<x>500</x>
139
<y>300</y>
140
</point>
141
</target>
142
<radius>90</radius>
143
<maxspeed>1</maxspeed>
144
</agent>
145
<agent>
146
<start>
147
<point>
148
<x>300</x>
149
<y>300</y>
150
</point>
151
</start>
152
<target>
153
<point>
154
<x>700</x>
155
<y>100</y>
156
</point>
157
</target>
158
<radius>90</radius>
159
<maxspeed>1</maxspeed>
160
</agent>
161
<agent>
162
<start>
163
<point>
164
<x>900</x>
165
<y>500</y>
166
</point>
167
</start>
168
<target>
169
<point>
170
<x>300</x>
171
<y>300</y>
172
</point>
173
</target>
174
<radius>90</radius>
175
<maxspeed>1</maxspeed>
176
</agent>
177
<agent>
178
<start>
179
<point>
180
<x>700</x>
181
<y>900</y>
182
</point>
183
</start>
184
<target>
185
<point>
186
<x>700</x>
187
<y>900</y>
188
</point>
189
</target>
190
<radius>90</radius>
191
<maxspeed>1</maxspeed>
192
</agent>
193
<agent>
194
<start>
195
<point>
196
<x>300</x>
197
<y>100</y>
198
</point>
199
</start>
200
<target>
201
<point>
202
<x>100</x>
203
<y>100</y>
204
</point>
205
</target>
206
<radius>90</radius>
207
<maxspeed>1</maxspeed>
208
</agent>
209
<agent>
210
<start>
211
<point>
212
<x>100</x>
213
<y>100</y>
214
</point>
215
</start>
216
<target>
217
<point>
218
<x>300</x>
219
<y>100</y>
220
</point>
221
</target>
222
<radius>90</radius>
223
<maxspeed>1</maxspeed>
224
</agent>
225
<agent>
226
<start>
227
<point>
228
<x>100</x>
229
<y>900</y>
230
</point>
231
</start>
232
<target>
233
<point>
234
<x>100</x>
235
<y>700</y>
236
</point>
237
</target>
238
<radius>90</radius>
239
<maxspeed>1</maxspeed>
240
</agent>
241
<agent>
242
<start>
243
<point>
244
<x>700</x>
245
<y>100</y>
246
</point>
247
</start>
248
<target>
249
<point>
250
<x>100</x>
251
<y>500</y>
252
</point>
253
</target>
254
<radius>90</radius>
255
<maxspeed>1</maxspeed>
256
</agent>
257
<agent>
258
<start>
259
<point>
260
<x>300</x>
261
<y>900</y>
262
</point>
263
</start>
264
<target>
265
<point>
266
<x>100</x>
267
<y>300</y>
268
</point>
269
</target>
270
<radius>90</radius>
271
<maxspeed>1</maxspeed>
272
</agent>
273
<agent>
274
<start>
275
<point>
276
<x>500</x>
277
<y>300</y>
278
</point>
279
</start>
280
<target>
281
<point>
282
<x>900</x>
283
<y>700</y>
284
</point>
285
</target>
286
<radius>90</radius>
287
<maxspeed>1</maxspeed>
288
</agent>
289
<agent>
290
<start>
291
<point>
292
<x>900</x>
293
<y>300</y>
294
</point>
295
</start>
296
<target>
297
<point>
298
<x>700</x>
299
<y>700</y>
300
</point>
301
</target>
302
<radius>90</radius>
303
<maxspeed>1</maxspeed>
304
</agent>
305
<agent>
306
<start>
307
<point>
308
<x>700</x>
309
<y>500</y>
310
</point>
311
</start>
312
<target>
313
<point>
314
<x>300</x>
315
<y>500</y>
316
</point>
317
</target>
318
<radius>90</radius>
319
<maxspeed>1</maxspeed>
320
</agent>
321
<agent>
322
<start>
323
<point>
324
<x>900</x>
325
<y>100</y>
326
</point>
327
</start>
328
<target>
329
<point>
330
<x>300</x>
331
<y>700</y>
332
</point>
333
</target>
334
<radius>90</radius>
335
<maxspeed>1</maxspeed>
336
</agent>
337
<agent>
338
<start>
339
<point>
340
<x>300</x>
341
<y>500</y>
342
</point>
343
</start>
344
<target>
345
<point>
346
<x>300</x>
347
<y>900</y>
348
</point>
349
</target>
350
<radius>90</radius>
351
<maxspeed>1</maxspeed>
352
</agent>
353
<agent>
354
<start>
355
<point>
356
<x>500</x>
357
<y>100</y>
358
</point>
359
</start>
360
<target>
361
<point>
362
<x>900</x>
363
<y>300</y>
364
</point>
365
</target>
366
<radius>90</radius>
367
<maxspeed>1</maxspeed>
368
</agent>
369
<agent>
370
<start>
371
<point>
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff