Esiste un algoritmo di tempo lineare per suddividere il testo in modo uniforme in righe di larghezza massima. Utilizza SMAWK (o Knuth & Plass) e "equamente" significa: http://en.wikipedia.org/wiki/Word_wrap#Minimum_raggedness
Esiste un algoritmo o una funzione di costo concavo per l'algoritmo sopra che tenga conto del numero di righe in cui vorrei che il testo si spezzasse, anziché la larghezza massima della riga? Anche in tempo lineare?
In altre parole, sto cercando un algoritmo di interruzione di riga (o formazione di paragrafo o a capo automatico) in cui l'input è il numero desiderato di righe, non la larghezza desiderata.
Giusto per descrivere un approccio praticamente inutilizzabile: ci sono N parole e spazi N-1 tra ogni coppia di parole, M è il numero desiderato di linee (M <= N). Dopo ogni spazio potrebbe esserci al massimo un'interruzione di linea (possibilmente zero). Ora, l'algoritmo proverebbe a posizionare le interruzioni in ogni possibile combinazione, calcolando il "raggedness" e restituendo il migliore. Come farlo molto più velocemente?
Inoltre, un tale problema ha un nome? A quale "famiglia" di problemi appartiene? (Ad es. "Cestino") Se non avessi bisogno della soluzione perfettamente ottimale, solo un'ottima soluzione, è possibile risolverla molto più velocemente? (una qualche forma di euristica potrebbe essere utilizzabile, se per un dato input ci fosse sempre la stessa soluzione, possibilmente non ottimale).
Aggiornare
Chandra Chekuri ha suggerito a muggito "un problema nel capitolo di Kleinberg e Tardos sulla programmazione dinamica". È stata una buona lettura ma si occupa dell'interruzione di riga in base alla larghezza anziché al conteggio delle righe. Potrebbe essere adattabile a questo problema che è qualcosa che sto cercando di capire ora. Ecco un buon collegamento alla soluzione, sostengono addirittura di risolverlo in tempo lineare: http://web.media.mit.edu/~dlanman/courses/cs157/HW5.pdf
Inoltre, c'è un capitolo "8.5 Il problema della partizione" in The Algorithm Design Manual di Skiena che sembra essere esattamente in tema, lo sto ancora leggendo, duro. (Sfortunatamente, da quello che ho capito, ha una complessità temporale quadratica)