タグ付けされた質問 「optimization」

利用可能な代替案のセットから最適な要素を選択することを伴う問題、およびそれらを解決する方法に関する質問。

8
整数配列の最速のソートアルゴリズムは何ですか?
私は高校時代に多くの分類アルゴリズムに出会いました。ただし、どれが最速かはわかりません(整数のランダム配列の場合)。だから私の質問は: 現在知られている最速のソートアルゴリズムはどれですか? 理論的には、さらに速いものがある可能性はありますか?それで、ソートの最小の複雑さは何ですか?

2
Cのvoid型がempty / bottom型と類似していないのはなぜですか?
ウィキペディアと私が見つけた他のソースはvoid、空のタイプではなくユニットタイプとしてリストCのタイプを見つけました。void空の/下の型の定義によりよく適合するように思えるので、この混乱を見つけます。 void私が知る限り、値は存在しません。 戻り値の型がvoidの関数は、関数が何も返さないため、何らかの副作用しか実行できないことを指定します。 タイプのポインターvoid*は、他のすべてのポインタータイプのサブタイプです。また、void*C との間の変換は暗黙的です。 最後の点voidに、空の型であることの引数としてのメリットがあるかどうかはわかりvoid*ませんvoid。 一方、voidそれ自体は他のすべてのタイプのサブタイプではありません。これは、タイプがボトムタイプであるための要件であると言えます。
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

2
タイムスロットのブロックを売る
与えられたのタイムスロットがあることk個の人々が購入したいです。人が私は値有するH (I 、J )≥ 0を各タイムスロットのためにJ。各ユーザーは、空の可能性があるタイムスロットの連続したブロックを1つしか購入できません。nnnkkk私iiH (I 、J )≥ 0h(i,j)≥0h(i,j)\geq 0jjj 売り手が達成できる最大値を計算する多項式時間アルゴリズムはありますか? 連続性の制約がなければ、各タイムスロットを最も価値のある人に与えることができます。我々はのタイムスロットの順序固定場合にも、人々を、次いで、動的プログラミングは、最初の最大値を求めるために使用することができる0 ≤ I ≤ Kの最初の購入人0 ≤ J ≤ N個のタイムスロット。kkk0 ≤ I ≤ K0≤i≤k0\le i \le k0 ≤ J ≤ n個0≤j≤n0\le j \le n

2
意思決定問題の最適化バージョン
この質問は、Computer Science Stack Exchangeで回答できるため、Theoretical Computer Science Stack Exchangeから移行されました。 7年前に移行され ました。 各最適化/検索問題には同等の決定問題があることが知られています。たとえば、最短経路問題 最適化/検索バージョン: 無向無加重グラフと2つの頂点与えられた場合、と間の最短経路を見つけます。G=(V,E)G=(V,E)G = (V, E)v,u∈Vv,u∈Vv,u\in Vvvvuuu 決定版: 無向無加重グラフ、2つの頂点、および非負の整数与えられた場合、長さが最大でであると間にパスがありますか?G=(V,E)G=(V,E)G = (V, E)v,u∈Vv,u∈Vv,u\in VkkkGGGuuuvvvkkk 一般に、「 stを見つけてください!」「x \ in X st f(x)\ leq kがありますか?」になります。x∗∈Xx∗∈Xx^*\in XX ∈ X F (X )≤ Kf(x∗)=min{f(x)∣x∈X}f(x∗)=min{f(x)∣x∈X}f(x^*) = \min\{f(x)\mid x\in X\}x∈Xx∈Xx\in Xf(x)≤kf(x)≤kf(x) \leq k しかし、その逆も真です。つまり、すべての決定問題に対して同等の最適化問題がありますか?そうでない場合、同等の最適化問題がない決定問題の例は何ですか?

