Euristica
Collegamenti utili gratuiti
Da Wikipedia :
L'euristica (dalla lingua greca εὑρίσκω, letteralmente "scopro" o "trovo") è una parte dell'epistemologia e del metodo scientifico. È quella parte della ricerca il cui compito è quello di favorire l'accesso a nuovi sviluppi teorici o a scoperte empiriche. Si definisce, infatti, procedimento euristico, un metodo di approccio alla soluzione dei problemi che non segue un chiaro percorso, ma che si affida all'intuito e allo stato temporaneo delle circostanze, al fine di generare nuova conoscenza. È opposto al procedimento algoritmico. In particolare, l'euristica di una teoria dovrebbe indicare le strade e le possibilità da approfondire nel tentativo di rendere una teoria progressiva, e cioè in grado di garantirsi uno sviluppo empirico tale da prevedere fatti nuovi non noti al momento dell'elaborazione del nocciolo della teoria. Storicamente l'euristica è stata confusa per molti secoli con la giustificazione delle scoperte empiriche; infatti, ancora con l'elaborazione teorica di Francis Bacon (Francesco Bacone), lo sviluppo delle scienze veniva indicato con la possibilità di un elaborato teorico di sopravvivere al "vaglio negativo dell'esperienza". Nella sostanza, si riteneva che una teoria scientifica dovesse essere in grado di produrre ipotesi che potessero poi essere confermate o respinte dagli esperimenti. È facile vedere come questa concezione tendesse a fornire un criterio che giustificasse a posteriori le nuove scoperte, ma che non indicava strade concrete né operative per conseguirle. Nel corso del XX secolo il dibattito sulla teoria della demarcazione ha portato a distinguere più nettamente questi due aspetti; tuttavia, proprio questa distinzione ha portato la maggior parte del mondo scientifico a rinunciare all'elaborazione di un'unica teoria dell'euristica. A partire infatti dalla constatazione che lo sviluppo delle scienze avviene in modo diseguale e sulla base di evoluzioni di carattere molto diverso fra loro (cambiamenti teorici, risultanze empiriche impreviste, mutamenti culturali), si è infatti per lo più rinunciato a delineare un'unica teoria dell'euristica, anche in considerazione del fatto che saltuariamente nella storia della scienza si sono determinati casi di sviluppo teorico e scientifico a seguito di presupposti errati o apparentemente irrazionali (un esempio tipico può essere offerto dagli studi di Camillo Golgi che studiò come confutare la natura neuronale del sistema nervoso umano e finì col confermarla). Oggi, pertanto, gli studi sull'euristica vengono piuttosto concentrati "all'interno" delle singole scienze o teorie; si può così parlare di un'euristica, ad esempio, della matematica o della biologia. L'euristica delle scienze in generale rimane, invece, una questione solamente teorica o terminologica, nel senso che ben difficilmente vengono avanzate proposte di euristiche così generali se non ad un livello di astrazione tale da renderle operativamente poco rilevanti.
- Fine articolo Euristica
PROBLEM SOLVING
AGENTI RISOLUTORI DI PROBLEMI
Studieremo vari tipi di agente basato su obiettivi.
Gli agenti risolutori di problemi trovano sequenze di azioni che giungono a massimizzare la misura di prestazione.
Primo passo è la formulazione dell’obiettivo.
Obiettivo è un insieme di stati del mondo.
Inoltre è necessaria una corretta formulazione del problema , ossia degli stati e delle azioni da considerare.
Bisogna anche stabilire che tipo di azioni intraprendere e quali stati considerare in base all’obiettivo.
Es. se si vuole andare da Milano a Modena le azioni non devono essere del tipo “muovi il piede sinistro in avanti di 30 cm”: il livello di dettaglio va definito con chiarezza.
Per andare da Milano a Modena una buona idea è avere una mappa.
Potremo decidere che cosa fare esaminando sequenza possibili di azioni e scegliendo poi la migliore. Questo processo è chiamato ricerca.
Un algoritmo di ricerca prende come input un problema e restituisce una soluzione nella forma di una sequenza di azioni.
Le azioni possono essere eseguite dall’agente (fase di esecuzione).
FORMULAZIONE DEI PROBLEMI
Consideriamo il mondo dell’aspirapolvere.
Il mondo contiene solo 2 posizioni.
Ciascuna posizione può contenere sporcizia o non contenerla.
L’agente può essere in una o nell’altra posizione.
Ci sono 8 possibili stati.

L’agente ha 3 azioni possibili: Sinistra, Destra, Aspirare.
Obiettivo: aspirare tutta la sporcizia (insieme degli stati {7,8}) .
Supponiamo che il mondo sia accessibile, ossia che i sensori forniscano in formazioni complete sullo stato del mondo, e che l’agente conosca esattamente che cosa produce ciascuna delle sue azioni.
Se lo stato iniziale è 5, l’agente calcola che la sequenza [Destra,Aspira] perviene all’obiettivo.
Questo viene chiamato problema a stati singoli.
Se invece l’agente ha accesso limitato allo stato del mondo (es. non ha sensori), parte dal sapere solo che può essere in uno qualsiasi degli stati iniziali.
Ma può calcolare che l’azione Destra lo condurrà negli stati {2, 4, 6, 8}.
Può anche scoprire che la sequenza [Destra, Aspira, Sinistra, Aspira] conduce sempre ad uno stato obiettivo.
In questo caso l’agente ragiona su insiemi di stati : è un problema a stati multipli.
Talvolta l’agente non ha informazioni sufficienti per trovare una sequenza di azioni risolutiva. Poiché ogni azione cambia lo stato, e’ necessario cioè rilevare lo stato durante la fase di acquisizione.
Spesso deve affrontare un intero albero di possibili azioni, ciascun ramo è una situazione contingente che si potrebbe presentare : è un problema di contingenza.
Molti problemi reali sono problemi di contingenza. Richiedono algoritmi più complessi che vengono trattati nella parte dedicata alla pianificazione.
L’agente comincia ad agire e vede quali stati si verificano di fatto.
Infine ci sono agenti che non conoscono gli effetti delle proprie azioni. Deve scoprire gradualmente che cosa producono le sue azioni, apprendendo una mappa dell’ambiente utile per problemi successivi. Questo sono problemi di esplorazione, trattati nella parte dedicata all’apprendimento.
In questa fase considereremo solo problemi a stato singolo.
Un problema è definito da:
- stato iniziale
- insieme degli operatori
- test obiettivo
- funzione di costo di cammino
L’ operatore descrive un’azione in termini di quale stato sarà raggiunto eseguendo l’azione.
Si può usare anche la funzione successore S(x) che dà l’insieme di stati raggiungibili dallo stato x attraverso una qualsiasi azione.
Spazio degli stati di un problema è l’insieme di tutti gli stati raggiungibili dallo stato iniziale attraverso una qualsiasi sequenza di azioni.
Cammino è una qualsiasi sequenza di azioni da uno stato ad un altro.
Test obiettivo si applica ad una descrizione di stato per determinare se è lo stato obiettivo. Non sempre l’obiettivo è uno stato : lo scacco matto ad es. è una situazione che necessita dell’analisi dei possibili stati successivi.
La funzione costo di cammino g assegna un costo ad un cammino come somma dei costi delle azioni lungo il cammino
Output di un algoritmo di ricerca è una soluzione, cioè un cammino dallo stato iniziale allo stato che soddisfa il est obiettivo.
In un problema a stati multipli avremo un insieme di stati iniziali, un insieme di operatori, un insieme di stati raggiunti da qualsiasi stato. Un cammino collegherà un insieme di stati, una soluzione sarà un cammino che conduce ad un insieme di stati obiettivo.
Lo spazio degli stati è lo spazio dell’insieme degli stati.
MISURA DELLE PRESTAZIONI
L’efficacia di una ricerca si misura :
- dal fatto che si riesca o meno a trovare la soluzione
- dal fatto che si tratti o meno di una buona soluzione (con basso costo di cammino)
- dal costo di ricerca ( tempo e memoria richiesti)
Costo totale della ricerca è la somma del costo di cammino e del costo di ricerca.
In problemi con spazio degli stati piccolo è facile trovare soluzioni con il costo totale più basso. Per problemi complessi si tratterà di trovare un equilibrio fra costo di cammino e tempo richiesto.
Scelta di stati ed azioni.
Se dobbiamo andare da Milano a Mantova:
- stato iniziale: Milano
- test obiettivo: siamo a Mantova ?
- una soluzione: percorso Milano, Bergamo, Brescia ,Verona, Mantova.

- Un’altra soluzione: percorso Milano, Piacenza, Cremona, Mantova.

Dobbiamo scegliere una funzione di costo. Se scegliamo il numero di tappe, il secondo percorso ha un costo di cammino 3 ed è la miglior soluzione.
Per risolvere problemi è importante decidere che cosa inserire nella descrizione degli stati e che cosa tralasciare: questo è il processo di astrazione.
Ad esempio non vale la pena di inserire che cosa c’è alla radio durante il percorso.
Dobbiamo astrarre anche per decidere le azioni stesse: guardare fuori dal finestrino può essere tralasciata.
Con una buona astrazione si eliminano i dettagli inutili e si rende il problema trattabile.
Cominceremo ad esaminare problemi giocattolo, che permettono descrizioni esatte ed algoritmi facilmente confrontabili.
PROBLEMI GIOCATTOLO
Il GIOCO DELL’8
Abbiamo una tavola 3 x 3 con uno spazio vuoto.
Obiettivo è raggiungere la configurazione di destra.

Si tratta di scegliere operatori efficienti: meglio “lo spazio vuoto cambia posto con la tessera alla sua sinistra” che tanti operatori del tipo “la tessera 4 si sposta nello spazio vuoto”.
Definiamo quindi:
- Stato: posizione delle 8 tessere e dello spazio vuoto
- Operatori lo spazio vuoto si sposta a sinistra, destra, sopra, sotto
- Test obiettivo: lo stato rispecchia la figura di destra
- Costo di cammino: poiché ciascun passo costa 1, il costo coincide con la lunghezza del cammino.
Si può dimostrare che questa classe di problemi è NP-completa, infatti questo è un problema di verifica standard per algoritmi di ricerca AI.
PROBLEMA DELLE 8 REGINE
Il problema è posizionare 8 regine in modo che nessuna regina attacchi l’altra.
In questo caso il costo del cammino non interessa perché conta solo lo stato finale: si valuta quindi solo il costo di ricerca.
Dunque:
- Stati: qualsiasi configurazione sulla scacchiera da 0 a 8 regine.
- Operatori: aggiungi una regina in qualsiasi quadrato
- Test obiettivo: 8 regine sulla scacchiera , nessuna minacciata
- Costo del cammino: zero.
Le possibili sequenze da studiare sono 648.
E’ stupido però cominciare con stati iniziali in cui una regina è già minacciata, perché non si arriverebbe mai all’obiettivo.
Allora è meglio definire il problema così:
Stati: configurazioni da 0 a 8 regine , nessuna attaccata
Operatori: posizionare una regina nella colonna vuota a sinistra in modo che non sia attaccata.
Genereremo così solo stati senza attacchi, ma a volte non sarà possibile nessuna azione. Le azioni possibile sarebbero 2057.
MONDO DELL’ASPIRAPOLVERE
Consideriamo il caso a stati singoli con informazioni complete: l’agente conosce la propria posizione e quella della sporcizia.
- Stati: gli 8 stati della figura.
- Operatori: spostati a sinistra, spostati a destra, aspira.
- Test obiettivo: non lasciare sporcizia nei quadrati.
- Costo del cammino: ciascuna azione costa 1.
La figura mostra lo spazio degli stati con tutti i possibili cammini. Risolvere il problema comporta seguire le frecce fino a uno stato obiettivo.

