Code Competition 04/2018: Der Auslieferungsfahrer
Code Competition 04/2018: Der Auslieferungsfahrer
Finde die kürzeste Route und hilf dem Traveling Salesman!
{ABOUT}
Wegfindung – ein grundlegendes Problem, das in der Informatik behandelt wird und gelöst werden kann. Aber auch in der Praxis ist eine effiziente Wegfindung von Punkt A nach B mit Zwischenstationen wichtig. Zum Beispiel für die optimale Planung einer Route im Urlaub, die alle Sehenswürdigkeiten abdecken soll, oder aber für die optimale Planung von Routen für Logistikunternehmen.
{INPUT/REQUIREMENTS}
Deine Aufgabe in diesem Programmierwettbewerb ist es, ein Programm (egal ob Webanwendung, mobile App oder Desktopanwendung) zu entwickeln, das die Eingabe eines Startpunktes und bis zu 10 weiterer Zieladressen ermöglicht. Das Programm soll dann vom Startpunkt aus die kürzeste Route finden, bei der alle eingegebenen Punkte angefahren werden. Der Auslieferungsfahrer soll nach Abschluss seiner Route wieder zu seinem Startpunkt zurückkehren.
Tipp: Dieses Problem ist auch als Traveling Salesman Problem (TSP) bekannt.
Über die google API kannst Du Höhenunterschiede auslesen. Stell Dir vor, der Traveling Salesman ist in einem Elektro-LKW unterwegs. Gehen wir von einem Verbrauch von 100kw/h pro 100km aus. Während der LKW bei einer Steigung von über 3% 20% (je Streckenabschnitt) mehr Strom verbraucht, kann er durch Energierückgewinnung den Verbrauch bei einem Gefälle ab 3% (je Streckenabschnitt) um 10% senken. Beziehe diese Informationen in Deine Berechnung des optimalen Weges ein.
{REVIEW}
Worauf achten wir bei der Bewertung Deines Programms?
- (Grund-)Funktionalität: Lässt sich das Programm gut bedienen? Tut es, was es soll? Wie umfangreich sind die Funktionen?
- Code-Qualität: Ist der Code sinnvoll strukturiert und effizient?
- Code-Lesbarkeit / Dokumentation: Lässt sich der Quellcode nachvollziehen? Ist der Code kommentiert?
- (G)UI: Ist die Benutzung des Programms intuitiv? Versteht der Nutzer, wie er die Lösung benutzen kann?
- Zusatzfeatures: Welche Zusatzfeatures wurden eingebaut?
- Setup: Ist das System einfach einzurichten / aufzusetzen? (z.B. mittels guter Dokumentation, Docker, Vagrant, Skripte, o.ä.
Abgabe
Programmiersprachen:
Es ist nahezu jede Technologie erlaubt.
Die Entscheidung, ob Du die Aufgabenstellung mit einer Webseite, einer App oder einer Desktopanwendung löst, ist Dir überlassen. Die Verwendung von Frameworks ist erlaubt.
Additional Details
Weiterleitungsevent - No
Partnerunternehmen -
Sponsor der Förderung -
Top-Event (Bezahlevent) - No
Talentpool-ID -