7
アイテムを「均等に」配布するアルゴリズム
結果のリストが可能な限り「バランスの取れた」または「均等に分散」されるように、リストから値を分散するアルゴリズムを探しています(これらがそれを記述するための最良の方法であると確信していないため、引用符で...後で、結果が他の結果よりも良いかどうかを測定する方法を提供します)。 したがって、リストの場合: [1, 1, 2, 2, 3, 3] 値を再配布した後の最良の結果の1つは次のとおりです。 [1, 2, 3, 1, 2, 3] これと同じくらい良い結果が他にもあるかもしれません。もちろん、値のセットが不均一になると、より複雑になります。 これは、結果が他よりも優れているかどうかを測定する方法です。 各アイテムと同じ値を持つ次のアイテム間の距離を数えます。 その距離のセットの標準偏差を計算します。分散が低いほど、より良い結果が得られます。 観察: 距離を計算し、同じ値を持つアイテムを見つけることなくリストの最後に到達すると、リストの最初に戻ります。そのため、多くても同じアイテムが検出され、そのアイテムの距離はリストの長さになります。これは、リストが周期的であることを意味します。 典型的なリストには、さまざまな数量で最大15個の異なる値を持つ最大50個のアイテムがあります。 そう: 結果の[1, 2, 3, 1, 2, 3]場合、距離は[3, 3, 3, 3, 3, 3]であり、標準偏差は0;です。 結果の[1, 1, 2, 2, 3, 3]場合、距離は[1, 5, 1, 5, 1, 5]であり、標準偏差は2;です。 これにより、最初の結果が2番目の結果よりも良好になります(偏差が小さいほど良い)。 これらの定義を考慮して、どのアルゴリズムまたは戦略を検索すべきかの手がかりを求めます。

5
フィットネスの低い人が次世代に生き残るチャンスがあるのはなぜですか?
私は現在、遺伝的アルゴリズムについて読んで見ていますが、それは非常に興味深いと思います(大学にいる間、それを研究する機会がありませんでした)。 突然変異は確率に基づいていることを理解しています(ランダム性が進化の根源です)が、なぜ生存が必要なのかわかりません。 私が理解から、個々のフィットネス持つ、そのような別の個人用としてフィットネス持つ我々は持っている、その後、より良い確率持つ生き残るために次世代へ。F (i )J F (j )F (i )> F (j )I JIIIF(i)F(i)F(i)JJJF(j)F(j)F(j)F(i)>F(j)F(i)>F(j)F(i) > F(j)IIIJJJ 確率は、が生き残り、は生き残れないかもしれないことを意味します(「不運」で)。なぜこれが良いのか理解できませんか?が常に選択を生き延びたら、アルゴリズムの何が問題になるでしょうか?私の推測では、アルゴリズムは貪欲なアルゴリズムに似ていますが、よくわかりません。I IJJJ III III

2
和のセットを「加算解除」するための効率的なアルゴリズム
自然数Xのマルチセットが与えられた場合、すべての可能な合計のセットを考えます。 sums(X)={∑i∈Ai|A⊆X}sums(X)={∑i∈Ai|A⊆X}\textrm{sums}(X)= \left\{ \sum_{i \in A} i \,|\, A \subseteq X \right\} 例えば、sums({1,5})={0,1,5,6}sums({1,5})={0,1,5,6}\textrm{sums}(\left\{1,5\right\}) = \left\{0, 1, 5, 6\right\}ながら sums({1,1})={0,1,2}sums({1,1})={0,1,2}\textrm{sums}(\left\{1,1\right\}) = \left\{0, 1, 2\right\}。 (和の入力セットのサイズに関して測定される)逆演算を計算するための最も効率的なアルゴリズムは何ですか?具体的には、次のいずれかを効率的に計算できますか? 特定のセットが有効な合計セットであるかどうか。(例えば、{0,1,2}{0,1,2}\left\{0,1,2\right\}、有効であるが、{0,1,3}{0,1,3}\left\{0,1,3\right\}ではありません。) 指定されたセットに合計されるマルチセット。 最小の所与のセットへの合計マルチセット。(たとえば、{1,2}{1、2}\left\{1,2\right\}と{1,1,1}{1、1、1}\left\{1,1,1\right\}両方の合計{0,1,2,3}{0、1、2、3}\left\{0,1,2,3\right\}が、前者が小さいです。)

