Skip to content

Instantly share code, notes, and snippets.

@aialenti
Last active December 14, 2019 17:49
Show Gist options
  • Save aialenti/740700802f23518abbb264c6a96f133a to your computer and use it in GitHub Desktop.
Save aialenti/740700802f23518abbb264c6a96f133a to your computer and use it in GitHub Desktop.
class TSP():
cities = None
santa = None
variables_dict = None
x = None
path = None
sec_constraints = 0
execution_time = 0
def __init__(self, population_lower_bound=10e5 * 1.5):
cities = pd.read_csv("worldcities.csv")
self.cities = cities.loc[cities["population"] >= population_lower_bound][
["lat", "city", "lng", "population"]].reset_index()
# Add Santa's house
santa_df = pd.DataFrame([["Santa's House", 66.550331132, 25.886996452, 10000]],
columns=["city", "lat", "lng", "population"])
# Add other cities with smaller population to improve the World coverage
reykjavik = cities.loc[(cities["city_ascii"] == "Reykjavik") & (cities["country"] == "Iceland")]
algiers = cities.loc[(cities["city_ascii"] == "Algiers") & (cities["country"] == "Algeria")]
brazzaville = cities.loc[(cities["city_ascii"] == "Brazzaville")]
dublin = cities.loc[(cities["city"] == "Dublin") & (cities["country"] == "Ireland")]
guatemala_city = cities.loc[(cities["city_ascii"] == "Guatemala City")]
ulaanbaatar = cities.loc[(cities["city_ascii"] == "Ulaanbaatar")]
wellington = cities.loc[(cities["city"] == "Wellington") & (cities["country"] == "New Zealand")]
port_moresby = cities.loc[(cities["city_ascii"] == "Port Moresby")]
juneau = cities.loc[(cities["city_ascii"] == "Juneau")]
edmonton = cities.loc[(cities["city_ascii"] == "Edmonton")]
juba = cities.loc[(cities["city_ascii"] == "Juba")]
stockholm = cities.loc[(cities["city_ascii"] == "Stockholm")]
copenhagen = cities.loc[(cities["city_ascii"] == "Copenhagen")]
oslo = cities.loc[(cities["city_ascii"] == "Oslo")]
abeche = cities.loc[(cities["city_ascii"] == "Abeche")]
kuala_lumpur = cities.loc[(cities["city_ascii"] == "Kuala Lumpur")]
kuching = cities.loc[(cities["city_ascii"] == "Kuching")]
tirana = cities.loc[(cities["city_ascii"] == "Tirana")]
volgograd = cities.loc[(cities["city_ascii"] == "Volgograd")]
belgrade = cities.loc[(cities["city_ascii"] == "Belgrade") & (cities["country"] == "Serbia")]
fairbanks = cities.loc[(cities["city_ascii"] == "Fairbanks")]
vilnius = cities.loc[(cities["city_ascii"] == "Vilnius")]
tartu = cities.loc[(cities["city_ascii"] == "Tartu")]
riga = cities.loc[(cities["city_ascii"] == "Riga") & (cities["country"] == "Latvia")]
nur_sultan = cities.loc[(cities["city_ascii"] == "Nur-Sultan")]
bamako = cities.loc[(cities["city_ascii"] == "Bamako")]
ouagadougou = cities.loc[(cities["city_ascii"] == "Ouagadougou")]
nouakchott = cities.loc[(cities["city_ascii"] == "Nouakchott")]
n_djamena = cities.loc[(cities["city_ascii"] == "N'Djamena")]
bangui = cities.loc[(cities["city_ascii"] == "Bangui")]
niamey = cities.loc[(cities["city_ascii"] == "Niamey")]
ljubljana = cities.loc[(cities["city_ascii"] == "Ljubljana")]
sofia = cities.loc[(cities["city_ascii"] == "Sofia")]
zagreb = cities.loc[(cities["city_ascii"] == "Zagreb")]
self.cities = pd.concat(
[self.cities, santa_df, dublin, reykjavik, algiers,
brazzaville, guatemala_city, ulaanbaatar, wellington,
port_moresby, juneau, edmonton, juba,
stockholm, copenhagen, oslo, abeche, kuala_lumpur,
kuching, tirana, volgograd, belgrade, fairbanks, vilnius,
tartu, riga, nur_sultan, bamako, ouagadougou, nouakchott,
n_djamena, bangui, niamey, ljubljana, sofia, zagreb]).reset_index()
self.cities = pd.concat(
[self.cities, santa_df]).reset_index()
return
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment