コンピュータサイエンス

コンピュータサイエンスの学生、研究者、実務家のためのQ&A

1
すべてのソリューションのリストに関連する複雑性クラス?
私は特定のノードを含むグラフにすべての単純なサイクルをリストするのがNP困難であるかどうかを尋ねるStack Overflowで質問を読んでいて、適切な既存の複雑度クラスを考えることができないと思いました「この問題に対するすべての解決策をリストする」という形式の問題について話します。クラスNPは、ある意味で、少なくとも1つのソリューションが存在するかどうかを尋ねる問題で構成され、クラスFNPは単一のソリューションを作成するよう求め、クラス#Pはソリューションの数を数えるよう求めますが、これらはどれも複雑性に対処しませんすべての可能なソリューションを徹底的に列挙する。 「多項式時間の計算可能な述語と文字列xが与えられ、P (x 、y )がtrue であるすべてのyを列挙する形式の問題を記述するための複雑度クラスはありますか。適切な複雑さの制限]?」解の数が入力xのサイズより指数関数的に大きくなる可能性があることを考えると、制限を特定するのは難しいかもしれないことを理解しています。P(x,y)P(x,y)P(x, y)xxxyyyP(x,y)P(x,y)P(x, y)xxx

6
理論的な文脈でコンピューターサイエンスと数学を正確に区別するものは何ですか?
私は数学を勉強することに大きな情熱を持っているコンピューターサイエンスの大学レベルの学生です。私は、コンピューターサイエンスまたは理論的コンピューターサイエンスは数学と論理の直接的な分岐であり、コンピューターサイエンスの学位は常に数学指向でなければならないという意見も固く信じています。間違っている場合は修正してください。 私は率直に言って違いの多くは、すべてとして率直であることを2つの科目では存在しないことを感じる「計算」が含まれる「計算」をすべてのが、「計算」はないかもしれない「計算」。繰り返しますが、実質的な情報と証拠を提供し、ここで間違えた場合は更新してください。ありがとうございました

2
反転の数を最小限に抑えながらリストに効率的に挿入する
比較可能なアイテムの2つのリストuおよびsを想定します。INV(u)をuの反転数とします。 INV(u)の最小の増加でsの項目をuに挿入する効率的なアルゴリズムを探しています。 基本的に、リストにオブジェクトを挿入し、最初のリストの順序を維持しながら、「可能な限りソートされた」状態に保ちたいと思います。 例: u = [4,6,2,9,7] INV(u) = 3 ((4, 2), (6, 2) and (9, 7) s = [8,3,10] one optimal solution u' = [3, 4, 6, 2, 8, 9, 7, 10] INV(u') = 5 ((4, 2), (7, 2) and (9, 7) + (3,2), (8,7)) different optimal solution u' …

1
多相ラムダ計算の素朴な集合理論モデルはありませんか?
フリーの定理に関するフィリップワドラーの論文では、パラメトリック性に関するセクション2で次のように述べています。 多相ラムダ計算の素朴な集合論的モデルはない 素朴な集合論的モデルでは、型は集合であり、関数は合理的と思われる集合論的関数です。それでは、なぜ彼は多相ラムダ計算の素朴な集合論的モデルがないと言っているのでしょうか?

3
「アンチパリンドローム」である言語の例を見つける
LET Σ={0,1}Σ={0,1}\Sigma = \{ 0, 1 \}。言語L⊆Σ∗L⊆Σ∗L \subseteq \Sigma^* すべての文字列の場合は、「抗回文」性質を持っていると言われているwwwそれは、回文であるw∉Lw∉Lw\notin L。また、すべての文字列のためuuuでない回文のいずれかu∈Lu∈Lu\in LまたはReverse(u)∈LReverse(u)∈L\mathrm{Reverse}(u) \in L、両方ではない(!)(排他的論理和)。 anti-palindromeプロパティは理解していますが、このプロパティを持つ言語は見つかりませんでした。私は見つけることができる最も近いものがあるΣ∗∖LΣ∗∖L\Sigma^* \setminus Lが、それは排他的または一部を持っていません...であること、例えば、両方の010101と101010であるLLL。 誰かが私にこの特性を持つ言語の例を教えてもらえますか?おそらく、これが言語にどのような制限を課すのか見当がつかないため、単一の例よりもさらに多くの可能性があります。(それは非正規である必要がありますか?コンテキストフリー?またはさえありませんか?など)RRR

