タグ付けされた質問 「computational-geometry」

幾何学的問題のアルゴリズム解、または幾何学を利用する他のアルゴリズムに関する質問。

6
要素の繰り返しなしでペアのセットから組み合わせを生成する
ペアのセットがあります。各ペアの形式は(x、y)で、x、yは範囲の整数に属します[0,n)。 したがって、nが4の場合、次のペアがあります。 (0,1) (0,2) (0,3) (1,2) (1,3) (2,3) 私はすでにペアを持っています。次に、n/2整数が繰り返されないようにペアを使用して組み合わせを作成する必要があります(つまり、各整数は最終的な組み合わせで少なくとも1回出現します)。理解を深めるための正しい組み合わせと間違った組み合わせの例を次に示します 1. (0,1)(1,2) [Invalid as 3 does not occur anywhere] 2. (0,2)(1,3) [Correct] 3. (1,3)(0,2) [Same as 2] ペアができたら、可能性のあるすべての組み合わせを生成する方法を誰かが提案できますか?

1
多角形を別の多角形の内側にパックする方法は?
エッジを縫い合わせてジャグリングボールを作りたい革シートをいくつか注文しました。ボールの形状にプラトンの立体を使用しています。 革のシートをスキャンして、革のシートの形状に近いポリゴンを生成できます(ご存知のように、動物の皮であり、長方形ではありません)。 それで、ジャグリングボールのサイズを最大化したいと思います。 私の例では、ポリゴンは通常のものですが、単純なポリゴンを使用したソリューションを探しています。 すべてがシート内に収まるようにポリゴンに適用できる最大のスケールファクターは何ですか? できるだけ多くの材料を使用して、無駄を最小限に抑えようとしています。 明らかに、多面体ネットを個々の多角形にカットすると、可能な組み合わせのスペースが増加しますが、最終的なジオメトリの品質も低下します。これは、縫製が多く、エラーが蓄積されるためです。しかし、この質問は、多面体を展開するさまざまな方法を列挙することではありません。それらは独立して考えることができます。したがって、ポリゴンは単純なポリゴンです。 正式に: 入力: PPP:単純なポリゴン(ターゲット) SSS:配置したいポリゴンのセット GGG:単純なポリゴンのグラフ-各ノードは単純なポリゴンを表し、共通のエッジを共有するポリゴンの各ペア間に1つのエッジエッジがあります SnnnSSS α>=0,β>=0α>=0,β>=0\alpha >= 0, \beta >= 0(素材と接続性の使用) 出力: スケール係数fff HHH、部分グラフGGG LocLocLoc:各ポリゴンの位置と角度V(G)V(G)V(G) 解の品質尺度:M = α 。F + β 。| E (H )|mmmm=α.f+β.|E(H)||E(G)|m=α.f+β.|E(H)||E(G)| m = \alpha.f + \beta. {|E(H)|\over|E(G)|} 次の条件に従って最大化します。mmm |V(H)|=|V(G)||V(H)|=|V(G)| | V(H) | = |V(G)| (1) |E(H)|<=|E(G)||E(H)|<=|E(G)| | E(H) …

2
可能な限り多くのスペースをカバーするように画面上の(サイズ変更可能な)ウィンドウを配置するアルゴリズムを考案する方法は?
一連のウィンドウ(幅+高さ)と画面解像度を受け入れ、ウィンドウが最大のスペースを占めるように画面上のそれらのウィンドウの配置を出力する単純なプログラムを作成したいと思います。したがってoutput size >= initial size、アスペクト比を維持しながら、ウィンドウのサイズを変更できます 。したがって、ウィンドウiii場合、アルゴリズムがタプルを返すようにします(x,y,width,height)(x,y,width,height)(x, y, width, height)。 これは2Dナップザックのバリエーションかもしれません。私はウェブ上の結果を調べてみましたが、それらはほとんど私が従うことを困難にした多くのバックグラウンド(そして実装なし)を持っていました。 最速のアルゴリズムにはあまり興味がありませんが、特定のニーズに合った実用的なものに興味があります。

