Browse Source

Bug fix in multi-objective value iteration: non-convergence when one objective has weight 0.

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10806 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 10 years ago
parent
commit
412ac91a61
  1. 4
      prism/src/sparse/PS_NondetMultiObj.cc

4
prism/src/sparse/PS_NondetMultiObj.cc

@ -471,7 +471,7 @@ JNIEXPORT jdoubleArray __jlongpointer JNICALL Java_sparse_PrismSparse_PS_1Nondet
doneBeforeBounded = true; doneBeforeBounded = true;
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
for (int it = 0; it < lenProb + lenRew; it++) { for (int it = 0; it < lenProb + lenRew; it++) {
if (it != ignoredWeight && fabs(psoln2[it][i] - psoln[it][i]) > term_crit_param) {
if (it != ignoredWeight && weights[it] > 0 && fabs(psoln2[it][i] - psoln[it][i]) > term_crit_param) {
done = false; done = false;
doneBeforeBounded = false; doneBeforeBounded = false;
goto end_switch; goto end_switch;
@ -493,7 +493,7 @@ JNIEXPORT jdoubleArray __jlongpointer JNICALL Java_sparse_PrismSparse_PS_1Nondet
doneBeforeBounded = true; doneBeforeBounded = true;
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
for (int it = 0; it < lenProb + lenRew; it++) { for (int it = 0; it < lenProb + lenRew; it++) {
if (it != ignoredWeight && fabs(psoln2[it][i] - psoln[it][i])/fabs(psoln2[it][i]) > term_crit_param) {
if (it != ignoredWeight && weights[it] > 0 && fabs(psoln2[it][i] - psoln[it][i])/fabs(psoln2[it][i]) > term_crit_param) {
done = false; done = false;
doneBeforeBounded = false; doneBeforeBounded = false;
goto end_switch; goto end_switch;

Loading…
Cancel
Save