MATLAB ヘルプ センター
2 つのグラフが準同型であるかどうかを判別
tf = isisomorphic(G1,G2)
tf = isisomorphic(G1,G2,Name,Value)
tf = isisomorphic(G1,G2) はグラフ G1 と G2 の間にグラフ同型が存在する場合、logical 1 (true) を返します。それ以外の場合、logical 0 (false) を返します。
G1,G2
G1
G2
1
true
0
false
例
tf = isisomorphic(G1,G2,Name,Value) は、1 つ以上の名前と値のペアの引数を使用して追加オプションを指定します。たとえば、'NodeVariables' およびノード変数のリストを指定して同型が有効であるにはこれらの変数を保持しなくてはならないと指定できます。
Name,Value
'NodeVariables'
すべて折りたたむ
2 つの有向グラフを作成してプロットし、それらが同型であるかどうかを判別します。
G1 = digraph([1 1 1 2 3 4],[2 3 4 4 4 1]); G2 = digraph([3 3 3 2 1 4],[1 4 2 3 2 2]); subplot(1,2,1) plot(G1) subplot(1,2,2) plot(G2)
isisomorphic(G1,G2)
ans = logical 1
2 つのグラフ G1 と G2 を作成してプロットします。
G1 = graph([1 1 1 2 2 3 3 4 5 5 7 7],[2 4 5 3 6 4 7 8 6 8 6 8]); plot(G1,'XData',[1 4 4 1 2 3 3 2],'YData',[4 4 1 1 3 3 2 2])
G2 = graph({'a' 'a' 'a' 'b' 'b' 'b' 'c' 'c' 'c' 'd' 'd' 'd'}, ... {'g' 'h' 'i' 'g' 'h' 'j' 'g' 'i' 'j' 'h' 'i' 'j'}); plot(G2,'XData',[1 2 2 2 1 2 1 1],'YData',[4 4 3 2 3 1 2 1])
G1 と G2 に同型が存在するかどうかを判別します。結果から、グラフはラベルとレイアウトが異なっていても、構造的には同じであることがわかります。
tf = logical 1
2 つの異なる比較を使用して 2 つのグラフ間に同型関係があるかどうかを判別します。比較の一方ではノード プロパティが保持され、もう一方では無視されます。
2 つの類似したグラフを作成します。ノード プロパティ Color を各グラフに追加します。
Color
G1 = graph({'d' 'e' 'f'},{'e' 'f' 'd'}); G1.Nodes.Color = {'red' 'red' 'blue'}'; G2 = graph({'a' 'b' 'c'},{'b' 'c' 'a'}); G2.Nodes.Color = {'blue' 'blue' 'red'}';
グラフを同じ Figure に並べてプロットします。Color = 'red' のノードを赤に着色します。
Color = 'red'
subplot(1,2,1) p1 = plot(G1); highlight(p1,{'d' 'e'},'NodeColor','r') subplot(1,2,2) p2 = plot(G2); highlight(p2,'c','NodeColor','r')
Color プロパティを無視してグラフが同型であるかどうかを判別します。
グラフが同型で Color プロパティの値が比較で保持されているかどうかを判別します。この例では、各グラフの Color プロパティに異なる数の 'red' 値および 'blue' 値が含まれているため、同型は存在しません。
'red'
'blue'
tf = isisomorphic(G1,G2,'NodeVariables','Color')
tf = logical 0
graph
digraph
入力グラフ。graph オブジェクトまたは digraph オブジェクトの個別の引数として指定します。無向グラフの作成には graph を、有向グラフの作成には digraph を使用します。
G1 および G2 は両方が graph オブジェクトまたは digraph オブジェクトでなければなりません。
例: G1 = graph(1,2)
G1 = graph(1,2)
例: G1 = digraph([1 2],[2 3])
G1 = digraph([1 2],[2 3])
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
Name1=Value1,...,NameN=ValueN
Name
Value
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。
例: tf = isisomorphic(G1,G2,'NodeVariables',{'Var1' 'Var2'})
tf = isisomorphic(G1,G2,'NodeVariables',{'Var1' 'Var2'})
EdgeVariables
保持するエッジ変数。'EdgeVariables' と、文字ベクトル、string スカラー、文字ベクトルの cell 配列、または string 配列で構成されるコンマ区切りのペアとして指定します。このオプションを使用して、G1.Edges と G2.Edges の両方にある 1 つ以上のエッジ変数を指定します。同型比較が有効であるためには、指定されたエッジ変数を保持しなければなりません。同じ 2 つのノード間に複数のエッジをもつ多重グラフでは、同じノード ペアのエッジ変数の順序は無関係になります。
'EdgeVariables'
G1.Edges
G2.Edges
データ型: char | string | cell
char
string
cell
NodeVariables
保持するノード変数。'NodeVariables' と、文字ベクトル、string スカラー、文字ベクトルの cell 配列、または string 配列で構成されるコンマ区切りのペアとして指定します。このオプションを使用して、G1.Nodes と G2.Nodes の両方にある 1 つ以上のノード変数を指定します。同型比較が有効であるためには、指定されたノード変数を保持しなければなりません。
G1.Nodes
G2.Nodes
2 つのグラフ G1 および G2 は、ノード P の順列が存在する場合は同型であり、reordernodes(G2,P) は G1 と同じ構造です。
P
reordernodes(G2,P)
同型である 2 つのグラフは構造が類似しています。たとえば、あるグラフに 1 つの閉路が含まれている場合、そのグラフと同型のすべてのグラフにも 1 つの閉路が含まれています。
すべて展開する
backgroundPool
ThreadPool
R2016b で導入
graph | digraph | isomorphism | reordernodes
isomorphism
reordernodes
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ
アジア太平洋地域
最寄りの営業オフィスへのお問い合わせ