タグ付けされた質問 「algorithm」

一連のステップで問題を解決するために使用される数学的手順。アルゴリズムは通常、一連のコンピューターコマンドとしてエンコードされます。

13
凹包の定義、アルゴリズム、実用的なソリューションとは何ですか?[閉まっている]
凸包 形状の凸包は次のように定義されます: 数学では、実ベクトル空間Vの点Xの集合の凸包または凸包絡線は、Xを含む最小の凸集合です(ウィキペディア) ウィキペディアは、ラバーバンドの類推を使用してそれをうまく視覚化し、それを計算するためのいくつかの優れたアルゴリズムがあります。 凹船体 凹包は下の画像の赤い線を使用して視覚化されます(青い線は凸包を視覚化します)。直観的には、すべてのポイントを包含するポリゴンですが、凸包に比べて面積が小さい(最小?)その結果、ポリゴンの境界の長さが長くなります。 凹型の船体は、いくつかの現実世界の問題の解決策になる場合があります(たとえば、都市の合理的な境界を見つける)。 凹包の概念に対する適切な定義、アルゴリズム、実用的な解決策を見つけることができませんでした。草ウィキは、いくつかの説明とイメージを持っている、との商業ソリューションがありconcavehull.comが。 アイデア、アルゴリズム、リンクはありますか?

5
緯度/経度をある程度の量だけオフセットするアルゴリズム
緯度と経度のペアとデカルト座標(x、y)のメートル単位のベクトル変換を指定すると、新しい座標が得られるアルゴリズムを探しています。逆ハーバーシンのようなもの。距離とヘディング変換を使用して作業することもできますが、これはおそらくより遅くなり、それほど正確ではありません。理想的には、組み込みシステムで作業しているので、アルゴリズムは高速でなければなりません。精度は重要ではありませんが、10メートル以内であれば良いでしょう。

7
与えられたポイントの最小面積の長方形を見つける?
図にあるように、問題は次のとおりです。 与えられた点に適合する最小面積長方形(MAR)を見つける方法は? サポートする質問は次のとおりです。 問題の分析ソリューションはありますか? (質問の開発は、ボックス(3D)を3D点群の点のクラスターに適合させることです。) 最初の段階として、問題を改善するポイントの凸包を見つけることを提案します(これらのポイントを削除することにより、ソリューションに関与しません) 。 必要なメソッドは、X(長方形の中心)、D(2次元)、およびA(角度)を提供します。 私の解決策の提案: 多角形の重心を見つけます(オブジェクトのジオメトリの中心を見つけるを参照してください?) [S]単純な近似長方形、つまり軸XとYに平行に近似します minmax指定されたポイントのXおよびYに関数を使用できます(たとえば、ポリゴンの頂点) フィットした長方形の面積を保存する 重心を中心にポリゴンをたとえば1度回転させます 完全な回転が完了するまで[S]から繰り返します 結果として最小面積の角度を報告する 有望に思えますが、次の問題が存在します。 角度の変化に適した解像度を選択するのは難しいかもしれませんが、 計算コストが高い ソリューションは分析的ではなく実験的です。

2
PostgisでのArcGISのような速度の取得
私は1年の3/4でPostgis 2.0を使用していますが、実際に使用している間は、クエリ処理に時間がかかりすぎて、ユースケースでは基本的に使用できなくなりました。 私は、多くの場合、数十万のマルチポリゴンを持つ地方自治体のデータセットで大量のジオプロセシングを行う傾向があります。これらのマルチポリゴンの形状は非常に不規則な場合があり、マルチポリゴンごとに4ポイントから78,000ポイントまで変化する可能性があります。 たとえば、525個のマルチポリゴンを含む管轄データセットで329,152個のマルチポリゴンとパーセルデータセットを交差させると、合計消費時間について次の統計が得られます。 ArcGIS 10.0 (on same host with windows 7 OS): 3 minutes Postgis:56 minutes (not including geometry pre-processing queries) 言い換えると、ArcGISよりもPostgisでこの共通部分を実行するのに1500%長い時間が必要です。これは、私の最も単純なクエリの1つです。 ArcGISが高速に実行されると思われる理由の1つは、インデックスの改善によるものです。最近、一部のプログラマはこれらのインデックスがどのように機能するかを理解しました。Postgisでこれらのインデックスを作成する方法(またはインデックスを模倣するテーブルを作成する方法)を知っている人がいるかどうか疑問に思います。おそらくこれはPostgisの速度の問題のほとんどを解決するでしょう。特にArcGISは4 GBのRAMしか使用できませんが、postgisサーバーの最大4倍のRAMを使用できるため、何らかの方法が必要だと思います。 もちろん、postgisの動作が遅くなる理由はたくさんありますので、システム仕様の詳細バージョンを提供します。 Machine: Dell XPS 8300 Processor: i7-2600 CPU @ 3.40 GHz 3.40 GHz Memory: Total Memory 16.0 GB (10.0 GB on virtual machine) Platform: Ubuntu ...

