タグ付けされた質問 「ds.algorithms」

タスクを完了するための明確に定義された指示、および時間/メモリ/その他に関する関連分析に関する質問。

1
最大の「公平な」マッチング
グラフの最大重みマッチングのバリエーションに興味があります。これを「最大公正マッチング」と呼びます。 グラフがいっぱいで(つまりE=V×VE=V×VE=V\times V)、頂点の数が偶数であり、重みが利益関数によって与えられると仮定し。一致する与えられると、エッジ利益が一致するによって示されます。p:(V2)→Np:(V2)→Np:{V\choose 2}\to \mathbb NMMMM(v)M(v)M(v)vvv 一致するは、任意の2つの頂点について、公平に一致するiffです: MMMu,v∈Vu,v∈Vu,v\in V(∀w∈V: p({w,v})≥p({w,u}))→M(v)≥M(u)(∀w∈V: p({w,v})≥p({w,u}))→M(v)≥M(u)(\forall w\in V:\ \ p(\{w,v\})\geq p(\{w,u\}))\to M(v)\geq M(u) つまり、任意の頂点、を頂点一致させると、それを頂点一致させるよりも高い利益が得られる場合、公平な一致で十分です。w∈Vw∈Vw\in VwwwvvvuuuM(v)≥M(u)M(v)≥M(u)M(v)\geq M(u) 最大の公平なマッチングを効率的に見つけることができますか? 興味深いケースは、グラフが2部構成であり、公平性が片側にのみ適用される場合です。つまり、であると想定し、利益関数が与えられます。G=(L∪R,L×R)G=(L∪R,L×R)G=(L\cup R,L\times R)p:L×R→Np:L×R→Np:L\times R\to \mathbb N A フェア二部マッチングがでマッチングあるような任意の2つの頂点のための: GGGu,v∈Lu,v∈Lu,v\in L(∀w∈R: p({v,w})≥p({u,w}))→M(v)≥M(u)(∀w∈R: p({v,w})≥p({u,w}))→M(v)≥M(u)(\forall w\in R:\ \ p(\{v,w\})\geq p(\{u,w\}))\to M(v)\geq M(u) 最大ウェイトの公平な2部マッチングをどれくらい速く見つけることができますか? この問題の動機は、2つの部分からなる特殊なケースにあります。ワーカーとタスクがあり、ワーカーが作業から利益を生み出すことができると仮定します。ここで問題になるのは、合理的な設計をすることです(ある意味では、労働者は「はぎ取られた」とは感じません)一方で、総ペイオフを最大化します(割り当てメカニズムの力と社会的利益の間にはトレードオフがあります)。nnnmmmiiipi,jpi,jp_{i,j}jjj 労働者の仕事への割り当ての社会福祉(または工場の利益)を利益の合計として定義する場合。 ジョブアサイナの機能に関するさまざまなシナリオを見ると、次の結果が得られます。 任意のワーカーを任意のジョブに割り当てることが許可されている場合は、工場を効率的に最適化できます(最大重量のマッチングを見つけるだけです)。 すべてのワーカーが自分でタスクを選択した場合、自分の仕事が選択されると想定して(各ジョブで選択できるのは1つの仕事のみ)、タスクを選択した最も適格なワーカーである場合、ワーカーは「貪欲」に収束します。 '平衡。その理由は、最も多く稼ぐことができるワーカー()が最も収益性の高いジョブを選択する、などです。マッチングの貪欲アルゴリズムの近似率により、これは可能な最大の社会福祉の2近似を与えるはずです。i=argmaximaxjpi,ji=argmaximaxjpi,ji=\mbox{argmax}_i \max_j p_{i,j} …

1
準二次時間で類似のベクトルを見つける
ましょう、我々はと呼ぶ関数である類似度関数。類似性関数の例は、コサイン距離、ノルム、ハミング距離、ジャカード類似性などです。d:{0,1}k×{0,1}k→Rd:{0,1}k×{0,1}k→Rd:\{0,1\}^k\times \{0,1\}^k \to \mathbb{R}l2l2l_2 長さバイナリベクトルを考えます:。nnnkkkv⃗ ∈({0,1}k)nv→∈({0,1}k)n\vec{v} \in (\{0,1\}^k)^n 私たちの目標は、類似するベクトルをグループ化することです。より正式には、ノードがベクトルで、エッジが類似するベクトルを表す類似性グラフを計算します()。d(v,u)≤ϵd(v,u)≤ϵd(v,u) \leq \epsilon nnnとは非常に大きな数値であり、2つの長さベクトルを比較するとコストがかかるため、総当たりの操作をすべて実行することはできません。大幅に少ない操作で類似性グラフを計算したいと考えています。kkkkkkO(n2)O(n2)O(n^2) これは可能ですか?そうでない場合、類似性グラフのすべてのエッジに加えて、多くても他のエッジを含むグラフの近似を計算できますか?O(1)O(1)O(1)

