タグ付けされた質問 「online-algorithms」

1
多項式サイズのDFAで認識される言語
固定有限アルファベット場合、正確にを受け入れる上の決定性有限オートマトン(DFA)が存在する場合、上の形式言語は正規です。ΣΣ\SigmaLLLΣΣ\SigmaΣΣ\SigmaLLL 私は、語長で多項式的にのみ成長するサイズのオートマタ族によって認識できるという意味で「ほぼ」規則的な言語に興味があります。 正式に、すべての単語に対して、成り立つ場合、形式言語はDFA ファミリーによって認識されます 、はあり、受け入れる場合(他の受け入れるかどうかに関係なく)、p-regular言語を、PTIMEで計算可能な多項式サイズのDFAファミリーによって認識される言語として定義させます。ような多項式すべてのLLL (An)(An)(A_n)w∈Σ∗w∈Σ∗w \in \Sigma^*n=|w|n=|w|n = |w|wwwLLLAnAnA_nwwwAiAiA_iP | A n | ≤ P (N )N(An)(An)(A_n)PPP|An|≤P(n)|An|≤P(n)|A_n| \leq P(n)nnn。(この名前 "p-regular"は私が作ったものです。私の質問は、これに別の名前が既に存在するかどうかを知ることです。これは置換オートマトンの意味でp-regular言語と同じではないことに注意してください。) P-正規言語のこのクラスは、もちろん正規言語は、(単に取るすべてのためのn、Aは正規言語を認識するいくつかのDFAです)。例えば、そのよく知られている:それは、それの完全なスーパーセットである{ n個のB N | N ∈ Nは }(文脈自由ではなく規則的であるが、それは、P-正規であるA NだけカウントしなければNを出現とNの出現B)。ただし、オートマトンは多項式サイズのDFAである必要があるためAn=AAn=AA_n = AnnnAAA{anbn∣n∈N}{anbn∣n∈N}\{a^n b^n \mid n \in \mathbb{N}\}AnAnA_nnnnaaannnbbb、一部の形式言語(実際には一部のコンテキストフリー言語)はp-regularではありません。たとえば、palindromesの言語はp-regularではありません。なぜなら、直感的に、単語の前半を読んだときに、この前半と後半を正確に一致させる必要があるため、可能な限り多くの異なる状態。 そのため、p-regular言語のクラスは、コンテキストフリー言語とは比べものにならない通常の言語の厳密なスーパーセットです。実際には、あなたも、多項式の最小の程度に基づいたp-正規言語を区別することにより、言語の階層を得ることができるものと思わ彼らはそのためのP -regular。この階層が厳密であることを示すために例を作成するのはそれほど難しくありません。ただし、これと、A nの計算の複雑さを制限する階層の代替定義との間の相互作用については、まだよく理解していません。PPPPPPAnAnA_n 私の質問は次のとおりです。p-regularと呼ばれるこのクラス、および関連する階層は以前に研究されたことがありますか?はいの場合、どこで、どの名前の下に? (可能なリンクは、フィールドまたはストリーミング、またはオンラインアルゴリズムです。言語認識問題のストリーミングアルゴリズムの用語では、決定論的なワンパス認識アルゴリズムを持つことができる言語のクラス(または階層)に興味があります。多項式の状態数(つまり対数メモリサイズ)を使用しますが、この論文または関連論文でこのクラスの定義を見つけられませんでした。ただし、問題の表現では、単語の長さは事前にわかっています。ストリーミングコンテキストに少ない自然れている:あなたのストリーミングで読んだ後に到達可能な状態の数という無限オートマトン、特別な「エンド・オブ・言葉」のシンボル、および制約としてこれを見ることができたの文字が多項式であるn個nnnnnn。私はこの区別が違いを生む可能性があると考えています:値が長さで割り切れるバイナリワードの言語は、固定長では簡単ですが、(私は推測します)以前の意味では無限オートマトンでは表現できないため、識別がありません長さが事前にわからない場合は作成できます。) (このp-regularクラスの動機は、確率的単語の言語メンバーシップの確率などのいくつかの問題が、言語が規則的であるときだけでなく、p-regularであるときにもPTIMEであるように見えることです。どのような状況でこれらの問題が扱いやすいかを正確に特徴付けるため)