4
巨大なグラフでのダイクストラのアルゴリズム
私はダイクストラに非常に精通しており、アルゴリズムについて具体的な質問があります。35億ノード(すべてOpenStreetMapデータ)などの巨大なグラフがある場合、グラフをメモリに格納できないことは明らかなので、グラフはデータベースのディスクに保存されます。 そのようなグラフの最短経路を計算するために利用可能なライブラリがあります。彼らはどうやってこれをしますか?より具体的には、ダイクストラのアルゴリズムを実行するためにグラフの必要な部分をどのようにロードしますか? 訪問した各頂点の隣接リストを取得するには、統計データによると10,000ノードあたり約1,500のデータベースクエリが必要になるため、明らかにそうではありません。それはとても遅すぎるでしょう。 どうやってやっているの?自分で実装しようとしています。

4
何をしてい
何をしていlogO(1)nlogO(1)⁡n\log^{O(1)}nの平均? big-O表記は知っていますが、この表記は意味がありません。検索エンジンがこれを正しく解釈する方法がないため、私もそれについて何も見つけることができません。 ちょっとした文脈で、私が見つけた文は「[...] O(logn)O(log⁡n)O(\log n)空間を使用し、アイテムごとに最大で関数を使用する場合、関数[効率的]を呼び出しlogO(1)nlogO(1)⁡n\log^{O(1)}nます。」

1
なぜ字句解析と構文解析を分離するのですか?
ステートマシンからの単一のパスを使用してドキュメントを解析することが可能です。2つのパスを持つことの利点は何ですか?テキストをトークンに変換するレクサーと、それらのトークンの生産ルールをテストするパーサーがありますか?生産ルールをテキストに直接適用する単一のパスを用意していないのはなぜですか?

2
空の言語でのKleeneスター操作
私の教科書には次のように書かれています:ここで、は空の言語です。∅∗={ϵ}∅∗={ϵ}\emptyset^*=\{\epsilon\}∅∅\emptyset ただし、であることがわかっています。ここで、は任意の言語です。L⋅∅=∅L⋅∅=∅L \cdot \emptyset = \emptysetLLL Kleene starの操作はという事実を指しているため、この概念を直感的に理解することはできません。∅∗=∅0∪∅1∪∅2∪⋯∅∗=∅0∪∅1∪∅2∪⋯\emptyset^*=\emptyset^0 \cup \emptyset^1 \cup \emptyset^2 \cup \cdots なぜですに等しくない? ∅∅∗∅∗\emptyset^*∅∅\emptyset

2
スーパーコンピューターの目的
昨秋、私はイリノイ大学でブルーウォーターズスーパーコンピューターのツアーに参加しました。コンピューター全体を使用した人はいないかと尋ねました。常に複数のプロジェクトに取り組んでいると言われました。そのため、スーパーコンピューターの有用性について疑問に思いました。おそらくブルーウォーターズは、産業界と大学で共有しなければならないという点で珍しいでしょう-私は知りません。単一のスーパーコンピューターのプロセッサーとメモリーの管理には、いくらかのオーバーヘッドがあると思います。小型のコンピューターを構築する方が費用対効果が高いでしょうか?スーパーコンピューターの価値を理解するのを手伝ってくれる人はいますか?それとも、時々彼らは単一のプロジェクトに専念しているのですか?

1
「Flow Free」パズルはNP困難ですか?
「Flow Free」パズルは、正の整数と、n × nグリッドグラフ内の個別の頂点の(順序付けられていない)ペアのセットで構成され、各頂点は最大1つのペアになります。このようなパズルの解決策は、各頂点が正確に1つのパスにあり、各パスの端のセットがパズルの頂点のペアの1つであるような、グラフ内の無向パスのセットです。この画像はFlow Freeパズルの例であり、この画像は別のFlow Freeパズルの解決策の例です。nnnn × nn×nn \times n 問題は「このFlow Freeパズルの解決策はありますか?」NPハード?が単項で与えられるか、2進数で与えられるかは重要ですか?nnn


