not yet.

Mark
Simon French wrote:
Hi Mark,
Any news on this one? I know its just a puzzle, but I would have hoped drools would cope with it. I was hoping to use the golfer example as a training aid to people in work.

Regards

Simon

On 09/08/07, *Simon French* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Hi Mark,
    I gave the latest version a go but still having the same problem.
    It appears Drools doesn't like it when the last name is asserted
    into working memory.
    The memory usage at this stage is just under 900meg.
    After that drools gradually eats up all the available memory but
    no more assertions are made.

    Regards

    Simon



    On 03/08/07, *Mark Proctor * <[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>> wrote:

        I must admit I didn't check against this example. But we did
        find a memory leak. Each activation remembers its parent
        activation, this chain was never getting nulled, which meant
        for recursive algorithms it went out of memory very quickly -
        this is now fixed. Maybe you can check trunk and make sure
        that fixes our problem? Trunk is broken at the moment, while
        we do MVEL updates, but should be fixed in a few hours. I'll
        message the list when it is - you won't need to build anything
        yourself as you will then be able to get the latest snapshot
        to try from here
        http://cruisecontrol.jboss.com/cc/artifacts/jboss-rules.


        Mark
        Simon French wrote:
        Hi Mark,
        After all the hard work you guys have put into drools
        recently I hope you had a good holiday.
        Has anybody had a chance to look at this?

        Simon

        On 20/07/07, * Mark Proctor* <[EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]>> wrote:

            we'll look into this to see where the memory is going.
            but won't be for another week or so - I'm currently on
            holiday.

            Mark
            Simon French wrote:
            Hi,
            After attending a session with Mark Proctor in London I
            was inspired to play around with Drools in a slightly
            different way than we use it for in the workplace, and
            try and solve a puzzle.
            Unfortunately I couldn't get Drools to solve it as I
            kept getting memory problems (I believe are cartesian
            joins being the problem),
            so I decided to extend the golfer example to see if I
            got the same problem
            I added two new names and a new integer property, club

                    // create all possible Golfer objects
                            String[] names = new String[] { "Fred",
            "Joe", "Bob", "Tom", "Des", "Terry" };
                            String[] colors = new String[] { "red",
            "blue", "plaid", "orange","black", "white" };
                            int[] positions = new int[] { 1, 2, 3,
            4, 5, 6 };
                            int[] clubs = new int[] {9,8,7,4,5,5};
for ( int n = 0; n < names.length; n++ ) {
                               for ( int c = 0; c < colors.length;
            c++ ) {
                                      for ( int p = 0; p <
            positions.length; p++ ) {
                                          for ( int q = 0; q <
            clubs.length; q++ ) {
                                              session.insert(new
            Golfer( names[n], colors[c], positions[p], clubs[q]) );

            ....


            Then changed the golder.drl to:

            package com.sample

            import com.sample.Golfer;


            rule "Golfer Riddle"
                when
                    // A golfer named Fred,
Golfer( name == "Fred",
                            $fredsPosition : position, $fredsColor :
            color, $fredsClub : club   )

                    // Der Golfer hinter Fred trägt blau
                    Golfer( $unknownsName : name != "Fred",
                            $unknownsPosition :  position == (
            $fredsPosition + 1 ),
                            $unknownsColor : color == "blue", color
            != $fredsColor,
                            $unknownsClub : club == 5 )

// Joe steht an zweiter Stelle Golfer( name == "Joe", $joesPosition : position
            == 2,
                            position != $fredsPosition,
                            $joesColor : color != $fredsColor,
                            $joesClub : club == 5 )

// Bob traegt Karo Golfer( name == "Bob",
                            name != $unknownsName,
                            $bobsPosition : position != $fredsPosition,
                            position != $unknownsPosition, position
            !=
$joesPosition,
                            $bobsColor : color == "plaid",
                            color != $fredsColor, color != $joesColor,
                            color != $unknownsColor,
                            $bobsClub : club < $joesClub )

                    // Tom ist nicht 1. oder 4., traegt kein Orange
                    Golfer( $tomsName : name == "Tom",
                            $tomsPosition : position != 1, position
            != 4,
                            position != $fredsPosition, position !=
            $joesPosition,
                            position !=
$bobsPosition, $tomsColor : color != "orange", color !=
            "blue",
                            color != $fredsColor, color != $joesColor,
color != $bobsColor )
                    Golfer ( $des : name == "Des", $desPosition :
            position < $fredsPosition, $desColor : color != "blue",
                            color != $fredsColor, color != $joesColor,
                            color != $bobsColor )
                    Golfer ( $terry : name == "Terry",
            $terryPosition : position < $desPosition, $terryColor :
            color != "blue",
                            color != $fredsColor, color != $joesColor,
                            color != $bobsColor )
                then
                    System.out.println( "Fred " + $fredsPosition + "
            " + $fredsColor );
                    System.out.println( "Joe " + $joesPosition + " "
            + $joesColor );
                    System.out.println( "Bob " + $bobsPosition + " "
            + $bobsColor );
                    System.out.println( "Tom " + $tomsPosition + " "
+ $tomsColor ); System.out.println ( "Des " + $desPosition + " " + $desColor ); System.out.println( "terry " + $terryPosition + " " + $terryColor ); end


            After a couple of minutes of processing I got:-

            Exception in thread "main" java.lang.OutOfMemoryError:
            Java heap space

            I also changed java memory allocation with -Xms1640M
            -Xmx1640M (The most I can allocate on my PC), and tried
            running it as a stateless  session too.

            Is there anything else I can do, or is this simply
            pushing drools too far (surely not!!) ?

            I'm very keen on pushing this technology as much as
            possible in our workplace and I'd really appreciate any
            help.

            Thanks in advance

            Simon

            
------------------------------------------------------------------------

            _______________________________________________
            rules-users mailing list
            [email protected]


             <mailto:[email protected]>
            https://lists.jboss.org/mailman/listinfo/rules-users


            _______________________________________________
            rules-users mailing list
            [email protected]
            <mailto:[email protected]>
            https://lists.jboss.org/mailman/listinfo/rules-users


        ------------------------------------------------------------------------

        _______________________________________________
        rules-users mailing list
        [email protected]

         <mailto:[email protected]>
        https://lists.jboss.org/mailman/listinfo/rules-users


        _______________________________________________
        rules-users mailing list
        [email protected] <mailto:[email protected]>
        https://lists.jboss.org/mailman/listinfo/rules-users



------------------------------------------------------------------------

_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to