2
成長する無向グラフのバランスの取れたスパニングツリーを維持する
グラフに新しいノード/エッジを追加する際に、グラフの比較的バランスの取れたスパニングツリーを維持する方法を探しています。 単一のノード、「ルート」として開始する無向グラフがあります。 各ステップで、新しいノードとグラフに接続するエッジ、または2つの古いノードを接続する新しいエッジのいずれかをグラフに追加します。グラフを成長させると、スパニングツリーが維持されます。ほとんどの場合、これは、新しいノードとエッジを追加するときに、新しいノードを接続先の古いノードの子に設定することを意味します。 新しいノードを追加する順序を制御することはできません。そのため、上記のツリー構築アルゴリズムは明らかに、不均衡なスパニングツリーにつながる可能性があります。 再ツリー化で行われる作業量を最小限に抑えながら、スパニングツリーを「比較的バランスの取れた」状態に保つオンラインヒューリスティックを知っている人はいますか?ツリー構造を完全に制御できます。私が制御できないのは、グラフの接続性、または新しいノードが追加される順序です。 「balanced」、「spanning」、「tree」などの用語に対するGoogleの標準的な応答は、どちらも当てはまらないバイナリツリーとBツリーのように見えることに注意してください。グラフノードには任意の数の隣接ノードを含めることができるため、ツリーノードには2つのバイナリツリーのような2つではなく、任意の数の子を含めることができます。Bツリーは、隣接リストを変更することでバランスを維持しますが、グラフの接続を変更することはできません。

2
最も頻繁に発生する「k」個のアルゴリズム
私は、データストリームで最も頻繁に発生する「k」個の要素をいつでも通知する最も効率的な(ストリーミング??)アルゴリズムを探してきました。この投稿:「分割統治」データストリームアルゴリズムに興味を持ちました。 たとえば、数字があると仮定します:(4,3,5,1,6,2,4,3,3,8,9,1)そして、最も頻繁に発生する3つの数字(たとえば)をクエリした後、答えとして(3,4,1)を取得します。 オンラインで検索しようとしましたが、アプローチを提供し、それが最良であると言う場所を見つけることができませんでした。些細な解決策は、ヒープまたはバランスの取れたバイナリツリーを使用することですが、より良い方法があると思い、それがどこかに文書化されているかどうかを知りたかったのです。 編集:私は、何らかの方法でデータの分布に依存する承認アルゴリズム(多くが検索結果にポップアップする)とは対照的に、常に正しい答えを与えるアルゴリズムを探しています

2
挿入/削除の存在下でDAGの接続情報を効率的に維持するためのアルゴリズムは存在しますか?
有向非巡回グラフ与えられた場合、次の操作を効率的にサポートできますか?G(V,E)G(V,E)G(V,E) にパスが存在するかどうかを判断: Gノードから Aノードへ bはisConnected(G,a,b)isConnected(G,a,b)isConnected(G,a,b)GGGaaabbb :追加からエッジまでのBのグラフで Glink(G,a,b)link(G,a,b)link(G,a,b)aaabbbGGG :からエッジを削除する Bに Gunlink(G,a,b)unlink(G,a,b)unlink(G,a,b)aaabbbGGG :Gに頂点を追加しますadd(G,a)add(G,a)add(G,a) :Gから頂点を削除しますremove(G,a)remove(G,a)remove(G,a) いくつかのメモ: を許可しない場合、互いに素な型のデータ構造を使用して接続情報を維持するのは簡単だと思われます。unlinkunlinkunlink 明らかに、グラフの素朴なポインタベースの表現を使用して、深さまたは幅優先の検索を使用して、を実装できます。しかし、これは非効率的です。isCO NnectedisConnectedisConnected 3つの操作すべてについて、償却された一定時間または対数時間を期待しています。これは可能ですか?

3
2D長方形の色付け問題の定数因子近似アルゴリズムはありますか?
ここで考慮している問題は、よく知られている間隔カラーリング問題の拡張です。間隔の代わりに、辺が軸に平行な長方形を考えます。目的は、重複する2つの長方形に異なる色が割り当てられるように、最小数の色を使用して長方形に色を付けることです。 この問題はNP困難であることが知られています。Xin Han、Iwama Kazo、Rolf Klein、Andrezej Lingas(ボックスグラフ上の最大独立セットと最小頂点カラーリングの近似)は、O(log n)近似を与えました。より良い近似アルゴリズムはありますか? 区間の色付けの問題は、左端に応じて区間を考慮することにより、最初に適合したアルゴリズムによって多項式時間で解かれることがわかっています。ただし、間隔が任意の順序で表示される場合、ファーストフィットオンラインアルゴリズムは8競争力があります。 長方形の色付け問題に対する最適アルゴリズムのパフォーマンスはどうですか?長方形が左(垂直)辺に従って表示されると、最初に適合するアルゴリズムはどうなりますか? これに関する助けを事前に感謝します。

