タグ付けされた質問 「reference-request」

特定の狭い問題に関する文献の論文を要求する質問。

3
型システムの分類(強い/弱い、動的/静的)
要するに、型システムは学術的文脈でどのように分類されるのか。特に、異なる種類の型システム間の区別を明確にする信頼できるソースをどこで見つけることができますか? ある意味で、この質問の難しさは、答えを見つけることができないということではなく、むしろあまりにも多く見つけることができ、どれも正しいと際立っていないことです。背景は、Haskell wikiのタイピングに関する記事を改善しようとしていることです。現在、次の区別を主張しています: 型なし:言語には型の概念がない、または型付きの観点から:言語には型が1つだけあります。アセンブリ言語のタイプは「ビットパターン」のみ、RexxとTkのタイプは「テキスト」のみ、コアMatLabのタイプは「複素数値行列」のみです。 弱い型付け:識別型はほとんどなく、いくつかの型の同義語もあります。たとえば、Cはブール値、整数、文字、ビットセット、および列挙に整数を使用します。 強い型付け:Ada、Wirthian言語(Pascal、Modula-2)、Eiffelのようなきめ細かい型のセット これは、私の個人的な認識とはまったく反対です。 弱い型付け:オブジェクトには型がありますが、コンテキストが要求すると、暗黙的に他の型に変換されます。たとえば、Perl、PHP、およびJavaScriptはすべて、"1"、多かれ少なかれ可能なコンテキストで使用できる1です。 強い型付け:オブジェクトには型があり、暗黙的な変換はありません(ただし、シミュレートするためにオーバーロードが使用される場合があります)ので、間違ったコンテキストでオブジェクトを使用するとエラーになります。Pythonでは、文字列または浮動小数点で配列のインデックスを作成すると、TypeError例外がスローされます。Haskellでは、コンパイル時に失敗します。 私は、私よりもこの分野で経験のある他の人々にこのことについて意見を求めました。 弱いタイピング:データに対する無効な操作の実行は制御または拒否されませんが、無効/任意の結果を生成するだけです。 厳密な型指定:データの操作は、データが操作と互換性がある場合にのみ許可されます。 私が理解するように、最初と最後の特性化はCを弱く型付けし、2番目はCを強く型付けしたと呼びます。最初と2番目は弱い型のPerlとPHPを呼び出し、3番目は強い型のPerlとPHPを呼び出します。3つすべてがPythonを厳密に型指定されていると説明します。 ほとんどの人は「まあ、コンセンサスはなく、用語の受け入れられた意味はない」と言うだろうと思う。それらの人々が間違っている場合、私はそれについて聞いてうれしいですが、彼らが正しい場合、どのようにか CSの研究者が説明し、タイプのシステムを比較しますか?問題の少ない用語を使用できますか? 関連する質問として、私は動的/静的な区別が「コンパイル時間」と「実行時間」の観点からしばしば与えられると感じます。言語がコンパイルされるかどうかはその言語の特性ではないので不満足だと思いますその実装として。動的タイピングと静的タイピングの純粋に意味論的な記述があるべきだと思います。「静的言語とは、すべての部分式を入力できるもの」の行に沿ったものです。この概念を明確にする考え、特に参考文献をいただければ幸いです。

