Questions tagged «greedy-algorithms»

2
如何证明贪心算法是正确的
我有一个贪心算法,我怀疑这可能是正确的,但我不确定。如何检查是否正确?证明贪婪算法正确的技术有哪些?有共同的模式或技术吗? 我希望这将成为一个参考问题,可以用来指导初学者。因此其范围比平常大。请小心给出一般的,有说服力的答案,至少由一个示例说明了这一点,但仍然涵盖了许多情况。谢谢!

1
贪婪算法何时可以解决硬币兑换问题?
给定一组具有不同面额和值v的硬币,您希望找到代表值v所需的最少数量的硬币。Ç 1 ,。。。,Ç ñc1,...,cnc1, ... , cn 例如,对于硬币集1,5,10,20,这给2和6的硬币和6和19的硬币。 我的主要问题是:何时可以使用贪婪策略解决此问题? 优点:这句话显然是不正确的吗?(摘自:如何分辨贪婪算法是否足以解决最小硬币找零问题?) 但是,本文证明,如果贪婪算法适用于第一个最大定理值和第二个最大定理值,那么它将适用于所有第一个定理值,并且建议仅使用贪婪算法与最佳DP算法进行检查。 http://www.cs.cornell.edu/~kozen/papers/change.pdf 附言 请注意,该线程中的答案令人难以置信-这就是为什么我再次提出这个问题。

1
拟阵和贪婪在算法设计中有多重要?
最初,引入拟阵来概括子集在某个地面集合的线性独立性的概念。包含此结构的某些问题允许贪婪算法找到最佳解决方案。后来引入了贪婪的概念来概括这种结构,以捕获更多的问题,以便通过贪婪的方法找到最佳的解决方案。EEEIII 这些结构在算法设计中多久出现一次? 此外,贪婪算法通常不能完全捕获找到最佳解的必要条件,但仍然可以找到非常好的近似解(例如Bin Packing)。鉴于此,有没有一种方法可以衡量问题与贪婪或类人动物有多“接近”?

4
如何使用贪心算法找到最接近给定序列的非递减序列?
a1,…,ana1,…,ana_1, \ldots, a_n000lllaiaia_ibibib_i000lllbibib_ib i O (n 4max(|a1−b1|,…,|an−bn|)max(|a1−b1|,…,|an−bn|)\max(|a_1-b_1|, \ldots, |a_n-b_n|)bibib_iO(nl√4)O(nl4)O(n\sqrt[4]{l}) 老实说,我根本不知道如何开始解决这个问题。在我看来,这似乎是一个动态编程问题,但这位教授说,应该使用贪婪算法解决该问题。如果有人可以给我一点点提示就可以指出正确的方向,那将不胜感激。

2
最小顶点覆盖树的贪婪算法的正确性证明
有一种贪婪算法,用于查找使用DFS遍历的树的最小顶点覆盖。 对于树的每个叶子,选择其父级(即,其父级处于最小顶点覆盖范围内)。 对于每个内部节点: 如果未选择其任何子节点,则选择此节点。 如何证明这种贪婪策略给出了最佳答案?是否没有比上述算法产生的顶点覆盖更小的尺寸?

1
推断优化类型
在工作中,我的任务是推断一些有关动态语言的类型信息。我将语句序列重写为嵌套let表达式,如下所示: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } 由于我从一般类型信息开始,并试图推断出更具体的类型,因此自然的选择是精简类型。例如,条件运算符返回其真假分支类型的并集。在简单的情况下,它效果很好。 但是,在尝试推断以下类型时遇到了障碍: function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

1
固定长度的类似决策树的特征选择,以最大程度地降低平均搜索性能
我有一个复杂的查询用于搜索数据集以查找。每个查询花费平均时间因此线性搜索的总时间为。我可以将查询分解为更简单的子查询q_i并找到 和其中。每个子查询计算速度都快得多,因此总的来说,找到然后使用来找到更快。QQQSSS吨吨·&| S | ħ 约 = { 小号∈ 小号| ∀ q Ĵ(小号)为真} ħ 确切 ⊆ ħ 约q 我ħ 约 Q ħ 确切Hexact={s∈S∣where Q(s) is True}Hexact={s∈S∣where Q(s) is True}H_\text{exact} = \{s \in S \mid \text{where $Q(s)$ is True}\}tttt⋅|S|t⋅|S|t\cdot |S|Happrox={s∈S∣∀qj(s)is True}Happrox={s∈S∣∀qj(s)is True}H_\text{approx} = \{s\in S \mid \forall q_j(s) \text {is True}\}Hexact⊆HapproxHexact⊆HapproxH_\text{exact}\subseteq …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.