An Introduction To Constraint Programming - Jacob Allen

Ғылым және технология

As a programmer, computer scientist, computer engineer etc. there are many problems for which an algorithm can easily be determined or pulled from a text book, however, there is a class (or really two classes) of problems for which there are rarely such simple solutions: constraint problems. Luckily there exist powerful constraint programming tools to allow us to solve constraint problems using relatively simple concepts which often mirror how humans would solve the tasks.
In this talk I will introduce constraint programming and demonstrate how it can be used to solve complex problems efficiently, I will also show some examples of constraint solving programs and outline the simple underlying process by which they work.
Join our Discord for the Q&A after the talk: / discord
hacksoc.org
/ hacksoc
/ hacksoc
hacksoc-york.slack.com

Пікірлер: 6

  • @erikkaplun2355
    @erikkaplun23552 жыл бұрын

    CLP(QR) does floating point domains.

  • @abramswee
    @abramswee2 жыл бұрын

    thanks for sharing

  • @jcfreeify
    @jcfreeify Жыл бұрын

    Hi Jacob, once the 7,1,8 & 2 are entered, you say you will guess from there but be prepared to back-track. But what if the 7,1,8,2 configuration itself doesn't allow for any feasible solutions? Don't you have to be ready to backtrack all the way? i.e. there is no set number of initial guesses that you can assume for feasibility.

  • @callejn
    @callejn2 жыл бұрын

    17:40 How does floating point numbers lead to infinite domains?

  • @fcpereira97

    @fcpereira97

    2 жыл бұрын

    Suppose that, in a particular problem, the domain of a certain variable is any rational number between 0 and 1. So, we may want to represent the value of this variable as a floating point number. In that case, we have an infinite numbers between 0 and 1, but constraint programming requires finite domains. I think he meant to say that, in general, if you aim to represent a variable as a floating point number is because you have an infinite domain. However, we might have a problem in which the domains of the variables are all finite, but they contain numbers that are not integers. In that case, we can simply stablish an injective funcion from the union of the domains to the set of integer numbers. In all cases, we avoid floating point numbers. In the first case because we have infinite domains, which is forbidden, and in the second case because we can map the floating point numbers (that belong to finite domains) to integer numbers.

  • @jacoballen4362

    @jacoballen4362

    2 жыл бұрын

    ​@@fcpereira97 Indeed you're correct, I meant in the case where we do not have other limits on the domains. As you said there could be any number of values between 0 and 1 even so we cannot have unconstrained rational numbers. But of course, if we can map non-integer values into finite domains we can have non-integer values!

Келесі