MISSIONARI E CANNIBALI
Tre missionari e tre cannibali sono sulla sponda del fiume e la barca che li deve trasportare può portare una o due persone. Trovare il modo di spostare il gruppo senza lasciare un gruppo di missionari di numero inferiore a quello del gruppo di cannibali.
Dovremo astrarre sull’ambiente: non pensare a coccodrilli o a maltempo e non considerare le differenze fra un individuo e l’altro dello stesso gruppo.
- Stato: sequenza ordinata di tre numeri: numero di missionari, numero di cannibali, barche sulla sponda di partenza. Lo stato iniziale è (3,3,1).
- Operatori: sono al più cinque: portare sulla barca un missionario, un cannibale, due missionari, due cannibali, uno di ciascun gruppo.
- Test obiettivo: stato raggiunto (0,0,0).
- Costo di cammino: numero di traversate.
Un computer è facilitato perché non evita azioni che sembrano controproducenti.
PROBLEMI DEL MONDO REALE
RICERCA DI ITINERARIO
Sono problemi comuni in diverse applicazioni: sistemi di navigazione, pianificazione di viaggi aerei, instradamento di reti di computer.
Il costo di cammino per i viaggi aerei è complesso perché richiede di considerare prezzo, qualità dei posti, periodo del giorno, tipo di aereo, priorità di prenotazione, ecc.
PROBLEMI DI VIAGGIO E DEL COMMESSO VIAGGIATORE
La ricerca di itinerario può essere complicata da vincoli: visita ogni città della mappa almeno una volta prima di arrivare, oppure passa per la tale città.
Il problema del commesso viaggiatore (TSP, travelling sales person problem) è un famoso problema NP-hard nel quale ogni città va visitata una sola volta e l’obiettivo è trovare l’itinerario più breve.
CONFIGURAZIONE VLSI
Per progettare piastrine di silicio è necessario configurare il circuito minimizzando l’area e le lunghezze delle connessioni, per massimizzare le velocità.
Si tratta quindi di raggruppare le componenti in opportune celle, che devono essere disposte in modo da lasciare spazio per i fili di connessione fra celle.
NAVIGAZIONE DI ROBOT
Si tratta di una generalizzazione della ricerca di itinerario, perché un robot si sposta in uno spazio continuo con un insieme infinito di azioni e stati possibili.
Se il robot si muove su una superficie, lo spazio ha due dimensioni, ma potrebbe averne di più se il robot ha braccia e gambe.
E’ necessario utilizzare tecniche per rendere finito lo spazio di ricerca.
SEQUENZA DI MONTAGGIO
A partire dal robot Freddy del 1972, si è giunti a soluzioni ormai a livello industriale.
Il problema è trovare l’ordine in cui montare le parti di un oggetto. Gli algoritmi dovranno generare dei successori legali che portino a finire il montaggio, riducendo le sequenze possibili.
RICERCA DI SOLUZIONI
Troviamo la soluzione per il problema di ricerca di itinerario.
Partendo da Milano, e ad ogni tappa, dovremo determinare la generazione di un nuovo insieme di stati (espansione dello stato).
Nel nostro caso troveremo Bergamo e Piacenza. A questo punto dovremo decidere quale strada prendere.
Supponiamo di scegliere Piacenza: dovremo controllare se è lo stato obiettivo. Se non lo è, continuiamo l’espansione: Cremona, Lodi, Travo. Possiamo scegliere una di queste tappe o tornare indietro.
Strategia di ricerca è il metodo per scegliere quale stato espandere per primo.
Di fatto si crea un albero di ricerca. La radice è lo stato iniziale. I nodi foglia sono stati senza successori. Ad ogni passo l’algoritmo sceglie un nodo foglia da espandere.
Spesso il numero degli stati è limitato, ma il numero di nodi dell’albero è altissimo. Molti cammini sono stupidi perché tornano su se stessi. Un buon algoritmo di ricerca li evita.
Un nodo è una struttura dato composta da:
- stato corrispondente
- nodo che lo ha generato (nodo genitore)
- operatore applicato per generarlo
- numero di nodi del cammino dalla radice a questo nodo (profondità del nodo)
- costo di cammino dalla radice al nodo.
In un albero la collezione di nodi in attesa di espansione è detta confine.
La strategia di ricerca è la funzione che seleziona da questo insieme il nodo successivo da espandere.
STRATEGIE DI RICERCA
METODI DI RICERCA NON INFORMATA
Valuteremo le strategia in base a questi criteri:
- Completezza: la strategia garantisce di trovare una soluzione dove esiste ?
- Complessità temporale : quanto tempo ci vuole per arrivare alla soluzione ?
- Complessità spaziale: quanta memoria occorre per effettuare la ricerca ?
- Ottimalità: la strategia trova la soluzione di qualità massima dove esistono varie soluzioni ?
Descriveremo le strategie di ricerca non informata, o ricerca cieca, ossia quella ricerca in cui non si hanno informazioni sul costo del cammino. Si può solo distinguere fra stato obiettivo e stati non obiettivo.
Se si hanno più informazioni sul problema si parla di ricerca informata o di ricerca euristica, che sono ovviamente più efficaci.
RICERCA IN AMPIEZZA (BREADTH FIRST)
In questa strategia si espande prima il nodo radice e poi successivamente tutti i nodi generati.
Vengono esaminati prima tutti i cammini di lunghezza 1, poi quelli di lunghezza 2, ecc.
Se c’è soluzione, viene trovata, e trova per prima la soluzione del nodo obiettivo più in alto.
Dunque la ricerca in ampiezza è completa, e anche ottimale se il costo del cammino è funzione non decrescente della profondità del nodo.

Ma dobbiamo considerare complessità temporale e spaziale.
Pensiamo ad uno spazio degli stati in cui ogni stato possa essere espanso producendo b nuovi stati (fattore di ramificazione b). Al secondo livello avremo un totale di b2 nodi e così via.
Se la soluzione è dopo un cammino di lunghezza d, il numero massimo di nodi espansi sarà
1 + b + b2+… (bd – 1) = O(bd)
Naturalmente la soluzione potrebbe essere trovata a qualsiasi punto del livello d.
La complessità spaziale coincide qui con quella temporale, perché tutti i nodi foglia vanno mantenuti in memoria contemporaneamente.
Va tenuto presente che i requisiti di memoria sono qui un problema maggiore di quelli di tempo di esecuzione, purchè non si vada oltre una certa profondità. Si calcola infatti che su PC (calcoliamo 1000 nodi/sec e 100 byte/nodo) a profondità 6 ci vogliano 18 minuti di esecuzione, 31 ore (ma 11 Gb !) per profondità 8, ma 35 anni per la profondità 12:
problemi di complessità esponenziale possono essere risolti solo per istanze piccole.
RICERCA A COSTO UNIFORME
Modifichiamo la strategia espandendo sempre il nodo di confine con il costo di cammino g(n) più basso .
Nel caso g(n) = Profondità (n) abbiamo il caso della ricerca in ampiezza.
La prima soluzione trovata risulta la soluzione più conveniente per definizione, a patto che valga per ogni nodo n
g(SUCCESSORE(n)) ≥ g(n).

Dobbiamo arrivare da S a G, ed è indicato il costo per ogni operatore.
Si espande prima lo stato iniziale verso A,B,C.
Il cammino verso A è più economico, allora viene espanso generando il cammino SAG che è una soluzione anche se non ottimale.
Infatti ha costo 11.
Viene messa in coda dopo il cammino SB, che ha costo 5.
Viene allora espanso SB, generando SBG, che è più conveniente e viene dato come soluzione.
RICERCA IN PROFONDITA’
Questa ricerca espande sempre uno dei nodi al livello più profondo dell’albero, poi torna indietro ed espande i nodi più superficiali finchè trova un nodo senza espansione.



L’occupazione di memoria risulta modesta.
Per uno spazio degli stati con fattore di ramificazione b e profondità massima m, vanno memorizzati bm nodi (erano bd ella ricerca in ampiezza).
Questo si traduce in un fattore 109 a profondità 12.
La complessità temporale risulta essere O(bm) nel caso peggiore, ma spesso è più veloce della ricerca in ampiezza perché può trovare la soluzione cercando solo in una piccola porzione di spazio.
Vale anche il viceversa: può restare bloccata su cammini sbagliati, e se questi sono infiniti non troverà mai la soluzione.
Dunque la ricerca in profondità non è né completa né ottimale. Andrebbe evitata per alberi con profondità massima elevata o infinita.
RICERCA A PROFONDITA’ LIMITATA
Questa ricerca evita i problemi della precedente imponendo un taglio ad una certa profondità.
Ad esempio se ci sono 20 città, sappiamo che il limite di profondità è 19.
Dunque questa ricerca può essere completa, ma non è ottimale a meno che il limite di profondità non sia esatto.
Se l è il limite di profondità, la complessità temporale è O(bl ) e quella spaziale O(bl), analogamente alla ricerca in profondità.
RICERCA AD APPROFONDIMENTO ITERATIVO
Trovare un buon limite l (detto diametro dello spazio degli stati) è la parte difficile: senz’altro guardando una mappa di 20 città in cui cerchiamo un itinerario fra due città si troverebbe che il limite massimo è molto inferiore a 19.
La ricerca ad approfondimento iterativo prova tutti i possibili limiti di profondità a partire da l=0.

In questo modo combina i benefici della ricerca in profondità con quelli della ricerca in ampiezza.
E’ una ricerca completa ed ottimale , con la stessa occupazione di memoria modesta della ricerca in profondità.
Infatti il costo aggiuntivo è basso perché quasi tutti i nodi sono al livello inferiore, mentre l’espansione si ripete sui livelli superiori.
Il numero di espansioni per una ricerca a profondità limitata al valore d è
1 + b + b2 + …. + bd-2 + bd-1 + bd
Mentre nell’approfondimento iterativo i nodi del primo livello vengono espansi una volta, quelli vicini 2 ecc., fino alla radice, espansa d-1 volta: il numero totale è quindi
(d+1) 1 + d b +(d-1) b2 + …. + 3bd-2 + 2bd-1 + 1bd
In totale circa l’11 % in più di nodi. Quindi di nuovo la complessità temporale è O(bd) e quella spaziale O(bd).
Questa è la tecnica di ricerca preferita se lo spazio di ricerca è ampio e non si conosce la profondità della soluzione.
RICERCA BIDIREZIONALE
L’idea è quella di cercare sia in avanti (dallo stato iniziale) che all’indietro (dall’obiettivo) fermandosi quando le due ricerche si incontrano.
Se la profondità è d, la soluzione verrà trovata in O(2bd/2) = O(bd/2) passi, molto vantaggioso.
Il problema però sorge quando ci sono molti stati obiettivo e soprattutto quando di questi esiste solo una descrizione astratta (es. l’obiettivo scacco matto).
Inoltre deve esistere un modo efficiente per controllare se un nuovo nodo compare già nell’altra metà della ricerca.
In ogni caso almeno una delle due metà deve essere tutta conservata in memoria: la complessità spaziale è O(bd/2).
Infine bisogna stabilire che tipo di ricerca fare per ciascuna metà.
STATI RIPETUTI
E’ importante in una ricerca non perdere tempo ad espandere stati già esaminati in un altro cammino.
Spesso questo permette di rendere finiti alberi di ricerca altrimenti infiniti, o di generare una riduzione esponenziale.
I modi per affrontare gli stati ripetuti sono:
- Non generare successori che coincidano con il genitore (non tornare sullo stesso stato)
- Non generare successori che coincidano con un loro antenato (non creare cammini con cicli)
- Non generare stati già generati : per far ciò ogni stato generato deve essere tenuto in memoria.
Si tratta di bilanciare il costo della memorizzazione O(s) con quello della ricerca stessa.
RICERCA CON SODDISFACIMENTO DI VINCOLI (CSP, Constraint Satisfaction Problem)
Questo tipo di problemi aggiunge proprietà strutturali da soddisfare.
Gli stati sono definiti dai valori di variabili e il test obiettivo specifica un insieme di vincoli.
I vincoli sono unari se riguardano una sola variabile, binari se coppie di variabili (es. il problema delle 8 regine).
Ciascuna variabile ha un dominio (insieme di valori possibili) discreto o continuo.
8 regine:
Sia V1 la riga occupata dalla prima regina nella prima colonna
V2 la riga occupata dalla seconda regina nella seconda colonna.
Domini di V1 e V2 sono { 1,2,3,4,5,7,8}.
Vincoli di non attacco fra V1 e V2 : espresso dalle coppie di valori consentiti:
{ <1,3>,<1,4>,…<2,4>…..}. Ciò esclude 22 combinazioni su 64.
Vincoli con variabili continue richiedono trattazioni algebriche complesse. Molti problemi sono NP completi.
La struttura del problema aiuta ad eliminare parte dello spazio di ricerca, sfruttando il fatto che il test obiettivo è decomposto in un insieme di vincoli.
METODI DI RICERCA INFORMATA
RICERCA BEST FIRST
Se applichiamo conoscenza al problema di ricerca possiamo migliorare le prestazioni.
E’ importante determinare quale nodo espandere per primo.
La conoscenza per determinarlo è fornita da una funzione di valutazione.
Quando i nodi sono ordinati in modo che venga espanso prima quello con valutazione migliore, la strategia è detta ricerca best-first.
La funzione di valutazione non è perfetta, o non si avrebbe ricerca.
Due approcci:
- espandere il nodo più vicino all’obiettivo
- espandere il nodo sul cammino di soluzione con costo minimo.
RICERCA INGORDA (GREEDY)
Vogliamo minimizzare il costo stimato per raggiungere l’obiettivo.
Una funzione che calcola questa stima di costo è detta funzione euristica h :
h(n) = costo stimato del cammino più conveniente dal nodo n all’obiettivo
E’ richiesto che sia
h(n) = 0 se n non è un nodo obiettivo.
Le funzioni euristiche sono specifiche per ciascun problema.
Nota.
Il termine “euristica” venne usato per la prima volta nel 1957 da Polya per i metodi di dimostrazione automatica di teoremi matematici.
Tali metodi spesso non sono automatizzabili senza regole ad hoc.
Tuttavia euristico non significa non deterministico: è sempre un algoritmo, ma non dà garanzie né sul fatto di trovare la soluzione né sul tempo che impiegherà.
Nei sistemi esperti le euristiche sono regole “empiriche” date dagli esperti per trovare soluzioni senza ricorrere alla ricerca esaustiva.
E’ corretto dire che euristica è una tecnica che migliora le prestazioni di un algoritmo di ricerca nei casi di media difficoltà, non necessariamente in quelli difficili.
Nel caso della ricerca di itinerario, una buona funzione euristica è la ricerca in linea d’aria dall’obiettivo:

