私はかつて神経計算の教授に、「アナログ」技術を計算の漸近的限界を減らすために恥ずかしいほど並列の問題でどのように使用できるかについての優れた例を指摘していました。
異なるサイズのスティックの束を取ります。O(n * log(n))を使用して、スティックのバンドルを最長から最短にソートするアルゴリズム的な方法は多数あります。スティックの束を並べ替える「アナログ」の方法は、スティックを端に立て、スティックの一端をテーブルに置くことです(1ステップ)。これで、テーブルに対して同じレベルにある一端を持つすべてのスティックができました。手を取り、上に置きます-最長でヒットし、スティックを取り外し、Nステップ繰り返します。このプロセスはO(N + 1)、つまりO(N)です。ここでの鍵は、棒を端に積み重ねることでした-棒の他の端をZ軸(上)に沿って並べるための超並列ソリューション。
これはきちんとした思考実験であり、アナログソリューションがアルゴリズムの漸近的境界を簡単な方法でどのように減らすことができるかについてのアイデアを与えることができます。ここに2つの大きな警告があります:
1)この例では、NP問題をP問題に変換していません(詳細は後で説明します)。
2)N個のプロセッサを使用してN個のアイテムを並べ替えた場合、数値をO(log n)時間で(大きな定数で)並べ替えることができるため、削減は不思議ではありません。必要なアナログリソースが、非常に並列的な方法で問題を解決する場合、安価な場合があります。安価なリソースのもう1つの例は、複雑な学習とパターン認識のためのニューロン(生物学的)です。
ニューロンはまた、見かけのNP => Pを見通しに入れることができます。NP問題は、最適解を見つけるためのNP です。Pタイムでは、自然にうまくいく「十分な」ソリューションを見つけることができます。Evolutionは、「十分に良い」非常に効率的なソリューションを選択します。平均的な人がほぼO(1)時間でオブジェクトを識別するのにどれほど優れているかを考えます。それは多くの並列処理が行われているためであり、あなたの脳はまだ常に最適なソリューションを思いつくわけではありません。たとえば、目の錯覚、またはキーをどこに置いたかを忘れる(これはコンピューターでは簡単にO(1)になります!)。
本質的にNPとPの別のポイント:最適解を見つけるためにNPを解くことは、最適解を特定することと同じではありません。NP問題の最適解の特定は、P時間で実行できます。ここでも、「十分に良い」ソリューションの認識は、最適なソリューションではなく機能します。タンパク質の折りたたみの例を見てみましょう-これは上記のすべてを行う自然の例です。これは、すべてが並列に作用する分子相互作用力を利用します(計算アルゴリズムのように、一度に1つの原子をアドレス指定するための自然なフォールディング「アルゴリズム」は必要ありません)。また、タンパク質のフォールディングに対する(機能的に)最適なソリューションが見つかるという保証はありません。
タンパク質の誤った折りたたみに起因する病気の多くの例があります。@PeterShorが指摘したように、「自然な」アルゴリズムがまったく機能しない場合があります(熱力学的に最適なソリューションになりますが、機能的なソリューションにはなりません)。それがシャペロンタンパク質が入ってくるところです-それらは正しい折りたたみを正しい機能的な形に導きます(熱力学的局所最小)。正しく形成されたタンパク質は、他のタンパク質とも相互作用して正しい場所に輸送されるため、「悪い」もの(ヒューリスティックアルゴリズムが実際にNP問題を解決しなかったもの)は、どこにも輸送されずに劣化することがよくあります。これらのトランスポートと折りたたみメカニズムはすべて、大規模な並列パイプで発生しています。複数の転写および処理メカニズムが、遺伝子配列の異なるポイントで同時にDNA-> RNA->タンパク質を変換しています。体のすべての細胞は同じことをしています(ただし、生成する化学物質のメッセージは異なります)。
要するに、自然はそれをどのように行うのでしょうか?トリックと並列処理。一般的に、それは実際にNP問題をPに変えるのではなく、単に見やすくするだけです。