コンピュータサイエンス

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

2
漸近的に記述された関数を操作して結論を​​出すことはできますか?
この質問は宿題に基づいています(実際の問​​題は使用していません)。 次のような関数があるとします。 f(n)∈O(2n2).f(n)∈O(2n2).f(n) \in O(2n^2) \, . 次に、これを次のように扱いますか? f(n)=2n2f(n)=2n2f(n) = 2n^2 それに数学を実行し、その漸近的な意味を保ちますか? 上記の場合、が意味すると推測できますか(この例では係数が重要であると仮定しています)?f(n)∈O(2n2)f(n)∈O(2n2)f(n) \in O(2n^2)f(n)/2∈O(n2)f(n)/2∈O(n2)f(n) / 2 \in O(n^2)

1
部分ソートは配列のルックアップコストに役立ちますか?
並べ替えられていないリストで何かを調べることは、時間の複雑さ伴うタスクです。ただし、リストがソートされている場合、時間の複雑さはです。つまり、配列を並べ替える価値がある場合があります。ただし、ソートアルゴリズムの時間の複雑さはであるため、これはトレードオフです。O (n )O(n)O(n)O (ログ(n ))O(log⁡(n))O(\log(n))O (n ログ(n ))O(nlog⁡(n))O(n\log(n)) 私の知る限り、配列を 時間未満でソートすることはできません。しかし、それよりも短い時間で部分的に配列をソートできるアルゴリズムがあるかどうか疑問に思っていますか?私はあなたが時間でそのような部分的にソートされた配列の値を検索できないと確信していますが、よりもうまくできますか?O (n ログ(n ))O(nlog⁡(n))O(n\log(n))O (ログ(n ))O(log⁡(n))O(\log(n))O (n )O(n)O(n) つまり、よりも高速なアルゴリズムでソートされていない配列を処理して、ルックアップアルゴリズムがよりも高速に検索できるようにすることは可能ですが、ほど高速ではありません?O (n ログ(n ))O(nlog⁡(n))O(n\log(n))O (n )O(n)O(n)O(log(n))O(log⁡(n))O(\log(n))

1
ガリルの法則はボイヤー・ムーアアルゴリズムでどのように機能しますか?
ガリルのルールを使用したボイヤー・ムーアのテキスト検索アルゴリズムがどのように機能するかを知りたいのですが。検索を試みましたが、このWikipediaページなど、見つけた情報を理解できませんでした。そして、なぜこのルールで線形時間の複雑さを実現するのでしょうか?

2
ソートされた配列に対するヒープの利点は何ですか?
私はヒープにかなり慣れていないので、ソートされた配列がデフォルトで最小/最大プロパティを提供しているように見えるときに、最小ヒープと最大ヒープがツリーとして表される理由に頭を抱えようとしています。 そしてフォローアップ:クイックソートのようなアルゴリズムがソートを非常にうまく処理する場合、ヒープへの挿入の複雑さを処理する利点は何ですか? コンテキスト:私はPythonでCLRS / MIT 6.006を使用していて、葉の値の整数表現しか見ていません。これは、各リーフに簡単にソートできない構造体が含まれているCなどの言語でより適切ですか?

1
CPUは最初の命令をどこから取得しますか?
BIOSコードが問題になるためには、プロセッサによって評価される必要があります。ただし、CPUは指定された命令のみを実行するため、プロセッサ自体が実際にBIOSコードにアクセスするための作業を行う必要があります。何かがCPUに命令を提供する必要があります(命令の方法を想像することができないため、 BIOSからCPUへのフロー」の間に何もありません)。 BIOSをロードしてそれに制御を渡すための命令はどこに保存されていますか?CPUがそれらを実行できるように、これらの命令をCPUに渡すのは誰ですか?

1
多対1の削減がチューリングの還元性を意味するのはなぜですか?
そう、 あ⩽メートルBA⩽mB A\leqslant_mB (1削減に相当)は、チューリング計算可能な関数f so f(A)\ subseteq Bおよびf(\ overline {A})\ subseteq \ overline {B}が存在する場合、言語を言語Bに削減できることを意味します。あAABBBffff(A )⊆ Bf(A)⊆B f(A) \subseteq Bf(あ¯¯¯¯)⊆B¯¯¯¯f(A¯)⊆B¯ f(\overline{A}) \subseteq \overline{B} あ⩽TBA⩽TB A\leqslant_TB (還元性をチューリング)言語のことを意味しあAA、言語にチューリング低減することができるBBBオラクル機が存在する場合にOBOBO^Bを決定あAA。 私はそれらの両方を個別に取得するのですが、なぜ⩽メートル⩽m \leqslant_m が\ leqslant_Tを意味するのかわかりません⩽T⩽T \leqslant_T 。

