Portada » Otras materias » Job Shop, Flow Shop y Flow Shop Permutacional: definiciones, soluciones y metaheurísticas para optimización
Descripción: Este es un caso específico y más restrictivo del Flow Shop. En este sistema, todas las piezas (o trabajos) siguen exactamente la misma secuencia de máquinas. Un ejemplo clásico es una cinta transportadora donde el orden físico de entrada se mantiene a lo largo de todo el proceso.
Soluciones posibles: n! (donde n es el número de trabajos/piezas).
Descripción: Al igual que en el permutacional, todas las piezas tienen el mismo orden de producción (visitan las etapas en el mismo orden), pero el transporte no es común ni fijo (no existe un mecanismo físico que imponga el mismo orden de forma rígida). Esto permite que el orden de procesamiento de las piezas pueda cambiar de una máquina a otra (adelantamientos si hay almacenes intermedios, por ejemplo).
Soluciones posibles: (n!)m (donde n es el número de trabajos y m el número de máquinas).
Descripción: Es el entorno más general y flexible. Cada pieza o trabajo tiene su propio recorrido o ruta específica por el taller, pasando por las máquinas en secuencias distintas según sus necesidades.
Soluciones posibles: (n!)m.
Inspiradas en la naturaleza vs. No inspiradas: Dependiendo de si imitan procesos biológicos (por ejemplo, la evolución) o procesos físicos (por ejemplo, el recocido).
Con memoria vs. Sin memoria: Si utilizan información obtenida dinámicamente de la búsqueda para usarla posteriormente (por ejemplo, Tabú) o si son «amnésicas» (por ejemplo, Recocido Simulado).
Deterministas vs. Estocásticas: Si utilizan reglas aleatorias durante la búsqueda o decisiones puramente deterministas.
Iterativas vs. Greedy (codiciosas): Si mejoran una solución completa iterativamente o construyen la solución paso a paso.
Basadas en poblaciones vs. Basadas en trayectorias: Si evolucionan una solución única o un conjunto de ellas simultáneamente.
Óptimo global: Algunos métodos estocásticos como la búsqueda aleatoria pura o el recocido simulado pueden, en teoría, converger al óptimo global si se cumplen condiciones ideales (por ejemplo, esquema de enfriamiento apropiado y tiempo de cómputo infinito). En la práctica, esto no garantiza obtener el óptimo en tiempo finito.
Óptimo local: La búsqueda local tiende a converger a un óptimo local (dependiendo de la definición de vecindario y criterios de parada). Se puede decir que la búsqueda local garantiza detenerse en un óptimo local respecto al vecindario explorado, pero rara vez encuentra el óptimo global sin mecanismos adicionales para escapar de cuencas de atracción.
Algoritmo Genético: No garantiza alcanzar el óptimo global ni que se «detenga» en un óptimo local exacto. Sin embargo, es eficaz para explorar regiones prometedoras del espacio de búsqueda y combinar buenos rasgos entre soluciones.
Permite movimientos hacia soluciones peores para escapar de óptimos locales y evitar una convergencia prematura. Si solo aceptara mejoras (como una búsqueda local «greedy»), el algoritmo quedaría atrapado en el primer pico o valle que encontrase.
Factores que influyen en la aceptación de empeoramientos:
Este es un método estocástico de selección proporcional a la fitness (calidad de la solución). Su objetivo es simular la supervivencia del más apto, pero dando una pequeña oportunidad a individuos menos aptos para mantener la diversidad genética.
Funcionamiento (procedimiento):
De esta forma, los individuos con mayor fitness tienen una mayor probabilidad de ser padres, pero no se garantiza su selección, evitando la convergencia prematura.
INICIO
1. Generar población inicial aleatoria (P)
2. Evaluar la aptitud (fitness) de cada individuo en P
3. MIENTRAS (no se cumpla criterio de parada) HACER
3.1 Seleccionar individuos de P para ser padres (ej. Ruleta/Torneo)
3.2 Cruzar los padres para generar descendencia (crossover)
3.3 Mutar la descendencia (con baja probabilidad)
3.4 Evaluar la aptitud de la nueva descendencia
3.5 Reemplazar la población antigua con la nueva (reemplazo)
FIN MIENTRAS
4. Devolver la mejor solución encontrada
FIN
Para Flow Shop Permutacional (codificación permutacional): Se puede usar el cruce OX (Order Crossover): se selecciona un segmento de un padre y se copia al hijo. Los huecos restantes se rellenan con los genes del otro padre en el orden en que aparecen, saltando los que ya están en el segmento copiado. También son válidos PMX o CX.
Codificación binaria: Cruce en un punto. Se elige un punto de corte aleatorio en los cromosomas de los padres y se intercambian las colas para formar dos hijos.
Las metaheurísticas se recomiendan para problemas de alta dimensionalidad (superior a 3 variables) o cuando los métodos exactos fallan debido a discontinuidades o ruido.
Consideraciones específicas para el caso de dos variables:
a) Representación y tamaño:
Vector binario: x = [x1, x2, …, x20] donde xi = 1 (aceptar pedido) o 0 (rechazar).
Posibles soluciones: 220 = 1.048.576.
b) Formalización:
Función objetivo: Maximizar Z = ∑i=120 Precioi·xi.
Restricción: ∑i=120 Horasi·xi ≤ 350.
Dominio: xi ∈ {0,1}.
c) Metaheurística (prioridad: calidad sobre rapidez):
Algoritmo: Recocido Simulado.
Parametrización: T0 alta para máxima exploración inicial; enfriamiento lento (esquema logarítmico o geométrico con α ≈ 0.99); cadenas de Markov largas (muchas iteraciones por temperatura) para aumentar la probabilidad de convergencia al óptimo global.
d) Vecindario:
Definición: Bit flip (seleccionar un pedido al azar e invertir su estado 0 ⇄ 1).
Justificación: Localidad fuerte; permite navegar el espacio de soluciones con cambios mínimos y graduales.
e) Tamaño del vecindario: 20 soluciones vecinas (una por cada pedido que se puede cambiar).
f) Soluciones infactibles:
Método: Función de penalización (exterior).
Ajuste: Z'(x) = Z(x) − λ·max(0, TiempoTotal − 350). Se penaliza el exceso de horas en la función objetivo en lugar de descartar la solución.
a) Representación y espacio de búsqueda:
Vector de enteros: x = [x1, x2, …, x40].
Codificación: xi ∈ {1,2,3,4,5} (indica el centro asignado a la máquina i).
Tamaño del espacio: 540 soluciones posibles.
b) Formalización matemática:
Objetivo: Minimizar la varianza de la capacidad entre centros.
Función a minimizar: f(x) = ∑j=15 (Cj(x) − u)2, donde Cj(x) es la suma de velocidades en el centro j y u es la media ideal (∑ vi/5).
c) Metaheurística (prioridad: calidad):
Algoritmo: Recocido Simulado.
Justificación: Excelente para problemas de partición con múltiples óptimos locales; evita estancamientos prematuros.
Parametrización: T0 calculada para aceptar alrededor del 50% de deterioros iniciales; enfriamiento geométrico lento (Tk+1 = 0.99 · Tk).
d) Vecindario:
Concepto: Reasignación simple (shift).
Operador: Tomar una máquina al azar y moverla a otro centro aleatorio distinto al actual.
Justificación: Movimiento mínimo («atómico») que permite el ajuste fino de cargas entre centros.
e) Tamaño del vecindario:
Cálculo: 40 máquinas × 4 destinos alternativos = 160 soluciones vecinas exactas.
a) Representación y espacio de soluciones:
Vector binario: x = [x1, x2, …, xN] donde xi = 1 (aceptar oferta) o 0 (rechazar).
Tamaño del espacio: 2N combinaciones posibles de ofertas.
b) Formalización matemática:
Objetivo: Maximizar Z = ∑i=1N Dineroi·xi.
Restricción: ∑i=1M Esmeraldai·xi ≤ Total disponible.
Dominio: xi ∈ {0,1}.
c) Metaheurística (selección):
Algoritmo: Algoritmo Genético.
Justificación: Ideal para representaciones binarias. Al trabajar con una población, explora combinaciones de ofertas («paquetes») eficientemente mediante el cruce.
d) Operadores genéticos:
e) Tratamiento de soluciones infactibles:
Método: Reparación voraz.
Procedimiento: Si una solución consume más esmeraldas de las disponibles, no se descarta. Se eliminan ofertas (cambiar 1 a 0) comenzando por las menos rentables (menor ratio Dinero/Esmeralda) hasta cumplir la restricción. Esto asegura soluciones válidas de alta calidad.