1
多項式因子が線形因子になっているかどうかのチェック
ましょう演算回路によって与えられる多項式であるCサイズのS。入力としてCが与えられた場合、Q [ x 1、x 2、… 、x n ]のfのすべての既約係数が線形形式であるかどうかをチェックする決定論的アルゴリズムはありますか?関連するノートでは、線形形式l = ∑ n i =f∈Q[x1,x2,…,xn]f∈Q[x1,x2,…,xn]f\in\mathbb{Q}[x_{1},x_{2},\ldots,x_{n}]CCCsssCCCfffQ[x1,x2,…,xn]Q[x1,x2,…,xn]\mathbb{Q}[x_{1},x_{2},\ldots,x_{n}]、我々かどうか確定確認することができ、Lはの要因である、F。もちろん、どちらの場合も実行時間を多項式にする必要があります。サイズとは、総ビットサイズを意味します。また、fの次数はnの多項式であると想定できます。l=∑ni=1li⋅xil=∑i=1nli⋅xil=\sum_{i=1}^{n}l_{i}\cdot x_{i}lllffffffnnn

1
秘書採用ゲーム
これは古典的な秘書問題の延長です。 採用ゲームでは、候補者セットがあり、各労働者の熟練度を注文します。C={c1,…,cN}C={c1、…、cN}\mathcal C=\{c_1,\ldots,c_N\} Wlogでは、が最も熟練していると想定し、c 2がそれに続きます。c1c1c_1c2c2c_2 候補者の面接の順序はランダムに一律に選ばれ、雇用主には(明らかに)不明です。 次に、2つの潜在的な雇用主を持つ市場があるとします。すべてのラウンドで、新しい候補者が両社の面接を行います(それらをと呼びます)。面接では、AとBの両方が、現在の面接対象者を含む過去のすべての候補者の部分的な順序付けを観察します。次に、企業は(独立して)今日の応募者を採用するかどうかを決定します。A,Bあ、BA,BAあABBB にとって残念なことに、それはAの申し出と金銭的に競合することができないので、両方が労働者への申し出を延長する場合、Aが優先されます。BBBAあAAあA また、秘書が署名すると、会社はそれ以上の候補者に面接することはできず、競合他社は署名に気づきます。 各会社の目標は、より優れた秘書を持つ会社が引き継ぐことができるはずであることが知られているため、(単一の会社が最高の秘書を見つけたいという古典的な問題とは対照的に)よりスキルの高い候補者を雇うことです。市場。 大企業としての最適な戦略は何ですか()?AあA 中小企業()はどうですか?BBB 両方の企業が均衡戦略をとる場合、がより良い労働者を獲得する確率はどれくらいですか?BBB 関連する作業、カライら。は、この問題の対称バージョンについて説明します。このバージョンでは、両社が候補者を引き付ける同じ力を持っています。 この設定では、単純な(対称)均衡は、秘書が残りの候補者よりも優れている可能性が少なくとも50%である場合に秘書を雇うことです。 これにより、設定はどのように変化しますか?

1
ポイントのセットを2つの最適なサブセットに二等分する
クラスタ内の平方和が最小になるように、ポイントのセットを2つの等しいサイズのサブセットに分割したいと思います。ポイントは2次元のユークリッド空間にあると想定できます。k = d = 2の場合、一般的なk平均クラスタリングアルゴリズムよりも高速なものを期待しています。誰かがこのための良いアルゴリズムの方向に私を向けることができますか? 適切な近似があれば、正確な解は必要ありません。 ありがとう!

