私は最近、グラフとアルゴリズムを発見し、ユーザーとエンティティという2つの異なるタイプの頂点に関連する特定の問題を解決しようとしています。詳細は以下のとおりです。
- グラフは
- AからBまでのすべてのパスを見つけようとしています
- Aは常にユーザーです
- Bはユーザーまたはエンティティにすることができます
- Bがユーザーの場合、検索の最大深度は3エッジです。
- Bがエンティティの場合、最大深度は2エッジです
- ユーザーがAでない限り、ユーザーからアウトバウンドのエッジをトラバースすることはできません。
グラフには2種類の頂点がありますが、2部グラフではありません。
これまでのところ、隣接リストの頂点インデックス付き配列を保持するグラフオブジェクトを作成することができました。隣接リストはリンクリストに基づいています。
All Pathsアルゴリズムに何らかのバリエーションが必要だと思いますが、よくわかりません。さらに、DFSとBFSのどちらを見るべきかわからない。
ほとんどの例はJavaであるため、私はPHPで作業していますが、これは問題を複雑にします。私が本当に欲しいのは擬似コードです。
何か案は?ありがとう!