Módulo 4 · Aplicaciones integradoras

15. Aplicaciones con bases en cálculo y optimización

¿Cómo paso de predecir a recomendar escenarios operativos?

Mate MathPlay · Flotación Cu · Archivo de trabajo: flotacion_cobre.xlsx

Flotación CuExcelPythonML básico

Aplicaciones con bases en cálculo y optimización

Integramos sensibilidad, acumulación, modelos predictivos y función objetivo para explorar decisiones operativas.

1. Pregunta de planta

Esta unidad cierra el recorrido: usamos cálculo y optimización para pasar de diagnóstico a recomendación operacional.

Idea central: un modelo puede estimar recuperación o riesgo, pero la optimización pregunta qué combinación de variables conviene probar dentro de rangos seguros.

2. Aplicación con bases en cálculo

Base de cálculoAplicaciónUso en decisión
Derivadas parcialesSensibilidad de recuperación a cada variable.Priorizar qué variable mover.
GradienteDirección de mayor cambio.Buscar mejora o evitar deterioro.
IntegraciónEfecto acumulado de aire o espumante.Medir exposición sostenida.
OptimizaciónMaximizar recuperación penalizando riesgo.Escenarios candidatos para evaluar.

3. Excel: función objetivo integrada

La función objetivo combina beneficio y penalización.

Objetivo = recuperacion_estimada - penalizacion_por_riesgo

Ejemplo

=recuperacion_estimada - 0.20*score_riesgo

Restricciones de ejemplo

flujo_aire entre 130 y 170 nivel_celda entre 65 y 85 ph entre 9.5 y 11.0 dosificacion_espumante menor a 45
En Excel se puede usar Solver para maximizar esta función objetivo respetando restricciones.

4. Python: optimizar con un modelo predictivo

import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestRegressor

archivo = "flotacion_cobre.xlsx"
df = pd.read_excel(archivo)

features = ["flujo_aire", "nivel_celda", "ph", "dosificacion_espumante", "p80"]
X = df[features]
y = df["recuperacion_cu"]

modelo = RandomForestRegressor(n_estimators=300, random_state=42)
modelo.fit(X, y)

rangos = {
    "flujo_aire": np.linspace(df["flujo_aire"].quantile(0.10), df["flujo_aire"].quantile(0.90), 10),
    "nivel_celda": np.linspace(df["nivel_celda"].quantile(0.10), df["nivel_celda"].quantile(0.90), 10),
    "ph": np.linspace(df["ph"].quantile(0.10), df["ph"].quantile(0.90), 6),
    "dosificacion_espumante": np.linspace(df["dosificacion_espumante"].quantile(0.10), df["dosificacion_espumante"].quantile(0.90), 6),
    "p80": [df["p80"].median()]
}

escenarios = []
for aire in rangos["flujo_aire"]:
    for nivel in rangos["nivel_celda"]:
        for ph in rangos["ph"]:
            for esp in rangos["dosificacion_espumante"]:
                for p80 in rangos["p80"]:
                    escenarios.append([aire, nivel, ph, esp, p80])

esc = pd.DataFrame(escenarios, columns=features)
esc["recuperacion_predicha"] = modelo.predict(esc[features])
esc["riesgo_simple"] = (
    0.02*esc["flujo_aire"] +
    0.04*esc["nivel_celda"] +
    0.12*esc["dosificacion_espumante"]
)
esc["objetivo"] = esc["recuperacion_predicha"] - 0.20*esc["riesgo_simple"]

esc.sort_values("objetivo", ascending=False).head(10)

5. Cierre general del curso aplicado

La ruta completa queda conectada:

Estadística: detectar estabilidad y riesgo Álgebra: organizar datos y construir modelos Cálculo: medir sensibilidad, dinámica y optimizar escenarios ML básico: aprender patrones y apoyar alertas
Advertencia profesional: una recomendación de IA no reemplaza criterio metalúrgico ni control operacional. Sirve para priorizar preguntas, escenarios y revisiones.

Mensaje final: la IA aplicada a minería se vuelve poderosa cuando la matemática ayuda a leer la planta, no cuando se usa como caja negra.

← Lección anteriorDescargar datosContinuar Curso 2 →