2013年5月29日星期三

Constraint Programming

Constraint Programming是一種不同於普遍所學的programming language,如C、Java和Python,這是一種declare所有限制條件,即是constraint,之後自動找尋答案符合所有條件的language。而這種language可以很方便地解決這類NP Complete的問題,雖然Python不是,但基本上沒有東西是Python做不到的,找尋之下,就有library pyconstraints同樣可以解決。

import pyconstraints
p = pyconstraints.Problem()
p.add_variable('fruit',range(10))
p.add_variable('fries',range(10))
p.add_variable('salad',range(10))
p.add_variable('wings',range(10))
p.add_variable('sticks',range(10))
p.add_variable('plate',range(10))
p.add_constraint(lambda a, b, c, d, e, f: a*215+b*275+c*335+d*355+e*420+f*580==1505, ['fruit','fries','salad','wings','sticks','plate'])
p.get_solutions()


沒有留言:

發佈留言