1
線形プログラム制約が期待通りに満たされるのに十分ですか?
論文では、オンライン2部一致マッチングのRANKINGのランダム化されたプライマルデュアル分析で、RANKINGアルゴリズムが競争力のある著者は、デュアルが期待できることを示しています(5ページの補題3を参照)。私の質問は:(1−1e)(1−1e)\left(1 - \frac{1}{e}\right) 線形プログラム制約が期待通りに満たされるのに十分ですか? 目的関数の期待値が何かであることを示すことは一つのことです。ただし、実行可能性の制約が予想で満たされている場合、所定の実行で満たされるという保証はありません。さらに、多くのそのような制約があります。それで、それらのすべてが与えられた実行で満足されるという保証は何ですか?

2
オンラインアルゴリズムの本
オンラインアルゴリズムに関する最近の本はありますか?このテーマに関する書籍は2冊しかありません。 Allan BorodinとRan El-Yanivによるオンライン計算と競合分析:これは古典的でありながら古い本であり、この分野の最近の進歩の多くは含まれていません。 Niv BuchbinderとJoseph(Seffi)NaorによるPrimal-Dualアプローチによる競合オンラインアルゴリズムの設計:これは新しい本であり、最近の多くの結果が含まれています。ただし、その範囲はLPベースのプライマルデュアルアルゴリズムに限定されます。 あなたが知っているかもしれないオンラインアルゴリズムに関するすべての本をここにリストしてください。ウェブ上で無料で入手できる書籍があれば、それは素晴らしいことです。

3
変化する無向グラフのコンポーネントを追跡するオンラインアルゴリズムはありますか?
問題 時間の経過とともに変化する無向グラフ(マルチエッジ)があり、ノードとエッジが挿入および削除される場合があります。グラフを変更するたびに、このグラフの接続コンポーネントを更新する必要があります。 プロパティ 追加のプロパティは、2つのコンポーネントが再接続されないことです。明らかに、グラフは任意の量のサイクルを持つことができます(そうでなければ、解は簡単になります)。エッジノードが含まれていない場合、そのノードは採用されません。ただし、、それが可能に変える。eeennnn∈en∈en \in en∉en∉en \notin e アプローチ 私はこれまでに2つの可能なアプローチを持っていますが、あなたが見るようにそれらは恐ろしいです: 遅い状態なし 毎回、変更された要素からグラフを検索(dfs / bfs)できます。これはスペースを節約しますが、変更ごとにO(n + m)があるため低速です。 ステートフルfast(-er)(?)アプローチ 各ノードのすべての可能なパスをすべての可能なノードに保存できますが、正しく表示された場合、O(n ^ 4)のメモリが必要になります。しかし、ランタイムの改善がどのようになっているのかわかりません(1つでもあれば、同じコンポーネント内のすべてのノードの情報を最新に保つ必要があるため)。 質問 その問題について、またはおそらく構築できるいくつかのアルゴリズムについて、どのように指針を持っていますか? 注意 ランタイム/メモリの大幅な改善があれば、2つのコンポーネントが1つであると時々言う非最適なソリューションで生きることができますが、もちろん最適なソリューションを好むでしょう。

