データの 2D 配列を検索し、同じ種類のデータの周囲に境界線を作成するための優れたアルゴリズムは何でしょうか? データはランダムであるため、数値が含まれていること以外に、利用可能なデータに関する事前の知識はありません。
そうでなければ、このテーマに関する良い記事/本はありますか?
編集
これが私が達成しようとしているものの例です:
そして二人も同じ
データの 2D 配列を検索し、同じ種類のデータの周囲に境界線を作成するための優れたアルゴリズムは何でしょうか? データはランダムであるため、数値が含まれていること以外に、利用可能なデータに関する事前の知識はありません。
そうでなければ、このテーマに関する良い記事/本はありますか?
編集
これが私が達成しようとしているものの例です:
そして二人も同じ
ここで幅優先探索が役に立ちます。まず、次のようにグラフGを作成します。
グラフGのエッジ(u,v)は、u 番目のセルの値 = v 番目のセルの値の場合にのみ存在します。
次に、BFS を実行すると、セルの値を使用して訪問したことを簡単にマークできるグラフの素敵な部分が得られます。
これは複雑な問題で、点集合の凹包を見つけるのと同じだと思います。
「同じ並べ替え」のデータ ポイントのセットを決定できるように、最初にデータ ポイントの等値演算を定義する必要があります。
このようにして一連の点を識別したら、その一連の点の凹包を見つける必要があります。
(凸包ではなく凹包が必要だと思います)。
凹包を見つけることは、重要な作業です。
詳細については、こちらをご覧ください: https://gis.stackexchange.com/questions/1200/concave-hull-definition-algorithms-and-practical-solutions
それが実際に必要な凸包である場合は、C# での実装についてはこちらを参照してください。
素朴な解決策 (小さなデータ セットでは問題なく動作します) は、2 つの引数を取り、それらが等しい場合は true を返し、そうでない場合は false を返す比較演算子を定義し、隣接する値のすべてのペア (水平方向と垂直方向の両方) を単純に比較して描画することです。比較が false を返す場合は境界線。