6

大学で勉強している間、私は計算理論について多くを学ばなければなりませんでした。私はそのテーマを 3 学期勉強しました。苦労しましたし、忘れ物が多かったことを認めざるを得ません。

これは個人的な問題なのか、それとも(多かれ少なかれ)役に立たないことをたくさん学ばなければならなかっただけなのか、疑問に思っています。

私の質問は次のとおりです。計算理論の分野でどのトピックが最も重要だと思いますか。どの部分について学ぶ価値がありますか。通常の仕事ではどのトピックを使用しますか?

個人的には、言語の理論(特に正規言語 => 正規表現 - 適用できる場合と適用できない場合) と、さまざまな時間 (および空間) の複雑さ、特に O(n)について聞いてよかったです。表記。

しかし、次のことを含め、さらに多くのことを研究する必要がありました。

  • 計算可能性理論
    • 停止問題
    • 半決定問題
  • 複雑さの理論
    • p=np?
  • 論理の理論
    • 命題計算
    • 述語ロジック

これらのトピックについて聞くのは興味深いことでしたが、それらを深く研究することがどれほど必要かはわかりません。

この質問は主観的なものであり、日々の仕事や個人的な経験によって答えが大きく異なることは承知しています. しかし、私が覚えているよりも興味深いトピックについて知りたい.

4

2 に答える 2

7

計算理論の分野でどのトピックが最も重要だと思いますか?

質問があいまいです。誰にとって重要ですか?

どの部分について学ぶ価値がありますか?

それらはすべて学ぶ価値があります。これは、すべての人間の努力が本質的に学ぶ価値があるという事実の特殊なケースです。

あなたの質問が「どのトピックが、それらを勉強するための時間と労力のコストよりも大きな利益を私にもたらすか?」である場合、それはあなただけが自分で答えることができる質問です。たとえば、古代ギリシャの歴史を研究することの利点は、それが私の仕事を成し遂げる能力にどのように影響するかとは何の関係もありません.

普段の仕事でどのトピックを使用しますか?

言語理論、漸近順序分析、決定可能性、複雑性理論、定理証明システムなど、あなたが挙げたすべてのトピックを使用します。

正式な意味では使用しません。特定のアルゴリズムの順序分析を導出するためにマスター定理を使用してデスクに座っているわけではありません。提案された言語機能を利用して、それを実装するためにコンパイラーが線形、多項式、指数、NP 困難、または同等の問題を解決する必要があるかどうかを迅速に判断できると非常に便利であるという意味で、私はそれらを使用します。停止問題。

たとえば、入れ子になったラムダに対する C# 3 のオーバーロード解決は NP 困難であるが、停止問題と同等ではないことを理解するのは非常に簡単です。したがって、(1) 多項式時間で問題を解こうとするのは時間の無駄であり、(2) 少なくとも、ある程度の時間で解が見つかることはわかっています。悪いシナリオを検出し、必要に応じて迅速に失敗するための単純なヒューリスティックを考え出すことができます。

私は個人的に証明システムをあまり使用しませんが、問題を定理証明者の特殊なケースとして考えることは役に立ちます。特に型推論とフロー解析の分野では、定理証明者に投げかける問題と同等のあらゆる種類の言語機能があります。幸いなことに、C# のどの機能も実際に定理証明器の実装を必要としません。この建物に実装されている他の言語 (F# など) には、そのプロパティがあります。

于 2010-03-05T16:57:47.237 に答える
1

計算クラスの理論で学んだことを仕事で直接使用するかどうかはわかりません。しかし、それが本当のポイントではないと思います。高校時代にユークリッド幾何学で学んだことも、そのまま生で使うことはありません。しかし、それは私が小学校で受けた最も重要なクラスでした.

計算理論は非常に興味深いトピックであり、それをよく知ることは人生においてのみ役立つものです。それを証明することはできませんが、それが真実であることは知っています。

たいした回答じゃなくてすみません。

于 2010-03-05T16:57:06.660 に答える