2
準線形クエリ時間を使用して、合計が
これが最近傍問題です。 実数(非常に大きいn!)にターゲットの実数pを加え、SUMがpに最も近いa iとa jを見つけます。当社は、合理的な前処理/インデックス許可1、... 、nは(最大Oを(N ログN ))が、(特定のクエリ時にP例えば、()、結果は非常に速く返されるべきO (ログn個)時間)。a1,…,ana1,…,ana_1, \ldots, a_nnnnpppaiaia_iajaja_jpppa1,…,ana1,…,ana_1, \ldots, a_nO(nlogn)O(nlog⁡n)O(n \log n)pppO(logn)O(log⁡n)O(\log n) (より単純な例:pに最も近いSINGLE だけが必要な場合は、1、… 、a nオフライン、O (n log n )をソートしてから、クエリ時にバイナリ検索を実行しますO (log n ))。aiaia_ipppa1,…,ana1,…,ana_1, \ldots, a_nO(nlogn)O(nlog⁡n)O(n \log n)O(logn)O(log⁡n)O(\log n) 機能しないソリューション: 1)1、… 、a nをオフラインでソート、次にクエリ時に両端から開始して2つのポインターを内側に移動します(http://bit.ly/1eKHHDy)。O (n )クエリ時間のため、良くありません。a1,…,ana1,…,ana_1, \ldots, a_nO(n)O(n)O(n) 2)1、… 、a nをオフラインでソートしクエリ時に、各a iを取得して、 pに近いものに合計するのに役立つ「バディ」をバイナリ検索します。O (n log n )クエリ時間のため、良くありません。a1,…,ana1,…,ana_1, \ldots, a_naiaia_ipppO(nlogn)O(nlog⁡n)O(n …

1
一般的な重み付き無向グラフから最適な並列化を見つける
重なり合う画像の「ブレンド」セットの問題を解決しています。これらのセットは、次のような無向の重み付きグラフで表すことができます。 各ノードは画像を表します。重なっている画像はエッジで接続されています。エッジの重みはオーバーラップエリアのサイズを表します(大きいオーバーラップをブレンドすると、全体的な品質が向上します)。 アルゴリズムは通常、エッジを削除します。順次または並行して実行できます。ただし、ブレンドが発生すると、ノードがマージされ、グラフ構造が変化します。したがって、並列化は、それら自体が重複していない接続されたコンポーネントでのみ可能です! このような重複しないコンポーネントは、DBとFEGです。これらのコンポーネントでブレンドアルゴリズムを安全に並行して実行できます。結果は次のグラフになります(マージされたノードは緑色で表示されます)。 これで、2つの接続されたコンポーネントがオーバーラップしている(コンポーネント間に直接エッジがある)ため、これ以上の並列化は不可能です。 アルゴリズムの並列バージョンは次のようになります。 1. Find connected components (no two are connected directly) and create task for each. 2. Run the tasks in parallel. 3. Update graph. 4. Until single node remains, continue with 1. トリッキーな部分は最初のステップです:接続されたコンポーネントの最良のセットを見つける方法? 1つの方法は、特定の反復でコンポーネントの最大数を単純に見つける貪欲なアルゴリズムです。貪欲なアルゴリズムは、最初は並列化を最大化しますが、後で多くの反復を犠牲にします。 最適なソリューションは、並列化を最大化し、同時に反復回数を最小化するために、各反復で適切な量の接続コンポーネントをもたらすことです(最適化には2つの変数があります)。 私は、バックトラッキング以外の最適化アルゴリズム、つまり可能なすべての進化の空間を検索し、最大の並列化を持つものを選択することは考えられません。 エッジの重みは無視できますが、大きいバージョンのブレンドには時間がかかるため、アルゴリズムの改良版ではそれが考慮される場合があります(たとえば、サイズ200のエリアのブレンドには、サイズ100の2つのエリアの約2倍の時間がかかります)。重みを考慮に入れると、コンポーネントを選択する際の戦略が向上する可能性があります(アルゴリズムの全体的な実行時間の高速化)。 最大の並列化と最小の反復回数が得られるようにグラフの一部を選択する最良の戦略を見つける、そのような最適化アルゴリズムの手がかりはありますか?

1
Heapsort:Heaps =〜Quicksort:BSTs =〜Mergesort:___?
タイトルの簡潔さをお許しください。簡潔さの祭壇の明快さを犠牲にしたかもしれません。 配列の要素をバイナリ検索ツリーに挿入し、それらを読み戻すには、その配列に対してQuicksortを実行する場合と同じ比較が(挿入時に)必要であることがわかります。Quicksortが使用するピボットのシーケンスは、バイナリ検索ツリーへの挿入のシーケンスです。 Heapsortは文字通りそのような一連の挿入を行ってから要素を読み戻すため、これはHeapsortとheapsにも当然当てはまります。 たとえば、マージソートの場合、これに類似するものはありますか?ここにはより深いつながりがありますか、それともデータ構造と並べ替えアルゴリズムの間の興味深い一致ですか?

1
最小カットを最大化するための容量の増加
すべてのエッジが単位容量を持つグラフを考えます。多項式時間で最小カットを見つけることができます。 エッジの容量を無限に増やすことが許可されているとします(エッジの両側のノードをマージするのと同じです)。最小カットを最大化するためにkエッジの最適なセット(容量は無限に増加します)を選択する最適な方法は何ですか?kkkkkk

3
小さな未知の多項式で割ったときに、大きな固定多項式の残りを見つける
有限体で動作すると仮定します。この場で大きな多項式p(x)(たとえば、次数1000)が与えられます。この多項式は事前にわかっており、「初期フェーズ」で多くのリソースを使用して計算を行うことができます。これらの結果は、適度に小さいルックアップテーブルに格納される場合があります。 「初期段階」の終わりに、小さな多項式q(x)(たとえば、次数5以下)が与えられます。 「初期フェーズ」でいくつかの複雑な計算を行うことが許可されている場合、p(x)mod q(x)を計算する高速な方法はありますか?1つの明白な方法は、q(x)のすべての可能な値に対してp(x)mod q(x)を計算することです。これを行うより良い方法はありますか?

2
興味深い組み合わせ最適化問題の生成
私はメタヒューリスティックスのコースを教えており、プロジェクトという用語の古典的な組み合わせ問題の興味深いインスタンスを生成する必要があります。TSPに注目しましょう。次元以上のグラフに取り組んでいます。私はランダムから採取された値を用いてコストマトリックスとグラフを生成するために、もちろん試みU (0 、1 )、及び(ランダムパスの多くをサンプリングして描画された)パスコストのヒストグラムは、(予想通り)ことを見出し非常に狭い正規分布(μは100ですが、σは約4です)200200200U(0 、1 )U(0,1)U(0,1)μμ\mu 100 100~100σσ\sigma444)。これは、私の意見では、ほとんどのランダムパスは平均を下回り、最小コストパスはランダムパスに非常に近いため、問題は非常に簡単であることを意味します。 だから、私は、次のアプローチを試みた。生成した後 -マトリックスを、グラフの周りに長いランダムウォークを取り、ランダム(ベルヌーイを用いて、P = 0.5)、二重またはエッジの値を半減します。これはすべての値を下げ、最終的にはゼロに達する傾向がありますが、適切な数のステップを実行すると、μが約2、σが約1の分布が得られます。U(0 、1 )U(0,1)U(0,1)p = 0.5p=0.5p=0.5μμ\mu222σσ\sigma111 私の質問は、最初に、これは興味深い問題の良い定義でもありますか?理想的には、非常にマルチモーダル(最も一般的な近傍関数の場合)であり、最小値の近くにパスがほとんどないため、ほとんどのランダム解が最適値から非常に離れているインスタンスが必要です。2番目の質問は、この説明を踏まえて、そのような特性を持つインスタンスをどのように生成できるかということです。

