Reise um die Welt | Optimierung der Reiseroute mit Python

Reise um die Welt | Optimierung der Reiseroute mit Python

Quellknoten: 1894857

Dieser Artikel wurde als Teil des veröffentlicht Data-Science-Blogathon.

Die Reiseplanung kann eine entmutigende Aufgabe sein, insbesondere wenn es darum geht, die kostengünstigste und effizienteste Reiseroute zu finden. Es kann frustrierend sein, stundenlang Preise und Entfernungen zu vergleichen, nur um festzustellen, dass die verfügbaren Optionen nicht ganz Ihren Bedürfnissen entsprechen. Eine der größten Herausforderungen bei der Reiseplanung besteht darin, das richtige Gleichgewicht zwischen Kosten und Entfernung zu finden. Einige Transportmittel können billiger sein, aber auch länger dauern, was die Gesamtreisezeit verlängert.

Andererseits können schnellere Transportmittel wie Flugzeuge viel teurer sein. Viele Menschen haben ein begrenztes Budget für ihre Reisen, und die Kosten für Transport, Unterkunft und Aktivitäten können sich schnell summieren. Die Suche nach Möglichkeiten, beim Reisen Geld zu sparen, kann für viele Menschen von höchster Priorität sein, aber es kann schwierig sein, erschwingliche Optionen zu finden, die dennoch Ihren Bedürfnissen entsprechen.

In diesem Artikel helfen wir Ihnen bei der Erstellung eines Tools, das Echtzeitdaten aufzeichnen und Ihnen bei der Erstellung einer gut geplanten Reiseroute helfen kann. Fangen wir also an!

Erstellen Sie Ihre optimale Reiseroute

Erstellen des Tools | Beispiel und Ansatz

Angenommen, wir wollen durch vier Städte reisen – Delhi, Mumbai, Chennai und Kalkutta. Wir beginnen damit, die erforderlichen Bibliotheken zu importieren, die Liste der Städte zu definieren, in die wir reisen möchten, und die Entfernung zwischen ihren verschiedenen Kombinationen mithilfe der Google Maps-API zu generieren.

Als nächstes definieren wir den API-Schlüssel für den Google Maps-Client, der für den Zugriff auf die API erforderlich ist. Anschließend erstellt es mit diesem API-Schlüssel einen Google Maps-Client.

 

# Geben Sie hier Ihren Google Maps-API-Schlüssel ein API_KEY = "Ihr API-Schlüssel" # Erstellen Sie einen Google Maps-Client gmaps = googlemaps.Client(key=API_KEY)

Der Code erstellt dann eine leere Liste namens distances, um die Entfernung zwischen jeder Kombination von Städten zu speichern. Anschließend wird eine verschachtelte for-Schleife verwendet, um jede Städtekombination zu durchlaufen. Wenn die beiden Städte unterschiedlich sind, verwendet es den Google Maps-Client, um die Entfernung zwischen ihnen zu bestimmen. Diese Entfernung wird zusammen mit den Namen der beiden Städte an die Entfernungsliste angehängt. Nachdem die for-Schleife abgeschlossen wurde, erstellt der Code Pandas-Datenrahmen aus der Liste der Entfernungen mit Spalten Von der Stadt, Zur Stadt und Entfernung.

# Erstellen Sie eine leere Liste, um die Entfernung zwischen jeder Kombination von Städten zu speichern. distances = [] # Schleife durch jede Kombination von Städten for i in range(len(cities)): for j in range(len(cities)): if i ! = j: # Verwenden Sie den Google Maps-Client, um die Entfernung zwischen den beiden Städten zu ermitteln. Städte[j], Entfernung['Zeilen'][0]['Elemente'][0]['Entfernung']['Wert']/1000]) # Erzeuge einen Datenrahmen aus der Liste der Entfernungen df = pd.DataFrame (Entfernungen, Spalten=['From City', 'To City', 'Distance']) # Drucke den Datenrahmen df

Wir erhalten die folgende Ausgabe

Reiseverlauf

Wir haben vier Verkehrsmittel in Betracht gezogen, die für den Transport durch diese Städte genutzt werden können – Bus, Flugzeug, Zug und Auto. Zur Demonstration, wir
übernimmt zufällige Kosten, die mit der Reise durch diese Städte über jedes Transportmittel verbunden sind. Teilen der Markdown-Version der folgenden Tabelle.

