Как определить Big O обозначения этого алгоритма? - PullRequest
0 голосов
/ 13 апреля 2020

Я изучал проблему коммивояжера и анализировал различные алгоритмы, которые пытаются ее решить. Однако я застрял при попытке проанализировать нотацию Big O по одному из алгоритмов (geneti c), которые я исследовал. Может кто-нибудь рассказать мне, как определить обозначение Big O этого алгоритма? Весь код можно найти здесь - https://pastebin.com/iLxZxNwE

def geneticAlgorithm(population, matrix, mutationRate, generations):
   result = []
   gen = createGen(matrix, population)
   rank = fitness(matrix, gen)
   rank.sort()
   print("Initial best route: ")
   print(rank[0])
   initBestRouteVal = rank[0]
   bestRouteVal = initBestRouteVal
   print(first(rank, gen))
   initBestRoute = first(rank, gen)
   bestRoute = initBestRoute
   result.append(rank[0])

   for i in range(0, int(generations)):
       gen = nextGeneration(gen, population, mutationRate)
       rank = fitness(G, gen)
       rank.sort()
       result.append(rank[0])
       if rank[0] < bestRouteVal:
           bestRouteVal = rank[0]
           bestRoute = first(rank, gen) 
...