4
継続的なクラスタリング
したがって、ライブで継続的にストリーミングするデータを使用したクラスタリングに関して、私が直面している問題があります。私は増え続けるデータセットを持っているので、効率的で効果的なクラスタリングを実行するための最良の方法は何なのかわかりません。私はいくつかの可能な解決策を考え出しました: 許可するデータポイントの数に制限を設定すると、別のデータポイントが最も古いポイントに到達するときに制限に達するたびに削除されます。本質的に、これは、古いデータは、私たちがそれを捨てることによって失うものを気にするほど私たちにとって十分に関連性がないことを示唆します。 適切なクラスタリングを行うのに十分なデータが揃ったら、すべてのデータを再クラスタリングするのではなく、この「セットアップ」を検討し、新しいポイントが発生したら、新しいポイントが最も近いクラスタ中心を見つけてそれに追加します。ここでの利点は、すべての新しいポイントで再クラスター化する必要がなくなり、他のすべてのポイントを格納する必要がなく、クラスター化を「十分」に考慮してクラスターセンターのみを格納する必要があることです。欠点は、最初からすべてのデータポイントを使用してアルゴリズムを再実行すると、より正確になる可能性があることです。 これらは私がブレインストーミングしたいくつかの潜在的な解決策ですが、この問題に直面するためのよりよく知られた手法があるかどうか知りたいです。私はGoogleのようなサイトが何らかの形でそれに対処しなければならなかったと思います(そして、「RAM、サーバー、プロセッサーをさらに追加する」または「データセンターを継続的に拡張する」が利用可能な唯一の答えではないことを願っています)。

2
加重比較による安価なオンライン選択
要素に1からnまでのインデックスが付けられているセット最小要素を検索するとします。これらの要素の値にはアクセスできませんが、Sの任意の2つの要素を比較して、どちらが小さいかを確認できます。インデックスiおよびjの場合、Sのi番目とj番目の要素を比較するために、関連するコストC i 、jがあります。完全なコスト行列C i 、jは、事前に与えられています。SSS111nnnSSSiiijjj Ci,jCi,jC_{i,j}iiijjjSSSCi,jCi,jC_{i,j} Sの最小要素を見つけるには、n−1n−1n-1比較が必要かつ十分であることはよく知られています。ただし、比較ごとに異なるコストがかかる可能性があるため、比較の総コストもできるだけ小さくしたいと考えています。SSS 最小要素を見つける、小さな総コストの一連の比較を見つけるオンラインアルゴリズムはありSSSますか?n = 3の場合でも、最小の総コストで 一連の比較を見つけるオンラインアルゴリズムはありませんが、おそらく競合率が小さいオンラインアルゴリズムがあります。 n=3n=3n=3 特に、オンラインアルゴリズムが超える比較を実行できるようにすることは役立ちますか?いくつかの高価な比較ではなく、いくつかの「余分な」安価な比較を行う方が良いですか?n−1n−1n-1 私は特に、ケースに興味、dがセットにわたって離散メトリックであるS、及び0 ≤ D (I 、J )≤ kの全てについて、I 、J。最適なオンラインアルゴリズムは、この設定ではまだ不可能です。Ci,j=4d(i,j)Ci,j=4d(i,j)C_{i,j} = 4^{d(i,j)}dddSSS0≤d(i,j)≤k0≤d(i,j)≤k0 \le d(i,j) \le ki,ji,ji,j 同様の問題への言及はありがたいです。私は自分の問題を解決するために誰かを探しているのではありません(ただし、いくつかのアイデアが役立ち、ありがたいです)。この問題がわかっているかどうか知りたいだけです。(何も見つかりませんでした。)

1
オンライン最適化と段階的最適化の違いは何ですか?
最近、インクリメンタル最適化問題についていくつか読んだことがありますが、それらとオンライン最適化問題の違いが何であるかわかりません。私の印象は、すべてのオンライン問題をインクリメンタルな対応として定義できるということです(逆は明らかに真実です)。 ここで(あまり正式ではない)定義に進みます。漸増問題では、最適化問題のインスタンスのシーケンスが与えられます。(i + 1)番目のインスタンスは、i番目のインスタンスの「拡張」です。(i + 1)番目のソリューションは、「将来の」インスタンスの知識なしで計算する必要があり、i番目のソリューションで行われた決定を維持する必要があります。古典的な例はk-median問題です。k個のファシリティを開いた後、k '> k個のファシリティが必要になりますが、古いファシリティは破壊されません。 オンラインの問題では(通常の定義では)、一連の「リクエスト」が与えられます。ここでは、将来の要求を知らなくても要求に答える必要があります。全体としてシーケンスに答えるコスト/ゲインを最適化したいと考えています。 オンラインの問題については、増分定義に適合する「オフライン」の最適化問題を定義できると思います(通常、私が目にするのはその逆です)。定義が同等である場合、同じ概念に別の名前を使用する意味は何ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.