Prolog manual o etiquetado personalizado

Actualmente estoy escribiendo un solucionador para un problema de planificación de piso en Prolog y tengo algunos problemas con la parte de etiquetado.

El problema actual es que mis restricciones están publicadas, pero cuando inicio el etiquetado, lleva una eternidad encontrar una solución. Me gustaría traer algunas heurísticas.

Mi pregunta es, ¿cómo etiqueto manualmente mis variables? Me temo que después de definir una variable clpfd como esta:

X in Xinf..Xsup

y restringiéndolo, si hago algo como:

    fd_sup(X, Xmax),
    X = Xmax,
...

en mi etiqueta personalizada, no utilizaré la capacidad de retroceso de Prolog para probar los otros valores del dominio de X. Me equivoco ?

Además, ¿hay una forma más inteligente de etiquetar mis variables que escribir procedimientos de etiquetado personalizados? Mi idea de la heurística consistiría en probar los extremos de un dominio variable alternativamente (como max (X), min (X), max (X-1), min (X-1), etc.)

Espero que me pueda ayudar :)

Respuestas a la pregunta(5)

Su respuesta a la pregunta