Я пытаюсь распараллелить функцию в моей программе для измерения времени, но получаю ошибку и не знаю, как ее исправить.
Вот код:
def evolucionAutomata(automata, regla, numero_evoluciones):
if(numero_evoluciones == 0):
return 0
with Pool(4) as p:
automataEvolucionado = list(p.map(obtenerVecindario, automata, rotarDerecha(automata, 1), rotarIzquierda(automata, 1), lista_regla))**
print(automataEvolucionado)
evolucionAutomata(automataEvolucionado, regla, numero_evoluciones - 1)
def obtenerVecindario(casilla, casillaDerecha, casillaIzquierda, regla):
if( "X" in casilla ):
casillaBinaria = casilla.replace("X", "1")
if( "O" in casilla):
casillaBinaria = casilla.replace("O", "0")
if ("X" in casillaDerecha):
casillaBinariaDerecha = casillaDerecha.replace("X", "1")
if ("O" in casillaDerecha):
casillaBinariaDerecha = casillaDerecha.replace("O", "0")
if ("X" in casillaIzquierda):
casillaBinariaIzquierda = casillaIzquierda.replace("X", "1")
if ("O" in casillaIzquierda):
casillaBinariaIzquierda = casillaIzquierda.replace("O", "0")
vecindario = []
vecindario.append(casillaBinariaDerecha)
vecindario.append(casillaBinaria)
vecindario.append(casillaBinariaIzquierda)
vecindario = list(map(int, vecindario))
valorRetorno = evaluarVecindario(vecindario, regla)
return valorRetorno
Функции rotarDerecha и rotarIzquierda вращают автомат.
Ошибка:
automataEvolucionado = list(p.map(obtenerVecindario, automata, rotarDerecha(automata, 1), rotarIzquierda(automata, 1), lista_regla))
TypeError: map() takes from 3 to 4 positional arguments but 6 were given
Я написал многопроцессорный код из базового примера многопроцессорной обработки в python из многопроцессорная документация python .
Заранее спасибо.