|index|Von Stadt|Nach Stadt|Entfernung|Transportart|Kosten|
|—|—|—|—|—|—|
|0|Delhi|Mumbai|1398|Bus|1000|
|1|Delhi|Mumbai|1398|Flugzeug|4000|
|2|Delhi|Mumbai|1398|Zug|1200|
|3|Delhi|Mumbai|1398|Auto|2500|
|4|Mumbai|Delhi|1401|Bus|1300|
|5|Mumbai|Delhi|1401|Flugzeug|3500|
|6|Mumbai|Delhi|1401|Zug|1200|
|7|Mumbai|Delhi|1401|Auto|2500|
|8|Delhi|Chennai|2187|Bus|2200|
|9|Delhi|Chennai|2187|Flugzeug|8000|
|10|Delhi|Chennai|2187|Zug|1800|
|11|Delhi|Chennai|2187|Auto|4000|
|12|Chennai|Delhi|2187|Bus|800|
|13|Chennai|Delhi|2187|Flugzeug|9000|
|14|Chennai|Delhi|2187|Zug|1800|
|15|Chennai|Delhi|2187|Auto|4000|
|16|Mumbai|Chennai|1337|Bus|1500|
|17|Mumbai|Chennai|1337|Flugzeug|4000|
|18|Mumbai|Chennai|1337|Zug|1200|
|19|Mumbai|Chennai|1337|Auto|2800|
|20|Chennai|Mumbai|1340|Bus|1800|
|21|Chennai|Mumbai|1340|Flugzeug|10000|
|22|Chennai|Mumbai|1340|Zug|1500|
|23|Chennai|Mumbai|1340|Auto|3000|
|24|Delhi|Kolkata|1541|Bus|1800|
|25|Delhi|Kolkata|1541|Flugzeug|6782|
|26|Delhi|Kolkata|1541|Zug|1400|
|27|Delhi|Kolkata|1541|Auto|3000|
|28|Kolkata|Delhi|1541|Bus|1700|
|29|Kolkata|Delhi|1541|Flugzeug|6500|
|30|Kolkata|Delhi|1541|Zug|1500|
|31|Kolkata|Delhi|1541|Auto|3200|
|32|Mumbai|Kolkata|1899|Bus|1900|
|33|Mumbai|Kolkata|1899|Flugzeug|6222|
|34|Mumbai|Kolkata|1899|Zug|1600|
|35|Mumbai|Kolkata|1899|Auto|5000|
|36|Kolkata|Mumbai|1900|Bus|1800|
|37|Kolkata|Mumbai|1900|Flugzeug|7047|
|38|Kolkata|Mumbai|1900|Zug|1800|
|39|Kolkata|Mumbai|1900|Auto|4800|
|40|Chennai|Kolkata|1663|Bus|1900|
|41|Chennai|Kolkata|1663|Flugzeug|7428|
|42|Chennai|Kolkata|1663|Zug|1200|
|43|Chennai|Kolkata|1663|Auto|4000|
|44|Kolkata|Chennai|1663|Bus|1750|
|45|Kolkata|Chennai|1663|Flugzeug|7100|
|46|Kolkata|Chennai|1663|Zug|1400|
|47|Kolkata|Chennai|1663|Auto|4500|

Um die Reiseroute zu erstellen, bitten wir den Benutzer, die Startstadt für seine Reise einzugeben. Nachdem der Benutzer die Startstadt eingegeben hat, filtert der Code den DataFrame so, dass er nur Zeilen enthält, in denen die Von der Stadt ist die Startstadt. Auf diese Weise können wir mit der Erstellung unserer Reiseroute ab dem vom Benutzer gewählten Startort beginnen.

Als nächstes wird der DataFrame nach sortiert Entfernung und Kosten Spalten, um sicherzustellen, dass wir der Suche nach der kostengünstigsten und effizientesten Route für die erste Etappe unserer Reise Priorität einräumen. Wir wählen dann die erste Zeile des resultierenden DataFrame aus, die die optimale Kombination von darstellt Von der Stadt, Zur Stadt, Entfernung und Kosten für die erste Etappe der Reise.

Die ausgewählte Zeile wird dann an einen neuen aufgerufenen DataFrame angehängt letzte_reise. Dieser DataFrame wird schließlich die gesamte Reiseroute für unsere Reise enthalten.

