【发布时间】:2018-11-08 22:08:59
【问题描述】:
对于一个应用程序,我想找到一种方法,通过惩罚来最小化段落每行末尾的总空白空间。我有一组单词W = [w1, w2, w3, ..., wn],它们构成了我希望段落包含的文本,并且每个单词wi都有对应的长度li。我也知道一行可以容纳的最大字符数,包括空格:m。我不能连词。
在这种情况下,我定义了一个关系,该关系描述了以单词i 开头并以单词j 结尾的行的空白空间成本由c(i, j) = (m - (j - i) - sum_{k=i}^{k = j}lk)^3 给出。所以c(i, j)必须是正数,否则我需要换行,如果j = n,我不罚最后一行的空格:c(i, n) = 0。
有了这个参数,我找到了一种算法,可以在传递到下一行之前最小化每行的成本并计算总成本。但是,每条线的成本最小化并不一定意味着总成本也最小化。
我能想到的将总成本降至最低的任何过程都需要对每行中的单词数进行大量排列,因此无法实现。关于计算最小成本的可行算法的任何想法?
【问题讨论】:
标签: algorithm optimization pseudocode paragraph