Problemes de restriccions

A vegades un problema d'un aspecte senzill resulta ser un trencaclosques gegant, amb nombroses opcions que poden ser combinades d'un nombre exponencial de maneres; per exemple, hi ha més formes de seqüenciar 60 tasques (60! = 60 x 59 x ... x 1) que àtoms a l'univers (uns 10 elevat a 80).

A causa de les restriccions existents, molt poques d'aquestes combinacions són possibles o òptimes. Aquests problemes de restriccions són omnipresents a la indústria, salut, educació, ordre públic, logística, etc. Les bones solucions a aquests problemes tenen un alt impacte sobre costos i beneficis, sobre el benestar i la productivitat de les persones, i també per al medi ambient.

Les restriccions dures o obligatòries són les que han de cumplir-se, per exemple, les capacitats o disponibilitats dels recursos (persones, màquines). Les restriccions toves expressen les propietats no desitjables a minimitzar i les desitjables a maximitzar. L'objectiu sempre és trobar una solució que acompleixi totes les restriccions dures i optimitzi les toves. De forma manual, fins i tot disposant de molt de temps, una persona solament acostuma a trobar solucions pèssimes, o cap en absolut. Fer servir ordinadors per a "provar totes les possibilitats" tampoc és possible, ja que es pot trigar bilions d'anys, fins i tot en un supercomputador. Per això es requereixen de solucions algorísmiques sofisticades.

Barcelogic vs. mètodes clàssics

Les tècniques de Constraint Programming (CP) es basen en anar imposant les restriccions més fortes primer (les heurístiques diuen quines), mentres es van podant les opcions incompatibles.

En les tècniques clàssiques d'Investigación Operativa (IO), el problema típicament es modela com un programa lineal sencer o mixte i es resol amb eines matemàtiques com el simplex.

A Barcelogic, primer escribim una especificació precisa del problema, fàcil d'entendre per al client i per a nosaltres, que després és tractada de forma automàtica pel nostre software basat en lògica sense necessitat de modelats, programacions o heurístiques com en CP o IO.

Això redueix dràsticament els costos d'implantació, especialment si hi ha moltes restriccions condicionals (excepcions, implicacions, regles, convenis, restriccions d'ordre entre tasques, etc.). Disposem de diverses funcionalitats que milloren l'eficiència i la qualitat de les solucions: aprenentatge automàtic de fallades durant la cerca, backjumping, i implementacions especialitzades.

Podems adaptar-nos fàcilment als canvis

En aquest món contínuament hi ha canvis. Sorgeixen noves restriccions, la importància de les restriccions existents canvia, i tots els dies (o minuts) ocorren imprevistos: persones o màquines no disponibles, retards en materials o tasques, etc.

Les nostres tècniques basades en lògica fan que sigui més fàcil, ràpid i barat adaptar-se als canvis i trobar les millors solucions temporals.

Davant la presa de decisions, el nostre software permet simular i analitzar ràpidament i de manera flexible les conseqüències de diferents escenaris, tals com l'increment o la reducció de determinats recursos.