2
請求書の問題を一括して支払う
ありテーブルの人々が。番目の人が支払わなければならないドルを。nnniiipipip_i 一部の人々は正確にを支払うための適切な請求書を持っていないため、次のアルゴリズムを考え出します。pipip_i まず、誰もが自分のお金の一部をテーブルに置きます。その後、各個人は彼らが過払いしたお金を取り戻します。 法案には、金種の固定セットがあります(入力の一部ではありません)。 例:アリスとボブの2人がいるとします。アリスは負っている$ 5と5枚の持っている$ 1札を。ボブは負って$ 2と1つの持っている$ 5法案を。アリスとボブがすべてのお金をテーブルに置いた後、ボブは3 ドルを取り戻し、誰もが幸せです。 もちろん、お金をすべてテーブルに置く必要がない場合もあります。たとえば、アリスが1,000 ドルの請求書を持っている場合、彼女はそれらをすべてテーブルに置いてから、ほとんどを取り戻す必要はありません。 次のプロパティを持つアルゴリズムを見つけたい: 入力は、人数、各人が支払うべき金額、各人の各宗派の請求書を指定します。 このアルゴリズムは、最初のラウンドでテーブルに置く請求書を各個人に伝えます。 このアルゴリズムは、2回目のラウンドでテーブルから削除する請求書を各個人に伝えます。 テーブルに置かれた請求書の数+テーブルから削除された請求書の数は最小化されます。 実行可能な解決策がない場合、アルゴリズムはエラーを返します。

1
アルゴリズム設計におけるマトロイドとグリードイドはどのくらい基本的ですか?
当初、マトロイドは、いくつかのグラウンドセットIに対するサブセットコレクションの線形独立性の概念を一般化するために導入されました。この構造を含む特定の問題により、貪欲なアルゴリズムが最適なソリューションを見つけることができます。欲張り法によって最適な解決策を見つけることを可能にするより多くの問題を捕捉するために、この構造を一般化するために、後にグリードイドの概念が導入されました。EEEIII これらの構造は、アルゴリズム設計でどのくらいの頻度で発生しますか? さらに、多くの場合、貪欲なアルゴリズムでは最適なソリューションを見つけるために必要なものを完全にキャプチャすることはできませんが、それでも非常に優れた近似ソリューションを見つけることができます(たとえば、Bin Packing)。それを考えると、問題がグリードイドまたはマトロイドにどれだけ「近い」かを測定する方法はありますか?

3
NP完全問題は、なぜ近似の点でそれほど異なるのですか?
私はプログラマーだと言って質問を始めたいのですが、複雑性理論の背景はあまり持っていません。 私が気づいたことの1つは、多くの問題はNP完全ですが、最適化問題に拡張すると、いくつかは他のものよりも近似するのがはるかに難しいことです。 良い例がTSPです。すべての種類のTSPはNP完全ですが、対応する最適化の問題は、次の単純化でより簡単に近似できます。一般的なケースはNPO完全、メトリックのケースはAPX完全、ユークリッドのケースには実際にPTASがあります。 これは私には直観に反しているように思われ、これには理由があるかどうか疑問に思っています。