2
MIPSにshamtが含まれており、funct / opcodeを区別しているのはなぜですか?
MIPSの設計者がシフト専用の5ビットを含め、オペコードと機能ビットを別々に持つ理由について混乱しています。 MIPSは非常にRISCであるため、いくつかの命令ではシフトのみが行われると想定しているため、これらの5ビットは、イミディエイトに入れることができてもスペースを無駄にしているように見えます。オペコードとファンクトは、RタイプとIタイプの命令を区別するために分離されていると想定していますが、これは、オペコードを1ビット拡張することで実行できます。これらのRタイプの命令の両方で、22ビット長になる可能性があります。IタイプとJタイプの命令が即時およびアドレスを保持したい場合、これは機能しませんが、両方とも不要と思われます。

1
四面体が多面体の内側にあるかどうかのテスト
私が持っている、四面体 と多面体。は、すべての頂点を常にと共有するように制約されます。私がいるかどうかを判断したいあるの内側。ttt t p tppptttpppttt ppp 解決に貢献する可能性がある場合に、問題に詳細を1つ追加しますはDelaunay四面体であり、面は三角形であり、頂点に関して強くDelaunayです。四面体は、その頂点の外接球に内部に他の頂点が含まれていない場合、ドロネーです。面上にその面の頂点を含む外接球が存在するが、面上または面内に他の頂点が存在しない場合、面は強くドローネです。tttpppppp 次の図は、空間での同じ問題を示しています。 2D2D2D 元のポリゴンppp: の頂点のドロネー三角形分割ppp: 三角形に対する内側/外側テストの結果ttt(影付きの三角形は内側に あり、残りは外側にあります):ppp 望ましい結果(三角形の外側の剪定): 私の元々の問題は3D空間にあるため、上の図の三角形は四面体に変換され、多角形は任意の多面体変換されます。この問題のいくつかの定式化を見つけました。ptttpppppp 公式1 pの外側になりうるtの 部分は、そのエッジと三角形の面だけですが、一般に、その表面にすべての外側tのエッジを持つpが存在する可能性があるため、この問題は四面体tに対してpの外側にある面が存在するかどうかをテストしますか?tttpppppp tttttt ppp 公式2この問題に対する別の見方がありますが、正式なアイデアはありません。 幾何学的に、が外側の場合、常にpの外側の表面に付着します。私たちは計算することができる場合輪郭(非公式に、外側境界) C V及びC VのPようにV = VのT ∪ VのP及びVのT、Vのpはの頂点の集合であり、T 、P、次にそれぞれ、CをtttpppCVCVC_{V}CVpCVpC_{V_{p}}V=Vt∪VpV=Vt∪VpV=V_{t}\cup V_{p}Vt、VpVt、VpV_t,V_pt 、pt、pt,p tがp内にある場合に限ります。 CV=CVpCV=CVpC_{V}=C_{V_p} tttppp 私が知りたいのですが: 配合1または配合2のどちらを解決できますか? または、これを解決するためのまったく異なるアプローチがありますか? 更新: この問題は、多面体の点の問題に還元できることがわかりました。以来外部面体あります少なくとも外側に位置する一方の面Pを常に存在します(一般的にはその頂点を除いて、)その面上の任意の点に、外Pを。したがって、tの各面について、任意の点を取り、その点がpの外側にあるかどうかをテストする必要があります。tttppp pppttt ppp ポリゴンの記事のポイントから、レイキャスティングアルゴリズムとワインディングナンバーアルゴリズムについて知りました。ポイントがpの表面にある場合、レイキャスティングは数値的に安定しません。しかし、ワインディング数アルゴリズムの数値的堅牢性はそこに対処されていません。 ppp 上記に基づいて、私の中心的な問題は次のようになります(別の質問として尋ねるべきかどうかを提案してください):多角形問題の 数値的に堅牢なアルゴリズムはありますか?

2
PROLOGチューリングを完全にするものは何ですか?
次のようなチューリングマシンをシミュレートするプログラムを作成することで、PROLOGがチューリング完全であることを証明できることを知っています。 turing(Tape0, Tape) :- perform(q0, [], Ls, Tape0, Rs), reverse(Ls, Ls1), append(Ls1, Rs, Tape). perform(qf, Ls, Ls, Rs, Rs) :- !. perform(Q0, Ls0, Ls, Rs0, Rs) :- symbol(Rs0, Sym, RsRest), once(rule(Q0, Sym, Q1, NewSym, Action)), action(Action, Ls0, Ls1, [NewSym|RsRest], Rs1), perform(Q1, Ls1, Ls, Rs1, Rs). symbol([], b, []). symbol([Sym|Rs], Sym, …

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