hDLA(n) = distanza in linea d’aria tra il nodo n e la posizione dell’obiettivo.
La ricerca minimizza il costo stimato dell’obiettivo.
Vogliamo trovare il miglior percorso fra Arad e Bucarest.
Secondo questa euristica, il primo nodo da espandere sarà Sibiu, poi Fagaras, poi Bucarest.

Tuttavia questo metodo non è ottimale: infatti il cammino così trovato è più lungo di 32 km rispetto a quello attraverso Rimnicu e Pitesti. Ma questo cammino non è stato trovato perché Fagaras è più vicina a Bucarest in linea d’aria rispetto a Vilcea.
La strategia preferisce assicurarsi il boccone più grosso prima possibile senza valutare se questa sia la mossa davvero migliore alla fine: per questo si chiama ricerca ingorda.
In genere gli algoritmi greedy danno buone prestazioni, anche se possono creare false partenze: ad es. se si parte da Iasi , l’euristica impone di espandere Neamt, vicolo cieco.
Dunque la ricerca greedy non è ottimale.
Inoltre è incompleta perché può cominciare su un cammino infinito e non tornare più indietro.
Complessità temporale nel caso peggiore: O(bm) come la ricerca in profondità, con m profondità massima.
I nodi vanno tutti tenuti in memoria, per cui la complessità spaziale è di nuovo O(bm) .
Ma con una buona euristica questi valori possono essere molto ridotti.
RICERCA A*
Abbiamo visto la minimizzazione del costo del cammino g(n) (ottimale, completa, inefficiente) e la minimizzazione del costo stimato dell’obiettivo h(n) (efficiente ma non ottimale e non completa).
Proviamo ad unire le due funzioni di valutazione:
f(n) = g(n) + h(n)
g(n)= costo del cammino dal nodo iniziale al nodo n
h(n)= costo stimato del cammino da n all’obiettivo più conveniente,
quindi
f(n) = costo stimato della soluzione più conveniente attraverso n.
Tenteremo per primo il nodo con il valore più basso di f.
Si può dimostrare cha questa ricerca è completa e ottimale pur di applicare una restrizione su h :
h non deve sopravvalutare mai il costo della soluzione. In questo caso h è detta euristica ammissibile.
La ricerca best-first con euristica ammissibile è detta ricerca A* .
Nel caso visto, hDLA è un’euristica ammissibile perché la linea retta è il percorso più breve fra due punti.
Allora vediamo che applicando f = g + h , la ricerca A* questa volta da Sibiu si espanderà Rimnicu invece che Fagaras.

ALTRE FUNZIONI EURISTICHE
ROMPICAPO DELL’8
Mediamente la soluzione arriva in 20 mosse.
Il fattore di ramificazione è circa 3 : 4 mosse possibili quando il vuoto è al centro, 3 se vicino al bordo, 2 se in angolo.
Dunque una ricerca esaustiva di profondità 20 darebbe 3 20 = 3.5 x 10 9 stati.
Ma ci sono solo 9! = 362.880 collocazioni possibili, numero cui si potrebbe giungere togliendo le ripetizioni di stati.
Cerchiamo una ricerca con funzione euristica.
Due alternative:
- h1 = numero di tessere in posizione sbagliata . h1 è un’euristica ammissibile, perché ogni tessera sbagliata va spostata almeno una volta.
- h2 = somma delle distanze delle tessere dalle posizioni obiettivo. Si tratterà della somma delle distanze verticali e orizzontali (distanza Manhattan). h2 è ammissibile perché qualsiasi mossa sposta la tessera più vicina all’obiettivo.
Come scegliere fra queste due euristiche ?
Per determinare la qualità di un’euristica si usa il fattore di ramificazione effettivo b* .
Sia N il numero di nodi espansi dalla ricerca e d la profondità. Allora b* è il fattore di ramificazione necessario per contenere N+1 nodi:
N+1 = 1+ b* + b*2 +…..+ b*d .
Una buona euristica dovrebbe avere b* vicino ad 1.
Per verificarlo si prendono varie istanze del problema e sperimentalmente si misura b* .
Nel caso di h1 ed h2 si sono generati 100 casi con lunghezza di soluzione 2, 4, …, 20 e sono stati risolti con A* e h1, A* e h2, e ricerca non informata ad approfondimento iterativo.
Il risultato di b* mostra che h2 è meglio di h1 (e la ricerca non informata è molto peggiore).
Poiché per qualsiasi nodo h2>h1 per definizione, ( h2 domina h1), si può dimostrare che A* usando h2 espande in media un numero minore di nodi, quindi h2 è sempre migliore di h1:
è sempre meglio usare un’euristica con valori più alti (purchè non sopravvalutati).
Resta il problema di come costruire le euristiche in modo automatico .
Si possono generare tante euristiche e si cerca quella migliore.
Se nessuna domina le altre, si cerca
h(n) = max(h1(n),…,hm(n))
ossia l’euristica più accurata sul nodo in questione.
Un altro modo di trovare euristiche è per via statistica.
Date 100 configurazioni di un problema, si possono trovare correlazioni fisse fra valore di un’euristica e profondità della soluzione.
Se l’obiettivo è da descrivere (es. scacco matto), si possono trovare caratteristiche rilevanti connesse all’obiettivo: es. numero di pezzi rimanenti, tipo di pezzi rimanenti, ecc.
In tal caso si assume che la funzione di valutazione sia una combinazione lineare delle caratteristiche.
Ci vorrà poi un algoritmo per assegnare dei coefficienti a queste caratteristiche: es. la propria regina avrà un grande coefficiente positivo, il pedone avversario un piccolo coefficiente negativo.
Infine bisogna considerare che il calcolo dell’euristica non deve essere più costoso dell’espansione di molti nodi, o alla fine non sarebbe conveniente.
EURISTICHE PER I PROBLEMI CSP
Nei problemi di soddisfacimento di vincoli è utile trovare euristiche per selezionare una variabile da istanziare e scegliere un valore della variabile.
PROBLEMA DI COLORAZIONE DI UNA MAPPA
Usiamo tre colori: rosso, verde, blu.

Se partiamo da verde in A e rosso in B, scegliamo E e lo coloriamo di blu.
A questo punto siamo obbligati a colorare C di rosso e F di verde, quindi D si può colorare di blu o rosso.
Questa euristica è detta euristica della variabile più vincolata:
in ciascun punto viene scelta la variabile con il minor numero di valori possibili e le si assegna un valore.
Questo minimizza la ramificazione.
L’euristica della variabile più vincolante assegna un valore alla variabile coinvolta nel maggior numero di vincoli su variabili non assegnate.
L’euristica della variabile meno vincolante sceglie un valore che escluda il minor numero di valori per le variabili connesse da vincoli alla variabile corrente.
In questo caso nella regione C assegniamo il rosso perché lascia maggior libertà di scelte future.
RICERCA CON MEMORIA LIMITATA
Spesso gli algoritmi di ricerca su problemi complessi esplodono esponenzialmente: è utile avere algoritmi che limitino l’uso della memoria.
IDA* - RICERCA A* CON APPROFONDIMENTO ITERATIVO
Si utilizza un normale approfondimento iterativo, ma si usa un limite di costo f invece che un limite di profondità.
Il costo f si può vedere come una frontiera, ogni iterazione espande i nodi entro questa frontiera e poi inizia una nuova iterazione valutando la frontiera successiva.
IDA* è completa e ottimale come A*, ma richiede uno spazio proporzionale al solo cammino più lungo che esplora.
La complessità temporale varia in base al numero di valori che può assumere l’euristica f .
IDA* va però in crisi per domini complessi, in cui ciascuna frontiera si sposta di poco dalla precedente e vanno fatte moltissime iterazioni.
ALGORITMI A RICERCA LOCALE
Nel problema delle 8 regine la miglior descrizione parte da tutte e 8 le regine sulla scacchiera.
Si comincia con una configurazione completa e la si modifica migliorandone la qualità.
Questi algoritmi non considerano un albero di ricerca, ma una configurazione in cui tutti gli stati sono collocati su un territorio.
L’altezza sulla quale si trova uno stato corrisponde alla funzione di valutazione dello stato.
L’algoritmo si muove nel territorio cercando i punti più alti, che sono le soluzioni ottimali.
ALGORITMI A SALITA PIU’ RAPIDA (HILL-CLIMBING)
Vengono detti anche a discesa del gradiente, se la funzione di valutazione è vista come funzione di costo e cercheremo i minimi anziché i massimi.

