コメントに入れるには大きすぎるメモもあります(ただし、これは明らかなアルゴリズムを示唆していません)。
パンチライン(編集済み):最大面積の長方形の少なくとも2つの頂点は、ポリゴンの境界上(エッジに沿って、または頂点に)ある必要があります。最大面積の長方形が正方形でない場合、少なくとも3つの頂点がポリゴンの境界上になければなりません。
私は4つのステップでそれを自分自身に証明しました:
注#1:最大面積の長方形の少なくとも1つの頂点は、常にポリゴンの境界上にあります。これは非常に明白ですが、証明は次のようになります(矛盾により)。多角形の境界に頂点のない「最大の」長方形があるとします。つまり、各頂点の周囲に少なくとも少しのスペースがあります。したがって、長方形を少し広げて、その最大性に矛盾する可能性があります。
注#2:少なくとも2つ最大面積の長方形の頂点は、常にポリゴンの境界上にあります。証明は次のようになります(これも矛盾です):境界に頂点が1つしかない「最大」長方形があるとします(注#1で保証)。その頂点に隣接していない2つのエッジを考慮してください。それらのエンドポイントは境界上にないため、それぞれの周りに小さなスペースがあります。そのため、これらのエッジのいずれかを少し「押し出す」ことで、ポリゴンの領域を拡大し、その最大性に矛盾する可能性があります。
注#3:多角形の境界上にある最大面積の長方形の対角線上に 2つの頂点があります。(注#2から、少なくとも2つあることはわかっていますが、必ずしも互いに向かい合っているわけではありません。)しかし、矛盾によって、2つの境界頂点のみが隣接している場合、反対側のエッジ(どちらの頂点も境界上にある)を少し押し出して、長方形の面積を増やし、その最大性に矛盾する可能性があります。
注#4:(編集済み)最大面積の長方形が正方形でない場合、3つの頂点がポリゴンの境界上にあります。
証明するために、そうではない、つまり最大面積の長方形が正方形ではなく、その頂点のうち2つだけがポリゴンの境界上にあると仮定します。最大値と矛盾する、より大きな長方形を作成する方法を示します。
長方形の頂点を呼び出しA
、B
、C
、とD
。一般性を失うことなく、B
とD
がポリゴンの境界上にあると仮定します。以来A
とC
ポリゴンの内側にある、(周りの円で表され、それらの周りのいくつかの余地がありますA
し、C
下の画像では)。今長方形の周りに円を描き、スライドポイントA
とC
(作るために同じ量だけ少し円の周りA'
とC'
その新しい四角形ことを、下図)A'BC'D
元の長方形よりも正方形です。このプロセスは、元のポリゴン内にあり、より大きな面積を持つ新しい長方形を作成します。これは矛盾であるため、証明が行われます。
その証明を信じるには、円に内接する長方形の面積が「正方形」になるにつれて増加する(つまり、エッジの長さの差が小さくなる)ことを確信する必要があります。また、多角形を凸状にして、新しい線がすべてその中にくるようにする必要があります。そしておそらく他の小さな詳細が敷物の下に流されていますが、私はそれらがすべてうまくいくと確信しています。