3
GISデータベースに新しいルーティングアルゴリズム(ダイクストラ、A *より)はありますか?
Microsoftの研究者からのReach for A *や、カールスルーエUniからのSandersとSchtolz(名前を正しく綴った場合)によるHighway Hierarchiesなどの作品があります。どちらも計算順序を大幅に削減し、大きなグラフで千倍高速化します(リンクされたドキュメントの結果を参照)。後者の作業はオープンソースルーティングマシンにつながりましたが、残念ながら十分に普及しておらず、適応もしていません(一生懸命試しましたがコンパイルできませんでした)。 同時に、私が試したdbs、SpatialiteとPgRoutingは、彼らのドキュメントによると、DijkstraとA *アルゴリズムだけを提供しています。言及した双方向検索さえ見たことがなく、私の経験では計算時間を2回節約します。 データベースや他のアプリケーションのためのより良いアルゴリズムはありますか?

7
ポイントから緯度/経度Xマイルを計算しますか?
方位、距離、開始緯度と経度を指定して、緯度と経度のポイントを見つけたいです。 これは、この質問の反対のようです(緯度/経度ポイント間の距離)。 私はすでにHaversineの式を調べましたが、世界の近似値はおそらく十分近いと思います。 未知の緯度/経度のHaversine式を解く必要があると仮定していますが、これは正しいですか?この種のことについて語る良いウェブサイトはありますか?それは一般的なことのように思えますが、私のグーグルは上記のような質問を見つけました。 私が本当に探しているのは、このための公式です。開始時の緯度/経度、方位、距離(マイルまたはキロメートル)を指定したいと思います。そのルート。

2
Simplifyの許容パラメータの意味
Douglas-Peuckerの簡易アルゴリズムの標準パラメーターは、ジオメトリと許容値です(PostGISのST_Simplifyなど)。許容パラメータの意味は何ですか?値が大きいほど、ジオメトリが粗くなることがわかります。しかし、その数には単位がありますか、それとも任意なのでしょうか?

13
マップマッチングリンクとアイデア?[閉まっている]
OpenStreetMapとそのベクター道路ネットワークを使用しています。マップマッチャーアルゴリズムを実装したいと思います。 現在、私は、各GPS位置について、最も近い道路セグメントを取得し、この画像のようにその位置へのこの位置の投影を計算することができます(赤いピンは純粋なGPS位置で、青い部分はマッピングされた部分、緑はマッピングされた位置): ただし、GPSの精度が不足しているため、マップされた位置がセグメント間でジャンプし、マップの位置に矛盾が生じることがあります。 私の現在のアルゴリズムは非常に基本的です。純粋なGPS位置から、最も近いセグメントを取得し、マッピングされた一致した位置がこの位置にあると判断します。これは本当に改善できることを知っています。 車両の方向を考慮するとマップマッチングが改善されると想像できますが、マップマッチャーを改善できる他のアプローチを知っていますか? リンクやオープンソースソフトウェアを探していますか?

3
2つの緯度経度ポイント間の距離を計算するときに、余弦よりも余弦の法則の方が望ましいのはなぜですか?
実際、SinnottがHaversine式を公開したとき、計算精度は制限されていました。現在、JavaScript(および最新のコンピューターと言語のほとんど)はIEEE 754 64ビット浮動小数点数を使用しており、15桁の精度を実現しています。この精度により、余弦公式の単純な 球面法則(cos c = cos a cos b + sin a sin b cos C)により、約1メートルの距離まで良好な条件の結果が得られます。 これを考慮すると、ほとんどの場合、単純なコサインの法則、またはHaversineよりもより正確な楕円形のVincenty式を使用する価値があります。(球体モデルの精度の制限に関する以下の注意事項に留意してください)。 ソース:http : //www.movable-type.co.uk/scripts/latlong.html 余弦の法則がより望ましい理由は何ですか? 注:引用されたテキストは、によって更新されたその作者に述べたように下回ります。

