Python | SymPy Permutation.get_precedence_matrix() method

Permutation.get_precedence_matrix() : get_precedence_matrix() is a sympy Python library function that calculates the precedence matrix for the permutation in argument by calculating the precedence distance between the two.
p and q represent n jobs. The precedence metric counts the no. of times a job n is preceded by job m in both p and q. This is a commutative matrix.
Syntax :
sympy.combinatorics.permutations.Permutation.get_precedence_matrix()Return :
calculates the precedence matrix for the permutation
Code #1 : get_precedence_matrix() Example
# Python code explaining # SymPy.Permutation.get_precedence_matrix()   # importing SymPy libraries from sympy.combinatorics.partitions import Partition from sympy.combinatorics.permutations import Permutation   # Using from # sympy.combinatorics.permutations.Permutation.get_precedence_matrix() method   # creating Permutation a = Permutation([2, 0, 3, 1, 5, 4])   b = Permutation([3, 1, 2, 5, 4, 0])   print ("a - get_precedence_matrix : \n", a.get_precedence_matrix()) print ("b - get_precedence_matrix : \n", b.get_precedence_matrix()) |
Output :
a – get_precedence_matrix :
Matrix([[0, 1, 0, 1, 1, 1],
[0, 0, 0, 0, 1, 1],
[1, 1, 0, 1, 1, 1],
[0, 1, 0, 0, 1, 1],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0]])b – get_precedence_matrix :
Matrix([[0, 0, 0, 0, 0, 0],
[1, 0, 1, 0, 1, 1],
[1, 0, 0, 0, 1, 1],
[1, 1, 1, 0, 1, 1],
[1, 0, 0, 0, 0, 0],
[1, 0, 0, 0, 1, 0]])
Code #2 : get_precedence_matrix() Example – 2D Permutation
# Python code explaining # SymPy.Permutation.get_precedence_matrix()   # importing SymPy libraries from sympy.combinatorics.partitions import Partition from sympy.combinatorics.permutations import Permutation   # Using from # sympy.combinatorics.permutations.Permutation.get_precedence_matrix() method   # creating Permutation a = Permutation([[2, 4, 0],                  [7, 1, 3],                  [8, 5, 6]])   b = Permutation([[8, 4, 0],                  [2, 7, 0],                  [1, 6, 7]])       print ("a get_precedence_matrix : \n", a.get_precedence_matrix())   print ("\nb get_precedence_matrix : \n", b.get_precedence_matrix()) |
Output :
a get_precedence_matrix :
Matrix([[0, 1, 0, 0, 0, 1, 1, 0, 1],
[0, 0, 0, 0, 0, 1, 0, 0, 0],
[1, 1, 0, 1, 1, 1, 1, 1, 1],
[1, 1, 0, 0, 1, 1, 1, 1, 1],
[1, 1, 0, 0, 0, 1, 1, 1, 1],
[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 1, 0, 0, 1],
[1, 1, 0, 0, 0, 1, 1, 0, 1],
[0, 1, 0, 0, 0, 1, 0, 0, 0]])b get_precedence_matrix :
Matrix([[0, 0, 0, 0, 1, 0, 0, 0, 0],
[1, 0, 1, 1, 1, 1, 0, 1, 0],
[1, 0, 0, 0, 1, 1, 0, 1, 0],
[1, 0, 1, 0, 1, 1, 0, 1, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0],
[1, 0, 0, 0, 1, 0, 0, 1, 0],
[1, 1, 1, 1, 1, 1, 0, 1, 0],
[1, 0, 0, 0, 1, 0, 0, 0, 0],
[1, 1, 1, 1, 1, 1, 1, 1, 0]])



