Está en la página 1de 2

SEUDOCÓDIGO CHALLENGE If el pedido no se ha completado en esa ruta then

JUAN FERNANDO CASTRO, MAYRA GARCIA


OPTIMIZACIÓN DE OPERACIONES Call imprimir ruta

SEUDOCÓDIGO ALGORITMO PROPIO End if

Loop while contador<contador de sku de cada pedido


Sub ContarSku()
Contar cantidad de sku que tiene cada pedido Ruta(j+1)= -1
Calcular distancias e imprimir ruta
Sub AsignarSku()
Asignar Sku en cada rack y solt con base en el sub Sub buscarRacks ()
OrdenarSku
Buscar sku del pedido en el rack que se ubico y su
Sub AsignarRuta() posición en el slot

For i=1 to numPedidos Sub VMC(partida, pedido, rack)


Contador=0, caja=0
For i=1 to CantidadSku(pedido)
Do
caja = caja + 1 Cond1=distancias(partida,datosPedido(i).rack)<min
Cond2=datospedido(i).visitados=false
if el pedido requiere más cajas then Cond3=volumencaja+datosPedido(i).volumen<=1
ruta(1)=nodo en el que se dejo la anterior caja
else If cond1 & cond2 & cond3 then
ruta(1)= -1 Min= distancias(partida,datosPedido(i).rack)
inicio=-1 VMC=i, rack=datosPedido(i).rack
end if
Sub VMCbandaTransportadora (partida,índice)
for j=2 to 1550
For i=1 to 3
siguiente=VMC(inicio,pedido,rack)
If distancias(partida,i)<min then
if siguiente<>0 then
Min= distancias(partida,i)
ruta(j)=datosPedido(siguiente).posicion VMC=i
Se calculan distancias y actualiza volumen de la caja y Índice=i
poner verdadero al sku atendido en el pedido
Contador=contador+1 SEUDOCÓDIGO ALGORITMO GENETICO
Inicio=rack
Ultimorack=siguiente Sub principalGenetico

Else Llama a la subrutina que genera la población, llama


subrutina que asigna FO y FA de cada población.
Ruta(j)=VMCbandaTransportadora(rack,índice) Llama subrutina que genera hijos y subrutina que realiza
Calcular distancias la mutación de los mismos; Actualiza la población con
Dejar punto en banda transportadora donde se dejo la los hijos pero cambia al peor hijo por el mejor papá.
caja
Sub GenerarPoblación
End if
Next j Genera una población de manera aleatoria
Function generarCromosoma

Genera un orden aleatorio en nuestro vector orden de los


skus, comparando que el mismo no haya sido asignado
anteriormente

Function assignId

Asigna un id a los cromosomas

Sub AsignarFOFAyProb

Calcula la función objetivo de cada cromosoma y su


función de adaptabilidad, así cómo la probabilidad de
que sea padre

Sub GenerarHijos

Asigna 2 papás distintos y llama a la subrutina de cruce

Sub cruce

Esta subrutina recibe la información de los dos papás,


realiza corte de información para entregarla al hijo de
papá uno y la transfiere igual, de papá 2 recibe los
valores faltantes en orden

Sub mutación

En caso de que el hijo se encuentre dentro de la


probabilidad de mutar, invierte 2 valores del vector

También podría gustarte