2
分割統治の理論的基礎
アルゴリズムの設計に関しては、多くの場合、次の手法を使用します。 動的プログラミング 貪欲戦略 分割統治 最初の2つの方法については、よく知られた理論的基礎、つまりベルマン最適性原理とマトロイド(またはグレドイド)理論がありますが、D&Cに基づくアルゴリズムのこのような一般的なフレームワークは見つかりませんでした。 まず、コンビネータのコンテキストで発生した「アルゴリズムスケルトン」と呼ばれる関数型プログラミングクラスで私たち(またはむしろ教授)が導入したことを認識しています。この例として、D&Cアルゴリズムのスケルトンを次のように指定しました。 定義:A,SA,SA,S空でないセットとします。SSS ソリューションの要素と呼び、の要素:= P(A )P:=P(A)P:=P(A)P:=\mathfrak{P}(A)(つまり、のサブセットAAA)は問題と呼ばれます。次いで、D&C-骨格は 4タプルである(Pβ,β,D,C)(Pβ,β,D,C)(P_\beta, \beta, \mathcal{D}, \mathcal{C})ここで、: PβPβP_\beta問題の集合以上の述語であり、我々は問題のことを言うpppされ、基本的なIFFPβ(p)Pβ(p)P_\beta(p)成り立ちます。 、Aマッピングである P β → Sの各基本的な問題に対する解決策を割り当てます。ββ\betaPβ→SPβ→SP_\beta \rightarrow S は、各問題を一連の副問題に分割するマッピング P → P(P )です。DD\mathcal{D}P→P(P)P→P(P)P \rightarrow \mathfrak{P}(P) は P × P(S )→ Sのマッピングであり、サブ問題の解(「ピボット問題」の種類に応じて)を結合して解を生成します。CC\mathcal{C}P×P(S)→SP×P(S)→SP\times \mathfrak{P}(S) \rightarrow S 次いで、に対して与えられたスケルトンおよび問題Pは、次の汎用関数F S:P → Sは、のために(形式的な意味での)解を計算P。s=(Pβ,β,D,C)s=(Pβ,β,D,C)s=(P_\beta, \beta, \mathcal{D}, \mathcal{C})pppfs:P→ Sfs:P→Sf_s: P\rightarrow Sppp fs(p )= …

4
コーメンを超えたアルゴリズムの本
Cormenのアルゴリズムの紹介の本でほとんどの資料を完成させました。Cormanの本以外の資料をカバーするアルゴリズムの本を探しています。推奨事項はありますか? 注:stackoverflowでこれを尋ねましたが、答えにあまり満足していませんでした。 注:ほとんどのコメントを見て、理想的には、このコースの説明で787 コースの内容をカバーする本を見つけたいと思います。

7
ヤングアダルト向けコンピューターサイエンスブック
この質問は、コンピューターサイエンススタック交換で回答できるため、理論的なコンピューターサイエンススタック交換から移行されました。 7年前に移行され ました。 たとえば15歳の若者向けの優れた初心者向けコンピューターサイエンスの本とは何ですか?CSで始めたいのですが、どこから始めればいいのかわかりません。プログラミングの経験は限られています。

3
計算問題を厳密に定式化する方法は?
私はしばしば、計算の問題(またはその複雑さ)のアルゴリズムを求めたい人とやり取りしますが、私たち(コンピューター科学者)が理解するために厳密な方法でそれを表現しません。 CLRSのような本を参照することは、例えばグラフの隣接リストとその中の2つの頂点がそれらの頂点間の最短経路を計算する場合、通常は非常に簡単に厳密に述べる方法があるため、役に立たない。 CSに関する最低限の知識を持つ人が、コンピューター科学者が理解できる厳密な方法で計算問題を定式化し、述べる方法を学ぶことができる良い本(または他のリソース)はありますか? 本は、さまざまな分野や実世界の例から計算問題を厳密に定式化する方法の多くの例を持っていることが望ましい。 明確化 質問をより具体的にするために、1、2年生のCS学部生のレベルで、セット、関数、グラフ、リストなどの基本的な数学/ CSの用語を知っていると仮定しましょう(私がいる人の場合)マインド)。たとえば、AhoやUllmanのような入門書を読んだことがあります(完全に理解していないかもしれませんが)。 Al AhoおよびJeff Ullman、Foundation of Computer Science、1992年。

