用Sage展开大多项式(List coloring,combinatorial Nullstellensatz)

时间:2015-11-16 13:29:43

标签: graph sage

免责声明:我没有使用鼠尾草,编程或任何计算机计算的经验。

我想在Sage中扩展一个多项式。输入是一个因式多项式,我需要一定的系数。但是,由于多项式有30个因子,我的计算机不会这样做。

我应该找一个拥有更好电脑的人还是30多个因素呢?

这是我的圣人代码:

R.<x_1,x_2,x_3,x_4,x_5,x_6,x_7,x_8,x_9,x_10,x_11,x_12> = QQbar[]

f = (x_1-x_2)*(x_1-x_3)*(x_1-x_9)*(x_1-x_10)*(x_2-x_3)*(x_2-x_10)*(x_2-x_11)*(x_2-x_12)*(x_3-x_4)*(x_4-x_11)*(x_4-x_5)*(x_4-x_6)*(x_4-x_11)*(x_5-x_6)*(x_5-x_10)*(x_5-x_11)*(x_5-x_12)*(x_6-x_7)*(x_6-x_12)*(x_7-x_9)*(x_7-x_8)*(x_7-x_12)*(x_8-x_9)*(x_8-x_10)*(x_8-x_11)*(x_8-x_12)*(x_9-x_10)*(x_10-x_11)*(x_10-x_12)*(x_11-x_12);

c = f.coefficient({x_1:2,x_2:2,x_3:2,x_4:2,x_5:2,x_6:2,x_7:2,x_8:2,x_9:2,x_10:5,x_11:5,x_12:5}); c

只是一些背景知识。我试图用组合Nullstellensatz解决列表边缘着色的实例。

https://en.wikipedia.org/wiki/List_edge-coloring

给定图G =(V,E),我们将变量x_i与V中的每个顶点i相关联。图单项eps(G)定义为产品\ prod_ {ij \ in E}(x_i-x_j) 。 (注意,我们修正了边的方向,但这里并不重要。)

假设存在分配给顶点的颜色列表,使得顶点i具有大小为a(i)的列表。然后,通过组合Nullenstellensatz,从这些列表中有一个着色(即每个顶点从其列表中接收颜色,并且两个相邻顶点不接收相同的颜色),如果系数为\ prod_ {i \ in V} x_i ^ { a(i)-1}在eps(G)中非零。

我想将此应用于具有关联矩阵的图G(M)的折线图:

M = Matrix([0,0,0,3,3,0,3],[0,0,0,0,3,3,3],[0,0,0,3,0,3,3],[0,0,0,3,3,0,3],[3,0,3,0,0,0,6],[3,3,0,0,0,0,6],[0,3,3,0,0,0,6],[3,3,3,6,6,6,0])

(这里列表的大小用整数表示。)

1 个答案:

答案 0 :(得分:1)

我认为这需要很长时间,因为你的系数在QQbar中,而QQbar中的算术比QQ慢,例如。有没有充分的理由不使用QQ?

如果我将系数环更改为QQ,Sage会很快告诉我c为0:

sage: R.<x_1,x_2,x_3,x_4,x_5,x_6,x_7,x_8,x_9,x_10,x_11,x_12> = QQ[]  
sage: f = (x_1-x_2)*(x_1-x_3)*(x_1-x_9)*(x_1-x_10)*(x_2-x_3)*(x_2-x_10)*(x_2-x_11)*(x_2-x_12)*(x_3-x_4)*(x_4-x_11)*(x_4-x_5)*(x_4-x_6)*(x_4-x_11)*(x_5-x_6)*(x_5-x_10)*(x_5-x_11)*(x_5-x_12)*(x_6-x_7)*(x_6-x_12)*(x_7-x_9)*(x_7-x_8)*(x_7-x_12)*(x_8-x_9)*(x_8-x_10)*(x_8-x_11)*(x_8-x_12)*(x_9-x_10)*(x_10-x_11)*(x_10-x_12)*(x_11-x_12)
sage: c = f.coefficient({x_1:2,x_2:2,x_3:2,x_4:2,x_5:2,x_6:2,x_7:2,x_8:2,x_9:2,x_10:5,x_11:5,x_12:5})
sage: c
0