MineLink es una librería de estructura de datos para planificación minera, problemas de agendamiento y algoritmos para resolverlos.
El objetivo de MineLink es ayudar el desarrollo en el área de algoritmos para planificación minera al proveer un conjunto de herramientas y problemas bien definidos sobre los cuales trabajar. El objetivo de la librería es, en primer lugar, la facilidad de uso. Objetivos secundarios son: flexibilidad, capacidad de expansión y eficiencia.
MineLink está desarrollado en C++, pero también hay disponibles wrappers en Python de forma de que sea posible interactuar y expandir la librería en forma simple para experimentar. MineLink ha sido desarrollado gracias al financiamiento del Advanced Mining Technology Center y está en constante desarrollo.
Estructuras de Datos
MineLink provee varias estructuras de datos y herramientas para trabajar con ellas. Una de las estructuras más importantes es BlockModel, la cual permite almacenar (en memoria, archivos de texto o bases de datos) un conjunto de bloques con un número arbitrario de atributos numéricos. Otro ejemplo relevante es la estructura Precedence que permite modelar ángulos de talud y otras restricciones de diseño.
Problemas de Agendamiento o Modelos
En términos de problemas de agendamiento, MineLink actualmente implementa dos ejemplos principales:
- FinalPitInstance: Esta clase abstrae el problema de determinar el pit final, es decir, determinar el conjunto de bloques que respeta cierta restricción de talud y cuya suma de una valorización económica sea la máxima.
- SchedulingInstance: Esta clase abstrae una formulación muy general del agendamiento de bloques en un pit, con múltiples destinos por bloque y un número arbitrario de restricciones de precedencia, capacidad y mezcla (entre otras).
BOS2
Blending Optimization Sequencing and Scheduling es un conjunto de algoritmos diseñados para resolver un SchedulingInstance. BOS2 está implementado sobre MineLink y provee las herramientas para calcular agendamientos óptimos de al nivel de bloques y respetando todas las consideraciones impuestas por ésta. BOS2 utiliza Programación Lineal para expresar y resolver el problema de agendamiento.Algunas de las consideraciones del problema que son contempladas en BOS2 son:
- Restricciones de mezcla para material según destino o proceso, que deben ser mantenidas en rangos específicos (Por ejemplo: leyes, contaminantes, etc.)
- Restricciones de capacidad para cada componente del sistema minero. Por ejempo: horas de chancado, toneladas de transporte a nivel e mina, fase-banco, etc.
- Restricciones de ángulo de talud.
- Restricciones de accesibilidad (por ejemplo, a partir de rampas en bancos ya diseñados).
BOS2 también toma en consideración y utiliza stocks preexistentes como una fuente alternativa de mineral.
La salida de BOS2 es un agendamiento de los bloques en el tiempo y una asignación del destino o línea de procesamiento a ser seguida por el bloque que cumpla con todas las consideraciones anteriores y además optimice un criterio definido por el usuario (por ejemplo: VAN o producción total). En la siguiente imagen se aprecia un agendamiento producido por BOS2:
Otras Herramientas
La libreria MineLink provee una seria de algoritmos y herramientas para trabajar con las estructuras y problemas o modelos. Por ejemplo, la propia clase BlockModel es una clase muy rica que permite la creación y eliminación de columnas de información, lectura y escritura desde archivos de texto, cómputo de estadísticas básicas, creación de submodelos de bloques, etc.
Otras herramientas disponibles son:
- Creación rápida y simple de restricciones de precedencia, incluyendo ángulos de talud especificados como una rosetta.
- Agregación (rebloqueo) de bloques general.
- Visualización de modelos de bloque y superficies.
Otras Aplicaciones
La flexibilidad de MineLink ha permitido encontrar otras aplicaciones a problemas de minería. En particular, se ha implementado el cálculo de footprint óptimo para minería de Block/Panel Caving, junto con el cálculo de su envolvente económica. A continuación se aprecia una imagen del cálculo de un footprint para una mina de Block/Panel Caving:
Una imagen de las reservas extraíbles de un Block/Panel Caving, calculadas mediante el uso de MineLink, puede verse a continuación:
Más información sobre MineLink
Información adicional sobre MineLink está disponible aquí (Documentación de clases C++).