









































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Esta guía de 50 ejercicios están diseñados para abordar problemas complejos utilizando Python. Cubre una amplia gama de temas avanzados, como optimización de producción con programación lineal, regresión lineal, simulación de Montecarlo, modelos de inventario, rutas críticas (CPM), teoría de colas (M/M/1), algoritmos de Dijkstra, suavizado exponencial, programación entera para turnos, árboles de decisión, modelos ARIMA, equilibrio de Nash, optimización de portafolio, análisis ABC de inventario. Cada ejercicio incluye enunciados detallados, soluciones implementadas en Python con bibliotecas como PuLP, scikit-learn, TensorFlow, y simulaciones con NumPy y SciPy. Está dirigido a estudiantes que buscan aplicar técnicas avanzadas de programación y análisis de datos en escenarios reales. Los ejercicios están organizados en orden de complejidad, desde problemas básicos de optimización hasta técnicas avanzadas como NSGA-II para optimización multiobjetivo y NLP para análisis de sentimiento.
Tipo: Exámenes
1 / 49
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!










































Enunciado: Una f´abrica produce tres productos (A, B, C) con: Requerimientos:
Enunciado: Dataset de ventas vs. publicidad (12 meses): Publicidad (kUSD) 1.2 2.1... 4. Ventas (kUSD) 25 38... 72 Objetivo: Calcular coeficientes (β 0 , β 1 ), R^2 y predecir ventas para $5kUSD.
Enunciado: Proyecto con: Costos: N (μ = 1M, σ = 100K) USD Beneficios: N (μ = 1, 5 M, σ = 200K) USD Objetivo: Simular 10,000 escenarios para P (Beneficio Neto < 0).
Enunciado: Par´ametros de inventario: D = 10, 000 unidades/a˜no S = $50 (costo pedido) H = $2 (costo almacenamiento/unidad/a˜no) Objetivo: Calcular Q∗^ (EOQ) y costo total anual.
Ejercicio 5: Ruta Cr´ıtica (CPM)
Enunciado: Tareas del proyecto: Tarea Duraci´on (d´ıas) Predecesoras A 3 – B 5 A C 2 A D 4 B, C Objetivo: Determinar ruta cr´ıtica y duraci´on total.
Ejercicio 6: Diagrama de Pareto
Enunciado: Defectos en producci´on: Defecto Frecuencia A 120 B 60
...... Objetivo: Graficar Pareto y identificar defectos cr´ıticos (80 % acumulado).
Ejercicio 7: Teor´ıa de Colas (M/M/1)
Enunciado: Sistema con: λ = 10 clientes/hora μ = 12 clientes/hora
Objetivo: Calcular: Wq: Tiempo promedio en cola P (n > 3): Probabilidad de ¿3 clientes en sistema
Ejercicio 8: Algoritmo de Dijkstra
Enunciado: Grafo de rutas (distancias en km): Nodo B C D A 4 2 – B – – 5 C 1 – 8 Objetivo: Encontrar ruta m´as corta A→D.
Ejercicio 14: Equilibrio de Nash
Enunciado: Matriz de pagos para duopolio: Empresa A/B Bajo Medio Alto Bajo (30,25) (20,35) (10,45) Medio (40,20) (25,30) (15,40) Alto (50,15) (30,25) (20,35) Objetivo: Encontrar equilibrios puros de Nash.
Ejercicio 15: Simulaci´on de L´ınea
Enunciado: Tiempos por etapa (distribuci´on normal): Etapa 1: N (5, 1) min Etapa 2: N (7, 2) min Etapa 3: N (4, 1) min Objetivo: Simular 1,000 iteraciones para P (Tiempo total > 20 min).
Ejercicio 16: Modelo de Transporte
Enunciado: Datos de transporte: Oferta: [100, 150, 200] unidades Demanda: [80, 90, 120, 160] unidades
Costos:
Objetivo: Soluci´on inicial con esquina noroeste y costo total.
Ejercicio 17: Sensibilidad en PL
Enunciado: Problema de maximizaci´on: m´ax Z = 3x + 5y s.a. x + 2y ≤ 10 x ≤ 4 x, y ≥ 0
Objetivo: Analizar rango ´optimo para c 1 (coeficiente de x).
Ejercicio 18: Algoritmo Gen´etico
Enunciado: Distancias entre 5 ciudades (km): A B C D E A 0 10 15 20 25 B. 10 0 35 25 30 .. ... ... ... ... ...
Objetivo: Resolver TSP con DEAP (poblaci´on=50, generaciones=100).
Ejercicio 19: Control de Calidad (Cpk)
Enunciado: Proceso con: Especificaciones: LIE=10, LSE= Par´ametros: μ = 15, σ = 1, 5 Objetivo: Calcular:
Cpk = m´ın
μ − LIE 3 σ ,
LSE − μ 3 σ
Ejercicio 20: Red Neuronal
Enunciado: Dataset de demanda con: Features: Precio, temporada, PIB Target: Demanda (unidades) Objetivo: Arquitectura:
Capa Configuraci´on Entrada 3 neuronas Oculta ReLU (10 neuronas) Salida 1 neurona lineal Metrica: RMSE < 10 % del promedio.
Ejercicio 21: An´alisis ABC de Inventario
Enunciado: 500 ´ıtems con consumo anual (USD): Distribuci´on lognormal (μ = 3, σ = 1) Clasificaci´on:
Ejercicio 27: Teor´ıa de Colas M/M/k
Enunciado: Call center con: λ = 50 llamadas/hora μ = 30 llamadas/hora (por servidor)
Objetivo: Calcular k ´optimo para P (espera) < 10 %.
Ejercicio 28: Red LSTM para Pron´ostico
Enunciado: Serie temporal de ventas (60 meses) con: Tendencia lineal + estacionalidad anual Ruido gaussiano (σ = 5 %) Objetivo: Configurar LSTM con:
Par´ametro Valor Capas 2 LSTM (64 unidades) Dropout 0. Epocas´ 100
Ejercicio 29: Optimizaci´on de Portafolio
Enunciado: Activos financieros: Retornos = [8 %, 12 %, 5 %] Covarianza =
Objetivo: Minimizar varianza para retorno del 10 %.
Ejercicio 30: Localizaci´on de Instalaciones
Enunciado: 5 ubicaciones potenciales: Ubicaci´on Costo Fijo (kUSD) Costo Variable (USD/u) 1 10 5 (^2). 15 4 .. ... ...
Objetivo: Seleccionar ubicaciones para servir 3 clientes con demanda [100, 200, 150].
Ejercicio 31: An´alisis de Supervivencia (Kaplan-Meier)
Enunciado: Datos de falla de 100 m´aquinas: Tiempos de falla: Distribuci´on Weibull(β = 2, η = 30 meses) Datos censurados: 30 % de observaciones Objetivo: Calcular:
S(t) =
i:ti≤t
1 − d nii
donde di = fallas en ti, ni = m´aquinas en riesgo.
Ejercicio 32: Sistema Multiagente (Log´ıstica Minera)
Enunciado: Simulaci´on con: 5 camiones 3 puntos de extracci´on 1 planta de procesamiento Velocidades: Uniforme(30, 50) km/h Objetivo: Implementar en Mesa y calcular:
M´etrica Valor Tiempo promedio ciclo X horas Utilizaci´on camiones Y %
Ejercicio 33: Problema de la Mochila
Enunciado: 20 proyectos con: Costos: [10, 30, ..., 25] kUSD Retornos: [15, 40, ..., 35] kUSD Presupuesto: 200 kUSD Objetivo: Resolver con programaci´on din´amica:
V [i, w] = m´ax(V [i − 1 , w], V [i − 1 , w − wi] + vi)
Ejercicio 37: Sistema de Recomendaci´on
Enunciado: Matriz 50 proyectos × 30 materiales: Ratings: 1-5 estrellas Sparsidad: 85 % Objetivo: Factorizaci´on SVD con:
ˆrui = μ + bu + bi + qiT pu
Ejercicio 38: Simulaci´on de L´ınea (SimPy)
Enunciado: Proceso de 3 etapas: Etapa Distribuci´on tiempo 1 Exponencial(λ = 0,2/min) 2 Uniforme(3,7) min 3 Normal(μ = 4, σ = 1) min Objetivo: Simular 8 horas y calcular: Throughput: Unidades/hora WIP promedio
Ejercicio 39: Regresi´on Log´ıstica
Enunciado: Dataset de 1000 clientes: Variable Tipo Rango/Escala Ingresos Num´erica [20k, 200k] USD Score cr´edito Num´erica 300- Morosidad Binaria 0/ Objetivo: Modelar con: P (Y = 1) = (^) 1 + e−(β 0 +^1 β 1 X 1 +β 2 X 2 )
Ejercicio 40: Flujo M´aximo en Redes
Enunciado: Red de distribuci´on de agua: [width=0.5]redagua.png Figura 1: Grafo con capacidades en L/s Objetivo: Aplicar algoritmo Ford-Fulkerson para encontrar flujo m´aximo fuente-sumidero.
Ejercicio 41: Modelo Lotka-Volterra
Enunciado: Competencia entre dos productos: dP 1 dt = 0,^1 P^1 −^0 ,^02 P^1 P^2 dP 2 dt = 0,^01 P^1 P^2 −^0 ,^1 P^2 Objetivo: Resolver num´ericamente con scipy.integrate.odeint y graficar: Evoluci´on temporal (0-12 meses) Diagrama de fase
Ejercicio 42: PCA para Control de Calidad
Enunciado: Dataset de 500 lecturas de sensores: 10 variables correlacionadas 5 % de observaciones an´omalas Objetivo: Reducci´on a 2 componentes principales y visualizaci´on con: Z = XW (donde W son autovectores)
Ejercicio 43: Algoritmo H´ungaro
Enunciado: Matriz de costos (horas) para asignaci´on:
Objetivo: Encontrar asignaci´on ´optima que minimice: X^5 i=
j=
Cij Xij
sujeto a P i Xij = 1 y P j Xij = 1.
Ejercicio 44: Inventario Just-in-Time
Enunciado: Par´ametros: Par´ametro Valor Demanda diaria Poisson(λ = 15) Lead time Uniforme(1,3) d´ıas Stock inicial 30 unidades Costo stockout $100/unidad Objetivo: Simular 30 d´ıas y calcular: Service Level = 1 − N°^ Nstockouts° d´ıas
Capacidad veh´ıculo: 100 unidades Objetivo: Calcular ahorros: sij = di 0 + d 0 j − dij y optimizar rutas.
Ejercicio 49: NLP para An´alisis de Sentimiento
Enunciado: 1,000 rese˜nas en espa˜nol: 600 positivas (4-5 estrellas) 400 negativas (1-2 estrellas) Objetivo: Pipeline con:
Paso Herramienta Tokenizaci´on NLTK Vectorizaci´on TF-IDF Modelado Naive Bayes Evaluaci´on Matriz de confusi´on
Ejercicio 50: Optimizaci´on Multiobjetivo (NSGA-II)
Enunciado: Problema: m´ax f 1 (x) = 3x 1 + 2x 2 (Beneficio) m´ın f 2 (x) = x^21 + x^22 (Emisiones) s.a. x 1 + x 2 ≤ 100 x 1 , x 2 ≥ 0
Objetivo: Implementar NSGA-II con: Poblaci´on: 50 individuos Generaciones: 100 Prob. cruce: 0. Prob. mutaci´on: 0.
1 from pulp import * 2 3 # Crear problema 4 prob = LpProblem ( " Maximizar_Beneficio " , LpMaximize ) 5 6 # Variables 7 x1 = LpVariable ( " Producto_A " , lowBound =0 , cat = ’ Integer ’) 8 x2 = LpVariable ( " Producto_B " , lowBound =0 , cat = ’ Integer ’) 9 x3 = LpVariable ( " Producto_C " , lowBound =0 , cat = ’ Integer ’) (^1011) # F u n c i n objetivo 12 prob += 10* x1 + 15* x2 + 20* x3 , " Beneficio_Total " 13 14 # Restricciones 15 prob += 2* x1 + 4* x2 + 3* x3 <= 100 , " Horas_Laborales " 16 prob += 3* x1 + 2* x2 + 5* x3 <= 150 , " Materiales " 17 18 # Resolver 19 prob. solve () 20 21 # Resultados 22 print ( f " Estado : { LpStatus [ prob. status ]} " ) 23 print ( f " ptimo : A ={ x1. varValue } , B ={ x2. varValue } , C ={ x3. varValue } " ) 24 print ( f " Beneficio M x i m o : $ { value ( prob. objective ) :.2 f } " ) Listing 1: Soluci´on con PuLP Salida esperada: Estado: Optimal ´Optimo: A=25.0, B=12.0, C=0. Beneficio M´aximo: $430.
1 import numpy as np 2 from sklearn. linear_model import LinearRegression 3 from sklearn. metrics import r2_score 4 5 # Datos
Ejercicio 5: Ruta Cr´ıtica (CPM) 1 from collections import defaultdict 2 3 tareas = { 4 " A " : { " duracion " : 3 , " predecesoras " : []} , 5 " B " : { " duracion " : 5 , " predecesoras " : [ " A " ]} , 6 " C " : { " duracion " : 2 , " predecesoras " : [ " A " ]} , 7 " D " : { " duracion " : 4 , " predecesoras " : [ " B " , " C " ]} 8 } 9 10 def calcular_ruta_critica ( tareas ) : 11 early_start = defaultdict ( int ) (^1213) for tarea in sorted ( tareas. keys () , key = lambda x : len ( tareas [ x ][ " predecesoras " ]) ) : 14 max_prev = max ([ early_start [ p ] + tareas [ p ][ " duracion " ] for p in tareas [ tarea ][ " predecesoras " ]] or [0]) 15 early_start [ tarea ] = max_prev 16 17 duracion_total = max ( early_start [ t ] + tareas [ t ][ " duracion " ] for t in tareas ) 18 return duracion_total 19 20 print ( f " D u r a c i n total : { calcular_ruta_critica ( tareas ) } d a s " ) Salida: Duraci´on total: 12 d´ıas
Ejercicio 6: Diagrama de Pareto 1 import matplotlib. pyplot as plt 2 import numpy as np (^34) defectos = { " A " : 120 , " B " : 60 , " C " : 30 , " D " : 15 , " E " : 10} 5 items = sorted ( defectos. items () , key = lambda x : -x [1]) 6 nombres , frecuencias = zip (* items ) 7 8 # Porcentaje acumulado 9 acumulado = np. cumsum ( frecuencias ) / sum ( frecuencias ) * 100 10 11 # G r f i c o 12 fig , ax = plt. subplots () 13 ax. bar ( nombres , frecuencias , color = ’ C0 ’) 14 ax2 = ax. twinx () 15 ax2. plot ( nombres , acumulado , color = ’ C1 ’ , marker = ’o ’) 16 ax2. axhline (80 , color = ’r ’ , linestyle = ’ -- ’) 17 18 ax. set_title ( " Diagrama de Pareto " ) 19 ax. set_ylabel ( " Frecuencia " ) 20 ax2. set_ylabel ( " Porcentaje Acumulado ( %)" ) 21 plt. show ()
pareto.png
Figura 1: Resultado del diagrama de Pareto
Ejercicio 7: Teor´ıa de Colas M/M/ 1 import math 2 3 lambd = 10 # Tasa llegadas ( clientes / hora ) 4 mu = 12 # Tasa servicio ( clientes / hora ) 5 6 # M t r i c a s 7 rho = lambd / mu 8 Lq = rho **2 / (1 - rho ) 9 Wq = Lq / lambd 10 P_mas_3 = rho **(3 + 1) 11 12 print ( f " Tiempo promedio en cola : { Wq *60:.1 f } minutos " ) 13 print ( f " Probabilidad >3 clientes : { P_mas_3 :.2 %} " ) Salida: Tiempo promedio en cola: 12.5 minutos Probabilidad >3 clientes: 40.19%
Ejercicio 8: Algoritmo de Dijkstra
Ejercicio 10: K-Means Clustering 1 import numpy as np 2 import matplotlib. pyplot as plt 3 from sklearn. cluster import KMeans 4 5 # Datos s i n t t i c o s 6 np. random. seed (42) 7 ingresos = np. random. normal (50 , 15 , 100) 8 gastos = ingresos * 0.6 + np. random. normal (0 , 5 , 100) 9 X = np. column_stack (( ingresos , gastos ) ) 10 11 # Modelo 12 kmeans = KMeans ( n_clusters =3). fit ( X ) 13 labels = kmeans. predict ( X ) 14 15 # G r f i c o 16 plt. scatter ( X [: ,0] , X [: ,1] , c = labels , cmap = ’ viridis ’) 17 plt. title ( " S e g m e n t a c i n de Clientes " ) 18 plt. xlabel ( " Ingresos Anuales ( kUSD ) " ) 19 plt. ylabel ( " Gastos Anuales ( kUSD ) " ) 2021 plt. grid ( True )plt. show ()
kmeans.png
Figura 2: Resultado de clustering con K-Means
Ejercicio 11: Programaci´on Entera para Turnos 1 from pulp import * 2 3 # Crear problema 4 prob = LpProblem ( " Asignacion_Turnos " , LpMinimize ) 5 6 # Variables 7 x1 = LpVariable ( " Matutino " , lowBound =5 , cat = ’ Integer ’) 8 x2 = LpVariable ( " Vespertino " , lowBound =4 , cat = ’ Integer ’) 109 x3^ =^ LpVariable ( " Nocturno " ,^ lowBound =3 ,^ cat = ’ Integer ’) 11 # F u n c i n objetivo 12 prob += 100* x1 + 120* x2 + 150* x3 , " Costo_Total " 13 14 # Restricciones 15 prob += x1 + x2 + x3 <= 10 , " Total_Trabajadores " 16 17 # Resolver 18 prob. solve () 19 20 # Resultados 21 print ( " A s i g n a c i n ptima : " ) 22 print ( f " Matutino : { x1. varValue } trabajadores " ) 23 print ( f " Vespertino : { x2. varValue } trabajadores " ) 24 print ( f " Nocturno : { x3. varValue } trabajadores " ) 25 print ( f " Costo m n i m o diario : $ { value ( prob. objective ) :.2 f } " ) Listing 2: Soluci´on con PuLP Salida esperada: Asignaci´on ´optima: Matutino: 5.0 trabajadores Vespertino: 4.0 trabajadores Nocturno: 1.0 trabajadores Costo m´ınimo diario: $1070.
Ejercicio 12: ´Arbol de Decisi´on 1 from sklearn. tree import DecisionTreeClassifier , plot_tree 2 from sklearn. model_selection import train_test_split 3 import numpy as np 4 5 # Datos s i n t t i c o s 6 np. random. seed (42) 7 X = np. random. rand (200 , 3) * [100 , 24 , 5] # Inversion , Duracion , Sector 8 y = ( X [: ,0] * 0.8 + X [: ,1] * 0.5 + np. random. normal (0 , 10 , 200) ) > 50 9 10 # Modelo 11 X_train , X_test , y_train , y_test = train_test_split (X , y , test_size =0.3) 12 model = DecisionTreeClassifier ( max_depth =3). fit ( X_train , y_train ) 13 14 # E v a l u a c i n 15 print ( f " P r e c i s i n : { model. score ( X_test , y_test ) :.2 %} " ) 16 17 # V i s u a l i z a c i n ( requiere graphviz ) 18 plt. figure ( figsize =(12 ,6) ) 19 plot_tree ( model , feature_names =[ " Inversion " , " Duracion " , " Sector " ] , (^2021) plt. show ()class_names =[ " No Rentable " , " Rentable " ] , filled = True )