Мне в основном нужно создать технику локального поиска, используя функцию стоимости. Мне нужно создать новую функцию, которая случайным образом меняет исходное решение в латинском квадрате, затем вычисляет стоимость и, если она лучше, чем исходное решение, меняются местами. Это нужно делать до тех пор, пока либо функция стоимости не станет равной 0, либо не будет выполнено достаточное количество итераций. Любая помощь вообще будет высоко ценится. Спасибо!!
def cost(sol):
nolist1 = [i for i in range(0,dim)]
costcol = []
missno = []
for i in range(0,dim):
nolist1 = [i for i in range(0,dim)]
for j in range(0,dim):
for k in range(0,len(nolist1)):
if sol[j][i] not in nolist1:
continue
elif sol[j][i] == nolist1[k]:
nolist1.remove(sol[j][i])
missno.append(nolist1)
costcol.append(len(missno[i]))
totalcost = sum(costcol)
return(totalcost,costcol,missno)
cost = cost(sol)