Als Nächstes erstellen wir eine modifizierte Version des ursprünglichen DataFrame namens geändert_df das schließt alle Städte aus, die bereits in der enthalten sind letzte_reise Datenrahmen. Das ist wichtig, weil wir dieselbe Stadt nicht zweimal besuchen wollen.

Eine While-Schleife wird dann verwendet, um durch die zu iterieren geändert_df DataFrame, bis alle Städte in den aufgenommen wurden letzte_reise Datenrahmen. Für jede Iteration filtern wir die geändert_df DataFrame nur zum Einschließen von Zeilen, in denen die Von der Stadt lernen muss die Zur Stadt der vorangegangenen Reisestrecke und der Zur Stadt nicht der Von der Stadt des vorherigen Beins. Dadurch wird sichergestellt, dass wir immer die nächste zu besuchende Stadt finden, die direkt mit der vorherigen verbunden ist.

Nachdem die nächste Stadt ausgewählt wurde, wird sie nach sortiert Entfernung und Kosten Spalten und angehängt an die letzte_reise Datenrahmen. Der Datenrahmen „modified_df“ wird dann aktualisiert, um die Städte auszuschließen, die im Datenrahmen „final_journey“ enthalten sind. Dieser Vorgang wird wiederholt, bis keine Zeilen mehr im Datenrahmen „modified_df“ vorhanden sind, was anzeigt, dass alle Städte besucht wurden.

final_journey = pd.DataFrame() # Bitten Sie den Benutzer, die Startstadt einzugeben Starting_city = input("Enter the start city: ") # Filtern Sie den DataFrame so, dass er nur Zeilen enthält, in denen „From City“ die Startstadt ist Starting_journey = df[ df['From City'] == Starting_city] # Sortieren der Daten nach den Spalten 'Distance' und 'Cost'. Starting_journey = Starting_journey.sort_values(by=['Distance', 'Cost']) # Wählen Sie die erste Zeile der Starting Journey Starting_Journey = Starting_Journey.iloc[0] # Anhängen der Start-Reise an die End-Reise Final_Journey = Final_Journey.append(Starting_Journey) # Erstellt einen modifizierten DataFrame, der die Städte in der End-Reise ausschließt. Modified_df = df[~df['From City '].isin(final_journey['From City'].unique())] # Verwenden Sie eine While-Schleife, um den Vorgang zu wiederholen, bis alle Städte besucht wurden, während len(modified_df) > 0: # Wählen Sie die nächste zu besuchende Stadt basierend auf die Spalten 'From City' und 'To City' next_city = modifyed_df[(modified_df['From City']].isin([final_journey['To City'].unique()[-1]])) & (~modified_df['To City'].isin([final_journey['From City'].unique()[-1]]))] # Sortiere die Daten durch die Spalten 'Distanz' und 'Kosten' next_city = next_city.sort_values(by=['Distance', 'Cost']) # Wähle die erste Zeile der nächsten Stadt next_city = next_city.iloc[0] # Hänge die nächste an city ​​to the final journey final_journey = final_journey.append(next_city) # Aktualisiere den modifizierten Datenrahmen, um die Städte in der letzten Reise auszuschließen. modify_df = df[~df['From City'].isin(final_journey['From City'].unique ())] # Endgültige Fahrt drucken print(final_journey) print('Total Cost',final_journey['Cost'].sum()) print('Gesamtstrecke zurückgelegt',final_journey['Distance'].sum(), 'km')

Erkundung der Fähigkeiten des erstellten Tools

Jetzt, da wir das Tool bereit haben, können wir es erkunden, um einige Reiserouten zu erstellen, indem wir unsere gewünschten Startziele auswählen. Bei gegebener Ausgangsstadt sollte uns die Ausgabe die optimale Reihenfolge von Städten liefern, die die zurückgelegte Entfernung und die Kosten minimiert.

Beginnen wir mit dem Startziel „Delhi“.

Reiseverlauf

Wie wir in der obigen Ausgabe sehen, optimiert der Code unseren Reiseplan und teilt uns mit, dass wir mit dem Bus von Delhi nach Mumbai und von dort nach Chennai und dann nach Kolkata fahren sollten, bevor wir mit dem Zug nach Delhi zurückkehren. Wenn wir dieser Route und diesem Transportmittel folgen, werden wir Rs ausgeben. 4900 bei einer Strecke von 5939 km.

