私はn点の2Dグラフを取り、r点を減らす必要があります(rはnより小さい特定の数です)。たとえば、1021と1001のように、合計ポイントの数が少し異なる2つのデータセットがあり、両方のデータセットに1000ポイントを強制したいとします。私は、Lang SimplificationとDouglas-Peuckerの2つの単純化アルゴリズムを知っています。私はLangを以前のプロジェクトで少しずつ異なる要件で使用しました。グラフの簡略化アルゴリズムのアドバイス
私が探していたアルゴリズムの具体的な特性は次のとおりです。
1))
2線の形状を保持しなければならない、私はポイント
の特定の数にデータセットを削減できるようにする必要があります3)は比較的高速です
この記事はさまざまなアルゴリズムのメリットについての議論です。私は、JavaまたはGroovyの実装に関するアドバイスのための2番目のメッセージを投稿します(なぜホイールを再構築するか)。
私は上記要件2を懸念しています。私は、出力ポイントの正確な数を指定できるかどうかを知るために、これらのアルゴリズムで十分な専門家ではありません。私が使ったLangの実装では、LookAhead、許容値、点の配列を入力としたので、出力のポイント数を指定する方法はわかりません。これは私の現在のニーズの重要な要件です。おそらくこれは私たちが使っていたLangの具体的な実装によるものですが、Web上のLangに関する多くの情報は見ていません。あるいは、Douglas-Peuckerを使用することもできますが、出力のポイント数を指定できるかどうかはわかりません。
私はこれらのタイプのアルゴリズムやあらゆる種類の数学の専門家ではないので、私は単純な死人型のアドバイスを探しています:上記の要件1と2をどのように満たしていますか?私は適切なソリューションのためにパフォーマンスを犠牲にします。
2次元グラフの場合、 'x [i]
6502