3
体積を与えて表面積を最小化するアルゴリズム
次のアルゴリズムタスクを検討してください。 入力:正の整数nnnとその素因数分解 Find:制限に従って、を最小化する正の整数x y + y z + x z x y z = nx,y,zx,y,zx,y,zxy+yz+xzxy+yz+xzxy+yz+xzxyz=nxyz=nxyz=n この問題の複雑さは何ですか?多項式時間アルゴリズムはありますか?NPハードですか? この問題は基本的に、体積がで寸法がすべて整数であるすべての直方体のうち、表面積が最小のものを求めます。nnn この問題は、Dan Meyerによって、「1,000人の数学教師が解決できない数学問題」というタイトルで提起されました。これまでのところ、彼が働いていた数学教師の誰も、この問題に対する合理的なアルゴリズムを見つけていません。彼の文脈では、「合理的」の定義は少し不正確ですが、コンピューター科学者として、この問題の複雑さについてより正確な質問をすることができます。 明らかなアプローチは、すべての可能性を列挙することですが、これには指数関数的な時間がかかります。Dan Meyerのブログのコメンターは、残念ながらすべてが間違っていることが判明した多くの効率的な候補アルゴリズムを提案しています。マーティン・ストラウスは、この問題が3パーティションを漠然と連想させるように思われると示唆していますが、それを減らすことはできません。x,y,zx,y,zx,y,z また、コメント/回答で私が見たいくつかの誤解を解消させてください。 2つの問題の目的関数が異なるため、各数値をそのべき乗に置き換えるだけでは、3分割から減らすことはできません。明らかな削減は単に機能しません。2 qqqq2q2q2^q 最適解のいずれピッキング含むことは真実ではない最も近い除数であるとに。私はこれが事実であると仮定している複数の人々を見ますが、実際、それは正しくありません。これは、Dan Meyerのブログ投稿で既に反証されています。たとえば、n = 68を検討します。\ sqrt [3] {68} \ approx 4、および4は68を除算するため、x、y、zの少なくとも1つは4であると考えるかもしれません。ただし、それは正しくありません。最適なソリューションはx = 2、y = 2、z = 17です。別の反例はn = 222、\ sqrt [3] {222} \ approx 6ですが、最適なソリューションはnは3 √x,y,zx,y,zx,y,znnn N=683 …

1
多角形を別の多角形の内側にパックする方法は?
エッジを縫い合わせてジャグリングボールを作りたい革シートをいくつか注文しました。ボールの形状にプラトンの立体を使用しています。 革のシートをスキャンして、革のシートの形状に近いポリゴンを生成できます(ご存知のように、動物の皮であり、長方形ではありません)。 それで、ジャグリングボールのサイズを最大化したいと思います。 私の例では、ポリゴンは通常のものですが、単純なポリゴンを使用したソリューションを探しています。 すべてがシート内に収まるようにポリゴンに適用できる最大のスケールファクターは何ですか? できるだけ多くの材料を使用して、無駄を最小限に抑えようとしています。 明らかに、多面体ネットを個々の多角形にカットすると、可能な組み合わせのスペースが増加しますが、最終的なジオメトリの品質も低下します。これは、縫製が多く、エラーが蓄積されるためです。しかし、この質問は、多面体を展開するさまざまな方法を列挙することではありません。それらは独立して考えることができます。したがって、ポリゴンは単純なポリゴンです。 正式に: 入力: PPP:単純なポリゴン(ターゲット) SSS:配置したいポリゴンのセット GGG:単純なポリゴンのグラフ-各ノードは単純なポリゴンを表し、共通のエッジを共有するポリゴンの各ペア間に1つのエッジエッジがあります SnnnSSS α>=0,β>=0α>=0,β>=0\alpha >= 0, \beta >= 0(素材と接続性の使用) 出力: スケール係数fff HHH、部分グラフGGG LocLocLoc:各ポリゴンの位置と角度V(G)V(G)V(G) 解の品質尺度:M = α 。F + β 。| E (H )|mmmm=α.f+β.|E(H)||E(G)|m=α.f+β.|E(H)||E(G)| m = \alpha.f + \beta. {|E(H)|\over|E(G)|} 次の条件に従って最大化します。mmm |V(H)|=|V(G)||V(H)|=|V(G)| | V(H) | = |V(G)| (1) |E(H)|<=|E(G)||E(H)|<=|E(G)| | E(H) …

