Constraint-based systems:

Constraint-based systems:

A year ago, I was involved in the development of a constraint-based system and really enjoyed the experience, so remembering those moments and the difficulties encountered during that period give me good sensations. I’m Artificial Intelligence (AI) enthusiast so I was absolutely sure I’d use it in my start-up as it occurred.

A constraint-based system is a method to solve problems that can be expressed with constraining rules using AI based algorithms in logic languages. The constraint programming approach is to search for a state of the world in which a large number of constraints are satisfied at the same time. A problem is typically stated as a state of the world containing a number of unknown variables. The constraint program searches for values to fill correctly the variables, and this is all done….Well not all.

Yes, because as you know a problem may be solved by a very large number of solutions. For instance, the problem:

13 = A + B , is a problem with two variables A and B that can take a finite (14) number of solutions in a domain of whole numbers [0..13], we will expose some cases:

{A=0, B=13} , {A=1, B=12}, … {A=5,B=8}, {A=6, B=7}…{A=13, B=0}

As you can see, all these solutions are valid solutions and can be used to solve the problem, so the performed constrain-based system to search a solution probably will send us this solution as the first {A=0,B=13}, but what happen with the rest of the solutions?.

Imagine this simple problem was about employees and A,B now, where positions to fill a machine that needs 2 operators to operate it. Obviously we have to add a new constraint to the problem, employee A can’t be equal to B because an employee only can be physically in a position at the same time. So the problem now is:

13 = A + B,  (A not equal to B)

The found solution now will be the same last one {A=0,B=13}, but what happen if we as humans prefer a solution like {A=7,B=6}?. (Here you have to suppose employees are enumerated from 0 to 13, 0=Armand, 1=Beethoven, 2=Peter…), what happen with the preferred solution using employee number 7 and 6?. This exactly is the difference between a solution and an optimized smart solution and here are the difficulties because we need to build a constraint-based system with some kind of smart system that optimize and found the “best human solution”, and obviously we need some kind of input at our system to tell him which variables are our preferred, and this can be as complicated as a neural network for instance. 

Finally, when we’ve build this complicated system we can found for the best human proposed solution, but in more cases it will take time, a long time in complicated problems, so looking for the better solution in some cases is not possible by time and in any case depends on chance, because like humans, machines also use some kind of random choosing variables to avoid local minimums.

Thanks for reading, perhaps may help someone.

要查看或添加评论,请登录

Marc Farràs Gallart ??的更多文章

社区洞察

其他会员也浏览了