tl[1] = new TrafficLightModel(tln[1]);
// create street network
EdgeModel[] e = new EdgeModel[50];
e[0] = new EdgeModel("edgeModelID", n[0], n[3], w[0], 3, 50, null, null);
e[1] = new EdgeModel("edgeModelID", n[3], n[0], w[0], 3, 50, null, null);
e[0].setComplementaryEdge(e[1]);
e[1].setComplementaryEdge(e[0]);
e[0].setMinspeed(20);
e[1].setMinspeed(20);
w[0].addForwardEdge(e[0]);
w[0].addBackwardEdge(e[1]);
e[2] = new EdgeModel("edgeModelID", n[1], n[2], w[1], 3, 50, null, null);
e[3] = new EdgeModel("edgeModelID", n[2], n[1], w[1], 3, 50, null, null);
e[2].setComplementaryEdge(e[3]);
e[3].setComplementaryEdge(e[2]);
w[1].addForwardEdge(e[2]);
w[1].addBackwardEdge(e[3]);
e[4] = new EdgeModel("edgeModelID", n[2], n[3], w[2], 3, 50, null, null);
e[5] = new EdgeModel("edgeModelID", n[3], n[2], w[2], 3, 50, null, null);
e[4].setComplementaryEdge(e[5]);
e[5].setComplementaryEdge(e[4]);
w[2].addForwardEdge(e[4]);
w[2].addBackwardEdge(e[5]);
e[6] = new EdgeModel("edgeModelID", n[3], n[4], w[3], 3, 50, null, null);
e[7] = new EdgeModel("edgeModelID", n[4], n[3], w[3], 3, 50, null, null);
e[6].setComplementaryEdge(e[7]);
e[7].setComplementaryEdge(e[6]);
w[3].addForwardEdge(e[6]);
w[3].addBackwardEdge(e[7]);
e[8] = new EdgeModel("edgeModelID", n[2], tln[0], w[4], 3, 50, null, null);
e[9] = new EdgeModel("edgeModelID", tln[0], n[2], w[4], 3, 50, null, null);
e[8].setComplementaryEdge(e[9]);
e[9].setComplementaryEdge(e[8]);
w[4].addForwardEdge(e[8]);
w[4].addBackwardEdge(e[9]);
// tl[0].addUsedBy(e[8]);
e[10] = new EdgeModel("edgeModelID", n[3], tln[1], w[5], 3, 50, null, null);
e[11] = new EdgeModel("edgeModelID", tln[1], n[3], w[5], 3, 50, null, null);
e[10].setComplementaryEdge(e[11]);
e[11].setComplementaryEdge(e[10]);
w[5].addForwardEdge(e[10]);
w[5].addBackwardEdge(e[11]);
// tl[1].addUsedBy(e[10]);
e[12] = new EdgeModel("edgeModelID", n[4], n[5], w[6], 3, 50, null, null);
e[13] = new EdgeModel("edgeModelID", n[5], n[4], w[6], 3, 50, null, null);
e[12].setComplementaryEdge(e[13]);
e[13].setComplementaryEdge(e[12]);
w[6].addForwardEdge(e[12]);
w[6].addBackwardEdge(e[13]);
e[14] = new EdgeModel("edgeModelID", tln[0], tln[1], w[7], 3, 50, null, null);
e[15] = new EdgeModel("edgeModelID", tln[1], tln[0], w[7], 3, 50, null, null);
e[14].setComplementaryEdge(e[15]);
e[15].setComplementaryEdge(e[14]);
w[7].addForwardEdge(e[14]);
w[7].addBackwardEdge(e[15]);
// tl[0].addUsedBy(e[15]);
// tl[1].addUsedBy(e[14]);
e[16] = new EdgeModel("edgeModelID", tln[1], n[5], w[8], 3, 50, null, null);
e[17] = new EdgeModel("edgeModelID", n[5], tln[1], w[8], 3, 50, null, null);
e[16].setComplementaryEdge(e[17]);
e[17].setComplementaryEdge(e[16]);
w[8].addForwardEdge(e[16]);
w[8].addBackwardEdge(e[17]);
// tl[1].addUsedBy(e[17]);
e[18] = new EdgeModel("edgeModelID", n[5], n[6], w[9], 3, 50, null, null);
e[19] = new EdgeModel("edgeModelID", n[6], n[5], w[9], 3, 50, null, null);
e[18].setComplementaryEdge(e[19]);
e[19].setComplementaryEdge(e[18]);
w[9].addForwardEdge(e[18]);
w[9].addBackwardEdge(e[19]);
e[20] = new EdgeModel("edgeModelID", tln[0], n[8], w[10], 3, 50, null, null);
e[21] = new EdgeModel("edgeModelID", n[8], tln[0], w[10], 3, 50, null, null);
e[20].setComplementaryEdge(e[21]);
e[21].setComplementaryEdge(e[20]);
w[10].addForwardEdge(e[20]);
w[10].addBackwardEdge(e[21]);
// tl[0].addUsedBy(e[21]);
e[22] = new EdgeModel("edgeModelID", tln[0], n[9], w[11], 3, 50, null, null);
e[23] = new EdgeModel("edgeModelID", n[9], tln[0], w[11], 3, 50, null, null);
e[22].setComplementaryEdge(e[23]);
e[23].setComplementaryEdge(e[22]);
w[11].addForwardEdge(e[22]);
w[11].addBackwardEdge(e[23]);
// tl[0].addUsedBy(e[23]);
e[24] = new EdgeModel("edgeModelID", tln[1], n[9], w[12], 3, 50, null, null);
e[25] = new EdgeModel("edgeModelID", n[9], tln[1], w[12], 3, 50, null, null);
e[24].setComplementaryEdge(e[25]);
e[25].setComplementaryEdge(e[24]);
w[12].addForwardEdge(e[24]);
w[12].addBackwardEdge(e[25]);
// tl[1].addUsedBy(e[25]);
e[26] = new EdgeModel("edgeModelID", tln[1], n[10], w[13], 3, 50, null, null);
e[27] = new EdgeModel("edgeModelID", n[10], tln[1], w[13], 3, 50, null, null);
e[26].setComplementaryEdge(e[27]);
e[27].setComplementaryEdge(e[26]);
w[13].addForwardEdge(e[26]);
w[13].addBackwardEdge(e[27]);
// tl[1].addUsedBy(e[27]);
e[28] = new EdgeModel("edgeModelID", n[5], n[10], w[14], 3, 50, null, null);
e[29] = new EdgeModel("edgeModelID", n[10], n[5], w[14], 3, 50, null, null);
e[28].setComplementaryEdge(e[29]);
e[29].setComplementaryEdge(e[28]);
w[14].addForwardEdge(e[28]);
w[14].addBackwardEdge(e[29]);
e[30] = new EdgeModel("edgeModelID", n[7], n[8], w[15], 3, 50, null, null);
e[31] = new EdgeModel("edgeModelID", n[8], n[7], w[15], 3, 50, null, null);
e[30].setComplementaryEdge(e[31]);
e[31].setComplementaryEdge(e[30]);
w[15].addForwardEdge(e[30]);
w[15].addBackwardEdge(e[31]);
e[32] = new EdgeModel("edgeModelID", n[8], n[9], w[16], 3, 50, null, null);
e[33] = new EdgeModel("edgeModelID", n[9], n[8], w[16], 3, 50, null, null);
e[32].setComplementaryEdge(e[33]);
e[33].setComplementaryEdge(e[32]);
w[16].addForwardEdge(e[32]);
w[16].addBackwardEdge(e[33]);
e[34] = new EdgeModel("edgeModelID", n[9], n[10], w[17], 3, 50, null, null);
e[35] = new EdgeModel("edgeModelID", n[10], n[9], w[17], 3, 50, null, null);
e[34].setComplementaryEdge(e[35]);
e[35].setComplementaryEdge(e[34]);
w[17].addForwardEdge(e[34]);
w[17].addBackwardEdge(e[35]);
e[36] = new EdgeModel("edgeModelID", n[8], n[11], w[18], 3, 50, null, null);
e[37] = new EdgeModel("edgeModelID", n[11], n[8], w[18], 3, 50, null, null);
e[36].setComplementaryEdge(e[37]);
e[37].setComplementaryEdge(e[36]);
w[18].addForwardEdge(e[36]);
w[18].addBackwardEdge(e[37]);
e[38] = new EdgeModel("edgeModelID", n[9], n[12], w[19], 3, 50, null, null);
e[39] = new EdgeModel("edgeModelID", n[12], n[9], w[19], 3, 50, null, null);
e[38].setComplementaryEdge(e[39]);
e[39].setComplementaryEdge(e[38]);
w[19].addForwardEdge(e[38]);
w[19].addBackwardEdge(e[39]);
e[40] = new EdgeModel("edgeModelID", n[10], n[13], w[20], 3, 50, null, null);
e[41] = new EdgeModel("edgeModelID", n[13], n[10], w[20], 3, 50, null, null);
e[40].setComplementaryEdge(e[41]);
e[41].setComplementaryEdge(e[40]);
w[20].addForwardEdge(e[40]);
w[20].addBackwardEdge(e[41]);
e[42] = new EdgeModel("edgeModelID", n[11], n[12], w[21], 3, 50, null, null);
e[43] = new EdgeModel("edgeModelID", n[12], n[11], w[21], 3, 50, null, null);
e[42].setComplementaryEdge(e[43]);
e[43].setComplementaryEdge(e[42]);
w[21].addForwardEdge(e[42]);
w[21].addBackwardEdge(e[43]);
e[44] = new EdgeModel("edgeModelID", n[12], n[13], w[22], 3, 50, null, null);
e[45] = new EdgeModel("edgeModelID", n[13], n[12], w[22], 3, 50, null, null);
e[44].setComplementaryEdge(e[45]);
e[45].setComplementaryEdge(e[44]);
w[22].addForwardEdge(e[44]);
w[22].addBackwardEdge(e[45]);
e[46] = new EdgeModel("edgeModelID", n[13], n[14], w[23], 3, 50, null, null);
e[47] = new EdgeModel("edgeModelID", n[14], n[13], w[23], 3, 50, null, null);
e[46].setComplementaryEdge(e[47]);
e[47].setComplementaryEdge(e[46]);
w[23].addForwardEdge(e[46]);
w[23].addBackwardEdge(e[47]);
e[48] = new EdgeModel("edgeModelID", n[12], n[15], w[24], 3, 50, null, null);
e[49] = new EdgeModel("edgeModelID", n[15], n[12], w[24], 3, 50, null, null);
e[48].setComplementaryEdge(e[49]);
e[49].setComplementaryEdge(e[48]);
w[24].addForwardEdge(e[48]);
w[24].addBackwardEdge(e[49]);