1
オブジェクトのジオメトリの中心を見つけますか?
2Dまたは3Dポイントのセットが与えられた場合: オブジェクトのジオメトリの中心を見つける方法は? 次の図によると、幾何学の中心は、最も単純な形式、つまり均質な質量密度で計算される場合、質量の中心とは異なります。実際、問題はそれらの計算に現れます。一般的に、1つのアプローチは、X座標とY座標を個別に平均することです。つまり、指定されたポイント(ここでは2D)の平均位置を見つけます。これは、オブジェクトを表す一連のポイントの重心として使用できます。示されているように、下端に沿って余分な頂点があるため、単純な長方形の場合、結果の重心は(0.5,0.4)であり、正解は(0.5,0.5 )です。 指定された例は単純すぎることに注意してください。ただし、2Dの複雑な形状と、頂点の座標のみが使用可能な3Dのオブジェクトの場合に問題になります。 ところで、効率的な計算方法が興味深いです。 WikipediaのようないくつかのWebリンクをチェックしましたが、私の現在の問題は、それらの代表としてポイントを見つけたい2Dおよび3Dポイントのグループがあることです。したがって、重心が関心を集めました。ポイントはトポロジ情報なしで与えられます。それらを点群と見なすことができます。ここでのデモンストレーションは、座標の一般的に知られている平均化(たとえば、このStack Overflow Q&Aを参照)が例に示すように間違っている可能性があることを明確にするために提供されました。 比較のための実装を次に示します。 aa =以下の受け入れられた回答 chull =点の凸包、つまり黄金の多角形 cent =ウィキペディアで提案された重心で、ポリゴン重心としてaaで議論されています centl = aaで説明されているポリラインの重心 視覚centl的には、に比べて与えられたジオメトリをよりよく表しcentます。他の2人はここで有望に見えますが、通常、ポイントの分散が不均一である場合、通常は偏りすぎます。 また、凸包は問題を合理的に単純化しますが、空間内の対称位置付けなしでは長すぎるエッジと短すぎるエッジを生成する可能性があることを考慮してください。 :ポイント全体(緑)または凸包ポリゴン頂点(青)。 1つのアプリケーションは、特定のポイントの最小面積長方形を見つけることで見つけることができますか?。

6
3つの緯度/経度ポイントと3つの距離を使用した三辺測量?
不明なターゲット位置(緯度と経度の座標)を見つけたい。3つの既知のポイント(緯度と経度の座標のペア)があり、各ポイントについて、ターゲットの場所までの距離(キロメートル)があります。ターゲット位置の座標を計算するにはどうすればよいですか? たとえば、次のデータポイントがあるとします 37.418436,-121.963477 0.265710701754km 37.417243,-121.961889 0.234592423446km 37.418692,-121.960194 0.0548954278262km 私が欲しいのは、それを入力として受け取り、37.417959、-121.961954を出力として返す関数の数学です。 私はから、2点間の距離を計算する方法を理解http://www.movable-type.co.uk/scripts/latlong.html私はこれらのような3つの円であなたは重複の正確に一つのポイントを得ることを一般的な原理を理解しています。私がhaんでいるのは、この入力でそのポイントを計算するために必要な数学です。

2
UTMゾーン外の面歪みを計算しますか?
私の同僚の1人は、2つのUTMゾーンにまたがるデータを扱っています。データの大部分は1つのゾーンにあり、いくつかの外れ値は別のゾーンにあります。彼は、それらの外れ値がメインUTMゾーンにある場合に、それらの外れ値の面積の歪みがどうなるかを知りたいと考えています。 フィーチャが他のUTMゾーンまでどれだけ遠くにあるかを知っている面歪みを計算する公式はありますか?

3
ArcGIS Desktopを使用してポリゴンを特定のサイズに分割しますか?
シェープファイルに不規則な形状のポリゴンが数千あります。各ポリゴンを3つの領域に分割し、それらの領域のサイズを指定できるようにします(合計すると前の領域になります)。これは視覚化のためであるため、サブポリゴンの形状が何であるかは関係ありません。 どうすればこれを行うことができますか?使用できる標準のアルゴリズムはありますか? 私が検討したアプローチの1つは、ポリゴンを構成するすべてのポイントを取得することでした。次に、直線を使用して2つをランダムに結合し、ポリゴンを分割して、領域が十分な許容範囲内にあるかどうかを確認します。小さすぎる場合は、一方向にポイントを変更します。大きすぎる場合は、反対方向のポイントに変更します。

