1.8 IA i Cerca, l'espai de solucions possibles

Rebobinem una mica i analitzem millor el que ha passat en aquests 65 anys d’història de la IA per ser on som ara.

La IA es gesta com la ciència de les activitats intel·ligents i creix al voltant de buscar solucions per problemes difícils. És una disciplina molt transversal, amb aplicacions a pràcticament tots els àmbits, però els problemes que són objecte de la IA comparteixen tots ells una característica intrínseca de la qual arrenca tota la seva complexitat, i alhora, tota la seva potència: la cerca.

Exemple

Posem un exemple en forma d’imatge molt plàstica per entendre-ho fàcilment.

Classificar coses és una de les activitats més primàries de la ment humana. Tot el dia classifiquem de tot... culleres amb culleres i forquilles amb forquilles al calaix de la cuina, pantalons amb pantalons i jaquetes amb jaquetes a l’armari, bons clients amb bons clients, i els dolents amb els dolents, pacients sans amb sans, poc afectats amb poc afectats,... classifiquem de tot.

De fet el clustering és la tècnica d’IA que resol el problema de trobar grups d’objectes semblants dins un conjunt d’objectes desendreçats —deixeu-m’ho dir així. I s’ocupa d’aquest problema des de fa molt temps, justament perquè respon a una d’aquestes activitats intel·ligents —en aquest cas intensiva— que la IA es proposa de modelar.

Imaginem una persona d’aquestes que tenen una habitació feta una lleonera, que un bon dia decideix que vol endreçar la roba a l’armari.

Què farà?

Gira les cartes a veure què descobreixes

1. El més probable és que primer faci grupets de peces, les camises a una banda, els pantalons a l’altra...., mitjons, jaquetes.....

2. I que quan els tingui fets, busqui un espai per posar cada grup de coses a l’armari. Les camises penjades de la mitja barra, els pantalons de la barra llarga, les samarretes plegades en una lleixa....

3. Què ha passat aquí? Teníem una pila de peces de roba barrejades i n’hem fet grups.

I què faria una màquina que volgués endreçar l’armari?

Doncs com que la pobra no sap res de roba, el que d’entrada es podria plantejar és anar muntant totes les formes possibles d’agrupar els objectes i anar mirant per cada agrupació si les classes que li surten són bones, és a dir, si surten classes que tenen només pantalons, o només camises.  I anar provant... El que faria la màquina seria buscar entre totes les possibles combinacions, fins que trobés l’organització correcta.

Exemple

Quatre números a tall d’exemple: si tinguéssim l’habitació amb una barreja de cinc pantalons, cinc camises, cinc jaquetes, cinc samarretes i cinc foulards, hi hauria 1019 formes d’ordenar-les en cinc grups de coses!

I totes aquestes ordenacions seran dolentes menys una!

Totes tindran un pantaló —o més— al grup de les camises, i altres peces canviades de lloc, excepte una combinació.

Només una de totes les combinacions possibles col·locarà tots els pantalons junts, totes les camises juntes, totes les jaquetes, etc.

Només UNA d’entre totes les formes d’agrupar les 25 peces en 5 grups ens deixarà un armari ben endreçat quan assignem una zona de l’armari a cadascun dels grups fets. 

Això que un ésser humà fa en una estoneta un diumenge d’hivern a la tarda com aquell qui res —vencent la mandra, és clar—, a una màquina li costa........ moltes hores de computació

L’exemple anterior presenta el problema de la combinatòria associat a la cerca. Dimensionem-ho?

Exercici 1.2

Imagineu que teniu 2 pantalons (iguals) i 3 vestits (iguals). Volem repartir aquest vestuari en dues piles separats. Construeix totes les combinacions possibles en que podem organitzar les 5 peces de roba en les 2 piles.

Per fer-ho arrossega cada peça al calaix de la dreta o bé al de l’esquerra. Quan tinguis un repartiment fet, pots prémer el botó “Afegir combinació” i generar dos calaixos buits més per omplir-los amb un altre repartiment. Ves obrint noves combinacions fins que hagis trobat totes les possibles.

