L' analisi semplificata ha trovato la sua strada nell'analisi del flusso principale di algoritmi? È comune per i progettisti di algoritmi applicare un'analisi uniforme ai loro algoritmi?
L' analisi semplificata ha trovato la sua strada nell'analisi del flusso principale di algoritmi? È comune per i progettisti di algoritmi applicare un'analisi uniforme ai loro algoritmi?
Risposte:
Potrei sbagliarmi, ma considero l'analisi smussata come un modo per spiegare il comportamento pratico degli algoritmi che hanno cattive garanzie teoriche (simplex, k-medie e così via). Non sono sicuro di cosa significherebbe usare un'analisi uniforme nella pratica, se non per giustificare l'uso di un particolare euristico con prestazioni peggiori nel peggiore dei casi ("Il mio euristico ha un comportamento nel peggiore dei casi blah blah, ma un'analisi smussata indica che lo farà fare bene in pratica ecc. ecc. ")
Il modo in cui le persone analizzano gli algoritmi nel mondo reale è molto diverso dal mondo accademico. Mentre in ambito accademico l'obiettivo è quello di trovare un limite superiore dimostrabilmente corretto sul tempo di esecuzione, nella vita reale l'obiettivo è capire come funziona l'algoritmo e quali modifiche possono migliorare il tempo di esecuzione. Esistono due metodi principali che sono vietati nel mondo accademico ma utilizzati nella pratica:
Detto questo, non penso che sia molto comune analizzare un algoritmo in pratica, oltre ad aggiungere del testo di riempimento in una relativa pubblicazione accademica. L'attenzione si concentra sull'ingegneria del software o sull'ottimizzazione di basso livello, a seconda dell'argomento.
Infine, l'analisi semplificata è un'euristica che può essere utilizzata per spiegare perché gli algoritmi funzionano meglio nella pratica di quanto suggerirebbe il loro caso peggiore, vale a dire dal momento che alcuni degli input sono "casuali" in un certo senso. Questa euristica può essere utilizzata per approssimare il comportamento dell'algoritmo se si utilizza il metodo di approssimazione.