Respuesta :

Using the computational knowledge in python it is possible to write a code that Given a name and a Python list of Cow objects

Writting the code in python:

def load_cows(filename):

     cow_dict = dict()

   f = open(filename, 'r')

   for line in f:

       line_data = line.split(',')

       cow_dict[line_data[0]] = int(line_data[1])

   return cow_dict

def greedy_cow_transport(cows, limit=10):

      trips = []

   cowsCopy = cows.copy()

   sortedCows = sorted(cowsCopy.items(), key=lambda x: x[1], reverse = True)

   while sum(cowsCopy.values()) > 0:

       ship = []

       total = 0

       for cow, value in sortedCows:

           if cowsCopy[cow] != 0 and value + total <= limit:

               ship.append(cow)

               total += value

               cowsCopy[cow] = 0

       trips.append(ship)

   return trips

def brute_force_cow_transport(cows,limit=10):

    trips = []

    possibilities = []

   for i in power_list:

       ship = []

       for j in i:

           ship_weights = []

           for k in j:

               ship_weights.append(cows[k])

               #print(ship_weights)

           ship.append(sum(ship_weights))

           #print(ship)

       if all(d <= limit for d in ship):

           possibilities.append(i)

     pruned_possibilities = []

   for k in possibilities:

       if k not in pruned_possibilities:

           pruned_possibilities.append(k)

   # now find the minimum list length:

   min_list_len = min(map(len, pruned_possibilities))

   for l in pruned_possibilities:

       if len(l) == min_list_len:

           return l

     

def compare_cow_transport_algorithms():

      greedy_start = time.time()

   greedy_results = greedy_cow_transport(cows, limit = 10)

   greedy_end = time.time()

   print('Greedy Algorithm time:', greedy_end -greedy_start)

   brute_force_start = time.time()

   brute_force_results = brute_force_cow_transport(cows, limit = 10)

   brute_force_end = time.time()

   print('Brute force time:', brute_force_end - brute_force_start)

   print('Greedy Algorithm results:', greedy_results)

   print('Number of trips returned by Greedy Algorithm:', len(greedy_results))

   print('Brute Force Algorithm results:', brute_force_results)

   print('Number of trips returned by Brute Force Algorithm:', len(brute_force_results))

   

See more about python at brainly.com/question/13437928

#SPJ1

Ver imagen lhmarianateixeira
Ver imagen lhmarianateixeira