1
成功確率の高いグローバーアルゴリズムの最適性について
関数有界誤差量子クエリの複雑さはΘ (√O R (x1、x2、… 、xん)OR(x1,x2,…,xn)OR(x_1,x_2,\ldots, x_n)。今の質問は、我々は、量子アルゴリズムをしたい場合は確率で全ての入力のために成功するために何である1-εむしろ通常より2/3。今ϵの観点から、適切な上限と下限は何でしょうか?Θ (n−−√)Θ(n)\Theta(\sqrt{n})1 − ϵ1−ϵ1-\epsilon2/32/32/3ϵϵ\epsilon これは、その即時であるクエリは、Groverアルゴリズムを繰り返すことにより、このタスクに十分です。すなわち、反復の適切な数のために、慎重に実行する場合でも、私は思い出すものから、このような何かを達成することができ、ごく単純なグローバーのアルゴリズムなど、すべての最適ではないε=O(1/N)とのちょうどO( √をO(n−−√log(1/ϵ))O(nlog⁡(1/ϵ))O(\sqrt{n} \log(1/\epsilon))ϵ=O(1/n)ϵ=O(1/n)\epsilon=O(1/n)反復。それゆえ1はすべてのための改善を得ることができることを使用してεさんを。一方、Ω( √O(n−−√)O(n)O(\sqrt{n})ϵϵ\epsilon非常に小さいϵの正しい答えになる。Ω(n−−√)Ω(n)\Omega(\sqrt{n})ϵϵ\epsilon しかし、私は1つがの面で示すことができるか見て興味を持っての異なる範囲のための依存性上限と下限ε特にεは非常に小さいと言うですε = EXP (- Ω (N ))またはε = 1 / nはkのための大きなkです。ϵϵ\epsilonϵϵ\epsilonϵϵ\epsilonϵ=exp(−Ω(n))ϵ=exp⁡(−Ω(n))\epsilon= \exp(-\Omega(n))ϵ=1/nkϵ=1/nk\epsilon=1/n^kkkk (いくつかのコンテキストを提供するために、私が得ている一般的な現象は、量子クエリの複雑さのコンテキストにおける増幅です。)

2
ODD EVEN DELTA問題
ましょうグラフです。してみましょう整数である。ましょうエッジ誘発される部分グラフの数でを有する頂点と辺の奇数。ましょうエッジ誘発される部分グラフの数でを有する頂点と辺の偶数。ましょう。ODD EVEN DELTAの問題は、と指定してを計算することです。G=(V,E)G=(V,E)G = ( V, E )k≤|V|k≤|V|k \leq |V|OkOkO_kGGGkkkEkEkE_kGGGkkkΔk=Ok−EkΔk=Ok−Ek\Delta_k = O_k - E_kΔkΔk\Delta_kGGGkkk ご質問 を多項式時間で計算することは可能ですか?それを計算するための最もよく知られているアルゴリズムはどれですか?ΔkΔk\Delta_k が3正規の場合はどうなりますか?GGG が3正規二部式である場合はどうなりますか?GGG が3正規二部平面である場合はどうなりますか?GGG

1
ランダム化された増分ドローネ三角形分割アルゴリズムの最悪のケースは何ですか?
ランダム化された増分デローネー三角形分割アルゴリズムの予想される最悪の場合のランタイム(計算幾何学で与えられる)はことを知っています。ワーストケースのランタイムがΩ (n 2)であることを暗示する演習があります。これが実際に当てはまる例を構築しようとしましたが、これまでのところ成功していません。O(nログn )O(nlog⁡n)\mathcal O(n \log n)Ω (n2)Ω(n2)\Omega(n^2) それらの試みの1つは、ステップrでポイント追加するときに、約r − 1のエッジが作成されるようにポイントセットを配置して順序付けすることでした。prprp_rrrrr − 1r−1r-1 別のアプローチには、ポイント配置構造が含まれる場合があります。ステップrでポイントを見つけるためにポイント配置構造内で取られるパスができるだけ長くなるようにポイントを配置してください。prprp_rrrr それでも、これらの2つのアプローチのどちらが正しいとしても(どちらかと言えば)どちらが正しいかわからないので、いくつかのヒントを教えてください。

1
(署名付き)エラーでの学習
Background––––––––––––––Background_\underline{\bf Background} 2005年に、Regev [1]はLearning with Errors(LWE)問題を導入しました。これは、Learning Parity with Error問題の一般化です。特定のパラメータ選択に対するこの問題の厳しさの仮定は、ラティスベースの暗号化の分野における多くのポスト量子暗号システムのセキュリティ証明の根底にあります。LWEの「正規」バージョンを以下に説明します。 予備: ましょう実数の加法群、すなわち内の値をとり、1を法とする[ 0 、1 )。正の整数のN及び2 ≤ Q ≤ P O のL Y (N )、 "秘密"ベクトルS ∈ Z N 、Q、確率分布φ上のR、聞かせてA Sは、φに分布することがZ N Q × TT=R/ZT=R/Z\mathbb{T} = \mathbb{R}/\mathbb{Z}[0,1)[0,1)[0, 1)nnn2≤q≤poly(n)2≤q≤poly(n)2 \le q \le poly(n)s∈Znqs∈Zqn{\bf s} \in \mathbb{Z}_q^nϕϕ\phiRR\mathbb{R}As,ϕAs,ϕA_{{\bf s}, \phi}Znq×TZqn×T\mathbb{Z}_q^n \times \mathbb{T}選択することによって得られた∈ Z N qは、一様にランダムに描画誤差項X …

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