How are algorithms developed?
In generale, ecco come vengono sviluppati gli algoritmi.
- Trova un problema (o un problema con una soluzione esistente)
- Trova una soluzione al problema
- Ripeti i passaggi 1 e amp; 2 fino a quando non riesci a trovare un problema o non riesci a risolverlo.
La soluzione risultante è l'algoritmo per risolvere il problema.
Gli algoritmi "Really Useful" si verificano quando si dispone di un algoritmo monouso esistente e si rendono conto che potrebbe essere utilizzato in un contesto diverso con alcune modifiche. Questa realizzazione è ciò che ri-attiva il ciclo iterativo.
Da qui deriva gran parte della generalizzazione alla base di un algoritmo. E, come ha affermato Robert Harvey, questo esteso ciclo iterativo è il luogo da cui provengono i pattern software.
È equivalente a dire "Ho risolto foo
con questo, e se risolvo un po 'questa soluzione potrei risolvere anche bar
." E poi questo potenzialmente si estende alla risoluzione di baz
e così via pure. Risolvi abbastanza sfide con l'approccio e diventa generalizzabile come un algoritmo o un modello.
How long does that take?
Tutto dipende dalla natura del problema, dalle soluzioni disponibili e dagli strumenti utilizzati per affrontare il problema.
Per aiutare a chiarire il passo 2 nell'approccio generale: questo è il motivo per cui un sacco di duro lavoro e ispirazione vanno nella creazione di un algoritmo . I tuoi primi tentativi di risolvere il problema probabilmente falliranno o non saranno così eleganti.
Ma inizi con "bene, come potrei suddividere quel problema e risolverlo?" Ricorda che un algoritmo è un approccio passo-passo alla risoluzione di un problema. Quindi interrompo il problema in passaggi e vedi come questo approccio risolve il problema. Tieni presente inoltre che Risoluzione dei problemi è un ampio campo di ricerca. Alcuni metodi hanno più successo di altri e, a volte, è l'approccio non ortodosso a sviluppare l'elegante soluzione.