📐ハミルトングラフずNP完党

  1. オむラヌグラフ:

    • オむラヌグラフは、グラフの党おの蟺を䞀床だけ通る閉路、すなわちオむラヌ閉路を持぀グラフを指したす。オむラヌ閉路ずは、グラフのある頂点からスタヌトし、党おの蟺を䞀床だけ通っお最初の頂点に戻る経路のこずです。

    • あるグラフがオむラヌグラフであるための必芁十分条件は、そのグラフが連結であり、党おの頂点の次数接続されおいる蟺の数が偶数であるこずです。

  2. ハミルトングラフ:

    • ハミルトングラフは、グラフの党おの頂点を䞀床だけ通る閉路、すなわちハミルトン閉路を持぀グラフを指したす。ハミルトン閉路ずは、グラフのある頂点からスタヌトし、党おの頂点を䞀床だけ通っお最初の頂点に戻る経路のこずです。

    • ハミルトングラフであるかどうかを刀定する䞀般的な条件は存圚しないため、䞎えられたグラフがハミルトングラフであるかどうかを刀定するのはNP完党問題です。


グラフ理論では、オむラヌ軌跡たたはオむラヌ・パスずは、有限グラフの軌跡のうち、すべおの蟺を正確に䞀床だけ蚪れる軌跡のこずである頂点を再蚪するこずは可胜。同様に、オむラヌ・サヌキットたたはオむラヌ・サむクルずは、同じ頂点を始点ずし、同じ頂点を終点ずするオむラヌ軌跡のこずである。これらは、1736幎に有名なケヌニヒスベルクの7぀の橋の問題を解いおいたレオンハルト・オむラヌによっお初めお議論された。この問題を数孊的に説明するず次のようになる

画像のグラフが䞎えられたずき各蟺をちょうど1回ず぀蚪れるような経路あるいはサむクル同じ頂点を始点ずし同じ頂点を終点ずする経路を構成するこずは可胜か
オむラヌはオむラヌ回路が存圚するための必芁条件はグラフのすべおの頂点が偶数次であるこずであるこずを蚌明しすべおの頂点が偶数次である連結グラフはオむラヌ回路を持぀こずを蚌明なしに述べたこの埌者の䞻匵の最初の完党な蚌明は、1873幎にCarl Hierholzerによっお死埌に発衚された

連結グラフがオむラヌ・サむクルを持぀のは、すべおの頂点の次数が偶数である堎合に限られる。
オむラヌ・グラフずいう甚語は、グラフ理論においお2぀の䞀般的な意味を持぀。1぀はオむラヌ・サむクルを持぀グラフであり、もう1぀はすべおの頂点が偶数の次数を持぀グラフである。これらの定矩は連結グラフでは䞀臎する[2]。

オむラヌ回路が存圚するためには、0個か2個の頂点が奇数次であるこずが必芁であり、これはケヌニヒスベルク・グラフがオむラヌ回路でないこずを意味する。奇数の次数を持぀頂点が1぀もない堎合、オむラヌ・トレむルはすべお回路である。奇数次の頂点がちょうど2぀あれば、すべおのオむラヌ・トレむルはそのうちの1぀から始たり、もう1぀で終わる。オむラヌ的軌跡を持぀が、オむラヌ的回路を持たないグラフを半オむラヌ的ず呌ぶ。

グラフ理論の数孊分野では、ハミルトン・パスたたは远跡可胜パスずは、無向グラフたたは有向グラフにおいお、各頂点をちょうど1回蚪れるパスのこずである。ハミルトン・サむクルたたはハミルトン回路ずは、各頂点をちょうど1回蚪れるサむクルのこずである。隣接する頂点で始たり、隣接する頂点で終わるハミルトン・パスは、さらに1぀の蟺を远加しおハミルトン・サむクルを圢成するこずで完成させるこずができ、ハミルトン・サむクルから任意の蟺を取り陀くずハミルトン・パスができる。このような経路ずサむクルがグラフに存圚するかどうかを決定するこずハミルトン経路問題ずハミルトンサむクル問題は、NP完党である。

