@Override
	public void run() 
	{		
		while(finish == false)
		{
			//Prüfen ob der PathCollector nioch gebraucht wird
			if(System.currentTimeMillis() - time > timeout)
			{
				stop();
			}
			
			//Neuen Weg erkunden
			if(Paths.size() < maxpaths)
			{
				searchNewPath();
			}

			//Debug
			System.out.println("Neuer Weg: " + Paths.size());
			//Debug Ende

			//Aenderungen der Welt beachten
			if((numlines != Reflines.size()) || (numgoals != Refgoals.size()))
			{
				//Neue Welt uebernehmen
				copyWorld();

				//Alle Pfade auf Gueltigkeit pruefen
				for(int i=Paths.size()-1; i>=0; i--)
				{					
					//Debug
					System.out.println("Weg auf gültigkeit prüfen...");
					//Debug Ende
					
					if(!Paths.elementAt(i).confirmValidity(Lines, Goals))
					{
						Paths.remove(i);
						
						//Debug
						System.out.println("Pfad " + i + " ist nicht mehr gültig, die Anzahl ist nun " + Paths.size());
						//Debug Ende
					}
				}
				
				//Aenderung der Wege bekanntmachen
				changes++;
			}
		}
	}