2
計算可能性、複雑さ、言語の小さな間違い?
本の中で計算可能性、複雑性、および言語(2 回目版)、マーティン・デイビスは、(予選)第1章に書いセクション2(機能): セット上の部分関数 SSS ドメインがそのサブセットである関数です SSS。上の部分的な関数の例NN\mathbb{N} によって与えられます g(n)=n−−√g(n)=ng(n) = \sqrt n、のドメイン ggg 完全な正方形のセットです。 これまでのところ簡単です。しかし、彼は先に進み、セクションの最後に数行書きます。 閉鎖の考え方を時々参照します。もしSSS セットです fff の部分関数です SSS、その後 SSSさの下で閉じ fff の範囲の場合 fff のサブセットです SSS。例えば、NN\mathbb{N} 下に閉じています f(n)=n2f(n)=n2f(n) = n^2、ただし下で閉じられていません h(n)=n−−√h(n)=nh(n) = \sqrt n(どこhhhの総関数ですNN\mathbb{N})。 だから最初の引用で n−−√n\sqrt n オン NN\mathbb{N}は部分関数の例ですが、2番目の引用では、同じ関数が合計関数の例です。 両方の例は互いに矛盾しているようです。または、ここでの閉鎖に関して何か不足していますか?

1
NP Complete鍵交換アルゴリズムの例
インターネット上には、さまざまな非対称暗号システムのNPの硬度について議論している質問がいくつかあります(このサイトなど、たとえば、既知のNPハード問題に基づく暗号化アルゴリズムがなかったのはなぜですか?)。NPハードキー共有システムはどの程度確立されていますか?つまり、NPが難しいことがわかっている問題に基づいた、共有キーを確立するためのシステム(対称暗号化で使用できるシステム)です。 https://en.wikipedia.org/wiki/Anshel-Anshel-Goldfeld_key_exchangeについて読んで、または、これらは一見すると非常に難しい制約充足または二次最適化問題のように見えます。これが基づいている対応する問題は同時共役問題です。GLn(F2)GLn(F2)GL_n(F_2)GLn(R)GLn(R)GL_n(\mathbb{R}) 最悪の場合、単にNPが難しい問題の間には重要な違いがあることを認識しています。ただし、ランダムなインスタンスのセットが与えられた場合、「平均的なケースのNP」である問題とは対照的に、ほとんどのランダムなインスタンスでは簡単です。 、それらの半分を解決することはまだ難しいです。どちらかの硬度の概念に依存するキー共有システムについて聞いてみたいと思います。

1
コンピュータービジョン:単一座標のラベルを使用したオブジェクト検出
以下のオブジェクト検出タスクを扱った論文は文献にありますか? タスクは次のように説明できます。 画像のセットが与えられた場合、ラベルは、検出したいオブジェクトの場所を表す単なる座標(x、y)です。座標はオブジェクトの中心にある必要はなく、オブジェクトのサイズは任意です。 タスクは、人、ボート、車のいずれかであるオブジェクトを検出することです。ただし、ラベルはオブジェクトのカテゴリを示しておらず、ラベルは対象のオブジェクトに近い座標にすぎません。 画像は1時間ごとに取得され、同じシーンのスナップショットです。したがって、バックグラウンド減算技術が役立つ場合があります。 同じシーンの約2000枚の画像があり、各画像には通常2つの対象オブジェクトがあります。 以前にそのような仕事に取り組んだことがあるのだろうか? Hog機能とSVMは、画像内の人間の検出に大きな成功を収めています。ただし、関連する文献では、関心のあるオブジェクトが単一の座標ではなく境界ボックスを使用してラベル付けされているトレーニングデータを使用しています。 主な3つの課題は次のとおりです。 オブジェクトのサイズは任意であるため、分類子の境界ボックスを選択することは困難です。 シーンのスナップショットは1時間ごとに取得されます(カメラもわずかに動く可能性があります)。そのため、バックグラウンド減算の使用は簡単ではありません。 ラベル付けされたデータはあまりありません。 人々がこれらの課題にどのように対処したかを見るのは興味深いでしょう。 ありがとう!

2
チューリングマシンと形式言語は同じ数学オブジェクトですか?
彼のコンセプトを構築する際のチューリングの目的は、人間が抽象的な推論を行う方法を形式化することでした。 私が間違っている場合は修正してください。ただし、その推論は、一連の正式なステートメント、つまりセマンティクスが付加されていない文字列を操作する練習にすぎません。 では、チューリングマシンが推論と同じである場合、正式な言語とチューリングマシンの間に同型(またはそのようなもの)があるのでしょうか。

2
簡略化された最大多様性問題
最大多様性問題は、選択を要求します メートルメートルm リストのアイテム んんn アイテム間のメトリック距離として定義される多様性が最大化されるようなアイテム。 私はもっ​​と簡単な方法で問題を解決できると思っていました。私の場合、私はリストを持っていますんんnそれぞれが特定の一意でないキーを持つアイテム。選びたいメートルメートルmキーごとのアイテムの最大数が最小化されるように、私のリストのアイテム。 たとえば、私のリストが: ('a', 5), ('b', 4), ('c', 2), ('a', 6), ('b', 5) そして、私たちは選択しなければなりません m = 3メートル=3m=3 アイテムの場合、最適なソリューションは、キーごとに1つのアイテムを含むリストです。 これを行うためのアルゴリズムは、最大多様性問題のアルゴリズムよりも簡単ですか?