1
4Dラインを単純化するためのO(n log n)アルゴリズムはありますか?
行の単純化のためのRamer-Douglas-Peuckerアルゴリズムには、最悪の場合のランタイムがあります。適切に分散されたランダム入力の場合、ランタイムの複雑さが予想されます。2Dには、実行時の最悪のケースを持つ他のアルゴリズムがあり、Ramer-Douglas-Peuckerアルゴリズムとまったく同じ結果を計算します。これらのアルゴリズムは「パス(凸)ハル」データ構造に基づいているため、4Dラインに一般化できるかどうかは明らかではありません。O (n log n )O (n log n )O(n2)O(n2)O(n^2)O (n ログn )O(nlog⁡n)O(n \log n)O (n ログn )O(nlog⁡n)O(n \log n) 4Dラインの場合に(入力に依存しないランタイム(予想)を備えた(ランダム化された)アルゴリズムはありますか?ユークリッド距離とグローバルな絶対許容誤差を仮定できます。O (n ログn )O(nlog⁡n)O(n \log n)

3
CookieボックスにいくつのCookieがありますか?—星を並べる
ホリデーシーズンが近づいてきたので、シナモンスターを作ることにしました。それは楽しかった(そして結果はおいしい)が、星の最初のトレイを箱に入れたときに私の内側のオタクが縮み、それらが1つのレイヤーに収まらなかった: ほとんど!彼らがフィットする方法はありますか?とにかく星をどれだけタイルできますか?これらが通常の6点星であるとすれば、よく知られている六角形のタイルを近似として使用できます。 右上の1つをめちゃくちゃにしました。 しかし、これは最適ですか?ヒントの間には十分なスペースがあります。 この考慮のために、長方形のボックスと6点の規則正しい星に制限してみましょう。つまり、すべてのヒントとその隣の隅との間に30度(または)があります。星は、内側半径と外側半径によって特徴付けられ。π6π6\frac{\pi}{6}r私r私r_iroror_o [ ソース ] 我々は六角形有することに留意されたいとhexagramsため。これらを極端なもの(Cookieの場合)と見なし、その間の範囲、つまり。r私= 3√2⋅ Ror私=32⋅ror_i = \frac{\sqrt{3}}{2} \cdot r_or私= 13√⋅ Ror私=13⋅ror_i = \frac{1}{\sqrt{3}} \cdot r_or私r0∈ [ 13√、 3√2]r私r0∈[13、32]\frac{r_i}{r_0} \in \Bigl[\frac{1}{\sqrt{3}}, \frac{\sqrt{3}}{2}\Bigr] 私のcookieにはと不完全さを無視しています。r私≈ 17 M Mr私≈17mmr_i \approx 17\mathrm{mm}ro≈ 25 メートルメートルro≈25mmr_o \approx 25\mathrm{mm} 上記の特性を持つ星の最適なタイリングとは何ですか?静的な最適なタイリングがない場合、効率的に良いものを見つけるためのアルゴリズムはありますか?

3
線は2セットのポイントを分離します
2セットのポイントを線で区切ることができるかどうかを識別する方法がある場合 我々は2つの点の集合有するおよび分離する線が存在する場合と、その結果、すべての点のみ線の一方の側に、そしてすべての点とのみ他方の側に。B A B A A B BAAABBBAAABBBAAAAAABBBBBB 私が思いついた最も素朴なアルゴリズムは、と凸多角形を構築し、それらの交差をテストすることです。凸多角形の構築に関しては、時間の複雑さは必要があると思われ。実際、時間の複雑さの改善は期待していませんが、改善できるかどうかはわかりません。しかし、少なくとも、そのような線があるかどうかを判断するためのより美しい方法があるはずです。B O (n log h )AAABBBO(nlogh)O(nlog⁡h)O(n\log h)

3
特定の半径の最大包囲円
私は次の問題へのアプローチを見つけようとします: 点と半径のセットが与えられたら、円の中心点を見つけて、円がそのセットの最大数の点を含むようにします。実行時間はなければなりません。SSSrrrO(n2)O(n2)O(n^2) 最初は、最小の包囲円問題に似ているように見えましたが、これはで簡単に解決できます。アイデアは、任意の中心を設定し、すべての点を囲むことでした。次に、段階的に、左/右端の点に触れるように円を置き換え、指定された半径に円を縮小します。明らかに、これは機能しません。O(n2)O(n2)O(n^2)SSS

2
垂直方向の可視性問題のための効率的なアルゴリズム
1つの問題を考えると、次のタスクを解決する効率的なアルゴリズムを作成する必要があることに気付きました。 問題:辺が軸に平行な辺 2次元の正方形の箱が与えられます。頂上から見ることができます。ただし、水平セグメントもあります。各セグメントには整数座標()および()があり、ポイントおよび(下の写真)。m個のY 0 ≤ Y ≤ N X 0 ≤ X 1 &lt; X 2 ≤ N (X 1、Y )、 (X 2、Y )nnnmmmyyy0≤y≤n0≤y≤n0 \le y \le nxxx0≤x1&lt;x2≤n0≤x1&lt;x2≤n0 \le x_1 < x_2 \le n(x1,y)(x1,y)(x_1,y)(x2,y)(x2,y)(x_2,y) ボックスの上部にある各ユニットセグメントについて、このセグメントを覗いた場合にボックス内をどのくらい深く見ることができるかを知りたいと思います。 正式には、場合、。x∈{0,…,n−1}x∈{0,…,n−1}x \in \{0,\dots,n-1\}maxi: [x,x+1]⊆[x1,i,x2,i]yimaxi: [x,x+1]⊆[x1,i,x2,i]yi\max_{i:\ [x,x+1]\subseteq[x_{1,i},x_{2,i}]} y_i 例:次の図のようにn=9n=9n=9およびm=7m=7m=7セグメントがある場合、結果は(5,5,5,3,8,3,7,8,7)(5,5,5,3,8,3,7,8,7)(5, 5, 5, 3, 8, 3, 7, 8, …

1
ギロチンカットと一般的なカット
WWWLLLiiililil_iwiwiw_i 切断問題の一般的な制限の1つは、切断がギロチン切断でなければならないことです。つまり、既存の各長方形は2つの小さな長方形にしか切断できません。L字型などを作成することは不可能です。明らかに、ギロチンカットの最大使用領域は、制限なしの最大使用領域よりも小さい場合があります。 私の質問は次のとおりです。最適なギロチンカットと最適な一般カットの比率に上限と下限はありますか? 6767\frac{6}{7}

1
ブルートフォースドローネ三角形分割アルゴリズムの複雑
Mark de Berg等の著書「Computational Geometry:Algorithms and Applications」には、ドロネー三角形分割を計算するための非常に単純なブルートフォースアルゴリズムがあります。このアルゴリズムは、無効なエッジの概念を使用します。有効なドローネ三角形分割では表示されず、他のエッジに置き換える必要があるエッジです。各ステップで、アルゴリズムはこれらの不正なエッジを検出し、不正なエッジがなくなるまで必要な変位(エッジフリップと呼ばれる)を実行します。 アルゴリズムLegalTriangulation(TTT) 入力。いくつかの三角TTT点セットのPPP。 出力。法的三角形分割PPP。 一方、 違法なエッジが含まれているP I 、P jの DOTTTpipjpipjp_ip_j \quadしてみましょうとP I 、P J P lは隣接する2つの三角形ことのp のi のp J。pipjpkpipjpkp_i p_j p_kpipjplpipjplp_i p_j p_lpipjpipjp_ip_j \quadTから削除し、代わりにp k p lを追加します。Tを返します。pipjpipjp_ip_jTTTpkplpkplp_kp_l TTT このアルゴリズムは最悪の場合O(n2)O(n2)O(n^2)時間で実行されると聞きました。ただし、この記述が正しいかどうかは明確ではありません。はいの場合、この上限をどのように証明できますか?

1
ポリゴンが任意の線に関して単調かどうかをテストするにはどうすればよいですか?
定義:Aポリゴン平面では直線に関して単調と呼ばれるLへのすべての行が直交する場合は、Lと交差P最も二回で。PPPLLLLLLPPP 多角形与えられた場合、多角形PがLに関して単調であるような線Lが存在するかどうかを判断することは可能ですか?はいの場合、どのように?PPPLLLPPPLLL 以前、関連する質問(特定のラインに関してポリゴンが単調かどうかを判断する方法を尋ねました)を尋ねましたが、が事前に指定または指定されていない場合に興味があります。LLL

2
クラスタリング問題の最適な欲張り
一連の2次元ポイントが与えられますおよび整数K。最大の円の半径ができるだけ小さくなるように、すべてのnポイントを囲むk個の円のコレクションを見つける必要があります。換言すれば、我々は、設定された見つけなければならないC = { C 1、C 2、... 、CのK }のk個のそのようなコスト関数その中心点コスト(C )= maxのI 分jは Dを(|P|=n|P|=n|P| = nkkkkkknnnC={c1,c2,…,ck}C={c1,c2,…,ck}C = \{ c_1,c_2,\ldots,c_k\}kkkは最小化されます。ここで、 Dは入力点 p iと中心点 c jの間のユークリッド距離を示します。各ポイントは、頂点を k個の異なるクラスターにグループ化する最も近いクラスター中心に割り当てられます。cost(C)=maximinjD(pi,cj)cost(C)=maximinjD(pi,cj)\text{cost}(C) = \max_i \min_j D(p_i, c_j)DDDpipip_icjcjc_jkkk この問題は(離散)クラスタリング問題として知られ、NPハードです。NP完全な集合集合問題からの縮約により、ρ &lt; 2の問題に対するρ近似アルゴリズムが存在する場合、P = NPであることが示されます。kkkNPNP\text{NP}NPNP\text{NP}ρρ\rhoρ&lt;2ρ&lt;2\rho < 2P=NPP=NP\text{P} = \text{NP} 最適な近似アルゴリズムは非常にシンプルで直感的です。一つの第一のピック点P ∈ P任意セットを入れ、それをCクラスタ中心の。次に、他のすべてのクラスターセンターから可能な限り離れた次のクラスターセンターを選択します。だから| C | &lt; K、我々が繰り返しポイントを見つけるJ ∈ P距離いるD (J 、Cは)最大化に追加されるCを。一度| C | …

2
点のプロットが空間へのパーティションを定義するこのデータ構造/概念とは
実世界の問題を解決するためのアルゴリズムに遭遇し、宿題の問題のために非常によく似たものを作成したクラスを覚えています。 基本的にはポイントのプロットであり、線は2つのポイント間で等距離になるように描画されます。これは、ポイントの周囲の線がそのポイントに最も近いエリアの形状を形成する完全なパーティションを形成します。これは誰かに鐘を鳴らしますか?説明をグーグルで調べて結果を得るのは大変でした。そして、それを他にどのように説明するかわかりません。うまくいけば、画像が役立ちます。

1
四面体が多面体の内側にあるかどうかのテスト
私が持っている、四面体 と多面体。は、すべての頂点を常にと共有するように制約されます。私がいるかどうかを判断したいあるの内側。ttt t p tppptttpppttt ppp 解決に貢献する可能性がある場合に、問題に詳細を1つ追加しますはDelaunay四面体であり、面は三角形であり、頂点に関して強くDelaunayです。四面体は、その頂点の外接球に内部に他の頂点が含まれていない場合、ドロネーです。面上にその面の頂点を含む外接球が存在するが、面上または面内に他の頂点が存在しない場合、面は強くドローネです。tttpppppp 次の図は、空間での同じ問題を示しています。 2D2D2D 元のポリゴンppp: の頂点のドロネー三角形分割ppp: 三角形に対する内側/外側テストの結果ttt(影付きの三角形は内側に あり、残りは外側にあります):ppp 望ましい結果(三角形の外側の剪定): 私の元々の問題は3D空間にあるため、上の図の三角形は四面体に変換され、多角形は任意の多面体変換されます。この問題のいくつかの定式化を見つけました。ptttpppppp 公式1 pの外側になりうるtの 部分は、そのエッジと三角形の面だけですが、一般に、その表面にすべての外側tのエッジを持つpが存在する可能性があるため、この問題は四面体tに対してpの外側にある面が存在するかどうかをテストしますか?tttpppppp tttttt ppp 公式2この問題に対する別の見方がありますが、正式なアイデアはありません。 幾何学的に、が外側の場合、常にpの外側の表面に付着します。私たちは計算することができる場合輪郭(非公式に、外側境界) C V及びC VのPようにV = VのT ∪ VのP及びVのT、Vのpはの頂点の集合であり、T 、P、次にそれぞれ、CをtttpppCVCVC_{V}CVpCVpC_{V_{p}}V=Vt∪VpV=Vt∪VpV=V_{t}\cup V_{p}Vt、VpVt、VpV_t,V_pt 、pt、pt,p tがp内にある場合に限ります。 CV=CVpCV=CVpC_{V}=C_{V_p} tttppp 私が知りたいのですが: 配合1または配合2のどちらを解決できますか? または、これを解決するためのまったく異なるアプローチがありますか? 更新: この問題は、多面体の点の問題に還元できることがわかりました。以来外部面体あります少なくとも外側に位置する一方の面Pを常に存在します(一般的にはその頂点を除いて、)その面上の任意の点に、外Pを。したがって、tの各面について、任意の点を取り、その点がpの外側にあるかどうかをテストする必要があります。tttppp pppttt ppp ポリゴンの記事のポイントから、レイキャスティングアルゴリズムとワインディングナンバーアルゴリズムについて知りました。ポイントがpの表面にある場合、レイキャスティングは数値的に安定しません。しかし、ワインディング数アルゴリズムの数値的堅牢性はそこに対処されていません。 ppp 上記に基づいて、私の中心的な問題は次のようになります(別の質問として尋ねるべきかどうかを提案してください):多角形問題の 数値的に堅牢なアルゴリズムはありますか?

2
スイープラインアルゴリズムを使用した円交差
残念ながら、私はまだスイープラインアルゴリズムを理解することにそれほど強くありません。このトピックに関するすべての論文と教科書はすでに読まれていますが、理解はまだ遠いです。それを明確にするために、できるだけ多くの演習を解決しようとしています。しかし、本当に興味深く、重要な仕事は私にとってまだ挑戦です。 全能者ジェフ・エリクソンによる線分交差の講義ノートで見つけた以下の演習。 演習2.スイープラインアルゴリズムを説明および分析して、平面内の円が与えられた場合、2つが交差するかどうかを時間で決定します。各円は、その中心と半径によって指定されるため、入力は3つの配列、およびます。低レベルのプリミティブを正しく実装するよう注意してください。nnnO (n ログn )O(nログ⁡n)O(n \log n)バツ[ 1 .. n ] 、Y[ 1 .. n ]バツ[1 ..n]、Y[1 ..n]X[1.. n], Y [1.. n]R [ 1 .. n ]R[1 ..n]R[1.. n] 複雑なことをもっと簡単にしよう。円の交差について何を知っていますか?線の交差でどのような類似物が見つかるか。2つの線が隣接している場合に交差する可能性があります。2つの円が交差するためにどのプロパティが必要ですか ましょう、円の中心間の距離である及び円の中心。いくつかのケースを考慮してください。dddr0r0r_{0}r1r1r_{1} ケース1:場合、解は存在せず、円は分離されます。d&gt; r0+ r1d&gt;r0+r1d > r_{0} + r_{1} ケース2:1つの円が他の円に含まれているため、ソリューションはありません。d&lt; | r0− r1|d&lt;|r0−r1|d < |r_{0} - r_{1}| ケース3:および場合、円は一致し、解の数は無限になります。r 0 = …

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