Resolució de problemes i cerca
description
Transcript of Resolució de problemes i cerca
Resolució de problemes i cerca
Resolució de problemes
• “Problemes”: què són ???• “Resolució”: que és ???
http://www.britannica.com/eb/article-219081/artificial-intelligence
• What is intelligence? > Problem solving• Problem solving, particularly in artificial intelligence, may
be characterized as a systematic search through a range of possible actions in order to reach some predefined goal or solution.
Hipòtesi
• Heuristic Search Hypothesis. The solutions to problems are represented as symbol structures. A physical symbol system exercises its intelligence in problem solving by search – that is, by generating and progressively modifying symbol structures until it produces a solution structure. (Newell, A., Simon, H. A., (1976), Computer Science as Empirical Inquiry: Symbols and Search, Communications of the ACM, 19:3 113-126)
Les hipòtesis de la IA1) Els símbols físics• Posant-ho tot junt:
– Símbols: representen els elements significatius d'un problema
– Operacions: que operen sobre els símbols i permeten generar les solucions
– Cerca: per a seleccionar una solució entre les solucions possibles que es poden generar a partir de les operacions.
Esquema
• 1. Espai d’estats i representació d’un problema• Construcció d’una solució• El problema dels costos• Estratègies de cerca no informada• Cost i funció heurística• Grafs I/O• Cerca amb adversari: els jocs• Algorismes genètics
1. Espai d’estats i representació d’un problema
• (2) Com representar un problema• (1) Exemples de problemes• (3) Algunes classes generals de problemes
– satisfacció de restriccions
1.1. Alguns problemes
• El trencaclosques lineal– [3,4,1,2] -> [1,2,3,4] ???
• Camí mínim• Integració simbòlica de funcions
– Integració de: x2ex+x3 ? • Demostració de teoremes
– a*(b+c)=a*b+a*c ?
1.2. Modelització del problema
• Modelització de l'entorn del sistema
(entorn en el qual es mou el sistema)
• Modelització de les accions del sistema.
• Definició del problema.
1.2. Modelització del problema
• 1) Modelització de l’entorn en el qual es mou el sistema– ESTAT: L'entorn en un moment donat es
modelitza mitjançant el que s'anomena estat.
– És necessari saber quins són els estats possibles amb els quals treballarà un sistema. Hem de determinar com representarem (implementarem) un estat.
Exemple 1: Estats possibles en el trencaclosques lineal
• El nombre de seqüències possibles formades amb els quatre dígits {1,2,3,4} és 4!, per tant:
• Els estats possibles són 24: – {[1,2,3,4], [1,2,4,3], [1,3,2,4], [1,3,4,2],
[1,4,2,3], [1,4,3,2], [2,1,3,4], [2,1,4,3], [2,3,1,4], [2,3,4,1], [2,4,1,3], [2,4,3,1], [3,2,1,4], [3,2,4,1], [3,1,2,4], [3,1,4,2], [3,4,2,1], [3,4,1,2], [4,2,3,1], [4,2,1,3], [4,3,2,1], [4,3,1,2], [4,1,2,3], [4,1,3,2]}
1.2. Modelització del problema
• 2) Modelització de les accions del sistema.– Les accions d'un sistema es modelitzen
com a transicions entre estats. El conjunt de tots els estats possibles i les accions que actuen sobre aquests estats defineix l'espai d'estats.
– Factor de ramificació: nombre d'accions que es poden aplicar en els estats d'un problema.
Exemple 1Accions en el trencaclosques lineal
• Accions:– Intercanviar dret– Intercanviar centre– Intercanviar esquerra
• Exemple: [A,B,C,D]– [B,A,C,D]– [A,C,B,D]– [A,B,D,C]
Exemple 1Espai d’estats en el trencaclosques lineal
• Figura 2.1, p. 46
• En els espais d’estats, no hi ha estats repetits
1.2. Modelització del problema
• 3) Definició del problema– Situació actual: Estat inicial– On volem arribar: Funció objectiu
• Les funcions objectiu comproven la satisfacció dels requeriments exigits a un estat solució
Exemple 1Definició del problema en el trencaclosques lineal• Problema: donada la seqüència
[2,4,1,3] determinar els moviments per aconseguir una seqüència que sigui múltiple de dos.
• Definició del problema:– Estat inicial: [2,4,1,3] – Funció objectiu: funció que aplicada a un
estat correspon a provar si la seqüència acaba en 2 o en 4.
Exemple 1Definició del problema en el trencaclosques lineal• Problema: donada la seqüència
anterior ([2,4,1,3]), determinar els moviments per aconseguir la seqüència ordenada [1,2,3,4].
• Definició del problema: – Estat inicial: [2,4,1,3] – Funció objectiu: comprovar que l'estat
sigui [1,2,3,4].
Els altres exemples
• Camí mínim• Integració simbòlica de funcions• Demostració de teoremes
Classes de problemes
• Satisfacció de restriccions: – (constraint satisfaction problems - CSP)– Tenim un conjunt de variables, a les quals hem
d’assignar un valor. Hi ha restriccions. – Exemple de CSP:
• Problemes de configuració (alternativa que s’ha de triar: marca/model de cada component; amb restriccions: components que han d’encaixar, etc. )
• Determinar uns horaris (assignació professors, aules, assignatures; amb restriccions)
Satisfacció de restriccions
• Exemple: horaris– 2 professors: P1, P2– 2 assignatures: A1, A2– 2 aules: A1, A2– 2 hores: 8 i 9 del matí
Satisfacció de restriccions
• Exemples: – El problema criptoaritmètic
• DOS •+ TRES•-------• CINC
– El problema de les 8 reines
Classes de problemes
• Planificació:– Trobar una seqüència d’accions (un pla) que
permeti de fer una tasca concreta– Exemple:
C B
A B A C
Classes de problemes
• Exemple:• Estats: {A,B,C} sobre {A,B,C,Taula}• Accions:
– taula(objecte)– damunt(objecte1, objecte2)
C B
A B A C
Construcció d’una solució
• Es construeix el camí (la solució) en passos successius.
• Es disposa d’un conjunt de camins (solucions) parcials i a cada pas se’n prolonga un:– Es tria un dels camins del conjunt, i es
consideren les accions que són aplicables en el darrer estat del camí.
Construcció d’una solució
• Representació en forma d’arbre– Notació: arrel, nodes, fulles
• En un arbre:– Nodes:
• Conjunt de nodes ja expandits• Conjunt de nodes a expandir
– “Enllaços” entre nodes que corresponen a les accions que permeten passar d’un node a l’altre
• Frontera de l’arbre: – conjunt de nodes no expandits
Algorisme general de cercafunció cerca (problema, estratègia-de-cerca,
arbre-de-cerca-inicial) retorna solució ésarbre-de-cerca:=arbre-de-cerca-inicial;solució-trobada:=fals; mentre no(solució-trobada) i
hi-ha-nodes-per-expandir(arbre-de-cerca) fernode:=seleccionar-node (arbre-de-cerca);afegir-node-a-ja-expandits(node, arbre-de-cerca);si solució(problema, node) llavors solució-trobada:=cert; sino nous-nodes := expandir(node, problema);
afegir-nodes-a-per-expandir (nous-nodes,
estratègia-de-cerca,
arbre-de-cerca);fsi;
fmentre;si solució-trobada llavors retorna solució(arbre-de-cerca, node); sino retorna no-hi-ha-solució;fsi;
ffunció;
Algorisme general de cerca - notes
• Problema: – estat inicial, la funció objectiu i els operadors
• Estratègia de cerca: – com es tria un nou node
• Per iniciar la cerca:– Arbre inicial:
• un únic node que correspon a l’estat inicial
Consideracions sobre els algorismes de cerca
• Propietats:– Completesa:
• Si hi ha solució, es troba?
– Optimalitat: • Entre diverses solucions, troba la millor?
– Complexitat pel que fa a temps – Complexitat pel que fa a espai– Algorismes tot temps
• És tot-temps (any-time algorithm), quan pot trobar una solució per a qualsevol assignació de temps de computació.
Consideracions sobre els algorismes de cerca
• Aspectes d’implementació: – els estats repetits
• Tractaments possibles:– No permetre el retorn a l’estat d’on venim– No permetre generar camins amb cicles– No generar cap estat que ja hagi estat generat
Estratègies de cerca no informada
• Cerca en amplada• Cerca en profunditat• Cerca en profunditat limitada• Cerca iterativa en profunditat
http://dcvb.iec.cat/Alcover-Moll
• Incís:– 2. Esdeveniment secundari interposat entre
altres de més importants; cast. inciso. Fou un incís només en la nostra vida, Casp Proses 85. Etim.: pres del llatí incīsum, mat. sign. (literalment, ‘tallat’).
• Costos i l’eficiència dels algorismes
Costos i l’eficiència dels algorismes
• Grandària de les dades d’entrada– N variables d’entrada
• Contingut de les dades d’entrada– El temps d’execució pot variar segons la disposició de
les dades. • Per exemple, si volem ordenar una base de dades i els
elements ja estan ordenats.
• Codi generat / potència de l’ordinador– (s’ignora, factor multiplicatiu)
Costos i l’eficiència dels algorismes
• Exemples de càlcul de costs:• Exemple A: (cost que no depèn de les dades)
– s:=0;– per i=1 fins 10 fer– s:=s+i– fper
• Exemple B: (cost que depèn de les dades)– s:=0;– per i = 1 fins n fer– s:=s+i– fper
Costos i l’eficiència dels algorismes
• Imprimeix una matriu M de n*n elements– per i=1 fins n n vegades– per j=1 fins n n vegades (*
n)– escriu (M[i,j]) 1 (* n * n)– fper – fper
Costos i l’eficiència dels algorismes
• Multiplicació de 2 matris M1 i M2, Resultat: R– Per i=1 fins N– Per j=1 fins N– Per k=1 fins N– R[i,j]=M1[i,k]*M2[k,j] 1 (* n * n * n)– Fper– Fper– Fper
• Cost: N3
Costos i l’eficiència dels algorismes
• Trobar les permutacions de:– 2 elements: 12, 21– 3 elements: 123,132,213,231,312,321– 4 elements: 1234,1243,1324,1342,...
– N elements: N!
Costos i l’eficiència dels algorismes• Per calcular el cost d’un algorisme:
– De les instruccions més internes cap a fora– Assignació/entrada/sortida/aritmètiques O(1)– Composició seqüencial S1;S2:
• S1 i S2 amb costos O(f(n)) i O(g(n))• O(max(f(n),g(n)))
– Si C llavors S1 sino S2 fsi• C, S1 i S2 amb costos O(f(n)), O(g(n)), O(h(n))• O(max(f(n),g(n),h(n)))
– Mentre C fer S fmentre • C i S amb costos O(f(n)) i O(g(n)), i el nombre d’iteracions és
O(h(n))• O(h(n)*[max(f(n),g(n))])
Costos i l’eficiència dels algorismes• Formes de creixement:
– Constant O(1)– Logarítmic O(log n)– Lineal O(n)– Quasilineal O(n log n)– Quadràtic O(n2)– Cúbic O(n3)– Polinòmic O(nk) amb k conegut– Exponencial O(kn) amb k conegut– FactorialO(n!)
• O(*): fita superior, sense factors multiplicatius.
Costos i l’eficiència dels algorismes
• Cas exponencial (106 operacions / segon)– 86400 s/dia; 31536000 s/any
per k=5 kn Segons Anys
N=1 5
N=2 25
N=3 125
N=5 3125 0.003125
N=10 9765625 9.765625
N=15 3.052 1010 30517.578 ** 8.477105 hores
N=20 9.537 1013 9.536743 107 3.0240815
N=25 2.980 1017 2.9802322 1011 9450.255
N=50 8.88 1034 8.881784 1028 2.8163953 1021