Come ingannare l'ispezione della trama euristica?


23

Nel corso qui , Dave Clarke ha proposto che, al fine di confrontare la crescita asintotica si dovrebbe tracciare le funzioni a portata di mano. Come un informatico teoricamente propenso, chiamo (ndr) questo vodoo poiché una trama non è mai una prova. Ripensandoci, devo concordare sul fatto che questo è un approccio molto utile che a volte viene anche sottoutilizzato; una trama è un modo efficace per ottenere le prime idee, e talvolta è tutto ciò di cui hai bisogno.

Quando insegna TCS, c'è sempre lo studente che chiede: "Per cosa ho bisogno di una prova formale se posso semplicemente fare X che funziona sempre?" Spetta ai suoi insegnanti indicare e illustrare l'errore. Esiste una serie brillante di esempi di modelli apparenti che alla fine falliscono in math.SE, ma quelli sono scenari abbastanza matematici.

Quindi, come si fa a ingannare l'euristica dell'ispezione della trama? Ci sono alcuni casi in cui è difficile distinguere le differenze, ad es

esempio esempio esempio
[ fonte ]

Fai un'ipotesi, quindi controlla l'origine per le funzioni reali. Ma quelli non sono spettacolari come spererei, in particolare perché le relazioni reali sono facili da individuare dalle sole funzioni, anche per un principiante.

Ci sono esempi di crescita (relativa) asintotica in cui la verità non è evidente dalla definizione definitiva della funzione e l'ispezione della trama per ragionevolmente grande ti dà un'idea completamente sbagliata? Le funzioni matematiche e i set di dati reali (ad esempio il runtime di un algoritmo specifico) sono entrambi ben accetti; per favore astenersi da funzioni definite a tratti, però.n


2
In realtà, l'ho proposto come suggerimento per comprendere il problema.
Dave Clarke,

@DaveClarke: lo so; Ho usato la tua formulazione iniziale solo come apri provocatorio. Nessuna infrazione prevista.
Raffaello

Risposte:


23

(logn)anbO(nlogn)O(n0.6)

tracciare
[ fonte ]

Ad esempio, in "Alcuni risultati imprevisti del comportamento previsto per l'imballaggio del contenitore" di Bentley et al., Il tasso di crescita dello spazio vuoto per gli algoritmi di imballaggio del contenitore Best Fit e First Fit quando l'imballaggio degli articoli uniforme su stato stimato empiricamente come n 0,6 e n 0,7 , rispettivamente. Le espressioni corrette sono n 1 / 2[0,1]n0.6n0.7 e n 2 / 3 .n1/2log3/4nn2/3


15

Ecco un altro esempio (certamente piuttosto costruito), ma ne trovo comunque uno notevole. Ha lo scopo di dimostrare che le trame possono essere molto fuorvianti per giudicare la crescita asintotica.

fg

Riesci a indovinare quale delle funzioni cresce (asintoticamente) più velocemente?

trama di feg fino a 2000 trama di feg fino a 10.000 trama di feg fino a 200.000

fg

f(x)=x2
g(x)=sin(log(x))+1dxdx=x2(135cos(log(x))+15sin(log(x))).

gx2f204

Per questo esempio, possiamo smascherare le oscillazioni considerando un diagramma log-log:

log-log-plot di feg fino a 200.000

Naturalmente, questo non aiuta, in generale; per esempio, potremmo avere un periodo doppiamente esponenziale ...


12

N=(Q,SQ,FQ,RQ×Σ×Q)

Minimize:NFADFA=DeterminizeReverseDeterminizeReverse

Questo è ovviamente un algoritmo temporale esponenziale nel caso peggiore, dal momento che può richiedere un automa non deterministico e dartene uno deterministico (o ancora più ovviamente, chiama la costruzione del sottoinsieme due volte).

O(n2)O(nlog(n)) se sei un core e implementa l'algoritmo di Hopcraft).

Questo tocca la parte "trama" della "verifica euristica della trama" --- dobbiamo scegliere quali punti campionare quando si disegna la trama e si può ingannare una trama ingenua se non si scelgono i punti con attenzione. Questo vale anche per altri esempi, come Quicksort e l'algoritmo Simplex, ma per la pedagogia preferisco questo algoritmo a quei due.

La differenza di Quicksort è "solo" quadratica rispetto a log-lineare, che è meno spettacolare di una differenza polinomiale / esponenziale. L'algoritmo simplex ha una differenza altrettanto spettacolare, ma la sua analisi è considerevolmente più complicata dell'algoritmo di Brzozowski.

(Inoltre, ritengo che l'algoritmo di minimizzazione DFA di Brzozowski sia molto meno noto di quanto meriti di essere, ma ovviamente è una questione di gusti.)


Siamo spiacenti, ma non vedo abbastanza la connessione all'interpretazione dei grafici delle funzioni.
Raffaello

3
Suppongo che faresti qualcosa di simile alla prestazione della trama rispetto alla dimensione dell'istanza per un campionamento di istanze - e l'algoritmo di Brzozowski "apparirebbe" polinomiale a meno che tu non scelga le istanze per renderlo esponenziale.
Neel Krishnaswami,

1
Vedo. Questo è certamente un problema quando si confrontano gli algoritmi e si tracciano i tempi di esecuzione medi, cioè si tratta di tracciare i dati giusti . Quando ho posto la domanda, stavo solo pensando di interpretare correttamente la trama , che è completamente un'altra bestia. Potete per favore aggiungere questa prospettiva alla risposta?
Raffaello

Avresti lo stesso problema per tutti gli algoritmi che hanno un comportamento medio e peggiore diverso; Mi vengono in mente Quicksort e Simplex.
Raffaello

8

La tecnica matematica di adattamento alla curva può essere utilizzata per fornire un numero infinito di risposte alla tua domanda. Data una curva e un intervallo, si può facilmente trovare un polinomio che si adatta alla curva a qualsiasi grado di precisione. Questo esempio di Wikipedia mostra come un'onda del peccato possa essere adattata in modo abbastanza accurato con un polinomio di quarto ordine (la curva blu).

inserisci qui la descrizione dell'immagine

Potrei usare polinomi di ordine superiore e ingannare l'euristica dell'ispezione della trama anche meglio di questo grafico.


2
È vero. Ha anche un sapore artificiale, però. Sicuramente posso generare contro-esempi per gli studenti in questo modo, ma non vedo che il più scettico ne sia convinto. Esistono eventi "naturali" di questo fenomeno (ovvero funzioni polinomiali di grado superiore che possono essere scambiate per altre funzioni) in cui l'interpretazione errata è "fatale"?
Raffaello

So che non è la risposta che stai cercando.
Dave Clarke,
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.