1
ロックのない、一定の更新時間の同時ツリーデータ構造?
私は最近少しの文献を読んでいて、かなり興味深いデータ構造を見つけました。 更新時間を最悪の場合の更新時間まで下げるさまざまな方法を調査しました[1-7]。O(1)O(1)\mathcal{O}(1) 最近、効率的な同時アクセスをサポートするために、ロックフリーのデータ構造の調査を開始しました。 これらの最悪の場合の更新時間技術は、ロックフリーデータ構造の実装に使用されていますか?O(1)O(1)\mathcal{O}(1) 私が尋ねるのは; 私には、それらはこの「理論的強化」の明らかな実際的な拡張のように思えます。 タージャン、ロバート・エンドレ。「O(1)ローテーションでのバランスの取れた検索ツリーの更新。」情報処理レター16、no。5(1983):253 – 257。 Driscoll、JR、N Sarnak、DD Sleator、およびRE Tarjan。「データ構造の永続化」。第18回コンピューティング理論に関する年次ACMシンポジウムの議事録、109–121。STOC '86。ニューヨーク、ニューヨーク、アメリカ:ACM、1986。 Levcopoulos、C。、およびMark H. Overmars。「O(1)最悪の場合の更新時間を備えたバランスの取れた検索ツリー。」Acta Inf。26、いいえ。3(1988年11月):269–277。 フライシャー、ルドルフ。O(1)ワーストケース更新時間を備えた単純なバランスの取れた検索ツリー ディーツ、ポールF、ラジーエフラマン。「一定の更新時間のフィンガー検索ツリー。」情報処理レター52、いいえ。3(1994):147 – 154。 Lagogiannis、George、Christos Makris、Yannis Panagis、Spyros Sioutas、Kostas Tsichlas。「最悪の場合の一定の更新時間を備えた新しい動的なバランスの取れた検索ツリー。」J. Autom。ラング。櫛。8、いいえ。4(2003年7月):607–632。 Brodal、GerthStølting、George Lagogiannis、Christos Makris、Athanasios Tsakalidis、Kostas Tsichlas。「ポインターマシンでの最適な指探索ツリー」。J。Comput。システム。科学 67、いいえ。2(2003年9月):381–418。

1
難治性/収縮性の充足可能性問題のバリアントの分類
最近、論文[1]で、2/2 / 4-SATと呼ばれるSATの特別な対称バージョンを見つけました。しかし、多くの完全なバリアントがあります。たとえば、MONOTONE NAE-3SAT、MONOTONE 1-IN-3-SAT、...NPNP\text{NP} 他のいくつかのバリアントは扱いやすいです: - SAT、Planar-NAE- SAT、...222SATSAT\text{SAT}SATSAT\text{SAT} NP完全(またはP)であることが証明された(変な)バリアントをすべて分類する調査論文(またはWebページ)はありますか?SATSAT\text{SAT}NPNP\text{NP}PP\text{P} 15パズルの x N拡張の最短解を見つけることは、NNNNNN D。RatnerとM. Warmuth(1986)によって扱いにくい

3
逆アッカーマンよりも成長が遅い関数は、実行時の境界に表示されますか?
一部の複雑なアルゴリズム(union-find)には、漸近時間の複雑さに現れるほぼ一定の逆アッカーマン関数があり、ほぼ一定の逆アッカーマン項が無視される場合、最悪の場合の最適時間です。 最もよく知られている最悪の場合の時間を与える、逆アッカーマンよりも基本的に遅くなる関数(多項式または指数などの変換の下でアッカーマンと等価ではない関数の逆関数)を含む実行時間を持つ既知のアルゴリズムの例はありますか根本的な問題を解決するための複雑さ?

