Significato dei metodi (meta) euristici


10
  1. Per l'ottimizzazione, da Wikipedia :

    Nell'informatica, il metaoreuristico designa un metodo computazionale che ottimizza un problema cercando in modo iterativo di migliorare una soluzione candidata in relazione a una determinata misura della qualità. La metaeuristica fa poche o nessuna ipotesi sul problema da ottimizzare e può cercare spazi molto ampi di soluzioni candidate. Tuttavia, la metaeuristica non garantisce che sia mai stata trovata una soluzione ottimale. Molte metaeuristiche implementano una qualche forma di ottimizzazione stocastica.

    Altri termini che hanno un significato simile a metaheuristico sono: ricerca diretta, derivati ​​derivati, black-box o addirittura solo ottimizzatore euristico. Sull'argomento sono stati pubblicati numerosi libri e documenti di indagine.

    • Mi chiedo come capire se un metodo di ottimizzazione è metauristico o no? Per esempio,

      (1) Il metodo simplex per la programmazione lineare è metauristico?

      (2) La maggior parte dei metodi di programmazione non lineare come la discesa del gradiente, il metodo del moltiplicatore lagrangiano, i metodi di penalità, i metodi dei punti interni (metodi di barriera), i metauristici?

      (3) Tutti i metodi privi di gradiente, come il metodo Nelder-Mead o il metodo simplex in discesa, sono metauristici?

    • Quali sono alcuni metodi di ottimizzazione che non sono meta-euristici?

  2. Più in generale (andando oltre l'ottimizzazione) per le tecniche di risoluzione dei problemi, da Wikipedia :

    L'euristica si riferisce a tecniche basate sull'esperienza per la risoluzione dei problemi, l'apprendimento e la scoperta . Laddove una ricerca esaustiva non è pratica, vengono utilizzati metodi euristici per accelerare il processo di ricerca di una soluzione soddisfacente. Esempi di questo metodo includono l'uso di una regola empirica, un'ipotesi istruita, un giudizio intuitivo o buon senso.

    In termini più precisi, l'euristica è una strategia che utilizza informazioni facilmente accessibili, sebbene vagamente applicabili, per controllare la risoluzione dei problemi negli esseri umani e nelle macchine.

    Mi chiedo come capire il significato di "euristico"?

    • come posso sapere se una tecnica di "problem solving, apprendimento e scoperta" è euristica o no?

    • Quali sono alcune tecniche di "problem solving, apprendimento e scoperta" che non sono euristiche?

Grazie e saluti!

Risposte:


7

L'euristica è qualcosa che funziona in molti casi nella pratica, anche se non ci sono argomenti dettagliati sul perché dovrebbe funzionare bene.

La metaoreuristica non è un algoritmo ma uno schema o un'idea euristica generale che può essere utilizzata all'interno di algoritmi specifici.

Ad esempio, l'algoritmo simplex per la programmazione lineare non è né euristica né metaesistica, poiché ha una teoria della convergenza ben consolidata. Lo sqame è valido per la programmazione sequenziale quadtatica o per metodi di punti interni. (I metodi dei punti interni sono uno schema generale, ma non euristico e quindi non metauristico, in quanto vi è una teoria abbastanza forte ad esso associata).

L'algoritmo Nelder-Mead = downhill simplex per minimizzare una funzione è l'euristica (in realtà potrebbe non riuscire su problemi abbastanza semplici in dimensioni superiori), e la ricerca tabu è metaheuristics (poiché è possibile scrivere un sacco di algoritmi diversi che impiegano la ricerca tabu, ma sono altrimenti di qualità abbastanza diversa.


Grazie! (1) Quindi, per dire se un metodo è meta-euristico, è vedere se ha una teoria riguardo a quando converge al vero ottimizzatore? Se un metodo non ha ancora una tale teoria, allora è carneeuristico? Se un giorno esiste una teoria per essa, passerà da metauristico a non metauristico? (2) "Altri termini che hanno un significato simile a metauristico sono: ricerca diretta, derivati ​​derivati, black-box o, in effetti, solo ottimizzatore euristico". Mi chiedo se il metaoreuristico utilizza solo valori di funzione ed è privo di derivati? È il metodo di "ricerca" nella tua risposta a un'altra mia domanda?
Tim

@Tim: metaheuristic significa: (i) nessuna teoria della convergenza e (ii) nessuna ricetta definita per procedere ma piuttosto principi generali. - senza derivati ​​(= ricerca diretta = scatola nera; nomi diversi per lo stesso da radici storiche diverse) possono essere euristici oppure no; racconta solo l'input che l'utente deve fornire.
Arnold Neumaier,

Grazie! Mi chiedo se il metaoreuristico utilizza solo valori di funzione ed è privo di derivati?
Tim

@Tim: probabilmente sì; Non so nulla di ciò che in realtà si chiama metaoreistico che usa i gradienti.
Arnold Neumaier

7

Non farò l'iterazione su simplex e Nelder-Mead poiché @ArnoldNeumaier ha già dato un'ottima spiegazione, ma volevo aggiungere i miei 2 centesimi.

Una delle migliori citazioni che ho ascoltato qualche tempo fa per descrivere la differenza tra euristico e metauristico: un euristico è una regola abbastanza buona. Un metaoreurista è una regola abbastanza buona per trovare regole piuttosto buone.

Dovresti semplicemente vederlo come un modo per trovare una buona euristica per problemi specifici; fondamentalmente se ti poni una delle seguenti domande stai parlando di un metaeuristico:

  • Come devo modificare i parametri di questa euristica per migliorare le prestazioni su quel problema?
  • Questa euristica è migliore di quella euristica?

Esistono molte metaeuristiche che è possibile utilizzare per la risoluzione dei problemi, l'apprendimento e la scoperta , vale a dire:

Trovo che la maggior parte della metaeuristica sia in qualche modo ispirata da fenomeni naturali, che sono difficili da spiegare rigorosamente, ma hanno buone proprietà di convergenza.

Ecco un buon link se vuoi leggere di più su alcune altre tecniche metauristiche


Grazie! Non sono sicuro di aver capito "Un euristico è una regola abbastanza buona. Un metaoreuristico è una regola abbastanza buona per trovare regole piuttosto buone". Ad esempio, la ricottura simulata, lo sciame di particelle, la colonia di formiche e il tabù sono euristici o metauristici? Se sono una delle due, quali sono le loro controparti per l'altra?
Tim

Quello che dovresti capire da questa citazione è che sia l'euristica che la metaheuristica non sono esatte né provate, quindi "regola piuttosto buona". Un metaoreuristico è a un livello superiore rispetto a un euristico ed è attraverso diverse iterazioni successive che è possibile trovare un insieme di parametri che risolverà correttamente un problema. Se sapessi quale fosse questo insieme di parametri dall'inizio, dovresti semplicemente scrivere un euristico per risolvere il problema. Ma dal momento che non lo sai, devi usare un algoritmo per trovare questi parametri per la tua euristica: una metauristica. Spero che questo chiarisca.
Charles Menguy,

E gli algoritmi che ho dato qui sono tutti metaheuristici e puoi trovare maggiori dettagli sul link che ho dato. Non sono sicuro di cosa significhi esattamente per le controparti.
Charles Menguy,

Per controparti, intendo, ad esempio, se gli algoritmi sono tutti meta-euristici, allora l'euristica su cui operano devono essere essi stessi più valori specifici per i loro parametri regolabili?
Tim

Prendiamo ad esempio la ricottura simulata. Quello che fa alla fine è una ricerca su una catena di Markov. La "regola" dell'euristica sarebbe quella di supporre che uno stato nella catena di Markov sia la soluzione. Ciò che il metaoreuristico fa è cercare la convergenza nella catena di Markov per trovare lo stato ottimale che descrive la soluzione. In generale, penso che non dovresti sforzarti troppo per fare la distinzione: usa l'euristica quando esiste una soluzione "relativamente" semplice che può essere facilmente calcolata, e usa la metesuristica quando lo spazio della soluzione è troppo grande e devi essere più intelligente risolvere il problema.
Charles Menguy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.