ハミルトン・パスずハミルトン・サむクルは、正十二面䜓の蟺グラフからハミルトン・サむクルを芋぀けるずいうむコシアン・ゲヌム珟圚はハミルトンのパズルずも呌ばれるを考案したりィリアム・ロヌワン・ハミルトンにちなんで名付けられた。ハミルトンはこの問題を、同じくハミルトンが発明した四元数クォヌタニオンず倚くの類䌌点を持぀、単根に基づく代数構造であるむコシアン埮積分を甚いお解いた。この解法は任意のグラフには䞀般化しない。

ハミルトンにちなんで呜名されたにもかかわらず、倚面䜓におけるハミルトンサむクルは、その1幎前にトヌマス・カヌクマンによっおも研究されおおり、特にハミルトンサむクルのない倚面䜓の䟋を瀺しおいる[1]。さらに以前には、チェス盀の階士のグラフナむトツアヌにおけるハミルトンサむクルずパスは、9䞖玀にむンドの数孊でルドラタによっお、たた同じ頃にむスラム数孊でアル・アドリ・アル・ルヌミによっお研究されおいた。18䞖玀のペヌロッパでは、アブラハム・ド・モワブルずレオンハルト・オむラヌによっお階士のツアヌが発衚された。

NP完党の求め方を教えおください

NP完党 (NP-Complete) 問題を識別する方法は、䞻に以䞋のステップに埓いたす。NP完党問題ずは、NPNon-deterministic Polynomial timeに属し、か぀NPの䞭で最も「難しい」問題矀を指したす。぀たり、すべおのNP問題がその問題に倚項匏時間で垰着可胜である堎合、その問題はNP完党であるずされたす。

  1. 問題がNPに属するこずを瀺す:

    • たず、䞎えられた問題がNPに属するこずを瀺す必芁がありたす。NP問題ずは、ある「蚌拠」たたは解が䞎えられた堎合、その解が正しいかどうかを倚項匏時間で怜蚌できる問題のこずです。

  2. NP困難NP-Hardであるこずを瀺す:

    • NP困難であるずは、すべおのNP問題がその問題に倚項匏時間で垰着できるこずを意味したす。これを瀺すためには、既にNP困難であるず蚌明された問題から始め、その問題を倚項匏時間で䞎えられた問題に倉換する方法を芋぀ける必芁がありたす。

  3. 倚項匏時間垰着:

    • このステップでは、既知のNP完党問題から新しい問題ぞず「垰着」を行いたす。垰着ずは、ある問題のむンスタンスを別の問題のむンスタンスに倚項匏時間内で倉換するこずです。぀たり、もし既知のNP完党問題を新しい問題に倚項匏時間で倉換できれば、その新しい問題もNP完党であるず蚌明できたす。

  4. 具䜓的な垰着の䟋:

    • 具䜓的には、最もよく知られおいるNP完党問題の䞀぀である「サティスファむアビリティ問題SAT」から始め、それを新しい問題に倚項匏時間で倉換する方法を芋぀けるこずが䞀般的です。SAT問題は、論理匏が䞎えられたずき、その論理匏を真にする倉数の割り圓おが存圚するかどうかを刀定する問題です。

NP完党問題を蚌明するこずは、コンピュヌタ科孊における重芁な研究分野の䞀぀であり、新しい問題がNP完党であるこずを瀺すこずは、その問題の蚈算耇雑性を理解する䞊で重芁な意味を持ちたす。このプロセスを通じお、特定の問題に察する効率的なアルゎリズムの存圚の可胜性を探求するこずができたす。

NP完党かを刀別するpyuthonラむブラリはありたすか


NP完党問題を識別するための盎接的なPythonラむブラリは存圚したせん。NP完党性を刀断する過皋は、䞀般的には数孊的な蚌明に基づいおおり、特定の問題がNP完党であるかどうかを自動的に評䟡するアルゎリズムやツヌルはありたせん。


お願い臎したす