Questi algoritmi sono iterativi e ad ogni ciclo cercano di fare cambiamenti che portano verso uno stato in cui il livello della funzione di valutazione è più alto.
Viene registrato solo lo stato e la sua valutazione, non c’è altra occupazione di memoria.
Tuttavia:
- l ‘algoritmo si inceppa quando giunge ad un massimo locale
- negli altopiani la ricerca procede in modo casuale
- lungo le creste l’algoritmo può oscillare molte volte fra una pendenza e l’altra senza procedere
Se l’algoritmo si inceppa, si può decidere per un riavvio da uno stato generato casualmente, e così via.
Alla fine si sceglie il miglior massimo trovato.
Il successo dell’algoritmo dipende dalla forma dello spazio di configurazione.
SIMULATED ANNEALING
Questo algoritmo procede come lo hill-climbing, salvo che viene scelta una mossa a caso ed eseguita se migliora la situazione.
In caso contrario l’algoritmo sceglie una mossa con probabilità minore di 1 (tanto minore quanto peggiore è la mossa).
La probabilità è determinata da un parametro T: quanto più è alta T, tanto più sono possibili mosse che “saltano” i massimi locali .
Per Tà0 l’algoritmo si comporta come uno hill-climbing.
L’algoritmo simula il meccanismo di tempra (annealing) dei metalli.
T corrisponde alla temperatura in gioco.
Un parametro determina la velocità di discesa della temperatura.
Le mosse casuali nello spazio degli stati corrispondono alle fluttuazioni casuali del rumore termico.
Si dimostra che se la temperatura decresce lentamente, viene raggiunto l’ottimo globale.
Sia l’algoritmo hill-climbing che il simulated annealing sono usati anche all’interno di algoritmi neurali.
Gli algoritmi genetici possono anche essere visti come un altro metodo di ricerca con modifica casuale.
APPLICAZIONI CSP
Nei casi come quello delle 8 regine si applicano operatori di modifica (di riparazione euristica) che minimizzano il numero di conflitti (min-conflicts).
Questa euristica è molto efficiente ed è stata usata anche per programmare le osservazioni dello Hubble.
Viene usata anche in un algoritmo importante che risolve problemi di logica preposizionale.
- Fine articolo Euristica
Hans Jonas Glossario e riepilogo
Prometeismo. Espressione usata da Jonas per alludere all'atteggiamento tipico dell'uomo occidentale, che, perseguendo l'ideale baconiano di un dominio illimitato sulla natura, è giunto alle soglie di una possibile catastrofe planetaria: «La formula baconiana ci dice che il sapere è potere. Ora però il programma baconiano, lasciato a se stesso, ha rivelato al culmine del trionfo la sua intima contraddizione, perdendo cioè l'autocontrollo, il che comporta l'incapacità di proteggere non soltanto l'uomo da se stesso, ma anche la natura dall'uomo»; «viviamo in una situazione apocalittica, ossia, se lasciamo che le cose seguano il loro corso attuale, nell'imminenza di una catastrofe universale...» (Il principio responsabilità, cit., pp. 181 e 179).
Morali tradizionali. Jonas le ritiene irrimediabilmente superate, in quanto esse erano di tipo antropocentrico (cioè si soffermavano soltanto sull'uomo) e avevano a che fare esclusivamente con il presente, ossia con coloro che vivevano nello stesso periodo. All'inizio del suo capolavoro, Jonas scrive: «Ogni etica tradizionale — come guida immediata a compiere o meno certe azioni, oppure come determinazione di princìpi per tale guida, oppure come fondazione del dovere di ubbidire a tali principi — condivideva tacitamente le seguenti, tra loro correlate, premesse: 1) La condizione umana, definita dalla natura dell'uomo e dalla natura delle cose, è data una volta per tutte nei suoi tratti fondamentali; 2) Su questa base si può determinare senza difficoltà e avvedutamente il bene umano; 3) La portata dell'agire umano e quindi della responsabilità è strettamente circoscritta», «queste premesse non sono più valide [...] in seguito a determinati sviluppi del nostro potere si è trasformata /a natura dell'agire umano, e poiché l'etica ha a che fare con l'agire, ne deduco che il mutamento nella natura dell'agire umano esige anche un mutamento nell'etica...» (ivi, p. 3). Da ciò l'esigenza di un nuovo imperativo etico (v.) in grado di far fronte alle mutate circostanze.
Il nuovo imperativo etico. Di fronte agli scenari inquietanti della civiltà odierna, non possiamo più richiamarci alle consuete etiche della coscienza o dell'intenzione, ignorando le conseguenze concrete dei nostri atti, ma dobbiamo saper prevedere gli influssi che le nostre azioni potranno avere sulle sorti future dell'umanità e del pianeta. Al vecchio imperativo kantiano, Jonas contrappone quindi il nuovo imperativo dell'età tecnologica: «Agisci in modo che le conseguenze della tua azione siano compatibili con la permanenza di un'autentica vita umana sulla terra». Oppure, tradotto in negativo, «Agisci in modo che le conseguenze della tua azione non distruggano la possibilità futura di tale vita». Oppure, semplicemente: «Non mettere in pericolo le condizioni della sopravvivenza indefinita dell'umanità sulla terra». O ancora, tradotto nuovamente in positivo: «Includi nella tua scelta attuale l'integrità futura dell'uomo come oggetto della tua volontà» (ivi, p. 16).
Etica e ontologia. L'incondizionato dovere morale di far sì che la vita continui indefinitamente esige una fondazione extramorale. Ancorando l'etica alla metafisica, e rifiutando la cosiddetta legge di Hume, cioè il divieto moderno di passare dall'essere al dover essere, Jonas dichiara il primato dello scopo (dell'essere) sull'assenza di scopi (sul non essere) affermando, aristotelicamente, che vi è un dover essere intrinseco all'essere, il quale fa sì che la vita esiga la conservazione della vita: «In questo tendere verso lo scopo [...] possiamo scorgere un'autoaffermazione sostanziale dell'essere, che si pone in senso assoluto come migliore rispetto al non essere. In ogni scopo l'essere si dichiara a favore di se stesso e contro il nulla. Contro questo verdetto dell'essere non si dà alcun ricorso, poiché persino la negazione dell'essere tradisce un interesse e uno scopo. Vale a dire, il semplice fatto che l'essere non sia indifferente verso se stesso, fa della sua differenza rispetto al non-essere, il valore fondamentale di tutti i valori, il primo sì in assoluto» (ivi, p. 103); «Nella capacità di avere degli scopi in generale possiamo scorgere un bene-in-sé, la cui infinita superiorità rispetto a ogni assenza di scopo dell'essere è intuitivamente certa» (ivi, p. 102); «Questa differenza non risiede [...] tanto nella distinzione di un qualcosa dal nulla (che, nel caso dell'indifferenza di questo qualcosa, sarebbe soltanto la distinzione, essa stessa indifferente, fra due indifferenze), bensì nella distinzione di un interesse finalizzato tout court rispetto all'indifferenza, la cui forma assoluta può essere da noi considerata il nulla. Un essere indifferente sarebbe soltanto una forma del nulla più imperfetta, perché affetta dalla macchia della mancanza di senso, e sarebbe pertanto inconcepibile. Che per l'essere qualcosa conti, quantomeno se stesso, è la prima cosa che possiamo apprendere dalla presenza in esso degli scopi. Allora la massimizzazione della finalità, ossia la ricchezza dei fini perseguiti e quindi del bene o del male possibili, risulterebbe il valore ulteriore che emerge dal valore fondamentale dell'essere in quanto tale, nell'accentuazione della sua differenza rispetto al non-essere» (ivi, p. 103).
Idea dell'uomo e imperativo morale. Posta la struttura teleologica dell'essere, ne segue che il dover essere dell'umanità, cioè l'imperativo morale, risulta deducibile dall'idea dell'uomo: «il primo imperativo è che ci sia un'umanità [...] con questo primo imperativo non siamo assolutamente responsabili verso gli uomini futuri, bensì verso l'idea dell'uomo, che è tale da esigere la presenza delle sue incarnazioni nel mondo. È, in altri termini, un'idea ontologica che, pur non garantendo — come si suppone faccia il concetto di Dio nella dimostrazione ontologica — l'esistenza del proprio oggetto già con l'essenza (ne è ben lungi), sostiene però che una tale presenza deve essere, e cioè deve essere tutelata, facendone quindi un dovere per noi che la possiamo mettere in pericolo. Proprio questo imperativo ontologico proveniente dall'idea dell'uomo sta dietro la proibizione [...] del "gioco del tutto per tutto" con l'umanità. Soltanto l'idea dell'uomo, dicendoci perché debbano esserci uomini, ci dice in tal modo anche come essi debbano essere» (ivi, p. 54). Ne segue che il primo principio di un'etica del futuro non è insito nell'etica stessa in quanto dottrina dell'azione, ma nella metafisica in quanto dottrina dell'essere.
La responsabilità. Coincide con la manifestazione concreta dell'imperativo categorico e quindi con la disponibilità a favorire, mediante l'azione, il sì alla vita: «La responsabilità è la cura per un altro essere quando venga riconosciuta come dovere, diventando "apprensione" nel caso in cui venga minacciata la vulnerabilità di quell'essere» (ivi, p. 285). La responsabilità trova il suo archetipo genetico e tipologico nelle cure dei genitori verso i figli. Infatti, è proprio il neonato a fornire il «paradigma ontico» della coincidenza ontologica fra essere e dover-essere e quindi a incarnare la richiesta che la vita, in quanto «scelta permanente di se stessa», continui. La responsabilità parentale trova la sua generalizzazione nella responsabilità dell'uomo di Stato per la cosa pubblica: «il puro essere in quanto tale e poi il ben-essere del bambino costituiscono ciò a cui tende, nella sua globalità, la cura dei genitori. Ma questo corrisponde esattamente alla definizione che Aristotele diede della ratio essendi dello Stato: esso ha avuto origine per rendere possibile l'esistenza umana e continua ad esistere per rendere possibile la vita buona. Questa è anche la preoccupazione del vero uomo di Stato» (ivi, pp. 128-129).
Minimalismo programmatico. È l'atteggiamento proprio di Jonas, il quale individua nella sopravvivenza, anziché nella perfezione, il suo obiettivo primario: «Per il momento ogni sforzo in vista dell'uomo "autentico" passa in seconda linea rispetto al puro e semplice salvataggio del suo presupposto, l'esistenza dell'umanità in un ambiente naturale sufficiente. Nella minaccia totale di questo momento storico-universale siamo risospinti indietro dalla questione sempre aperta, e di variabile risposta, di che cosa debba essere l'uomo, all'imperativo originario, preliminare, anche se fino ad ora mai diventato attuale, che egli debba essere, appunto in quanto uomo» (ivi, p. 178). Questa etica della sopravvivenza e dell'emergenza porta Jonas a rifiutare ogni forma di utopismo.
Utopismo. Si connette al prometeismo dell'Occidente e comprende sia la «fede apolitica nel progresso» di matrice baconiana sia le «escatologie storiche di carattere politico», come ad esempio il marxismo, che ha unificato escatologia e tecnica. Alla pericolosa euforia che accompagna l'utopismo moderno Jonas, prendendo le distanze sia dal capitalismo sia dal marxismo, oppone la modestia e la cautela responsabile: «Il richiamo verso fini "più modesti", per quanto suoni stonato rispetto alla grandiosità dei mezzi, diventa una necessità prioritaria proprio a causa di quella grandiosità. In ogni caso ci si deve togliere dalla testa l'utopia, il fine immodesto par excellence, non tanto perché la sua esistenza è precaria, quanto piuttosto perché già il suo perseguimento provoca la catastrofe» (ivi, p. 245). Il principio responsabilità appare dunque, secondo la rilevazione di Remo Bodei, come «un ulteriore tentativo di delegittimazione delle utopie, come sintomo dell'esaurimento di quella spinta in avanti che le aveva giustificate».
Responsabilità, speranza e paura. Secondo Jonas, l'etica non utopistica della responsabilità si nutre sia della speranza sia della paura: «Al principio speranza contrapponiamo il principio responsabilità e non il principio paura. Ma la paura, ancorché caduta in un certo discredito morale e psicologico, fa parte della responsabilità, altrettanto quanto la speranza, e noi dobbiamo perorarne ancora la causa, perché la paura è oggi più necessaria che in qualsiasi altra epoca in cui, animati dalla fiducia nel buon andamento delle cose umane, si poteva considerarla con sufficienza una debolezza dei pusillanimi e dei nevrotici»; «Quando parliamo della paura che per natura fa parte della responsabilità, non intendiamo la paura che dissuade dall'azione, ma quello che esorta a compierla...» (ivi, pp. 284-285). Questa valorizzazione della paura porta Jonas a parlare di una «euristica della paura».
Euristica della paura (dal gr. eurìsco, trovo: «ricerca o arte della ricerca»). Ricerca stimolata dallo stato d'animo della paura, a cui Jonas affida la scoperta dei nuovi (e ancora sconosciuti) princìpi etici che devono ispirare i nuovi doveri concreti dell'uomo tecnologico, al fine di tutelare l'uomo e il mondo da scelte irresponsabili: «Che cosa può fornire un criterio? Lo stesso pericolo prefigurato dal pensiero! In questo suo balenarci incontro dal futuro, nella prefigurazione delle sue estensioni planetarie e delle sue durevoli conseguenze sull'uomo, è possibile scoprire alfine i principi etici da cui sono desumibili i nuovi doveri del nuovo potere. Definisco ciò "euristica della paura". Soltanto il previsto stravolgimento dell'uomo ci aiuta a cogliere il concetto di umanità che va preservato da quel pericolo. Sappiamo ciò che è in gioco soltanto se sappiamo che esso è in gioco» (ivi, p. XXVII). Da qui il metodo peculiare di tale euristica: «la proiezione degli effetti probabili o anche soltanto possibili, e la semplice conoscenza delle possibilità [...] risulta completamente sufficiente ai fini della casistica euristica posta al servizio della dottrina dei princìpi etici. I suoi strumenti sono esperimenti concettuali non soltanto ipotetici nell'assunzione della premessa ("se viene fatta la cosa tale, seguirà la tal altra"), ma anche congetturali nella deduzione della conseguenza ("... allora potrà conseguire la tal altra"). È alla luce del contenuto, non della certezza della conseguenza ipotizzata, che possono diventare visibili quei princìpi della morale che fino ad allora erano rimasti sconosciuti perché non se n'era awertita la necessità»; «Si parla quindi di una casistica immaginaria che non serve, come altrimenti la casistica nel diritto e nella morale, a dimostrare princìpi già noti, ma a rintracciare e a scoprire princìpi ancora sconosciuti...» (ivi, pp. 37-38).
- Fine articolo Euristica
La psicologia sociale
A far luce sulla vita sociale vista dal lato dell’individuo concorrono la sociologia – specie quel filone noto come microsociologia, che si occupa dei piccoli fatti quotidiani –, l’antropologia culturale, varie branche della psicologia (cognitiva, della personalità, evolutiva, della comunicazione, del lavoro, ecc.) e l’etologia, che ci mostra lo sfondo biologico dei comportamenti sociali umani. Il contributo più importante è però senz’altro quello della psicologia sociale, branca della psicologia che ha acquistato un rilievo tale da essere generalmente considerata come una disciplina a sé stante. Essa si distingue dalla psicologia in senso stretto per il fatto che non può prescindere dalla dimensione sociale; mentre dalla sociologia si differenzia per il fatto di rimanere un’indagine della mente umana e dell’individuo, presi come unità di riferimento, e non dei fatti sociali totali e delle dinamiche collettive.
1. Storia
La psicologia sociale si è sviluppata più tardi della sociologia e dell’antropologia. All’inizio del XX secolo si affaccia una riflessione teorica che prelude alla psicologia sociale. Wundt, il fondatore del laboratorio di Lipsia, padre della psicologia sperimentale, dedicò un’opera in dieci volumi (scritti tra il 1900 e il 1920) alla psicologia dei popoli (Völkerpsychologie), disciplina che nei suoi progetti avrebbe dovuto occuparsi del lato psicologico delle realtà storico-sociali e culturali. In quegli anni negli Stati Uniti compaiono anche i primi manuali di psicologia sociale: Introduzione alla psicologia sociale di W. McDougall e Psicologia sociale di E.A. Ross, entrambi del 1908. L’etichetta (psicologia sociale) è quella che si affermerà in seguito e c’è un tentativo di trattazione sistematica della materia, ma si tratta di opere essenzialmente teoriche, ancora impregnate di filosofia e basate a volte sull’aneddotica. Nel periodo tra le due guerre mondiali cominciano le ricerche sistematiche ed empiriche ed è nel dopoguerra che la psicologia sociale conosce uno sviluppo impressionante e si consolida come disciplina. Dopo una crisi negli anni ‘70, in cui ci si interroga sull’oggetto, sui metodi, sulla validità del sapere accumulato, negli anni ‘80 la psicologia sociale ha ritrovato convinzione e ha ripreso a crescere più vertiginosamente di prima. Oggi è una delle aree più floride e significative della psicologia e una delle più importanti scienze sociali.
1.1 Principali paradigmi teorici della psicologia sociale
I principali paradigmi seguiti in psicologia sociale sono il paradigma comportamentista, il paradigma gestaltico-cognitivista ed il paradigma psicanalitico.
a) L’approccio scientifico nella psicologia sociale e il paradigma comportamentista
La psicologia sociale assume connotati di scientificità a partire dagli anni Venti, sotto l’influenza del comportamentismo. In particolare, la tesi secondo cui l’aggressività umana non costituisce una tendenza innata nella specie umana e nelle specie animali, bensì una tendenza acquisita attraverso l’apprendimento, viene dimostrata sperimentalmente dal comportamentista Z.Y. Kuo. Anche le ricerche dell’antropologa Margaret Mead si muovono in questa direzione. Si viene così a creare un clima culturale caratterizzato dall’interdisciplinarietà e dalla centralità dell’elemento culturale-appreso rispetto a quello naturale-innato (soprattutto grazie a J. Dollard, A. Kardiner, R. Linton, E. Sapir); inoltre negli anni Trenta la tendenza psicologistica viene notevolmente ridimensionata e corretta grazie all’influenza della sociologia. In questo periodo iniziano anche i tentativi, spesso poco convincenti, di differenziare l’oggetto e l’ambito della psicologia sociale rispetto a quello della sociologia; un certo consenso viene raggiunto nella formulazione secondo cui, da un lato, il contesto collettivo costituisce oggetto di studio di entrambe, ma, dall’altro, la sociologia s’interessa esclusivamente del significato sociale e delle determinazioni sociali dei comportamenti, mentre la psicologia sociale li esamina in quanto espressi e vissuti dai singoli individui. Questa differenziazione va poi sempre più perdendo di incisività, per un verso perché la psicologia sociale si appropria di oggetti di studio tradizionali della sociologia (come le comunicazioni di massa) e, per altro verso, per l’emergere della microsociologia, la quale metabolizza tematiche psicologiche relative al rapporto interpersonale (per es. nell’opera di E. Goffman o di G.H. Mead).
Fra gli autori più direttamente influenzati dal comportamentismo e dal metodo sperimentale troviamo due grandi nomi della psicologia sociale: Gordon Allport (noto soprattutto per la sua teoria della personalità nonché per La natura del pregiudizio, 1954 à studio degli atteggiamenti) e Stanley Milgram (1933-1984), autore del famoso esperimento di Yale sull’obbedienza all’autorità (Obbedienza all’autorità, 1974).
b) Il paradigma gestaltico-cognitivista e l’autonomizzazione della psicologia sociale
Il vero passaggio della psicologia come scienza sociale autonoma rispetto sia alla psicologia generale che alla sociologia avviene sempre negli anni Trenta, quando la psicologia sociale diventa scienza sperimentale, utilizzando soggetti e procedure in condizioni di laboratorio rigidamente controllate, soprattutto in seguito alle ricerche condotte da studiosi come M. Sherif, S.E. Asch e E.W. Boward Jr. L’influenza decisiva avviene attraverso l’emigrazione tedesca di psicologi della scuola della Gestalt come Wertheimer, Koffka, Köhler e, soprattutto, Kurt Lewin (1890-1947), che per primo evidenzia sistematicamente la proprietà del gruppo, “totalità” irriducibile alle proprietà dei suoi “membri”, intesi come “parti” (teoria del campo à Teoria dinamica della personalità, 1935). Grazie alle ricerche di Lewin, la psicologia sociale può finalmente applicarsi a un gran numero di ambiti, in particolare al miglioramento delle relazioni interpersonali all’interno di gruppi specifici (una squadra di operai, un’unità militare, un gruppo sportivo, una classe di studenti...); infine, le successive ricerche di Lewin sui diversi effetti del clima sociale autoritario-direttivo, democratico e anarchico- non direttivo sul rendimento e sugli atteggiamenti aggressivi di un gruppo, da un lato aprono un campo d’indagine rilevante sul piano internazionale e dall’altro definiscono l’orientamento sociopolitico della psicologia sociale. Tra gli autori più direttamente influenzati dalla Gestalt e “discepoli” di Lewin vanno annoverati soprattutto Solomon Asch (1907-1996), noto per i suoi studi sul conformismo e la pressione sociale; Leon Festinger (1919-1989), il celebre teorico della dissonanza cognitiva (Teoria della dissonanza cognitiva, 1957) e Fritz Heider (1896-1988), noto per la sua “psicologia ingenua” (così definita in riferimento alla “fisica ingenua”) e per la teoria delle attribuzioni (Psicologia delle relazioni interpersonali, 1958). A questo stesso ambito appartengono studi recenti, come quello di L. Ross e R. Nisbett, in particolare La persona e la situazione, del 1991.
c) L’influenza di Freud
La psicologia sociale contemporanea è inoltre fortemente influenzata dall’orientamento psicanalitico, secondo una linea interpretativa che risale allo stesso Freud, autore di Psicologia delle masse e analisi dell’Io del 1921. In una prima fase la psicanalisi fu oggetto di critica, in particolare attraverso Dollard e Hull (che infatti riducono la personalità all’insieme dei comportamenti appresi dall’individuo nella sua interazione con l’ambiente). Il riferimento a Freud è tornato ad essere presente in alcuni grandi nomi della psicologia sociale, quali Erikson e Fromm, ma anche in autori critici come Karen Horney (1885-1952) che ha riformulato la teoria freudiana in termini di ricerca dell’altro, allontanamento, conflitto. Più recentemente va ricordato Serge Moscovici (1925) e i suoi studi sulle rappresentazioni sociali e sull’influenza sociale, nei quali rileva come l’influenza operi a doppio senso (maggioranza à minoranza, ma anche minoranza à maggioranza).
2. Oggetto di studio
Di che cosa si occupa la psicologia sociale? In linea di massima si può dire che studia le attività mentali e i comportamenti dell’individuo immerso nella vita sociale. Essa studia quindi l’influenza sociale sulla vita dell’individuo, sulle sue opinioni personali, sui suoi atteggiamenti, sulle sue scelte. Ma che cosa vuol dire esattamente? Per rendercene conto dobbiamo conoscere i presupposti teorici sui quali la psicologia sociale si basa.
Una convinzione di fondo è che le attività mentali sono diverse nell’individuo isolato e nell’individuo calato nell’esperienza sociale quotidiana, in mezzo agli altri, in un gruppo, in rapporto con le istituzioni, con le organizzazioni, con i media e con le altre realtà sociali. Un altro presupposto della psicologia sociale è che l’individuo è un essere pensante e attivo. Anche se risente di predisposizioni biologiche e di influenze ambientali, non è un’entità inerte e passiva in balia di forze esterne. Ciò che fa lo fa per scelta. Decide che cosa fare intelligentemente: valuta le situazioni e se stesso e regola i comportamenti di conseguenza. A questo punto si può capire come mai la psicologia sociale si interessi principalmente a tre ordini di cose:
- Le influenze sociali sul funzionamento psichico. Uno degli obiettivi che la psicologia sociale si prefigge è analizzare come l’attività mentale è condizionata dalla realtà sociale attorno all’individuo. Come ha scritto G. Allport, molti psicologi sociali ritengono che il proprio lavoro consista in «un tentativo di comprendere il modo in cui il pensiero, il sentimento e il comportamento degli individui sono influenzati dalla presenza reale, immaginaria o implicita degli altri esseri umani».
- Il monitoraggio individuale della vita sociale. Se gli individui scelgono intelligentemente che cosa fare, è essenziale studiare come tengono continuamente sotto controllo la propria esperienza sociale. Si tratta di capire come percepiscono se stessi e le situazioni in cui vengono a trovarsi, come filtrano le impressioni che ricevono in base alle idee di fondo maturate sulla società e sulla vita sociale, come pianificano la propria condotta e come aggiustano strada facendo le proprie azioni a seconda dei feedback che ricevono dall’ambiente.
- Il lato mentale dei comportamenti sociali. La psicologia sociale studia ciò che gli individui fanno nella vita sociale. Ad esempio, si occupa dei comportamenti di aiuto ad altri in difficoltà, delle reazioni all’ingiustizia, dei rapporti competitivi e cooperativi, delle negoziazioni. L’intento è analizzare il lato mentale dei comportamenti sociali, capire che cosa accade nelle teste delle persone interessate, attraverso quali processi mentali arrivano a scegliere di agire in un modo o nell’altro, che cosa provano, come vedono le cose e come le vivono.
La psicologia sociale studia l’attività mentale e i comportamenti dell’individuo immerso nella vita sociale. Ma di quale individuo parliamo? dell’individuo in generale? dell’essere umano in quanto tale, indipendentemente dal periodo storico e dalla cultura di appartenenza? o di un individuo di un dato momento storico e di una data società? È un’idea diffusa di senso comune che gli uomini abbiano in fondo sempre gli stessi meccanismi mentali e modi di ragionare e vedere le cose simili. Anche gli storici nelle loro analisi del passato partono spesso da questo presupposto. Se le cose stessero così non ci sarebbe problema: studiare l’individuo di una data società e di un dato momento storico equivarrebbe a studiare l’individuo in generale. Senonché oggi è chiaro che le attività mentali in parte cambiano a seconda del contesto storico-sociale in cui l’individuo vive. La psicologia transculturale, disciplina tra psicologia e antropologia, che mette a confronto sistematicamente le attività mentali di persone di culture diverse, ha messo in evidenza che attorno a un nucleo di processi mentali universali c’è un alone di processi mentali fluidi, che si modellano in rapporto al mondo circostante. A conclusioni simili portano anche gli studi di una branca recente della psicologia sociale, la psicologia sociale storica: la mentalità delle persone cambia da un periodo all’altro e cambia anche il modo in cui si pensa nella vita sociale.
Di fatto la psicologia sociale ha finora studiato soprattutto l’individuo delle odierne società occidentali. Passando in rassegna i lavori della letteratura o leggendo un manuale della materia, si ha l’impressione che i discorsi vertano essenzialmente su come pensa e agisce la gente nelle nostre società. C’è un certo sforzo di allargare lo sguardo, di fare confronti transtorici e transculturali, come testimonia anche la psicologia sociale storica. Siamo però ancora agli inizi e non tutti gli psicologi sociali ritengono opportuno andare in questa dirczione.
In concreto gli psicologi sociali identificano il loro campo con un insieme di temi che per tradizione ritengono di propria competenza. Forse il tema principale, quello che nelle ricerche di oggi occupa più spazio, è la conoscenza della realtà sociale, lo studio di come la gente elabora idee su di sé, sugli altri e sul mondo in cui vive. Sono poi temi classici di psicologia sociale i gruppi, l’influenza sociale (i cambiamenti che si verificano nelle persone per effetto degli altri), la conformità (i fenomeni di allineamento ai comportamenti e alle idee degli altri). Di grande rilievo, dagli anni ‘30 a tutt’oggi, lo studio delle opinioni, degli atteggiamenti, dei valori, degli stereotipi e dei pregiudizi. Di rilievo anche la simpatia, l’altruismo, il senso di giustizia, le interazioni e le relazioni interpersonali e la comunicazione.
3. Metodi di ricerca
Metodo fondamentale della psicologia sociale è l’esperimento, sia di laboratorio che sul campo. Gli esperimenti condotti in laboratorio sono rigorosi, ma hanno il limite che i risultati vengono ottenuti dentro il laboratorio e non fuori, nella vita quotidiana. Gli esperimenti sul campo si conducono in situazioni di vita reale, per cui hanno anche validità esterna, ma sono privi del rigore che caratterizza gli esperimenti di laboratorio.
Sintesi: la psicologia sociale studia
- il modo in cui la vita di relazione influenza il modo di pensare dei singoli individui;
- il modo in cui essa condiziona i rapporti interpersonali;
- il modo in cui ciascuno di noi si dà una spiegazione delle situazioni che deve affrontare ogni giorno (attribuzioni);
- come il contesto di appartenenza condiziona o determina l’agire degli individui (teoria del campo).
La conoscenza sociale e le attribuzioni
1. La social cognition
Per social cognition (conoscenza sociale) si intende l’attività mentale grazie alla quale siamo in grado di conoscere il mondo sociale partendo dai dati di esperienza a nostra disposizione. Quando cerchiamo di orientarci e di comprendere la complessità della vita di relazione, dobbiamo infatti ricorrere sia a processi cognitivi che a dinamiche sociali. Ciò è dovuto al fatto che l’individuo è un attore sociale: egli è completamente immerso nella realtà nella quale cerca di orientarsi e che tenta di comprendere, in quanto è parte del sistema. Pertanto, egli può avere una conoscenza solo dall’interno e non da “fuori”.
2. Come comprendiamo la realtà sociale
Comprendere in psicologia sociale vuol dire ricavare dati significativi dall’esperienza. Nello studio della social cognition esistono due approcci per spiegare come avviene la comprensione:
- l’approccio bottom-up ("dal basso verso l'alto"), che enfatizza il ruolo del contesto. Questo approccio è stato seguito da Asch, secondo il quale la la conoscenza sociale avviene attraverso un'organizzazione di concetti fra loro associati, dove l’associazione è quella appresa dall'osservazione della maggior frequenza di combinazione di un tratto con un altro. Qualunque tratto può svolgere un ruolo centrale, ed il fatto di essere centrale o meno dipende dalla frequenza con cui ciascun tratto si associa alla dimensione presa in considerazione (ad esempio se incontro uno sconosciuto che possiede alcuni tratti di personalità, non dovrò fare altro che combinare le valutazioni associate alle sue caratteristiche positive e negative: in questo modo il risultato costituirà la mia impressione globale di quella persona);
- l’approccio top-down ("dall'alto verso il basso") che sottolinea il ruolo dei processi cognitivi nella comprensione. In quest’ultimo approccio è centrale soprattutto il concetto di schema, strutture di dati che servono a rappresentare i concetti immagazzinati in memoria (Arcuri). Nello schema sono inclusi sia gli attributi che le relazioni tra questi. Attraverso lo schema selezioniamo e classifichiamo tutte le informazioni disponibili sulla realtà da conoscere ed esso ha la funzione di autoperpetuarsi, ossia organizza la comprensione del mondo per riconfermarsi. Nel rapporto con gli altri, anche se di essi conosciamo pochi dati, utilizziamo schemi cognitivi preesistenti, al fine di avere dell'altro una valutazione più ampia.
Tra gli effetti più interessanti che questo approccio teorico ha evidenziato vi sono l'effetto di primacye l'effetto di recency: data una serie di informazioni, se la prima impressione che si forma è fondata sulle informazioni date per prima, avremo l'effetto di primacy, se prevalgono le informazioni più recenti avremo l'effetto di recency. In genere l'effetto di primacy viene privilegiato, a meno che non si adottino delle precauzioni come far riformulare l'impressione ogni qual volta si presentano dati nuovi o informare sui pericoli della formazione di impressioni premature. Esiste anche l'effetto alone che ci rimanda allo schema della persona “buona” se di essa abbiamo una minima informazione positiva e viceversa rievochiamo lo schema della persona “cattiva” se di essa abbiamo una minima informazione negativa.
Vi è infine l'effetto priming o di innesco per cui in una particolare situazione, utilizziamo uno schema invece che un altro, a seconda di quale viene innescato da alcuni fattori ambientali; e lo utilizziamo anche se si rivela inadatto alla situazione: per predisposizione naturale, ad esempio, orientiamo l’attenzione verso figure con fattezze infantili o verso gli occhi o immagini che somigliano agli occhi.
3. Le attribuzioni
Il concetto di schema introduce un altro concetto molto importante per l’analisi di come le persone cercano spiegazioni circa il loro e l’altrui comportamento. Questo processo prende il nome di attribuzione causale, definibile come quel processo che si mette in atto quando cerchiamo di capire le origini e le cause di determinati comportamenti. Ognuno di noi esprime la necessità di dover sempre prevedere il futuro e controllare gli eventi a cui quotidianamente siamo sottoposti. È facile dedurre che se riusciamo a capire quali fattori hanno prodotto un certo risultato presumibilmente siamo anche in grado di controllare la probabilità con cui questo risultato si può verificare in futuro o almeno a prevedere quando questo si realizzerà. Secondo Heider, il criterio principale per interpretare il comportamento di qualcuno consiste nel decidere il locus della causalità, ossia nello stabilire se la causa del comportamento della persona sta nella stessa persona che lo ha prodotto, nell’ambiente circostante o in ambedue:

