Crea tu primer solver#
Info
Si aún no has creado tu primer caso de uso, créalo primero, porque lo necesitarás en este paso.
Vamos a crear un solver de ejemplo para aprender cómo hacerlo.
El proceso de creación de un nuevo solver implica estos pasos principales:
- Elegir el caso de uso
- Registrar el solver en la plataforma
- Implementar el solver usando la plantilla de solver y almacenarlo en un repositorio Git
- Conectar tu repositorio con la plataforma
- Compilar el nuevo código del solver en la plataforma
- Ejecutar un job en la plataforma con tu solver
1. Elige el caso de uso#
Para este tutorial vamos a usar el caso de uso que creamos en el paso anterior, My first use case. Si aún no lo has creado, hazlo ahora.
2. Registra el solver en la plataforma#
Vamos a crear un solver de ejemplo para aprender cómo hacerlo:
-
Ve a la sección Solvers > My solvers desde el menú lateral izquierdo.

-
Después, en la esquina superior derecha, haz clic en el botón Add new solver.

-
Haz clic en Code repository, porque el código del solver se almacenará en un repositorio Git.

-
Sigue el asistente: primero, selecciona el caso de uso que vas a resolver. En nuestro caso seleccionaremos My first use case y haremos clic en el botón Next step:
-
Ahora, selecciona la configuración de hardware de nuestro solver. En nuestro caso seleccionaremos:
- No SDK y
- Classical CPU como proveedor:
-
Por último, completa la información básica sobre tu solver:
Completa toda la información obligatoria:
- Solver name: escribe “My first solver”.
- Description: escribe un texto descriptivo corto sobre tu solver: “Hello world solver for the Hello world use case used for learning purposes.”
- URN: es una ruta URL única para acceder a tu solver a través de la API. Escribe algo como “my-first-solver”. No uses espacios ni caracteres especiales que no deban aparecer en una URL, como estos: “/”, “&”, “%”, “=”
- Type of solver: selecciona Classical: CPU based, ya que en este ejemplo vamos a crear un solver clásico que se ejecuta en cualquier CPU.
- Estimated cost: es el coste estimado de ejecución en créditos. Vamos a establecer el coste en 0.02 créditos.
- Branch/tag: es la rama o etiqueta a la que quieres apuntar en tu repositorio. Por defecto se completa como main.
- Programming language: selecciona Python.
-
Finalmente, haz clic en el botón Add new solver.
Después de este paso, se te redirigirá a la página de detalle de tu solver, donde podrás continuar con los siguientes pasos.
3. Implementa el solver usando la plantilla de solver y almacénalo en un repositorio Git#
Un algoritmo sencillo o solver para ejecutar en la plataforma solo requiere estos archivos:
- qcentroid.py Archivo principal de entrada
- requirements.txt Archivo opcional de dependencias
Archivo: qcentroid.py#
Crea un archivo llamado qcentroid.py con el siguiente contenido y colócalo en la carpeta raíz de tu repositorio:
#
# QCentroid entrypoint
#
# DO NOT change the name of this file.
# DO NOT edit the signature of the run() function.
#
#
# TODO: Import here any non-standard packages you need or your custom modules
#
# Configure the QCentroid logging feature to see log traces in the dashboard
import logging
logger = logging.getLogger("qcentroid-user-log")
def run(input_data:dict, solver_params:dict, extra_arguments:dict) -> dict:
logger.info("Start of my solver...")
#
# Add your solver's code here, or call it from here if it is already implemented in another module
#
output = {"message": "Hello world!"}
logger.info("End of my solver, returning output.")
# And this is the output it returns. This output must be a dictionary.
return output
Así de simple. El motor de ejecución de la plataforma buscará este archivo y esta función de entrada, y la ejecutará proporcionándole los datos de entrada y otros parámetros opcionales.
Archivo: requirements.txt (opcional)#
Cuando tu solver use librerías de Python adicionales que no sean estándar, puedes añadir todas estas dependencias en este archivo siguiendo el formato de PiP.
Ejemplo de archivo de requisitos:
ortools
Para este tutorial puedes omitir este archivo.
Crea un repositorio Git y sube estos cambios#
Ahora, crea un nuevo repositorio Git y añade el archivo qcentroid.py a la carpeta raíz.
4. Conecta tu repositorio con la plataforma#
Ahora que tienes el código fuente de tu solver gestionado en un repositorio, puedes conectar este repositorio con la plataforma. Esto es necesario para permitir que la plataforma acceda al código fuente y pueda ejecutarlo.
Importante
Asegúrate de seguir todos los pasos del proceso siguiente, especialmente el paso 3.d, donde tienes que ir a tu servidor Git (GitHub, por ejemplo) y añadir la Deploy Key proporcionada por la plataforma.
Para conectar un repositorio con la plataforma:
-
Ve a la sección Solvers > Repositories desde el menú lateral izquierdo.

-
Después, en la esquina superior derecha, haz clic en el botón Connect a new repository.

-
Verás el asistente de conexión del repositorio, donde puedes realizar todos los pasos necesarios:
- Selecciona el solver My first solver.
- Completa la información del repositorio: nombre y URL SSH (una URL SSH válida en tu servidor Git).
- Genera un par de claves SSH para garantizar un acceso controlado y seguro a tu código. (El par de claves lo genera automáticamente la plataforma; no se requieren herramientas externas.)
-
Añade esta clave a tu repositorio
- Primero, necesitas acceso de administrador al repositorio para poder añadir la clave.
- Ve a tu servidor Git
-
Ve a la configuración del repositorio: Your repository > Settings

Y después a Deploy keys

-
Añade una nueva deploy key: pega la clave generada y escribe QCentroid Platform como título para indicar a quién das acceso con esta clave.
- Vuelve a la plataforma y haz clic en el botón Connect al final del asistente para completar el proceso.
En este momento, tu repositorio está conectado:

Además, acaba de iniciarse el proceso de Build de tu solver. Este proceso obtiene la última versión de tu código y compila el solver para ejecutarlo en jobs.
5. Pull & build del nuevo código del solver en la plataforma#
Cada vez que hagas cambios en tu solver, tendrás que recompilarlo en la plataforma para obtener la última versión.
La primera vez que conectas un solver, este proceso se ejecuta automáticamente, y puedes volver a compilar el solver siempre que lo necesites.
Ve a la página de detalle de tu Repository, desplázate hacia abajo y haz clic en el botón Build junto a tu solver.

Debajo, puedes consultar el historial de builds.
Espera hasta que este proceso aparezca como Finished y asegúrate de que el commit descargado sea el que acabas de subir al servidor Git.
Ahora, tu solver está listo para ejecutar jobs en la plataforma.
6. Ejecuta un job en la plataforma con tu solver#
El último paso será ejecutar en la plataforma el solver que acabas de crear.
Haz clic en el enlace de la sección Qué sigue para ejecutar tu primer job.
Qué has aprendido#
Ahora sabes cómo añadir un solver a QCentroid Platform.
También sabes que crear un solver requiere seis pasos:
Elegir el caso de uso
Registrar el solver en la plataforma
Implementar el solver usando la plantilla de solver y almacenarlo en un repositorio Git
Conectar tu repositorio con la plataforma
Compilar el nuevo código del solver en la plataforma