1
すべての言語のクラスの問題が完了しました
すべてALL\text{ALL}は文字通りすべての言語のクラスです。 そこにある -completeの問題?つまり、ソリューションで問題を解決できる問題がありますか?このような問題は、「最も難しい問題であり、なし」と合理的に考えることができます。すべてALL\text{ALL} このような問題の1つは、問題と入力サイズを指定して、真理値表を出力することです。

1
深さ優先検索の時間の複雑さ[終了]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 3年前休業。 初心者の質問をすることを許してください。しかし、私はアルゴリズムと複雑さの初心者であり、特定のアルゴリズムの複雑さがどのようにして生じたのか理解するのが難しい場合があります。 コーメンのアルゴリズムの紹介から DFSアルゴリズムを読んでいましたが、これがアルゴリズムでした。 G -> graph G.V -> set of vertices in G u.π -> parent vertex of vertex u G.Adj[u] -> adjacency list of vertex u DFS(G) 1 for each vertex u ∈ G.V 2 u.color = WHITE 3 u.π = NIL 4 time = 0 …

2
なぜ、一次論理(算術なし)のVALIDITYは再帰的にしか列挙できず、再帰できないのですか?
Papadimitriouの "Computational Complexity"は、一次論理(算術なし)の式が有効かどうかを決定する問題であるVALIDITYが再帰的に列挙可能であると述べています。これは完全性と健全性の定理に由来します。これはVALIDITYとTHEOREMHOODに相当します。後者は、以前に再帰的に列挙可能であることが示されている公式の証明を見つける問題です。 ただし、式が与えられているため、VALIDITYが再帰的でない理由もわかりません。 φφ\phi、THEOREMHOODの2つのチューリングマシンを実行できます。 φφ\phi と他の ¬φ¬φ\neg \phi、同時に。それらの少なくとも1つが有効であるため、常に次のことを決定できます。φφ\phi有効または無効です。何が欠けていますか? 注:この質問は算術のない 1次の論理を参照しているため、ゲーデルの不完全性定理はここでは関係ありません。

3
計算の複雑さの自己学習者へのアドバイス
私は数学の学部生です(まもなく3年目に入ります)。私は自分に計算の複雑さを教えようとしています。悲しいことに、私の大学ではこのトピックに関するコースは提供されておらず、専門家もいません(実際、私の大学には理論的なCSの専門家はまったくいないようです)。だから、私は独学以外でトピックを学ぶことはできません。私はすでに計算の複雑さの最初のいくつかの章を通過しました:現代のアプローチ [しかし、どの演習も解決しませんでした(最初の章の2つまたは3つがTMと停止問題を明らかにすることを除く)] 私はテキストの演習でいくつかの問題に直面しています: 1つは、計算の複雑さに必要な考え方は、私がよく知っている数学の考え方とはかなり違うと感じていることです(アルゴリズム的な考え方など、問題を他の問題に縮小してTMを作成する方法に重点が置かれています)別のTMなどをシミュレートする)これは私が難しいと思うものです。 アルゴリズムや削減などについて、このレベルの成熟度を開発するのに役立つ方法はありますか? 「1」の難しさの理由の1つは、どの程度厳格にすべきかわからないことです。たとえば、縮小またはシミュレーションを実行しているときに、何かが明確で実行可能であることが直感的にわかる可能性がありますが、詳細を実際に実行するには非常に面倒なので、私はそうではないと感じますよく理解してください。ポイントは、厳密さと直感的な考え方の間には妥協が必要だということです。しかし、私にはガイドもインストラクターもいないので、この行がどこにあるべきかわかりません。 何か明確なことがあれば、いつすべての詳細を実行する必要がありますか?また、直感にいつ満足すべきですか?計算の複雑さには、私が知っている数学に通常存在する詳細よりもはるかに多くの詳細があるように思われます。 より複雑な演習に取り組む前に、基本的な概念や構成などを使って自分でトレーニングできるように、計算の複雑さで提供されるものよりもはるかに簡単な演習や問題の原因はあるのでしょうか。また、多くの定理は本文に証明のスケッチしか持っていないので、主定理の(かなり詳細な)証明の出典は素晴らしいでしょう。 私の背景として、プログラミングの基本を学びました(私はpython、CおよびC ++でしばらくトレーニングしました)あまり多くはありませんが、数学、特に数学的ロジック(完全性と不完全性の定理まで)、高度なセットにはかなり精通しています理論(強制)、代数(線形、抽象、普遍代数、およびいくつかのカテゴリー理論)、およびトポロジーと実数分析の基礎。私は離散数学(組み合わせ論+グラフ理論)のコースも受講しました。 私の質問がトピックから外れている場合は申し訳ありませんが、これらの質問を提案するのにこれ以上の場所はありません。

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