2012-05-04 35 views
21

Dopo alcune ricerche sugli algoritmi ho trovato due termini che mi confondono. Ho letto almeno 20 documenti e ancora non ci sono definizioni chiare su entrambi. Spero che qualcuno possa aiutarmi a capire la differenza tra l'euristica e gli algoritmi di metaeuristica. E se possibile, aggiungine la fonte.Qual è la differenza tra euristica e metaheuristica?

ps: so già qual è il significato delle parole, ma non so quale sia l'esatta differenza tra loro in informatica.

grazie in anticipo

+0

Dipende davvero dal contesto. Le euristiche sono regole utili che approssimano la risposta/il comportamento perfetto. Senza contesto, l'aggiunta di meta su di esso non gli conferisce alcun significato speciale, significa solo che è meta, cioè euristica dell'euristica. –

+0

Questo è nel contesto degli algoritmi –

+1

Dipende ancora dal contesto, in un modo che significa che non otterrete mai una risposta diretta, perché non sono definiti in modo diretto. Nei cerchi di intelligenza artificiale, un'euristica è una funzione di "buona ipotesi" usata come un elemento fondamentale di un algoritmo più ampio (di solito la ricerca). Un meta-euristico è una sorta di sistema di "buona congettura" in sé che continua a raffinare le sue ipotesi. Ma questo è solo il mio punto di vista - queste cose sono così indefinite che persino i giornali che fanno valutazioni comparative di euristiche o meta-euristiche non definiscono o offrono solo definizioni sciolte. Fondamentalmente, ne conosci uno quando ne vedi uno. – Novak

risposta

28

Si potrebbe pensare ad un'euristica come una soluzione approssimata (non approssimazione) ad un problema. La differenza tra approssimazione e approssimazione è che il primo riguarda la possibilità di ottenere una buona ipotesi sulla soluzione di un problema, ma che non sai davvero quanto sia bello. Il secondo riguarda l'ottenimento di una soluzione per la quale è possibile dimostrare quanto è vicino alla soluzione ottimale.

Quindi, l'euristica è spesso dipendente dal problema, ovvero, si definisce un'euristica per un determinato problema. Le meta-euristiche sono tecniche indipendenti dal problema che possono essere applicate a una vasta gamma di problemi. Un'euristica è, ad esempio, la scelta di un elemento casuale per la rotazione in Quicksort. Un meta-euristico non sa nulla del problema che verrà applicato, può trattare le funzioni come scatole nere.

Si potrebbe dire che un euristico sfrutta le informazioni dipendenti dal problema per trovare una soluzione "abbastanza buona" per un problema specifico, mentre le meta-euristiche sono, come i modelli di progettazione, idee algoritmiche generali che possono essere applicate a una vasta gamma di i problemi.

+2

Hai anche una fonte su questo? –

+2

Esiste un ottimo libro introduttivo sulla meta-euristica di [El-Ghazali Talbi] (http://books.google.com/books/about/Metaheuristics.html?id=SIsa6zi5XV8C). Dichiara più o meno questa stessa opinione nell'introduzione. Controlla. –

+0

Quindi, da quello che hai detto, NSGAII è un algoritmo meta-euristico in quanto potrebbe essere applicabile a molti problemi anche con il mio problema complesso, ma se scrivo il mio algoritmo sfruttando le informazioni del mio problema complesso, vuol dire che è un euristico algoritmo? Ho il significato e le differenze? (Scusa per il cattivo inglese) – Aerox

6

Al fine di dare una citazione corretta, rispetto a Alejandro risposta:

«Un metaeuristica è un quadro algoritmico problema indipendente di alto livello che fornisce una serie di linee guida o strategie per sviluppare algoritmi di ottimizzazione euristici [ ...] una specifica implementazione-problema di un algoritmo di ottimizzazione euristica secondo le linee guida espresse in un quadro metaeuristica è indicato anche come un metaeuristica »(Sörensen, Glover su http://scholarpedia.org/article/Metaheuristics)

per essere del tutto completa. Dovremmo distinguere tra algoritmi esatti, approssimativi ed euristici. Un algoritmo esatto trova una soluzione esatta. Un algoritmo approssimativo dovrebbe trovare una soluzione approssimativa, entro un tempo accettabile, oltre a indicare il suo intervallo di discrepanza con la presunta soluzione ottimale. Un'euristica trova semplicemente una soluzione abbastanza buona, entro un tempo accettabile.

A proposito, l'esempio di Alejandro quicksort non sembra del tutto adeguato per due o tre motivi diversi.

  1. In effetti, l'euristica e la metaeuristica fanno parte del campo dell'ottimizzazione. Il problema che cercano di affrontare è quindi di cercare un ottimo, non di smistamento.
  2. Le euristiche sono generalmente utilizzate quando i problemi che si vogliono affrontare sono troppo complessi, in senso computazionale, il che non è il caso del problema di classificazione.
  3. Ciò che è stato indicato tramite l'esempio quicksort, se lo capisco bene, è l'elemento casuale. In linea di principio, è possibile avere euristiche deterministiche - non ho mai incontrato una metaeuristica deterministica, ma probabilmente si potrebbe codificarla. Potrebbe essere un po '"giocare con le parole", ma l'elemento casuale caratterizza più propriamente la "ricerca stocastica" rispetto all'euristica (meta).
+1

Hum, penso che una stella sia una possibile euristica deterministica? – reyman64

+1

@Touki, +1 per le tue aggiunte penetranti.Voglio solo sottolineare che, anche se un esempio stitico, è possibile formulare l'ordinamento come trovare la permutazione che riduce al minimo il numero di inversioni. Con questa formulazione, è possibile applicare qualsiasi meta-euristico combinatorio (ad esempio, GA o SA) per risolverlo. Ovviamente Quicksort funzionerebbe molto meglio perché sfrutta la struttura del problema. In questo senso, forse Quicksort stesso può essere considerato un'euristica per il problema dell'ordinamento. Lo so, non è una formulazione utile nella pratica, ma serve allo scopo di indicare le differenze. –

+0

Come lato, vedi [Nelder-Mead] (https://en.wikipedia.org/wiki/Nelder%E2%80%93Mead_method) come un esempio di un algoritmo che IMHO può essere considerato un meta-euristico (ampia applicabilità ad una vasta gamma di problemi di ottimizzazione della scatola nera), e la sua completamente deterministica. È euristico perché, contrariamente a dire, [il metodo semplice] (https://en.wikipedia.org/wiki/Simplex_algorithm) non garantisce di convergere verso l'optimum globale. –

1

Per una spiegazione dettagliata, vedere:

Sörensen, K. (2015). Metaheuristics—the metaphor exposed. International Transactions in Operational Research, 22(1), 3-18.

Un metaeuristica è un algoritmico quadro problema indipendente di alto livello che fornisce una serie di linee guida o strategie per sviluppare ottimizzazione euristica algoritmi. Il termine viene anche utilizzato per fare riferimento a un'implementazione specifica del problema di un algoritmo di ottimizzazione euristica secondo le linee guida espresse in tale framework (Sörensen, 2015).

Le euristiche sono le linee guida, metaheurstics è la struttura che utilizza quelle.

Problemi correlati