Ticket #24 (closed defect: invalid)

Opened 4 years ago

Last modified 4 years ago

PRCTL: time- and reward- bounded until, malfunction

Reported by: ivan.zapreev Owned by: ivan.zapreev
Priority: major Milestone: MRMC v1.2.2
Component: Core Version: 1.2.2
Keywords: Cc:

Description (last modified by ivan.zapreev) (diff)

In

test/functional_tests/dtmrm/prctl/operators/time_reward_interval_until/prctl_andova_state_01

test case we are getting for

        P{>0.1}[ tt U[0,10][0,9] sd ]

the following probabilities

        Result: ( 1.660156250000000e-01, 0.0e+00, 3.320312500000000e-01, 0.0e+00, 0.0e+00, 0.0e+00, 6.660156250000000e-01, 0.0e+00, 0.0e+00, 0.0e+00, 0.0e+00, 0.0e+00, 1.0e+00 )
        states = {1, 3, 7, 13, }

This is just wrong because staying in 13 for 10 time units will give you reward equal to
10 which is greater than 9!

The problem is in the "transient.c" file in the method:

double * dtmrm_bounded_until(bitset *phi, bitset *psi, float subi, float supi, float subj, float supj)

There

        //ERROR: This is totally wrong ! what if the node has a self loop !?
        //or phi is valid here and we can go further to another psi node!?
        if( get1b.b &&
            ( subi <= 0 ) && ( supi >= 0 ) &&
            ( subj <= 0 ) && ( supj >= 0 ) )
        {
                result[i]=1.0;
                continue;
        }

Change History

Changed 4 years ago by ivan.zapreev

  • status changed from new to closed
  • resolution set to invalid
  • description modified (diff)

This turned out to be not a bug. I do not remember why, but I checked the papers and everything was according to theory.

Note: See TracTickets for help on using tickets.