グラフ理論について、三次元空間における位置関係の情報をinvariantに保持する表現を計算したい
グラフ理論に関する質問です。
頂点(ノード)間の位置関係をinvariantに保持する方法・表現を考えたいです。
具体的な例として、ある化合物の分子を考えます。
ここで、その分子内の原子(グラフにおける頂点)たちと、
各原子の三次元座標(3次元ベクトル)が与えられています。
この三次元座標を用いて、頂点間の距離(グラフにおける辺の長さ)などが計算できます。
ここで、化合物内のある原子(i番目の原子とします)a_iから見た時に、
他の原子たちa_j, a_k, a_m...の三次元空間における位置関係を
回転などの操作に対してinvariantに保つ方法・表現を考えたいです。
例えば、与えられた三次元座標を使って原子間の距離を計算すれば、
a_iから見た他の原子たちの距離関係は表現できますが、
それでは三次元空間における位置関係の情報は失われてしまいます。
私は、a_iと他の任意の2つの原子a_jとa_kを用いて作られるすべての三角形から成る集合が、
a_iから見た時の他の原子たちの三次元空間における位置関係を、invariantに保つと考えました。
つまり、2つの原子間の距離d_ijではなく、
3つの原子間の距離(d_ij, d_ik, d_jk)=三角形ならば、
三次元空間における位置関係を保てるのではないかということです。
(もちろんここでは、三角形の頂点である原子の種類も考慮して三角形を区別・定義します)
そしてこの三角形を、すべての原子 a_i について計算します。
しかし、これが合っているかどうかわかりません。
特に、プログラムで実装する際には、
鏡像異性体を区別する必要がある(回転に対してinvariantな必要がある)ので、
ちょっと自信がありません。
どなたがご教授お願いします。
追記
このようなことをしたい目的として、何かしらの性質を保存するようなデータ構造で原子たちの位置関係を表したあと、機械学習を用いて化合物の毒性などを予測したいと考えています。機械学習は結局のところ関数近似なので、本質的に同じ意味を持つデータには同じ入力を与える必要があります。ただし、座標をそのまま入力すると、本質的に同じ意味(原子の位置関係)を持つデータが異なったデータとして入力されてしまうので、そこに問題意識があります。