python中的多面体和多面体操作

pypoman的Python项目详细描述


这个库对convex polyhedra这样的 作为polytope projectiondouble description(之间的转换 半空间和顶点表示),计算Chebyshev center, 等

有关详细信息,请参见完整的API documentation

示例

顶点计数

我们可以计算半空间中描述的多面体的顶点列表 由A * x <= b

表示
importnumpyimportpypomanA=numpy.array([[-1,0,0,0,0,0,0,0,0,0,0,0],[0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,-1,0,0,0,0,0,0,0,0,0],[0,0,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,-1,0,0,0,0,0,0,0],[0,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,-1,0,0,0,0,0],[0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,-1,0,0,0],[0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,-1,0],[0,0,0,0,0,0,0,0,0,0,0,-1],[1,1,1,0,0,0,0,0,0,0,0,0],[0,0,0,1,1,1,0,0,0,0,0,0],[0,0,0,0,0,0,1,1,1,0,0,0],[0,0,0,0,0,0,0,0,0,1,1,1],[1,0,0,1,0,0,1,0,0,1,0,0],[0,1,0,0,1,0,0,1,0,0,1,0],[0,0,1,0,0,1,0,0,1,0,0,1]])b=numpy.array([0,0,0,0,0,0,0,0,0,0,0,0,2,1,2,2,1,2,3])vertices=pypoman.compute_polytope_vertices(A,b)

多面体投影

让我们在x = [x_1 ... x_n]上投射一个n维多面体到它的 前两个坐标proj(x) = [x_1 x_2]

importpypomanfromnumpyimportarray,eye,ones,vstack,zerosn=10# dimension of the original polytopep=2# dimension of the projected polytope# Original polytope:# - inequality constraints: \forall i, |x_i| <= 1# - equality constraint: sum_i x_i = 0A=vstack([+eye(n),-eye(n)])b=ones(2*n)C=ones(n).reshape((1,n))d=array([0])ineq=(A,b)# A * x <= beq=(C,d)# C * x == d# Projection is proj(x) = [x_0 x_1]E=zeros((p,n))E[0,0]=1.E[1,1]=1.f=zeros(p)proj=(E,f)# proj(x) = E * x + fvertices=pypoman.project_polytope(proj,ineq,eq,method='bretl')if__name__=="__main__":# plot projected polytopeimportpylabpylab.ion()pylab.figure()pypoman.plot_polygon(vertices)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java比较空对象   JavasocketUDP循环   更改活动时使用java“安卓.view.InflateException:二进制XM文件行”   java可以在EclipseRCP中定义ViewPart或Workbench的最小大小吗?   java试图根据用户输入对列表中的整数进行排序   java如何避免Hibernate在oneToMany关系上创建外键限制   java创建一个简单的字符串解析器,交互式外壳式   java如何解析JSON并将其值转换为数组?   JavaAzure:Image Magick提供0 KB的输出?   使用Azure Event Hubs for Apache Kafka生态系统和OAuth在Java中发送和接收消息   java如何将Oracle的Interval数据类型格式化为HH:MM格式?   java jsoup无法在安卓上正确解析HTML   java如何计算2ndArray中的距离?   java Swing Worker线程说在超类中没有Process()方法   带有内部组件的java单击JPanel   javajsp中的html引号转义   java Maven在打包jar时无法检索buildNumber   Java中的linux八进制转义导致错误的字节值,编码问题?