4
欲張りアルゴリズムを使用して、指定されたシーケンスに最も近い非減少シーケンスを見つける方法は?
n個の整数すべてと間で与えられます。各整数下に、からまでの整数を書き込む必要がありますが非減少シーケンスを形成するという要件があります。そのようなシーケンスの偏差を定義します。実行時O(n \ sqrt [4] {l})で最小偏差を持つb_iを見つけるアルゴリズムを設計します。a1、… 、ana1,…,ana_1, \ldots, a_n000llla私aia_ib私bib_i000lllb私bib_iB I O (nは4 √最大(| a1− b1| 、…、 | an− bn| )max(|a1−b1|,…,|an−bn|)\max(|a_1-b_1|, \ldots, |a_n-b_n|)b私bib_iO (n l√4)O(nl4)O(n\sqrt[4]{l}) 正直に言って、この問題を解決する方法すら全くわかりません。動的プログラミングの質問のように見えますが、教授は貪欲なアルゴリズムを使用してこれを解決する必要があると言いました。誰かが小さなヒントを与えることで私を正しい方向に向けることができれば幸いです。

3
CookieボックスにいくつのCookieがありますか?—星を並べる
ホリデーシーズンが近づいてきたので、シナモンスターを作ることにしました。それは楽しかった(そして結果はおいしい)が、星の最初のトレイを箱に入れたときに私の内側のオタクが縮み、それらが1つのレイヤーに収まらなかった: ほとんど!彼らがフィットする方法はありますか?とにかく星をどれだけタイルできますか?これらが通常の6点星であるとすれば、よく知られている六角形のタイルを近似として使用できます。 右上の1つをめちゃくちゃにしました。 しかし、これは最適ですか?ヒントの間には十分なスペースがあります。 この考慮のために、長方形のボックスと6点の規則正しい星に制限してみましょう。つまり、すべてのヒントとその隣の隅との間に30度(または)があります。星は、内側半径と外側半径によって特徴付けられ。π6π6\frac{\pi}{6}r私r私r_iroror_o [ ソース ] 我々は六角形有することに留意されたいとhexagramsため。これらを極端なもの(Cookieの場合)と見なし、その間の範囲、つまり。r私= 3√2⋅ Ror私=32⋅ror_i = \frac{\sqrt{3}}{2} \cdot r_or私= 13√⋅ Ror私=13⋅ror_i = \frac{1}{\sqrt{3}} \cdot r_or私r0∈ [ 13√、 3√2]r私r0∈[13、32]\frac{r_i}{r_0} \in \Bigl[\frac{1}{\sqrt{3}}, \frac{\sqrt{3}}{2}\Bigr] 私のcookieにはと不完全さを無視しています。r私≈ 17 M Mr私≈17mmr_i \approx 17\mathrm{mm}ro≈ 25 メートルメートルro≈25mmr_o \approx 25\mathrm{mm} 上記の特性を持つ星の最適なタイリングとは何ですか?静的な最適なタイリングがない場合、効率的に良いものを見つけるためのアルゴリズムはありますか?

6
動的プログラミングとブルートフォースの違い
次の引用に出会ったとき、私はダイナミックプログラミングを読んでいました 動的プログラミングアルゴリズムは、問題を解決するために考えられるすべての方法を調べ、最適なソリューションを選択します。したがって、ダイナミックプログラミングは、インテリジェントなブルートフォースの方法であるとおおまかに考えることができます。これにより、考えられるすべてのソリューションを選択して、最良のソリューションを選択できます。問題の範囲がすべての可能なソリューションを通過することが可能であり、十分に高速である場合、動的プログラミングは最適なソリューションを見つけることを保証します 次の例を示しました たとえば、ラッシュアワー中に特定の都市で、できるだけ早くポイントAからポイントBに移動しなければならないとしましょう。ダイナミックプログラミングアルゴリズムは、トラフィックレポート全体を調べて、考えられるすべての道路の組み合わせを調べて、どちらの方法が最も速いかを示します。もちろん、アルゴリズムが終了するまでしばらく待たなければならない場合があり、そうして初めて運転を開始できます。あなたが進む道は最速のものになります(外部環境で何も変わらないと仮定すると) ブルートフォースは、最善の解決策を決定する前に、考えられるあらゆる解決策を試みています。 それがまたあればどのように動的ブルートフォースは異なるプログラミングされて最適なものを選ぶ前に、すべての可能な解決策を通過し、私が見る唯一の違いは、動的プログラミングは、アカウントに追加の要因(この場合は交通状況を)取ることです。 動的計画法はブルートフォース法のサブセットであると言ってもいいですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.