Versuchen wir nun, „Chennai“ als Startziel einzugeben.

Reiseverlauf

Dabei stellt sich unsere optimale Reisereihenfolge heraus

Chennai – Mumbai – Delhi – Kalkutta – Chennai

Wenn wir die gesamte Reise mit dem Zug zurücklegen, können wir 5945 km zurücklegen, indem wir Rs ausgeben. 5500.

Anwendungsfälle der Reiseroute von Python

Es gibt mehrere Anwendungsfälle für ein Tool wie dieses:

  1. Planen Sie einen Urlaub in mehreren Städten: Wenn Sie eine Reise planen, bei der Sie mehrere Städte besuchen, kann Ihnen dieses Tool helfen, die kostengünstigste und effizienteste Art zu finden, zwischen ihnen zu reisen. Sie können Ihre Startstadt auswählen und das Tool erstellt eine Reiseroute, die sowohl die Kosten als auch die zurückgelegte Entfernung minimiert.
  2. Geschäftsreise: Wenn Sie häufig beruflich unterwegs sind, kann Ihnen dieses Tool dabei helfen, den günstigsten Weg von einer Stadt in eine andere zu finden. Sie können ganz einfach die Kosten und Entfernungen verschiedener Transportmöglichkeiten vergleichen und diejenige auswählen, die Ihren Bedürfnissen und Ihrem Budget am besten entspricht.
  3. Autofahrten: Wenn Sie einen Ausflug mit Freunden oder der Familie planen, kann Ihnen dieses Tool dabei helfen, die beste Route zu finden. Sie können Ihre Startstadt und die Städte eingeben, die Sie besuchen möchten, und das Tool findet den kostengünstigsten Weg dorthin.
  4. Rucksackreisen: Wenn Sie eine Rucksackreise planen, kann Ihnen dieses Tool dabei helfen, den günstigsten Weg zwischen verschiedenen Zielen zu finden. Egal, ob Sie mit dem Flugzeug, Zug, Bus oder Auto reisen, dieses Tool kann Ihnen helfen, Geld zu sparen.
  5. Reisebudgetierung: Wenn Ihr Reisebudget begrenzt ist, kann Ihnen dieses Tool helfen, die kostengünstigste Art zu finden, zwischen Städten zu reisen. Sie können ganz einfach die Kosten verschiedener Transportmöglichkeiten vergleichen und diejenige auswählen, die zu Ihrem Budget passt.

Dieser Code bietet eine einfache und effektive Lösung für die Erstellung optimaler Reiserouten durch Minimierung von Kosten und Entfernung. Durch die Verwendung von Echtzeit-Entfernungsdaten aus der Google Maps-API und die Kombination mit benutzerdefinierten Transportoptionen und -kosten ermöglicht dieses Tool den Benutzern, ihre Reisen einfach zu planen und die kostengünstigsten und effizientesten Routen zu finden. Im Folgenden finden Sie einige der wichtigsten Erkenntnisse aus diesem Artikel.

1. Die Reiseplanung kann entmutigend sein, weil es schwierig ist, das richtige Gleichgewicht zwischen Kosten und Entfernung zu finden.

2. Ein Tool, das die Google Maps-API verwendet, kann verwendet werden, um optimale Reiserouten zu erstellen, indem sowohl die Kosten als auch die zurückgelegte Entfernung minimiert werden.

3. Das Tool ermöglicht Benutzern die Eingabe ihrer Startstadt und erstellt eine Reiseroute basierend auf Echtzeit-Entfernungsdaten und einer vordefinierten Liste von Transportoptionen und -kosten.

4. Das Tool verwendet Python-Bibliotheken wie Pandas, um eine Reiseroute und die Google Maps-API zu generieren, die die Entfernung zwischen verschiedenen Kombinationen von Städten zurückgibt.

5. Mit dem Tool kann die Reiseplanung effizienter und kostengünstiger gestaltet werden. Darüber hinaus kann dieses Tool weiter verbessert werden, um zusätzliche Transportoptionen und Kostenschwankungen über verschiedene Zeitpläne hinweg zu berücksichtigen, wodurch der Reiseplanerstellung ein Element der Zeitoptimierung hinzugefügt wird.

Die in diesem Artikel gezeigten Medien sind nicht Eigentum von Analytics Vidhya und werden nach Ermessen des Autors verwendet.

Zeitstempel:

Mehr von Analytics-Vidhya