Da qui la capacità, secondo Heider, di individuare i vari livelli di responsabilità che determinano quanto ad una persona può essere fatto carico di un determinato accadimento. Per poter scegliere un tipo di attribuzione piuttosto che un altro, la domanda che ci si pone è: in una situazione diversa, la persona si sarebbe comportata nello stesso modo? Se rispondiamo “sì”, stiamo facendo un’attribuzione interna, se rispondiamo “no” una esterna. La causa, allora, sarà interna quando essa è riconducibile alla persona che ha messo in atto un certo comportamento mentre sarà esterna quando è riconducibile alla situazione.
Sulla scia del pensiero di Heider, Weiner ha elaborato un modello tridimensionale. Ciascuna causa può essere collocata in un punto particolare rispetto a tre dimensioni: locus, cioè la sede della causa (l’individuo o l’ambiente), stabilità, cioè il carattere duraturo o transitorio della causa, controllabilità, il fatto che la causa sia sotto il controllo dell’individuo che agisce o sfugga al suo controllo.
Il tipo di attribuzione può spingere all’ottimismo o al pessimismo. Se uno studente attribuisce il proprio insuccesso in una verifica a una causa stabile (“questa materia non è fatta per me”, “i compiti che si danno a scuola sono troppo difficili”, “non riuscirò mai a studiare tutte queste pagine per domani”), difficilmente sarà portato a sperare in successi futuri. Se invece pensa che all’origine del compito andato male ci siano cause transitorie (“non mi ero preparato a sufficienza”, “era una verifica molto impegnativa”, “ho accumulato troppe cose da studiare tutte in una volta”), probabilmente guarderà al futuro con più fiducia.
3. Le euristiche cognitive
Tutti gli esempi che abbiamo riportato fino ad ora sottolineano l’importanza degli schemi ed in generale delle strategie cognitive perché sostanzialmente in grado di semplificare l’interpretazione della realtà in cui viviamo. Gli psicologi sociali hanno dato a queste strategie cognitive di semplificazione il nome di euristiche.
Esistono tre strategie euristiche fondamentali
- L’euristica della rappresentatività. L’euristica della rappresentatività è una scorciatoia di pensiero che consiste in criteri per mezzo dei quali noi valutiamo qualcosa come “rappresentativo” di una certa categoria. Una conseguenza di questa tendenza è quella di pensare per esempio che dopo una serie di incidenti aerei ravvicinati nel tempo, sia più improbabile del solito che ne avvengano altri. Di fatto la probabilità è sempre la stessa, poiché non viene influenzata dagli eventi passati. Noi invece consideriamo più “rappresentativa” una situazione di alternanza tra disastri aerei e momenti più frequenti in cui questi non si verificano, e quindi supponiamo che questo aumento di incidenti debba ora essere riequilibrato con un periodo “più tranquillo” del solito.
- L’euristica della disponibilità. L’euristica della disponibilità è quella strategia di pensiero che viene attivata quando le persone devono valutare la frequenza o la probabilità di verificarsi di un evento. Essa si basa sulla facilità e sulla velocità con cui vengono alla mente esempi o associazioni che si riferiscono alla categoria su cui il giudizio viene espresso. Un esempio è quello delle risposte che soggetti statunitensi hanno dato alla seguente domanda: quale causa di morte è più frequente, quella di essere ucciso da uno squalo o di essere colpito da parti distaccatesi da aerei in volo? Ricorrendo all’euristica della disponibilità, i soggetti per lo più ritengono la prima causa più frequente della seconda, anche se in realtà la probabilità di morte dovuta a pezzi precipitati d’aereo è di fatto trenta volte superiore a quella dovuta ad attacchi di squali. Questa euristica dipende dall’effetto di recency, cioè dalle informazioni più immediatamente disponibili.
- L’euristica dell’ancoraggio. Seguiamo l’euristica dell’ancoraggio quando prendiamo un valore iniziale (detto àncora) come base di partenza e costruiamo il nostro punto di vista definitivo correggendo il primo valore, anche se spesso tale aggiustamento non è sufficientemente corretto. Dipende dall’effetto di primacy: la prima impressione condiziona tutte le altre (esperimento di Jones sugli studenti, 1968).
4. I biases
Dallo studio delle euristiche deriva un’immagine dell’individuo come dotato di razionalità limitata. Si parla, in certi casi, di cognitive miser, di un essere cognitivamente “taccagno” o homo non-proprio-sapiens. Questo aspetto è ancor più evidenziato dallo studio dei biases. Nel processo di comprensione commettiamo frequentemente degli errori. Ciò dipende dal fatto che le euristiche, essendo processi di ragionamento semplificati, incorrono spesso in errori sistematici (ingl. biases), ovvero in deformazioni della realtà.
Si possono distinguere due tipologie fondamentali di biases:
- biases di comprensione;
- biases di attribuzione causale.
Biases di comprensione. Quando adottiamo uno schema, per ragioni di economia cognitiva, difficilmente lo abbandoniamo. Compiamo allora un’operazione mentale che va sotto il nome di autoconvalida: una volta che ci siamo formati un’idea tendiamo a conservarla a dispetto delle prove contrarie. L’autoconvalida ha un significato funzionale o di economia cognitiva: ci permette di non dover rivedere continuamente le nostre idee e intuizioni e quindi consente ad esse di organizzarsi e di strutturarsi.
Esistono diverse strategie che possono essere adoperate anche in combinazione: sono i c.d. meccanismi o costrutti di autoconvalida:
- Assunzione selettiva di informazioni e tendenza alla conferma. È il meccanismo più semplice. Una volta scelto qualcosa, si va alla ricerca delle prove che confermano la bontà della scelta fatta anziché delle prove che non la confermano.
Esempio: Sono convinto che la vettura acquistata abbia buone prestazioni. Sulle riviste specializzate vado a leggere tutto ciò che conferma la mia opinione e lascio perdere il resto.
- Reinterpretazione dei fatti. È un meccanismo di autoconvalida più sofisticato e consiste nel rivedere i fatti che hanno portato a una certa teoria da un punto di vista diverso.
Esempio: Penso che Marco sia scontroso. Alla sua festa è simpatico e gentile con me. Mi convinco che si comporta così perché vuole ottenere qualcosa da me e resto della mia idea su di lui: non è gentilezza la sua, ma calcolo.
- Relega in un campo inattivo. Nonostante siano presenti dati che contraddicono le nostre teorie, li valutiamo come non pertinenti, cioè li isoliamo in uno spazio di ininfluenza.
Esempio: Scopro che il presidente degli USA, da me sempre stimato, ha relazioni extraconiugali. Penso che le faccende sentimentali private in politica non contano e continuo a stimarlo.
- Recinzione. Se ci sono dati che contraddicono la nostra teoria (o le nostre scelte), questi cadono necessariamente al di fuori dello spazio coperto dalla nostra teoria.
Esempio: L’intervento del guaritore (stregone, sciamano, mago, ecc.) è fallito. Il guaritore sostiene che il demone penetrato nell’organismo è di un tipo troppo potente, che non può essere scacciato con i mezzi di cui egli dispone. La sua magia vale per gli esseri soprannaturali fino a un certo livello e non oltre.
- Introduzione di un elemento perturbante o interferenza. Per spiegare fatti che contraddicono la nostra teoria si introducono fattori di disturbo esterni, non prevedibili.
Esempio: L’intervento del guaritore è fallito. Il guaritore sostiene che c’è stato un altro intervento, di segno negativo, che ha interferito con il suo.
Biases di attribuzione causale
- Self-serving bias. La tendenza generale che le persone hanno di attribuire i propri successi a cause interne e i propri insuccessi a cause esterne va sotto il nome di self-serving bias, ossia un’autoattribuzione (dei successi) e un’eteroattribuzione o un’attribuzione esterna (degli insuccessi).
- Group-serving biases: l’attribuzione a cause interne stabili (bravura, intelligenza, ecc.) dei successi del proprio gruppo sociale e a cause esterne instabili quelle di altri gruppi (fortuna, circostanze straordinarie, ecc.).
- Errore fondamentale. Quando noi osserviamo e valutiamo i comportamenti delle persone, generalmente tendiamo ad attribuire tali comportamenti alle loro qualità o disposizioni più che a fattori di tipo situazionale. Questo meccanismo introduce un altro concetto fondamentale e cioè quello dell’errore fondamentale di attribuzione, con il quale si indica quella tendenza generale di giudizio che i soggetti manifestano allorché, nell’individuare i fattori che determinano il comportamento della gente, sottostimano l’impatto dei fattori situazionali mentre sovrastimano l’impatto dei fattori disposizionali. Il soggetto tende, secondo questo principio, ad attribuire il comportamento dell’attore a sue disposizioni permanenti, come ad esempio gli atteggiamenti, senza considerare che in alcuni casi l’attore assume determinati comportamenti perché non ha la possibilità di comportarsi in maniera differente. Questo processo introduce anche un altro meccanismo molto importante e cioè la differenza attore-osservatore nei processi attribuzionali, ossia quella tendenza sistematica a spiegare il comportamento degli altri nei termini di fattori disposizionali ed il proprio nei termini di fattori situazionali o instabili. Le persone insomma tendono ad essere disposizionaliste solo quando giudicano il comportamento degli altri, mentre le stesse persone tendono ad essere situazionaliste quando devono spiegare il proprio comportamento.
- Fine articolo Euristica
AGENTI CHE PIANIFICANO
Per costruire un modello del mondo, l’agente può usare le percezioni. Poi può chiamare un algoritmo di pianificazione ed eseguire i passi del piano uno alla volta.
Per fare questo devono esistere funzioni che :
- prendano come input una percezione
- restituiscano una descrizione nel formato richiesto dal pianificatore
- domandino alla base della conoscenza l’obiettivo successivo.
DIFFERENZE FRA RISOLUZIOEN DEI PROBLEMI E PIANIFICAZIONE
Un risolutore di problemi basato sulla ricerca ha i seguenti elementi di base :
- Rappresentazione di azioni (programmi di descrizione di stati successori)
- Rappresentazione di stati ( descrizione dello stato iniziale , programma di descrizione di stati completi che genera le azioni). Uno stato è una struttura dati.
- Rappresentazione degli obiettivi (in forma di test obiettivo e della funzione euristica). Sono scatole nere che non possono essere usate per selezionare le azioni giuste.
- Rappresentazione di piani (una soluzione è una sequenza di azioni ininterrotte a partire dallo stati iniziale ).
Questo tipo di rappresentazione si è dimostrato adatto a trovare itinerari.
Ma consideriamo il seguente problema:
“Prendi un quarto di latte, un casco di banane, un trapano “.
Stato iniziale: l’agente è a casa e non ha gli oggetti desiderati
Operatori: ciò che l’agente può fare
Funzione euristica: numero di cose ancora da acquistare
Lo spazio di ricerca del problema ha diversi livelli: i primi due sono rappresentati in figura:
La figura rappresenta solo alcuni degli innumerevoli cammini possibili.
Ci sono troppe azioni e troppi stati. La funzione euristica deve scegliere tra stati ma per far questo è costretta a considerare le azioni: comprare tonno o arance o latte ?, e la funzione di valutazione darà il risultato : sbagliato,sbagliato,giusto.
A questo punto l’agente non sa di nuovo che cosa cercare e deve ricominciare per tentativi.
Inoltre il fatto di iniziare dallo stato iniziale implica avere di fronte tutti i posti possibili , e non ha criteri su come procurarsi le cose, il che implica non sapere dove andare.
Vogliamo “aprire” la rappresentazione di stati, azioni, obiettivi tramite un algoritmo opportuno.
Gli agenti di pianificazione rappresentano stati ed obiettivi con insiemi di formule, ed azioni come descrizioni logiche di precondizioni ed effetti.
Così possono connettere stati ed azioni.
Ad es. se l’obiettivo è una congiunzione che contiene Ha(Latte) e sa anche che Compra(x) raggiunge Ha(x), dovrà studiare un piano che includa Compra(Latte), anche se non sa ancora come e dove.
Non è necessaria alcuna connessione fra ordine di pianificazione e di esecuzione: il pianificatore può aggiungere azioni al piano anche fuori da una sequenza che parte dallo stato iniziale.
Prendendo decisioni, l’agente riduce così il fattore di ramificazione.
Infine, molte parti del mondo sono indipendenti da molte altre: ci può essere un sottopiano per andare al supermercato, raggiungendo i primi due obiettivi, e un altro sottopiano completamente separato che serve per spostarsi fino al ferramenta.
Il sottopiano del supermercato può essere scomposto in altri due sottopiani , ciascuno per ciascun obiettivo.
A questo scopo sono efficienti gli algoritmi divide et impera.
Alcuni problemi non si prestano alla suddivisione in sottopiani indipendenti: nel gioco dell’otto, il piano di spostare una casella modifica il piano di spostare la casella vicina, ecc.
Ma il modno reale è complesso e permette sottopiano indipendenti.
PIANIFICAZIONE E CALCOLO DELLE SITUAZIONI
Utilizzando il calcolo delle situazioni , le formule logiche che descrivono un problema sono:
- stato logico : formula su una situazione S0
A(casa, S0) Ù Ø Ha(latte, S0) ÙØHa(banane, S0 ) ÙØHa(Trapano, S0)
- stato obiettivo: interrogazione logica
$s A(casa, S0) Ù Ha(latte, S0) Ù Ha(banane, S0 ) Ù Ha(Trapano, S0)
- operatori : insieme di descrizioni di azioni
"a , s Ha(Latte,Risulta(a,s)) Û
(((a = Compra(Latte) Ù A(Superm,s)) Ú (Ha(Latte,s) Ù a ¹ Versa(Latte)))
Risluta(a,s) indica la situazione che si ottiene eseguendo l’ azione a che nella situazione s .
Una soluzione al problema della spesa sarà allora un piano p che applicato allo stato iniziale S0 produce una situazione che soddisfa l’interrogazione sull’obiettivo, ossia un p t.c.
p= Vai(Superm), Compra(Latte), Compra(Banane), Vai (Ferramenta), Compra (Trapano),Vai(casa).
Una volta che si ha un formalismo per obiettivi e piani, un procedimento di inferenza troverà i piani.
Il calcolo delle situazione è sufficiente per molti domini.
Nella pratica tuttavia le soluzioni sono inefficienti perché seguono di fatto algoritmi di ricerca di tipo esponenziale.
Si dovranno adottare degli accorgimenti:
- Restringere il linguaggio di descrizione: così facendo si restringono le soluzioni fra cui cercare.
- Usare un linguaggio dedicato (il pianificatore) invece che un dimostratore di teoremi.
IL LINGUAGGIO STRIPS
STRIPS (Stanford Research Institute Problem Solver) è un linguaggio ristretto che si presta ad algoritmi di pianificazione efficienti.
In STRIPS gli stati sono congiunzioni di letterali, come nel caso
A(casa, S0) Ù Ø Ha(latte, S0) ÙØHa(banane, S0 ) ÙØHa(Trapano, S0)
Anche gli obiettivi sono descritti da congiunzioni di letterali:
A(casa, ) Ù Ha(latte) ÙHa(Banane ) ÙHa(Trapano)
Oppure contenere anche variabili: ad es. stare in un negozio che vende latte:
A(x) ÙVende(x,Latte)
La differenza fra un obiettivo di un pianificatore ed un’interrogazione di un dimostratore di teoremi è questa:
- Il pianificatore chiede una sequenza di azioni che rende vero l’obiettivo se eseguita
- Il dimostratore chiede se la frase dell’interrogazione è vera considerata la verità delle frasi nella KB .
Gli operatori di STRIPS consistono di:
descrizione dell’azione: ciò che l’agente restituisce, ossia il nome di una possibile azione
precondizione: congiunzione di atomi , ciò che deve essere vero prima che l’operatore possa essere applicato
effetto: congiunzione di letterali che descrivono come cambia la situazione quando viene applicato l’operatore.
Un operatore per spostarsi avrà la sintassi:
Op(AZIONE: Vai(là), PRECOND:A(qui) Ù Cammino(qui,là), EFFETTO: A(là) Ù ØA(qui)) .
Per rappresentare l’operatore Vai(là) usiamo un rettangolo in cui le precondizioni sono sopra l’azione e gli effetti sotto:

Un operatore con variabili è detto schema di operatori, perché rappresenta non una ma una famiglia di azioni.
Possono essere eseguiti solo operatori istanziati.
Un operatore op è applicabile in uno stato s se c’è qualche modo per istanziare le variabili di op in modo tale che ognuna delle precondizioni di op sia vera in s, cioè se Precond(op) Ì s.
Nello stato risultante, sono soddisfatti tutti i letterali positivi in Effetto(op) e quelli che lo sono in s salvo i negativi in Effetto(op):
Ad es. se la situazione iniziale include i letterali
A(Casa), Cammino(Casa, Superm),…
l’azione Vai(Superm) è quindi applicabile e la situazione risultante contiene i letterali:
ØA(Casa) , A(Superm), Cammino(Casa, Superm),….
SPAZIO DEI PIANI
Nel mondo della spesa sopra raffigurato, un cammino dallo stato iniziale allo stato obiettivo constituisce un piano. Per risolvere un’interrogazione potremmo usare un qualunque algoritmo di ricerca: lo definiremmo un pianificatore nello spazio delle situazioni, o anche pianificatore di progressione perché cerca in avanti dalla situazione iniziale alla situazione obiettivo.
I nodi dell’albero di ricerca corrispondono a situazioni e il cammino è il piano che sarà restituito alla fine del pianificatore.
Si è visto però che il problema è l’eccessiva ramificazione da esplorare.
Si può pensare di cercare all’indietro dall’obiettivo, usando la cosiddetta pianificazione per regressione. Questa è possibile perché gli operatori in questo caso contengono l’informazione necessaria per identificare lo stato precedente alla loro applicazione.
In questo modo, poiché lo stato obiettivo ha pochi congiunti, la strada risulta più breve.
Tuttavia spesso gli obiettivi sono multipli e questo complica l’algoritmo.
L’alternativa è quella di dimenticare lo spazio delle situazioni e lavorare su un vero spazio dei piani.
Si comincia con un piano incompleto (piano parziale) e si considerano i modi di espanderlo fino a trovare un piano completo che risolva il problema.
Gli operatori sono operatori su piani: aggiungere un passo, ordinare i passi, istanziare variabili ecc.
La soluzione è il piano finale.
Ci sono due classi di operatori:
operatore di raffinamento ( si prende un piano parziale e si aggiungono dei vincoli: equivale ad avere vari piani completi ed usare i vincoli per eliminarne)
operatore di modifica: tutti gli altri operatori , che servono a modificare piani scorretti.
Per ora consideriamo gli operatori di raffinamento.
Come sempre, è importante una buona rappresentazione di piani:
Esempio di problema: calzare un paio di scarpe.
Obiettivo: ConScarpaDx Ù ConScarpaSx
I quattro operatori sono:
Op(AZIONE: ScarpaDx, PRECOND: ConCalzaDx, EFFETTO: ConScarpaDx)
Op(AZIONE: CalzaDx, EFFETTO: ConCalzaDx)
Op(AZIONE: ScarpaSx, PRECOND: ConCalzaSx, EFFETTO: ConScarpaSx)
Op(AZIONE: CalzaSx, EFFETTO: ConCalzaSx)
Un piano parziale sarà in due passi:
ScarpaDx e ScarpaSx.
Si tratta di stabilire quale passo verrà prima.
Viene spesso usato il principio dell’impegno minimo, ossia vengono fatte le scelte localmente migliori.
In questo caso si considera il nuovo passo CalzaDx, aggiungendo il vincolo che deve essere eseguito prima di ScarpaDx, mentre nulla si richiede circa la loro connessione con ScarpaSx.
Questo modo di operare è proprio dei pianificatori con ordinamento parziale.
Nei pianificatori ad ordinamento totale, il piano è una sequenza di passi, per cui si ottiene a partire da un piano P un piano completamente ordinato attraverso vincoli di ordinamento (linearizzazione di P).
Seguiamo ora il tipo di rappresentazione che consente di rimandare le scelte di ordinamento e i legami di variabili.
Definiamo allora un piano come una struttura dati consistente in:
- un insieme di passi del piano: ciascun passo è un operatore
- un insieme di vincoli di ordinamento dei passi, della forma
Si
Sj ossia
“Si prima di Si, non necessariamente al passo immediatamente prima”
- un insieme di vincoli sui legami delle variabili. Ciascun vincolo è della forma v=x , v variabile relativa a qualche passo, x costante o variabile
- un insieme di relazioni causali, del tipo
Si àc Sj ossia
“Si raggiunge c tramite Sj “ cioè obiettivo di Si è raggiungere la precondizione c di Sj .
Il piano iniziale è quello prima di qualsiasi raffinamento, e descrive il problema non risolto: consiste di
due passi: Inizia e Finisci
vincolo: Inizia
Finisci
azioni nulle associate
Inizia non ha precondizioni ed ha come effetto di aggiungere tutte le proposizioni vere nello stato iniziale.
Finisci ha come precondizione lo stato obiettivo e non ha effetti.
Il pianificatore comincerà con questo piano iniziale manipolandolo fino a trovare un piano soluzione.
Il piano iniziale del nostro esempio avrà come precondizione di
Finisci “ConScarpaDx Ù ConScarpaSx”.
Nella figura sono mostrati a sinistra un piano con ordinamento parziale, a destra sei linearizzazioni del piano.
Il piano con ordinamento parziale è molto più potente perché permette di eliminare gli ordinamenti inutili.
In casi più complessi, il numero di scelte di ordinamento possibili cresce esponenzialmente: già 180 linearizzazioni aggiungendo solo 2 oggetti non correlati fra loro.
Chiamiamo soluzione un piano che l’agente può eseguire giungendo all’obiettivo.
Diciamo che la soluzione è un piano completo e consistente.
In un piano completo ogni precondizione viene raggiunta da qualche passo.
Un passo raggiunge una condizione quando la condizione è uno degli effetti del passo e non è eliminabile da altri passi.
Un piano consistente non contiene contraddizioni nell’ordinamento o nei vincoli (una contraddizione si verifica nel caso valga contemporaneamente
Si
Sj e Sj
Si , oppure v=A e v=B).
Il piano parziale in figura è una soluzione perchè tutte le precondizioni vengono raggiunte.
ESEMPIO COMPLETO DI PIANIFICATORE CON ORDINAMENTO PARZIALE
Descriviamo un pianificatore a regressione con ordinamento parziale.
Ad ogni itareazione il pianificatore aggiunge un passo, e se questo porta ad un piano inconsistente fa backtracking e prova un altro ramo.
Come accorgimento il pianificatore compie passi aggiuntivi che raggiungono precondizioni mai raggiunte in precedenza. A questo scopo usa le relazioni causali.
Nel problema della spesa lo stato inziale è l’operatore
Op(AZIONE: Inizia,EFFETTO: A(casa)ÙVende(NF,Trapano) Ù
Vende(SM,Latte) ÙVende(SM,Banana))
Lo stato obiettivo è
Op(AZIONE:Finisci, PRECOND:Ha(Trapano)Ù Ha(Latte)Ù Ha(banana) Ù A(casa))
Le azioni sono definite da:
Op(AZIONE: Vai(là), PRECOND: A(qui), EFFETTO: A(là) Ù ØA(qui))
Op(AZIONE): Compra(x), PRECOND: A(negozio)Ù
Vende(negozio,x),EFFETTO:Ha(x))
Ci sono molti modi possibili per elaborare la soluzione, alcuni portano a scelte non corrette.
Partiamo ad esaminare scelte corrette.
La figura sotto mostra tre azioni Compra che portano a tre precondizioni di Finisci.
Le frecce scure sono le relazioni causali, ad es. Compra(Trapano) è stato aggiunto per raggiungere Ha(Trapano).
Le frecce chiare mostrano i vincoli di ordinamento: in questo caso si sa che tutte le azioni vengono dopo l’azione Inizia, e tutte le cause vengono prima degli effetti.
Quest’altra figura mostra il piano dopo che il pianificatore haggiunto altre relazioni causali, con le quali ha scelto di raggiungere le precondizioni Vende.
Il miglioramento consiste nel fatto che fra tutte le cose comprabili e i luoghi possibili, siamo in grado di scegliere le giuste azioni Compra e i giusti luoghi.
Ricordiamo che non abbiamo bisogno dell’ordinamento delle azioni, che si può decidere successivamente.
Infine estendiamo il piano con l’aggiunta delle azioni Vai (al NF e al SM), che raggiungono le precondizioni A delle azioni Compra.
Problema: L’agente non può essere in due luoghi contemporaneamente. Ci sono quindi precondizioni che interferiscono fra loro.
Supponiamo che il pianificatore cerchi di raggiungere le precondizioni di Vai(NF) e Vai(SM) collegandole alla condizione A(Casa) :
Il passo Vai(NF) aggiunge la condizione A(NF), ma cancella A(Casa). Allora se va dal ferramenta, l’agente non può più andare da casa al supermercato.
La scelta non era corretta e dobbiamo tentarne un’altra. Ma come capisce il pianificatore che ha raggiunto un vicolo cieco ?
Impedendo le minacce, ossia i passi che possono invalidare le relazioni causali.
Per far questo il pianificatore aggiunge vincoli di ordinamento:
se la relazione causale S1 àc S2 è minacciata da S3 che ha l’effetto di annullare c, un vincolo di ordinamento può fare in modo che S3 non intervenga fra S1 e S2 .
Nella figura si vede che non c’è modo per risolvere la minaccia che ciascun passo Vai determina sull’altro.
Quando il pianificatore non riesce a risolvere una minaccia, torna sui suoi passi e prova ua scelta differente.
Nel problema sono presenti altre possibili minacce ce impedirebbero di continuare il piano.
Tornando indietro quando è necessario ed aggiungendo man mano vincoli di ordinamento, il sistema giunge alla soluzione finale.
Si ottiene un piano quasi completamente ordinato, salvo che per Compra(Latte) e Compra(Banane) che possono venire in qualsiasi ordine.
Il pianificatore ha in definitiva affrontato un problema di ricerca a migliaia di stati risolvendolo con pochi stati.
Il metodo del pianificatore è di cercare nei luoghi in cui i sottopiani interagiscono fra loro, mentre le relazioni causali permettono di riconoscere quando abbandonare i piani scorretti senza espanderli inutilmente.
IL MONDO DEI BLOCCHI
E’ un classico dominio di pianificazione.
Si tratta di cubi posati su un tavolo, che possono essere sovrapposti e spostati attraverso il braccio di un robot.
Il braccio può prendere solo un blocco alla volta.
L’obiettivo sarà una certa configurazione di blocchi.
DIZIONARIO
Su(b,x) = il blocco b è su x (x blocco o tavolo)
Sposta(b,x,y) è l’operatore che sposta b dalla posizione sopra x a quella sopra y).
Precondizione per spostare b: nessun blocco deve essere su b . Dobbiamo trovare un predicato Libero(x) che rappresenti questo fatto.
OPERATORI
Sposta muove un blocco da x a y se b e y sono liberi, dopodi che diventa libero x ma cessa di esserlo y:
Op(AZIONE:Sposta(b,x,y),
PRECOND:Su(b,x) Ù Libero(b) Ù Libero(y),
EFFETTO:Su(b,y) Ù Libero(x) ÙØ Su(b,x) ÙØ Libero(y))
Osserviamo però che quando x=Tavolo, Libero(Tavolo) non ha senso.
Introduciamo allora un altro operatore che sposta un blocco b da x al tavolo:
Op(AZIONE:Spostasultavolo(b,x),
PRECOND:Su(b,x) Ù Libero(b) ,
EFFETTO:Su(b,Tavolo) Ù Libero(x) ÙØ Su(b,x) .
Esiste poi la possibilità di operazioni spurie come Sposta (B,C,C), che però non danno nessun effetto. Basterà porre nella precondizione b ¹x ¹y .
IL MONDO DI SHAKEY
STRIPS venne usato per guidare il robottino Shakey, che spesso andava veramente in giro per le stanze del centro di ricerca.
La figura rappresena il mondo di Shakey. Ogni stanza ha una porta e un interruttore della luce.
Shakey può spostarsi, spingere oggetti, arrampicarsi e scendere da scatole, accendere e spegnere la luce.
DIZIONARIO
Vai(y) = spostati da dove sei ad y
A(Shakey,x) = Shakey è in x (pecondizione)
In(x,r)Ù In(y,r) = x e y devono essere nella stessa stanza
(la porta è In entrambe le stanze).
Spingi(b,x,y) = spingi un oggetto da x a y
Sali(b) = sali su una scatola.
Introduciamo il predicato Su e la costante Pavimento. Allora
Su(Shakey,Pavimento) è una precondizione di Vai .
Sali(b) ha come precondizione che Shakey sia in una posizione in cui sia anche b.
Spingibile(b) e Scalabile(b) = predicati , precondizioni necessarie a spingere e a scalare.
Giù(b) = scendi dalla scatola. Annulla gli effetti di Sali.
Accendi(luce) si può fare solo se Shakey è su una scatola che si trova dove c’è l’interruttore.
Spegni(luce) spegne la luce.
Non abbiamo condizionali, per cui non possiamo die che la luce va spenta quando è accesa e viceversa. Pianificatori più complessi di quelli visti hanno anche icondizionali.
STRIPS dovrà avere una mappa completa del mondo allo stato iniziale, che dica quali oggetti sono In quali stanze e in quali posizioni si trovano. Ciascuna scatola avrà un letterale.
Con operatori STRIPS è possibile rappresentare semplici domini, utilizzare operatori e predicati per raggiungere soluzioni. Il mondo di Shakey o quello dei cubi rappresentano tipici ambienti di esercizio per pianificatori.
- Fine articolo Euristica
Euristica
Collegamenti utili gratuiti
Disclaimer : gli obiettivi di questo sito sono il progresso delle scienze e delle arti utili in quanto pensiamo che siano molto importanti per il nostro paese i benefici sociali e culturali della libera diffusione di informazioni utili. Tutte le informazioni e le immagini contenute in questo sito vengono qui utilizzate esclusivamente a scopi didattici, conoscitivi e divulgativi. Le informazioni di medicina e salute contenute nel sito sono di natura generale ed a scopo puramente divulgativo e per questo motivo non possono sostituire in alcun caso il consiglio di un medico (ovvero un soggetto abilitato legalmente alla professione). In questo sito abbiamo fatto ogni sforzo per garantire l'accuratezza dei tools, calcolatori e delle informazioni, non possiamo dare una garanzia o essere ritenuti responsabili per eventuali errori che sono stati fatti, i testi contenuti nel sito sono di proprietà dei rispettivi autori. Se trovate un errore su questo sito o se trovate un testo o tool che possa violare le leggi vigenti in materia di diritti di autore, comunicatecelo via e-mail e noi provvederemo tempestivamente a rimuoverlo.