たとえば、犬の繁殖情報、植物の遺伝的交雑、複雑な人間関係などを保持するための標準的なデータ構造が必要です。
簡単なツリー構造だと思うかもしれませんが、子孫ごとに2つ(または遺伝子工学の場合はそれ以上)の親、親セットごとに複数の異なる子孫、親の複数の動き(スタッド馬は他の多くの馬と交配する)、養子縁組などにより、これは非常に断片化された構造になります。
私は誰かが以前にこれに取り組んだことを期待しています。調べる必要のあるリソースはありますか?
たとえば、犬の繁殖情報、植物の遺伝的交雑、複雑な人間関係などを保持するための標準的なデータ構造が必要です。
簡単なツリー構造だと思うかもしれませんが、子孫ごとに2つ(または遺伝子工学の場合はそれ以上)の親、親セットごとに複数の異なる子孫、親の複数の動き(スタッド馬は他の多くの馬と交配する)、養子縁組などにより、これは非常に断片化された構造になります。
私は誰かが以前にこれに取り組んだことを期待しています。調べる必要のあるリソースはありますか?
あなたが持っているのは、主な関係が「child_of」、「direct_descendant」などである単純なリレーショナルデータベースだと思います。
もちろん、ここでの特定のデータ構造は非周期的であり、通常は標準のSQLエンジンでサポートされていない推移的なクエリ(...の子孫の子孫)を実行することをお勧めします。
したがって、メモリ内でそれを実行したい場合は、有向非巡回グラフ(DAG)を使用できます。
DAGのようなにおいがします。有向非巡回が制限しすぎる場合は、グラフ理論のデータ構造を確認することをお勧めします。
抽象問題のグラフを使用して、頂点はエンティティを表し、エッジは関係を表します。