Divide et impera (informatica)

Niente fonti!
Questa voce o sezione sull'argomento programmazione non cita le fonti necessarie o quelle presenti sono insufficienti.

Divide et impera (in italiano «dividi e domina», «dividi e impera», «separa e conquista» o «dividi e conquista») indica, in informatica, un approccio per la risoluzione di problemi computazionali.

Descrizione

Il termine è più strettamente riconducibile a un algoritmo. Esso divide ricorsivamente un problema in due o più sotto-problemi di egual dimensione fin quando questi ultimi diventino di semplice risoluzione; quindi si combinano le soluzioni al fine di ottenere la soluzione del problema dato.

Questo approccio permette di affrontare in modo semplice problemi anche molto difficili (non complessi, dove la complessità sia irriducibile o non-lineare); inoltre la natura del divide permette di parallelizzare la computazione aumentandone l'efficienza su sistemi distribuiti o multiprocessore. Questo tipo di approccio è tipicamente detto top down.

Un programma sviluppato secondo questa tecnica è sostanzialmente diviso in tre parti:

  • Divide: in questa parte si procede alla suddivisione dei problemi in problemi di dimensione minore;
  • Impera: nella seconda parte i problemi vengono risolti in modo ricorsivo. Quando i sottoproblemi arrivano ad avere una dimensione sufficientemente piccola, essi vengono risolti direttamente tramite il caso base;
  • Combina: l'ultima fase del paradigma prevede di ricombinare l'output ottenuto dalle precedenti chiamate ricorsive al fine di ottenere il risultato finale.

In informatica questo principio viene applicato in modo diffuso per la risoluzione di molteplici problemi. Le applicazioni più conosciute sono due dei più usati algoritmi di ordinamento, il quick sort e il merge sort, oltre che l'algoritmo veloce per il calcolo della trasformata di Fourier veloce (FFT).

Si può parlare anche di divide et impera applicato al campo dell'analisi e del progetto del software.

Voci correlate

  • Divide et impera
  • Dividi e scegli
  • Algoritmi
  • Ingegneria del software
  • Ricorsione
  • Software
  • Locuzioni latine
  • Prune and search

Altri progetti

Altri progetti

  • Wikibooks
  • Wikiversità
  • Wikimedia Commons
  • Collabora a Wikibooks Wikibooks contiene testi o manuali sul divide et impera
  • Collabora a Wikiversità Wikiversità contiene risorse sul divide et impera
  • Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file sul divide et impera
Controllo di autoritàGND (DE) 4291466-8
  Portale Informatica
  Portale Lingua latina