Gli algoritmi randomizzati sono costruttivi?


8

Da, le prove con il metodo probabilistico sono spesso definite non costruttive.

Tuttavia, una prova con metodo probabilistico in effetti progetta un algoritmo randomizzato e lo usa per dimostrare l'esistenza. Citato da p103 di Alandomith Algorithms di Rajeev Motwani, Prabhakar Raghavan :

Potremmo vedere la prova con il metodo probabilistico come un algoritmo randomizzato. Ciò richiederebbe quindi un'ulteriore analisi che limiti la probabilità che l'algoritmo non riesca a trovare una buona partizione su una data esecuzione. La principale differenza tra un esperimento mentale nel metodo probabilistico e un algoritmo randomizzato è la fine che ciascuno produce. Quando usiamo il metodo probabilistico, ci preoccupiamo solo di mostrare che esiste un oggetto combinatorio; pertanto, ci accontentiamo di dimostrare che si verifica un evento favorevole con probabilità diversa da zero. Con un algoritmo randomizzato, d'altra parte, l'efficienza è una considerazione importante: non possiamo tollerare una probabilità di successo minuscola.

Quindi mi chiedo se gli algoritmi randomizzati siano visti come non costruttivi, anche se alla fine di ogni esecuzione generano una soluzione, che può essere o meno una soluzione ideale.

Come viene definito un algoritmo o una dimostrazione "costruttiva"?

Grazie!


2
Poiché non esiste una definizione concordata di "costruttivo" come termine tecnico e non esiste alcuna autorità centrale che dia la definizione di "costruttivo", e poiché persone diverse avranno definizioni diverse (possibilmente a seconda del sottocampo di informatica o matematica da cui provengono), non credo proprio che ci possa essere una risposta definitiva a questa domanda.
Peter Shor,

Chiedo solo il suo significato più comune per prove e algoritmi. Penso che gli algoritmi randomizzati siano costruttivi, ma dimostrando con il metodo probabilistico non lo è anche se ha un algoritmo randomizzato all'interno, e quindi confuso.
Tim

Secondo Wikipedia , che non menziona la complessità temporale, quasi tutte le prove che utilizzano l'algoritmo probabilistico sarebbero costruttive, poiché forniscono algoritmi (molto inefficienti). Dipende dal contesto.
Peter Shor,

@PeterShor: non è un termine "costruttivo" approssimativamente ben definito come lo stesso "logica"? Senza chiarimenti, avrei supposto che un risultato costruttivo fosse quello che riguardava la teoria degli insiemi ZF e usava la logica costruttiva .
Niel de Beaudrap,

Non ho mai sentito "costruttivo" usato per descrivere algoritmi, solo prove.
Raffaello

Risposte:


8

Il metodo probabilistico viene in genere utilizzato per mostrare che la probabilità che un oggetto casuale abbia una determinata proprietà è diversa da zero, ma non presenta alcun esempio. Garantisce che un algoritmo "ripeti fino al successo" finirà alla fine, ma non dà un limite superiore al runtime. Quindi, a meno che la probabilità di possesso di una proprietà non sia sostanziale, una prova di esistenza con il metodo probabilistico rende un algoritmo molto scarso.

In realtà, gli algoritmi probabilistici non sono in realtà prove di esistenza costruttive, tanto quanto sono algoritmi per produrre prove di esistenza costruttive. L'output è un oggetto del tipo con cui doveva dimostrare l'esistenza; ma il fatto che alla fine ne produrrà uno ("esiste un'iterazione in cui fornisce un esempio - tranne con probabilità zero ...") non è sufficiente per essere costruttivo; sarà soddisfacente solo per qualcuno che già accetta che la probabilità non zero-senza-costruzione sia sufficiente per l'esistenza. Al contrario, se hai un buon limite nel tempo di esecuzione, allora in linea di principio non ci sono scuse per non eseguirlo per produrre effettivamente un esempio. Un buon algoritmo probabilistico non è ancora una prova costruttiva, ma un buonopianificare di ottenere una prova costruttiva.

Si noti che questa idea, secondo cui un algoritmo randomizzato è una strategia di prova (al contrario di una prova in sé) per dimostrare una quantificazione esistenziale, non è dissimile dall'idea che l'induzione sia una buona strategia di prova per mostrare una quantificazione universale (rispetto ai numeri naturali ). Questa analogia può sembrare avvincente, poiché l'induzione è essenzialmente il cuore della ricorsione come tecnica computazionale. (Per qualsiasi numero intero positivo , se si desidera decidere se è una somma dei numeri dispari consecutivi che precedono , è possibile ridurla per verificare se è una somma del dispari consecutivo numeri che precedononn22n+1(n1)22n1e così via). L'induzione è essenzialmente una strategia di dimostrazione algoritmica che abbiamo elevato a un teorema, permettendoci di avere le conoscenze senza calcolarle esplicitamente ogni volta. Tuttavia, l'induzione è accettata in modo costruttivo perché è già un assioma (-schema) dell'aritmetica di Peano e uno che è indipendente dagli altri assiomi. Al contrario, non esiste una regola di inferenza o assioma che consenta al metodo probabilistico di provare l'esistenza in modo costruttivo o di dimostrare in modo costruttivo che gli algoritmi probabilistici producono prove dell'esistenza, o qualcosa del genere. Semplicemente non puoi provare che ci sono esempi di una classe di oggetti dal fatto che esiste un algoritmo probabilistico per costruirlo, a meno che tu non accetti già quella proposizione, sia come assioma, sia da altre premesse.

Naturalmente, si potrebbe adottare una posizione filosofica intermedia rispetto al costruttivismo e all'approccio classico all'esistenza, e dire che ciò che si desidera non sono costruzioni di per sé ma schemi di costruzione che possono fallire con una probabilità inferiore a una; ciò renderebbe "schematica" qualsiasi costruzione probabilistica, se non del tutto costruttiva. Laddove si desideri tracciare la linea, per dire che trovano "soddisfacente" una prova dell'esistenza, dipende in definitiva da quanta intuizione (in senso non filosofico) desiderano ottenere dalle prove.


5

La complessità delle prove uniformi è un campo dedicato (tra l'altro) allo studio delle nozioni costruttive di prove e alla loro relazione con le classi di complessità. Per ciascuna delle classi di complessità del circuito (uniformi) popolari, si può definire una teoria in cui tutto ciò che è dimostrabile ha un "supporto" in un algoritmo in questa classe di complessità. Gli algoritmi randomizzati sono adattati alle versioni del principio del buco del piccione (stranamente).

Sfortunatamente non sono un esperto, quindi non posso aggiungere altro , oltre a indicarti il libro di Cook e Nguyen (lo stesso cuoco del teorema di Cook) e il lavoro di Emil Jeřábek , in particolare la sua tesi sul calcolo randomizzato.

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.