The rules are compiled into classes, so yes, they are hard coded in that sense. But you can compile on the fly and create new systems of rules.

However, the question comes down to what are the constraints you are trying to solve? Is it true that the constraints are changing and therefore you need to create a new system of constraints? Or is the data changing and the system remains unchanged. If you do have to change the constraint system/rules, then under what conditions? Are you changing the constraint system when you could be modeling this as data that the constraint system uses (thus eliminating the need to change the constraints)? If not, then how often does the constraint system change? For example, is it a time based policy, like 8am - 4pm, these constraint rules are used, but 5pm - 7am, we use a different set? If so, then the life cycle doesn't change - merely the equations/rules. You can therefore create a model where you can switch in the constraint system to satisfy.

You can also use object oriented techniques with constraints ( http://tinyurl.com/2rfdck ). This would allow you to subclass, use polymorphism, etc, which may allow you to have an extensible system which doesn't require changing the constraints.

There's a lot of modeling choices out there...

On Nov 15, 2007, at 2:46 PM, Mohd. Noor wrote:

Yes, - I noticed that we have to consider the state of resource at certain point of time. I go through the examples of JCHR, it look like that we have to hardcoded the rules. Am I right/wrong?.

Cheers



On Nov 15, 2007 7:35 PM, Hal Hildebrand <[EMAIL PROTECTED]> wrote: There's a life cycle involved, so you're never going to get a system with continuously varying state (nor would you really want to), thus it has to be sampled discretely. The result is a system which triggers when the sampled values change. Some values, like hardware configuration, will change slowly. Others, like CPU load, I/O utilization, etc, will change faster. But regardless, the essential life cycle remains the same:

sample the data - event driven, perhaps
set up your equations - canned, template or rule driven
get your solutions - multiple solutions are possible
choose your solution - rule driven, perhaps
effect the system change based on the solution

Rinse and repeat.

On Nov 15, 2007, at 10:38 AM, Mohd. Noor wrote:

Dear All

Thanks for the kind replies
What I am concerned is, my rules is always dynamically changes over time(e.g. CPU availability/utilisation) -with that, I cannot hard coded on the programming coding. Even their template/"deftemplate" might be changes( e.g. new software properties/a totally new hardware-such as any new instrument attached to the computer system)

Is that possible with JCHR?

Any suggestions are welcome

Cheers
mnoor


On Nov 15, 2007 5:09 PM, Hal Hildebrand <[EMAIL PROTECTED]> wrote: What you are describing is constraint programming. You can do this with Jess, but it's not exactly the best (imho) tool for the job due to what is involved. The combinatorics are nasty in all but the simplest examples.

For a constraint solver that runs (with minor tweaks) in Jess, see 
http://tinyurl.com/yvz98m

This technique might do what you want, but you might want to look into constraint systems in Java like JCHR or even Genetic Algorithms, which are particularly good at searching large sparse spaces for solutions to constraints.

On Nov 15, 2007, at 8:45 AM, Mohd. Noor wrote:

let say the user want to select the computer (resources) in which suite their requirement- in this case user wants to run mathlab simulation in computer(clusters) that have more than 20 CPUs available. Let consider the attributes such as CPU and software are treated differently(whereby we can migrate the software and licenses to the node that most appropriate with users' resources requirements- in this case;). This rules (contains the node A, B and C's properties/attributes) suppose made available in the brokerage level.

In this case the user may select the mathlab from node C and run on node B.

How do we transform the resources properties into the rules?
How we are going to infer the rules?
How we can apply a forward chaining and backward chaining?

Cheers,
mnoor



On Nov 15, 2007 2:42 PM, Motaz K. Saad <[EMAIL PROTECTED]> wrote:
Could you explain more!.
Do you want to make a rule to determine computer specifications for a given software.?


On Nov 15, 2007 1:48 PM, Mohd. Noor < [EMAIL PROTECTED] > wrote:
dear jess
how to make a rule from this scenario

Computer A:
           CPu =100
           RAM = 1GB
           s/w = c++
Computer B:
          CPU =20
          RAM = 512M
          S/w =spps
Computer C
          CPU =12
          RAM = 2GB
          s/w = mathlab

The user will request to run a software mathlab - how do the rules look like

cHEERS

On Nov 15, 2007 11:44 AM, Mohd. Noor < [EMAIL PROTECTED]> wrote:
dear jess
how to make a rule from this scenario

Computer A:





--
Motaz K. Saad
Computer Science Dept.
College of IT
http://motaz.saad.googlepages.com






Reply via email to