2
円と円の始まりと終わりを検出するアルゴリズムを探していますか?
グライダーパイロットからは、一定の間隔でGPSを修正するという形で多くのフライトデータを取得しています。飛行経路を分析し、グライダーのパイロットがサーマルを見つけたときに行う「旋回」の開始と終了を検出したいと思います。 理想的には、アルゴリズムは線上の開始点と終了点を与え、1つの「円」を定義します。これらのポイントは、GPS修正の1つと等しくなる可能性があり、補間する必要はありません。 飛行経路に沿って歩き、回転数を確認し、グライダーが旋回しているかどうかを判断するための基準を設定することができました。 PostGIS拡張機能を備えたPostgreSQLを使用しているため、この問題に対するより良いアプローチがあるかどうか興味がありました。私はすでに2つの線分の角度を計算する手順を持っています: CREATE OR REPLACE FUNCTION angle_between( _p1 GEOMETRY(PointZ,4326), _p2 GEOMETRY(PointZ,4326), _p3 GEOMETRY(PointZ,4326) ) RETURNS DECIMAL AS $$ DECLARE az1 FLOAT; az3 FLOAT; BEGIN az1 = st_azimuth(_p2,_p1); az3 = st_azimuth(_p2,_p3); IF az3 > az1 THEN RETURN ( degrees(az3 - az1)::decimal - 180 ); ELSE RETURN ( degrees(az3 - ...

1
ランダム2Dライン間のスペース充填
ランダムに線で満たされた領域(2D)を考えます(図の後)。ある方法で4つの境界エッジを含む行間の空スペースを埋めることに興味があります。 0-区画のサイズを最大化します。 1-充填区画の形状は、水平または垂直に配置された正方形です。 2-充填パーセルの形状は正方形、つまり緩和された配置です。 3- 充填区画の形状は任意の四角形です。 私たちの元の質問 したがって、現時点では3つの異なるシナリオがあります。線は実数の点集合の形式であることに 注意してください。[x1,y1,x2,y2] [* * *] 可能な解決策/アルゴリズム/コードスニペットなどのアイデアは大歓迎です。 更新1:私たちは、最初のケースのためのソリューションを管理することができ: 手順は: 1-線 2-ビットマップにラインをラスタライズは 3-最大にするために、目的関数を用いて所望の色(すなわち、同じ色)の各セルのために近くのセルを検索します面積、つまりセルの数。 それはうまく機能しますが、最初のシナリオのみをカバーし、遅いです。 更新2: 読者は空間充填タイルの概念に精通していると想定しました。インスピレーションを得るためにリンクをたどることができます。ただし、問題は異なることに注意してください。空のスペースをランダムに埋めたり、サイズをランダムに選択したりしないためです。ソリューションは反復的でなければなりません。すべてのケースで、取り付けられる小包の数に制限はありません。実際、たとえば区画の最小領域を選択することにより、反復回数を制限するのはユーザー次第です。これは、指定されたサイズのピクセルに行を離散化した上記の例で明らかです。つまり、基準は、たとえば区画の最大面積など、空の領域全体が満たされるまで実行する必要があります。 更新3: 要約: 1つのアプリケーションは、ひどく破損した「鉱山」で抽出可能な無傷の「岩」ブロックの分布を調べることです。これは、などの掘削の設計、財務評価を含む多くの側面のために非常に役立つことができ 説明: 装飾岩(石)価格は長方形の立方体としてカットし、完全な岩のブロックされている製品の鉱山のための大きさに密接に依存していますブロック。残りの部品の量が可能な限り少ない場合、適切な領域からのブロックの抽出、つまり大きな骨折のないことが望まれます。通常、小さな岩片は比較的経済的価値がなく、廃棄物と見なされます。 この投稿の質問は、この種の問題の解決策を調査しています。 問題の数学的な見方は次のように言えます 。2D:特定の2D領域から抽出できるすべての長方形を見つけ、いくつかの線をできるだけ大きな長方形サイズに最適化します。 3D:可能な限り大きなブロックサイズに最適化されたいくつかのサブプレーン(より良い:ポリゴン)を使用して、特定の3D領域から抽出できるすべての長方形キューブを見つけます。 これは進行中の研究の一部であるため、以下のコメントで尋ねられる質問の一部には、提供できる特定の回答がありません。ここで提供された情報は、問題の全体像を把握するのに十分であると考えています。それでも、コミュニティの利益のためにできる限り詳細を提供します。 最終的な質問の解決策にいくつかの制限を加えることができますが、後でさらに追加することは常に可能であると考えています。たとえば、次のとおりです。{2Dケース} 上記の条件下で抽出されるブロックの最適なサイズ(経済的に最適な長方形)は、この例の領域に対して1x1 m指定さ10x10 mれます。これは、経済的価値に基づいて定義される1つの制約です。切断などの最小実行可能サイズは、0.15x0.15 m; したがって、これは2番目のサイズ制限です。 上の図は、ブロックサイズに応じた経済価値関数を示しています。そのため、この特定のケースでは、すべての岩片0.15x0.15 mは単なる無駄です。1.7x1.7 m操作の制限により、ブロックサイズは大きくなりません。

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