Este problema parte de \(n\) pasteleros que son capaces de preparar \(m\) tipos diferentes de pasteles pero con distinto nivel de destreza para cada tipo de pastel. El algoritmo asigna los próximos \(n\) pedidos, uno para cada pastelero, de forma que se minimice el coste total.
Los datos de entrada del algoritmo son:
Este problema no puede resolverse mediante un algoritmo voraz, por lo tanto es adecuado para el esquema de ramificación y poda.
Vemos el siguiente ejemplo, con los siguientes datos de entrada:
En este caso el coste mínimo sería 20 y se correspondería con la asignación \([1,3,5,2,4]\).
Las estructuras de datos que se van a utilizar son:
Además, para podar los nodos utilizaremos las estimaciones:
En la pantalla de visualización podrás aprender el funcionamiento de este algoritmo. En primer lugar introduce el número de pasteleros y el número de tipos diferentes de pastel y pulsa RESET. A continuación introduce en la tabla el coste de hacer cada tipo de pastel por cada pastelero y pulsa ACTUALIZAR. Podrás ver cómo evoluciona el algoritmo y las estructuras de datos implicadas utilizando los botones de control de la parte superior.