4
コンピューターを構築するためのコンポーネントとして人間を使用していますか?
始める前に、特にこれが現実の問題ではないため、これがトピックの端にあることに気付きます(このサイトの質問のヘルプを読みました)。しかしながら: Googleに関連するものが見つかりません 純粋な観点から、確かにコンピューターサイエンスの範囲内に収まらなければなりませんか? いずれにせよ、境界を越えた場合、他のSEサイトの熱心なユーザーであるため、謝罪し、閉鎖を歓迎するので、問題を理解します。 警告はさておき、私は長い間、個々の人間が実際のタイムスケールでは解決できない問題を解決するために、人間を個別の論理コンポーネントとして使用して、機能するコンピューティングシステムを構築できるかどうか疑問に思っていました。たとえば、機械なしで島に立ち往生した多くの人間が、脱出するためにいくつかの複雑な数字を処理する必要があると想像してください。 システム内の他のグループから入力を受け取り、単純な決定(おそらくバイナリ決定ではないかもしれません)を行い、出力を他のグループに渡すように人々を配置することを想像します。 それから、データと計算の流れを制御するためにある種のプログラミング言語を開発し、個人が全体的な問題を理解することなく、この言語を使用して複雑な問題を解決できると思います。 ですから、上記は答えられる質問ではありませんが、研究、書籍、論文など、達成するために必要なこと、対処できる問題の種類、制御言語の種類を知っている人はいますか?より複雑な問題を処理するために、アーキテクチャをどのように拡張できるか? 本質的に、「理想的な」アトミック(自己完結型など)および標準のコンピューティングユニットで自由に配置できるものを探していると思います。人間の観点で考えているだけです。 このアイデアは魅力的で魅力的です。いつか試してみて、どんなパフォーマンスが達成できるかを見てみたい!ここでタグを検索していたので、私が使用していたタグは申し訳ありませんが、フィールド内に存在していると確信していますが、私が考えていることの正しい用語がわからないことにすぐに気付きました...

2
文脈自由言語は補完の下で閉じられますか?
文脈自由言語は補完の下で閉じられていません、私たちはそれを知っています。 私の知る限り、一部の文字サブセットでコンテキストフリー言語は、complement(!?)の下で閉じられます。a∗b∗a∗b∗a^*b^*a,ba,ba,b これが私の議論です。各CF言語は、半線形パリフイメージます。半線形集合は補数の下で閉じられます。半線形セットを表すベクトルのセットは、線形文法に簡単に変換できます。LLLπ(L)={(m,n)∣ambn∈L}π(L)={(m,n)∣ambn∈L}\pi(L) = \{ (m,n) \mid a^mb^n \in L \} 質問。この事実に簡単にアクセスできる参照はありますか? 技術的には、これらの言語はboundedと呼ばれます。つまり、一部の単語のサブセットです。w∗1…w∗kw1∗…wk∗w_1^* \dots w_k^*w1,…,wkw1,…,wkw_1,\dots,w_k この質問に対する私の動機は、の文脈自由度に関する最近の質問からです。内のその補完は処理が簡単に思えます。{anbm∣n2≠m}{anbm∣n2≠m}\{ a^nb^m \mid n^2 \neq m \}a∗b∗a∗b∗a^*b^*

1
パーティションの洗練に基づくアルゴリズムが対数線形時間よりも高速に実行される問題
パーティションの洗練は、オブジェクトの有限セットから始めて、セットを徐々に分割する手法です。DFA最小化などの一部の問題は、パーティションの洗練を非常に効率的に使用して解決できます。ウィキペディアのページにリストされているもの以外のパーティションの改良を使用して通常解決される他の問題は知りません。これらすべての問題のうち、ウィキペディアのページでは、パーティションの洗練に基づくアルゴリズムが線形時間で実行される2つについて言及しています。辞書編集的に順序付けられたトポロジカルソート[1]と辞書編集幅優先検索アルゴリズム[2]があります。 パーティションの絞り込みを非常に効率的に使用して解決できる問題の例や参考文献はありますか? [1] Sethi、Ravi、「2つのプロセッサでのグラフのスケジューリング」、SIAM Journal on Computing 5(1):73–82、1976 [2] Rose、DJ、Tarjan、RE、Lueker、GS、「グラフ上の頂点除去のアルゴリズム的側面」、SIAM Journal on Computing 5(2):266–283、1976