Pistes! No hi ha d’haver cap combinació repetida. Dins de cada pila l’ordre intern de les peces que hi posem és indiferent, no compta: pantaló-vestit-pantaló seria una pila igual a vestit-pantaló- pantaló. Els dues piles no tenen ordre. És a dir, les combinacions (pantaló-pantaló-vestit al calaix de l’esquerra i vestit-vestit al calaix de la dreta) es consideren iguals a (vestit-vestit al calaix de l’esquerra, pantaló-pantaló-vestit al calaix de la dreta). No deixeu cap calaix buit en cap solució.

Quina és la combinació que ens permetrà endreçar bé l’armari posant totes les peces d’una pila a la barra llarga de penjar, i totes les peces de l’altra pila a la barra curta?

El clustering és només un dels moltíssims tipus de problemes dels que s’ocupa la IA. Però la majoria s’enfronta al problema que acabem d’exposar. L’espai de solucions possibles on buscar la solució bona és combinatori. Anomenem espai de solucions possibles a una cosa semblant al que acabes de construir tu a l’exercici anterior.

Icàtia imagina un futur digital on petits robots domèstics puguin classificar la roba utilitzant algorismes de clustering i visió per computador, i posar-la a l’armari amb un braç robotitzat... tu creus que somnia?

Tornem a l’armari de l’EXEMPLE i mirem de calcular les implicacions computacionals que té dissenyar un algorisme que busqui la combinació correcta de grups de coses per la força bruta (construint totes les solucions possibles i triant la millor).

Exemple

Suposem que la màquina triga un segon —moltíssim menys que un humà— per fer una agrupació en cinc grups de les 25 peces de roba... si la nostra IA  hagués de provar totes les maneres d’agrupar les peces per trobar la solució bona (la que te tots els pantalons junts, totes les camises en un altre grup, i així....), trigaria ni més ni menys que 3.170.979.198 de SEGLES! computant de forma interrompuda per poder endreçar el ditxós armari! I això que ordenar 25 peces de roba en cinc grups, no són res!

En una botiga amb 100 peces de roba de tres classes diferents, hi ha... 1068 combinacions possibles per formar els tres grups! No hi ha vida que ho resolgui això...

Senzillament no és viable.

Per això s’establiran criteris per escapçar aquesta cerca de manera que no haguem de formar totes les combinacions possibles per triar —escurçarem l’espai de cerca— i a més, relaxarem les exigències, i si ens donen una agrupació amb alguna camisa posada entre els pantalons, mentre siguin poques les que estan canviades de grup, l’agrupació proposada també serà acceptable —no exigirem la millor solució, sinó el que s’anomena un subòptim, una de prou bona, però no caldrà que sigui la millor. Caldran doncs, criteris ( anomenats heurístics) per navegar de forma estratègica per aquesta mar de solucions possibles i no visitar-les totes ni de bon tros, a canvi de pagar el preu que potser no trobarem ben bé la millor, sinó una de semblant, però ho farem en uns tempos acceptables.

Els problemes que la IA resol involucren cerca, i una cerca no trivial. Cerca de la millor solució entre moltes, moltíssimes solucions possibles, que no es poden visitar totes fent força bruta per triar l’òptima —senzillament perquè n’hi ha massa.

És més, gairebé ens atreviríem a dir, que si un problema es pot resoldre sense implicar cerca, trobarem una altra ciència que identificarà una solució exacta, i probablement ho faci fins i tot millor que la que trobi la IA. És a dir:

la IA estudia problemes on hi ha un nombre de solucions possibles  enorme, molt combinatori.

Les solucions d’un problema d’IA, doncs, no es poden calcular totes en temps finit, de tantes com són, i a més, no sempre està molt clar quina és la millor. I així, els algorismes propis de la IA se les enginyen per aplicar criteris que permetin estalviar-se una enorme part d’aquesta cerca i trobin solucions satisfactòries, raonables, potser subòptimes, al problema, en uns temps acceptables pel dia a dia de les decisions que anem prenent... i ho fan.... a base d’estratègia.