Divide et Impera

Il termine:

Divide et impera viene tradotto dal latino come dividi e impera, o dall' divide and conquer come dividi e conquista.


In informatica:

In informatica rappresenta una filosofia di risoluzione di problemi molto complessi, tramite gli algoritmi divide et impera.
Gli algoritmi di questo tipo divodino ricorsivamente il problema in due sottoproblemi di semplice risoluzione, dopo la risoluzione di tali sottoproblemi si combinano le soluzioni al fine di ottenere la soluzione del problema dato.
Un programma sviluppato secondo questa tecnica e' diviso in 3 parti:

  • Verifica della possibilita' di dividere il problema in sottoproblemi;
  • Divide divisione del problema in sottoproblemi e chiamata ricorsiva della funzione Divide;
  • Impera ricombina le soluzioni dei sottoproblemi per ottenere la soluzione del problema iniziale.
Questo tipo di approccio si chiama top down e permette di parallelizzare la risoluzione di piu' problemi semplici, e di aumentare l'efficienza di esecuzione nei sistemi distribuiti o a multiprocessore.
In informatica questo principio viene applicato per la risoluzione di molteplici problemi. Le applicazioni piuì conosciute, sono due dei piu' usati algoritmi di ordinamento, il quick sort e il merge sort, oltre che l'algoritmo veloce per il calcolo della Trasformata discreta di Fourier (FFTs).
Si puo' parlare anche di divide et impera applicato al campo dell'analisi e del progetto del software.


Top Down:

I modelli top-down e bottom-up sono strategie di elaborazione dell'informazione e di gestione delle conoscenze, riguardanti principalmente il software e, per estensione, altre teorie umanistiche e teorie dei sistemi. In linea generale, esse sono metodologie adoperate per analizzare situazioni problematiche e costruire ipotesi adeguate alla loro soluzione.
Nel modello top-down e' formulata una visione generale del sistema senza scendere nel dettaglio di alcuna delle sue parti. Ogni parte del sistema e' successivamente suddivisa, aggiungendo maggiori dettagli. Ogni nuova parte cosi' ottenuta puo' quindi essere nuovamente suddivisa, specificando ulteriori dettagli finche' la specifica completa e' sufficientemente dettagliata. Il modello top-down e' spesso progettato con l'ausilio di scatole nere che semplificano il riempimento ma non consentono di capirne il meccanismo elementare. Il top down struttura e sistematizza la riflessione, motiva ogni passaggio in modo logico e ripulisce il metodo di lavoro da tentativi casuali, intreccia strettamente analisi ed elaborazione, da' alla strategia complessiva un carattere di eleganza sostanziale e formale che si estrinseca come trasparenza e sistematicita'.
Nel processo di sviluppo software, l'approccio top down enfatizza la pianificazione ed una completa comprensione del sistema.
La tecnica per la scrittura di un programma mediante l'utilizzo dei metodi top down indica di scrivere una procedura principale che indica dei nomi per le principali funzioni di cui avra' bisogno. In seguito, il gruppo di programmazione esaminera' i requisiti di ognuna di queste funzioni ed il processo verra' ripetuto. Queste sotto-procedure a comparto eseguiranno eventualmente azioni cosi' semplici che porteranno ad una codifica semplice e concisa.
Quando tutte le varie sotto-procedure sono state codificate, il programma e' realizzato.


Creative Commons License
Questo/a opera è pubblicato sotto una Licenza Creative Commons.