2
並列の複雑さの結果を絶えず多くのコアに縮小する方法は?
クラスNCによって与えられる「並列アルゴリズムによる効率的な解決」の複雑さの理論的見解を受け入れるのに問題がありました。 NCは、、プロセッサで時間並列アルゴリズムによって解決できる問題のクラスです。P (N )∈ O (N 、K)C 、K ∈ NO (ログcn )O(logc⁡n)O(\log^cn)p ( N )∈ O (Nk)p(n)∈O(nk)p(n) \in O(n^k)C 、K ∈ Nc,k∈Nc,k \in \mathbb{N} PRAMを想定できます。 私の問題は、これが「実際の」マシン、つまり有限量のプロセッサを備えたマシンについてあまり語っていないように見えることです。現在、プロセッサ上でプロセッサアルゴリズムを「効率的に」シミュレートできることが「わかっている」と言われています。のp ∈ NO (nk)O(nk)O(n^k)P ∈ Np∈Np \in \mathbb{N} ここで「効率的に」とはどういう意味ですか?これは民間伝承ですか、それともシミュレーションによって生じるオーバーヘッドを定量化する厳密な定理がありますか? 私が起こるのが怖いのは、シーケンシャルアルゴリズムと、プロセッサでシミュレートしたときに時間もかかる「効率的な」並列アルゴリズムを持つ問題があることです逐次アルゴリズムが漸近的に最適な場合、この粒度レベルの分析で期待できるのはすべてです)。この場合、私たちが見る限り、スピードアップはありません。実際、シミュレートされた並列アルゴリズムは、逐次アルゴリズムよりも遅い場合があります。つまり、私は境界(またはそのような結果がないことの宣言)よりも正確なステートメントを本当に探しています。p O (n k)O (nk)O(nk)O(n^k)pppO(nk)O(nk)O(n^k)OOO

2
最大フロー計算または他のアプリケーションのために、実際にリンクカットツリーは使用されていますか?
私がよく実装する多くの最大フローアルゴリズム、ダイニックのアルゴリズム、プッシュ再ラベルなどでは、動的ツリー(リンクカットツリーとも呼ばれます)を使用することで漸近的な時間コストを改善できます。 プッシュ再ラベルは、通常またはまたはますが、動的ツリーO (V 3)O (V 2 √O (V2E)O(V2E)O(V^2E)O (V3)O(V3)O(V^3)O(VElog(V2/E))O (V2E−−√)O(V2E)O(V^2\sqrt{E})O (VEログ(V2/ E))O(VElog⁡(V2/E))O(VE \log(V^2/E)) Dinicのアルゴリズムはで実行されますが、動的ツリーO (V E log (V ))O (V2E)O(V2E)O(V^2E)O (VEログ(V))O(VElog⁡(V))O(VE\log(V)) ただし、ほとんどのライブラリでのmax-flowアルゴリズムの実用的な実装では、このデータ構造を使用していないようです。ダイナミックツリーは、実際には最大フロー計算に使用されていますか?または、実際の問題のサイズに役立つにはオーバーヘッドが大きすぎますか? リンクカットツリーが使用される他の問題ドメインはありますか? この質問は、cstheoryで私が尋ねた質問に関連しています。最先端のMaximum Flowアルゴリズムは実用的ですか?

1
「機械学習」という用語を生み出したのは誰ですか?
「機械学習」という用語を生み出したのは誰かを把握しようとしています。補助的な質問は、アーサー・サミュエルが1959年の「機械学習」の分野を次のように定義しているとして引用されている場所からです。 コンピューターが明示的にプログラムされなくても学習できるようにする研究分野 ? この定義への多くの参照はインターネットで見つけることができますが、ソースを追跡することができませんでした。チェッカーに関する1959年の論文としてそれを挙げている人もいますが、そのような定義はありません。

3
1つの配列が他の配列のソートバージョンかどうかを確認する決定論的線形時間アルゴリズム
次の問題を考慮してください。 入力:長さnの 2つの配列AAAおよびここで、Bはソート順です。BBBnnnBBB クエリは:ないAAAとBBB(その多重度)と同じ項目が含まれていますか? この問題の最速の決定論的アルゴリズムは何ですか? それらをソートするよりも速く解決できますか?この問題は確定的な線形時間で解決できますか?

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