2012-10-10 11 views
2

저는 Z 표기법의 초보자입니다. 저는 Z에서 그래프 타입을 표현할 필요가 있습니다. 제가 가지고있는 생각은 노드와 에지 사이를 자유롭게 통과 할 수 있도록 incidence 매트릭스를 사용하는 것입니다.Z 표기법 : 2D 배열 표현

유일한 문제는 Z에서 발생률 행렬을 지정하는 방법을 모르겠다. 나는 2D 배열이 필요하다고 생각하지만, Z 표기법에 사용할 수있는 참조 자료를 조사하면 배열은 일반적으로 seq. 다차원 배열을 지정하는 또 다른 방법이 있습니까?

미리 감사드립니다.

답변

1

노드 사이의 관계가 발생률 매트릭스에 대한 더 나은 표현이라고 생각합니다.

[node] 

다음 그래프는 노드 사이의 관계로 모델링 할 수있다 : 우리는 유형 노드가 있다고 가정하자 것은 가장자리 N1-이있을 수 있기 때문에

graph : node \rel node 

이는 방향 그래프가 될 것입니다> 그래프에서는 n2이지만 n2-> n1은 아닙니다. 는 무향 그래프 필요한 경우 추가의 제한에 추가 할 수

graph\inv = graph 

(그래프의 역, 즉, 그래프와 동일하다을 경우 N1-> N2 그래프 다음 N2-> N1 그래프에 있어야 너무)

당신이 정말로 다차원 배열로 입사 매트릭스를 모델링하려면, 당신은 정수로 배열의 위치에서 매핑하는 기능, 예를 들어 정의 할 수 있습니다.

matrix: (node \cross node) \fun {0,1} 

사이의 관계를 두 표현은 다음과 같이 표현 될 수있다 :

\forall n1,n2:node @ (n1,n2)\in graph \iff graph((n1,n2)) = 1