December 31
Reverse algoritmi greedy - noto anche come algoritmi Rgreedy - non sono la "inversa" degli algoritmi golosi. Sono anche algoritmi greedy, ma funzionano in direzione inversa. Solitamente un algoritmo Rgreedy risolve un problema nella direzione opposta o utilizza una soluzione opposta rispetto alla soluzione classica algoritmo greedy. Un algoritmo greedy è uno che prende quello che sembra il passo più vantaggiosa in ogni punto in un processo. Algoritmi Greedy non sempre funziona, ma sono quasi sempre il modo più semplice di scrivere un algoritmo.
1 Inizia con l'algoritmo greedy. Se non esiste una soluzione algoritmo greedy standard per un problema, il problema di trovare l'algoritmo inverso è discutibile. Non è possibile trovare l'inverso del tipico modo di fare qualcosa se non vi è alcun modo tipico. Un buon esempio di un algoritmo greedy è il "albero ricoprente minimo di un grafico" problema. Un grafico è un insieme di punti collegati da linee dove le linee sono etichettati con i numeri. L'albero ricoprente minimo è un insieme connesso di linee che collega tutti i punti.
2 Cercare la procedura nella algoritmo greedy che può essere invertito. Tipicamente sarà il processo che controlla l'algoritmo; il processo che, quando esaurito, provoca l'algoritmo di fermarsi. L'algoritmo greedy classico per trovare l'albero di copertura minima è di iniziare con i punti e le linee di collegamento. Ad ogni passo, aggiungere la riga più piccolo tra due punti qualsiasi. Continuare il processo fino a quando tutti i punti sono collegati.
3 Trovare qualcosa per invertire se si vuole costruire un algoritmo Rgreedy. L'algoritmo Rgreedy per trovare l'albero ricoprente minimo inizia con la mappa e tutte le linee. Ad ogni passo, rimuovere la riga con la più grande etichetta che lascerà i punti collegati. Continuare questo processo fino a quando non più linee possono essere rimossi.
4 Controllare l'algoritmo Rgreedy per assicurarsi che risolve il problema. In realtà non è un algoritmo se non risolve il problema. Talvolta invertire un processo di controllo può introdurre una situazione in cui l'algoritmo non affronta tutti gli elementi del problema o non termina l'algoritmo correttamente. .