diff options
Diffstat (limited to 'Domains')
-rw-r--r-- | Domains/crossingScenario/.gitignore | 9 | ||||
-rw-r--r-- | Domains/crossingScenario/inputs/crossingScenarioGen.vsconfig | 14 | ||||
-rw-r--r-- | Domains/crossingScenario/plugin.xml | 5 | ||||
-rw-r--r-- | Domains/crossingScenario/queries/crossingScenarioQueries.vql | 277 | ||||
-rw-r--r-- | Domains/crossingScenario/results-prelim/plot_RQ2_FamilyTree.pdf | bin | 0 -> 4775 bytes | |||
-rw-r--r-- | Domains/crossingScenario/results-prelim/stats1010.csv | 3 | ||||
-rw-r--r-- | Domains/crossingScenario/results-prelim/stats1515.csv | 3 | ||||
-rw-r--r-- | Domains/crossingScenario/results-prelim/stats2020.csv | 3 | ||||
-rw-r--r-- | Domains/crossingScenario/results-prelim/stats2525.csv | 3 | ||||
-rw-r--r-- | Domains/crossingScenario/src/crossingScenario/run/CrossingScenarioMain.java | 14 | ||||
-rw-r--r-- | Domains/crossingScenario/src/queries/queries.vql | 10 |
11 files changed, 196 insertions, 145 deletions
diff --git a/Domains/crossingScenario/.gitignore b/Domains/crossingScenario/.gitignore index 4c033661..50267f31 100644 --- a/Domains/crossingScenario/.gitignore +++ b/Domains/crossingScenario/.gitignore | |||
@@ -1,5 +1,4 @@ | |||
1 | /bin/ | 1 | /bin/ |
2 | /outputs/ | 2 | /outputs/ |
3 | /src-gen/ | 3 | /src-gen/ |
4 | /xtend-gen/ | 4 | /xtend-gen/ |
5 | /src/queries/ | ||
diff --git a/Domains/crossingScenario/inputs/crossingScenarioGen.vsconfig b/Domains/crossingScenario/inputs/crossingScenarioGen.vsconfig index acd622c5..a5c862e4 100644 --- a/Domains/crossingScenario/inputs/crossingScenarioGen.vsconfig +++ b/Domains/crossingScenario/inputs/crossingScenarioGen.vsconfig | |||
@@ -7,12 +7,14 @@ generate { | |||
7 | partial-model = { "inputs/crossingScenarioInit.xmi"} | 7 | partial-model = { "inputs/crossingScenarioInit.xmi"} |
8 | solver = ViatraSolver | 8 | solver = ViatraSolver |
9 | scope = { | 9 | scope = { |
10 | #node = 10..100, | 10 | #node = 2..* |
11 | #int = {}, | 11 | //, |
12 | #<Lane> = 10..25, | 12 | //#<Lane> = 25..* |
13 | #<Actor> = 10..25, | 13 | //,#<Actor> = 25..* |
14 | #<CollisionExists> = 1..10//, | 14 | //,#<CollisionExists> = 1..10 |
15 | //#<Relation> = 1..10 | 15 | //,#<SeparationDistance> = 1..10 |
16 | //,#<VisionBlocked> = 1..10 | ||
17 | //,#<Relation> = 1..10 | ||
16 | } | 18 | } |
17 | 19 | ||
18 | config = { | 20 | config = { |
diff --git a/Domains/crossingScenario/plugin.xml b/Domains/crossingScenario/plugin.xml index c8846e1b..39c9cd2b 100644 --- a/Domains/crossingScenario/plugin.xml +++ b/Domains/crossingScenario/plugin.xml | |||
@@ -4,4 +4,9 @@ | |||
4 | <!-- @generated crossingScenario --> | 4 | <!-- @generated crossingScenario --> |
5 | <package class="crossingScenario.CrossingScenarioPackage" genModel="model/crossingScenario.genmodel" uri="http://www.example.com/crossingScenario"/> | 5 | <package class="crossingScenario.CrossingScenarioPackage" genModel="model/crossingScenario.genmodel" uri="http://www.example.com/crossingScenario"/> |
6 | </extension> | 6 | </extension> |
7 | <extension id="queries.Queries" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
8 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:queries.Queries" id="queries.Queries"> | ||
9 | <query-specification fqn="queries.x"/> | ||
10 | </group> | ||
11 | </extension> | ||
7 | </plugin> | 12 | </plugin> |
diff --git a/Domains/crossingScenario/queries/crossingScenarioQueries.vql b/Domains/crossingScenario/queries/crossingScenarioQueries.vql index 03dafc97..34eff55c 100644 --- a/Domains/crossingScenario/queries/crossingScenarioQueries.vql +++ b/Domains/crossingScenario/queries/crossingScenarioQueries.vql | |||
@@ -424,88 +424,88 @@ pattern collisionExists_defineCollision_x2(a1:Actor, a2:Actor, c:CollisionExists | |||
424 | check((xPos1 + (xSpeed1 * cTime)) + (w1/2) < (xPos2 + (xSpeed2 * cTime)) - (w2/2)); | 424 | check((xPos1 + (xSpeed1 * cTime)) + (w1/2) < (xPos2 + (xSpeed2 * cTime)) - (w2/2)); |
425 | } | 425 | } |
426 | 426 | ||
427 | //////////////// | 427 | ////////////// |
428 | ////SeparationDistance | 428 | //SeparationDistance |
429 | //////////////// | 429 | ////////////// |
430 | //@Constraint(severity="error", key={a1, sd}, message="x") | 430 | @Constraint(severity="error", key={a1, sd}, message="x") |
431 | //pattern SeparationDistance_near_lb(a1:Actor, a2:Actor, sd:SeparationDistance) { | 431 | pattern SeparationDistance_near_lb(a1:Actor, a2:Actor, sd:SeparationDistance) { |
432 | // //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 | 432 | //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 |
433 | // Actor.relations(a1, sd); | 433 | Actor.relations(a1, sd); |
434 | // SeparationDistance.target(sd, a2); | 434 | SeparationDistance.target(sd, a2); |
435 | // SeparationDistance.distance(sd, Distance::Near); | 435 | SeparationDistance.distance(sd, Distance::D_Near); |
436 | // | 436 | |
437 | // Actor.xPos(a1, x1); | 437 | Actor.xPos(a1, x1); |
438 | // Actor.yPos(a1, y1); | 438 | Actor.yPos(a1, y1); |
439 | // Actor.xPos(a2, x2); | 439 | Actor.xPos(a2, x2); |
440 | // Actor.yPos(a2, y2); | 440 | Actor.yPos(a2, y2); |
441 | // //check(dx^2 + dy^2 < 5^2) | 441 | //check(dx^2 + dy^2 < 5^2) |
442 | // check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) < 5*5); | 442 | check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) < 5*5); |
443 | //} | 443 | } |
444 | // | 444 | |
445 | //@Constraint(severity="error", key={a1, sd}, message="x") | 445 | @Constraint(severity="error", key={a1, sd}, message="x") |
446 | //pattern SeparationDistance_near_ub(a1:Actor, a2:Actor, sd:SeparationDistance) { | 446 | pattern SeparationDistance_near_ub(a1:Actor, a2:Actor, sd:SeparationDistance) { |
447 | // //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 | 447 | //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 |
448 | // Actor.relations(a1, sd); | 448 | Actor.relations(a1, sd); |
449 | // SeparationDistance.target(sd, a2); | 449 | SeparationDistance.target(sd, a2); |
450 | // SeparationDistance.distance(sd, Distance::Near); | 450 | SeparationDistance.distance(sd, Distance::D_Near); |
451 | // | 451 | |
452 | // Actor.xPos(a1, x1); | 452 | Actor.xPos(a1, x1); |
453 | // Actor.yPos(a1, y1); | 453 | Actor.yPos(a1, y1); |
454 | // Actor.xPos(a2, x2); | 454 | Actor.xPos(a2, x2); |
455 | // Actor.yPos(a2, y2); | 455 | Actor.yPos(a2, y2); |
456 | // //check(dx^2 + dy^2 > 10^2) | 456 | //check(dx^2 + dy^2 > 10^2) |
457 | // check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) > 10*10); | 457 | check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) > 10*10); |
458 | //} | 458 | } |
459 | // | 459 | |
460 | //@Constraint(severity="error", key={a1, sd}, message="x") | 460 | @Constraint(severity="error", key={a1, sd}, message="x") |
461 | //pattern SeparationDistance_medium_lb(a1:Actor, a2:Actor, sd:SeparationDistance) { | 461 | pattern SeparationDistance_medium_lb(a1:Actor, a2:Actor, sd:SeparationDistance) { |
462 | // //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 | 462 | //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 |
463 | // Actor.relations(a1, sd); | 463 | Actor.relations(a1, sd); |
464 | // SeparationDistance.target(sd, a2); | 464 | SeparationDistance.target(sd, a2); |
465 | // SeparationDistance.distance(sd, Distance::Medium); | 465 | SeparationDistance.distance(sd, Distance::D_Med); |
466 | // | 466 | |
467 | // Actor.xPos(a1, x1); | 467 | Actor.xPos(a1, x1); |
468 | // Actor.yPos(a1, y1); | 468 | Actor.yPos(a1, y1); |
469 | // Actor.xPos(a2, x2); | 469 | Actor.xPos(a2, x2); |
470 | // Actor.yPos(a2, y2); | 470 | Actor.yPos(a2, y2); |
471 | // //check(dx^2 + dy^2 < 10^2) | 471 | //check(dx^2 + dy^2 < 10^2) |
472 | // check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) < 10*10); | 472 | check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) < 10*10); |
473 | //} | 473 | } |
474 | // | 474 | |
475 | //@Constraint(severity="error", key={a1, sd}, message="x") | 475 | @Constraint(severity="error", key={a1, sd}, message="x") |
476 | //pattern SeparationDistance_medium_ub(a1:Actor, a2:Actor, sd:SeparationDistance) { | 476 | pattern SeparationDistance_medium_ub(a1:Actor, a2:Actor, sd:SeparationDistance) { |
477 | // //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 | 477 | //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 |
478 | // Actor.relations(a1, sd); | 478 | Actor.relations(a1, sd); |
479 | // SeparationDistance.target(sd, a2); | 479 | SeparationDistance.target(sd, a2); |
480 | // SeparationDistance.distance(sd, Distance::Medium); | 480 | SeparationDistance.distance(sd, Distance::D_Med); |
481 | // | 481 | |
482 | // Actor.xPos(a1, x1); | 482 | Actor.xPos(a1, x1); |
483 | // Actor.yPos(a1, y1); | 483 | Actor.yPos(a1, y1); |
484 | // Actor.xPos(a2, x2); | 484 | Actor.xPos(a2, x2); |
485 | // Actor.yPos(a2, y2); | 485 | Actor.yPos(a2, y2); |
486 | // //check(dx^2 + dy^2 > 1^2) | 486 | //check(dx^2 + dy^2 > 1^2) |
487 | // check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) > 15*15); | 487 | check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) > 15*15); |
488 | //} | 488 | } |
489 | // | 489 | |
490 | //@Constraint(severity="error", key={a1, sd}, message="x") | 490 | @Constraint(severity="error", key={a1, sd}, message="x") |
491 | //pattern SeparationDistance_far_lb(a1:Actor, a2:Actor, sd:SeparationDistance) { | 491 | pattern SeparationDistance_far_lb(a1:Actor, a2:Actor, sd:SeparationDistance) { |
492 | // //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 | 492 | //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 |
493 | // Actor.relations(a1, sd); | 493 | Actor.relations(a1, sd); |
494 | // SeparationDistance.target(sd, a2); | 494 | SeparationDistance.target(sd, a2); |
495 | // SeparationDistance.distance(sd, Distance::Far); | 495 | SeparationDistance.distance(sd, Distance::D_Far); |
496 | // | 496 | |
497 | // Actor.xPos(a1, x1); | 497 | Actor.xPos(a1, x1); |
498 | // Actor.yPos(a1, y1); | 498 | Actor.yPos(a1, y1); |
499 | // Actor.xPos(a2, x2); | 499 | Actor.xPos(a2, x2); |
500 | // Actor.yPos(a2, y2); | 500 | Actor.yPos(a2, y2); |
501 | // //check(dx^2 + dy^2 < 15^2) | 501 | //check(dx^2 + dy^2 < 15^2) |
502 | // check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) < 15*15); | 502 | check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) < 15*15); |
503 | //} | 503 | } |
504 | // | 504 | |
505 | //////////////// | 505 | //////////////// |
506 | ////CollisionDoesNotExist | 506 | ////CollisionDoesNotExist |
507 | //////////////// | 507 | //////////////// |
508 | // | 508 | //TODO |
509 | ////@Constraint(severity="error", key={a1, cdne}, message="x") | 509 | ////@Constraint(severity="error", key={a1, cdne}, message="x") |
510 | ////pattern collisionDoesNotExist(a1:Actor, a2:Actor, ss:CrossingScenario, cdne:CollisionDoesNotExist) { | 510 | ////pattern collisionDoesNotExist(a1:Actor, a2:Actor, ss:CrossingScenario, cdne:CollisionDoesNotExist) { |
511 | //// //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 | 511 | //// //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 |
@@ -532,59 +532,72 @@ pattern collisionExists_defineCollision_x2(a1:Actor, a2:Actor, c:CollisionExists | |||
532 | //// //check(dx^2 + dy^2 < 15^2) | 532 | //// //check(dx^2 + dy^2 < 15^2) |
533 | //// check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) < 15*15); | 533 | //// check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) < 15*15); |
534 | ////} | 534 | ////} |
535 | // | 535 | |
536 | //////////////// | 536 | ////////////// |
537 | ////VisionBlocked | 537 | //VisionBlocked |
538 | //////////////// | 538 | ////////////// |
539 | // | 539 | |
540 | ////OPTIONS 1: everything is from a single check expression containing ITEs | 540 | @Constraint(severity="error", key={a1, a2}, message="x") |
541 | ////Currently unhandled bygenerator | 541 | pattern visionBlocked_invalidBlocker(a1:Actor, a2:Actor) { |
542 | //@Constraint(severity="error", key={a1, vb}, message="x") | 542 | Actor.relations(a1, vb); |
543 | //pattern visionBlocked_ites_top(a1:Actor, a2:Actor, vb:VisionBlocked) { | 543 | VisionBlocked.target(vb, a2); |
544 | // //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 | 544 | VisionBlocked.blockedBy(vb, a1); |
545 | // Actor.relations(a1, vb); | 545 | } or { |
546 | // VisionBlocked.target(vb, a2); | 546 | Actor.relations(a1, vb); |
547 | // VisionBlocked.blockedBy(vb, aBlocker); | 547 | VisionBlocked.target(vb, a2); |
548 | // | 548 | VisionBlocked.blockedBy(vb, a1); |
549 | // Actor.xPos(a1, x1); | 549 | } |
550 | // Actor.yPos(a1, y1); | 550 | |
551 | // Actor.xPos(a2, x2); | 551 | //OPTIONS 1: everything is from a single check expression containing ITEs |
552 | // Actor.yPos(a2, y2); | 552 | //Currently unhandled bygenerator |
553 | // Actor.xPos(aBlocker, xBlocker); | 553 | @Constraint(severity="error", key={a1, vb}, message="x") |
554 | // Actor.yPos(aBlocker, yBlocker); | 554 | pattern visionBlocked_ites_top(a1:Actor, a2:Actor, vb:VisionBlocked) { |
555 | // Actor.length(aBlocker, lenBlocker); | 555 | //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 |
556 | // Actor.width(aBlocker, widBlocker); | 556 | Actor.relations(a1, vb); |
557 | // | 557 | VisionBlocked.target(vb, a2); |
558 | // //check(slope of a1-to-BlockerTop < slope of a1-to-a2) | 558 | VisionBlocked.blockedBy(vb, aBlocker); |
559 | // check( | 559 | |
560 | // ( yBlocker - y1 + (if(xBlocker > x1){lenBlocker/2}else{0-lenBlocker/2})) / | 560 | Actor.xPos(a1, x1); |
561 | // ( xBlocker - x1 + (if(yBlocker > y1){0-widBlocker/2}else{widBlocker/2})) | 561 | Actor.yPos(a1, y1); |
562 | // < ((y1-y2)/(x1-x2))); | 562 | Actor.xPos(a2, x2); |
563 | //} | 563 | Actor.yPos(a2, y2); |
564 | // | 564 | Actor.xPos(aBlocker, xBlocker); |
565 | //@Constraint(severity="error", key={a1, vb}, message="x") | 565 | Actor.yPos(aBlocker, yBlocker); |
566 | //pattern visionBlocked_ites_bottom(a1:Actor, a2:Actor, vb:VisionBlocked) { | 566 | Actor.length(aBlocker, lenBlocker); |
567 | // //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 | 567 | Actor.width(aBlocker, widBlocker); |
568 | // Actor.relations(a1, vb); | 568 | |
569 | // VisionBlocked.target(vb, a2); | 569 | //check(slope of a1-to-BlockerTop < slope of a1-to-a2) |
570 | // VisionBlocked.blockedBy(vb, aBlocker); | 570 | check( |
571 | // | 571 | ( yBlocker - y1 + (if(xBlocker > x1){lenBlocker/2}else{0-lenBlocker/2})) / |
572 | // Actor.xPos(a1, x1); | 572 | ( xBlocker - x1 + (if(yBlocker > y1){0-widBlocker/2}else{widBlocker/2})) |
573 | // Actor.yPos(a1, y1); | 573 | < ((y1-y2)/(x1-x2))); |
574 | // Actor.xPos(a2, x2); | 574 | } |
575 | // Actor.yPos(a2, y2); | 575 | |
576 | // Actor.xPos(aBlocker, xBlocker); | 576 | @Constraint(severity="error", key={a1, vb}, message="x") |
577 | // Actor.yPos(aBlocker, yBlocker); | 577 | pattern visionBlocked_ites_bottom(a1:Actor, a2:Actor, vb:VisionBlocked) { |
578 | // Actor.length(aBlocker, lenBlocker); | 578 | //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 |
579 | // Actor.width(aBlocker, widBlocker); | 579 | Actor.relations(a1, vb); |
580 | // | 580 | VisionBlocked.target(vb, a2); |
581 | // //check(slope of a1-to-BlockerBottom > slope of a1-to-a2) | 581 | VisionBlocked.blockedBy(vb, aBlocker); |
582 | // check( | 582 | |
583 | // ( yBlocker - y1 + (if(xBlocker > x1){0-lenBlocker/2}else{lenBlocker/2})) / | 583 | Actor.xPos(a1, x1); |
584 | // ( xBlocker - x1 + (if(yBlocker > y1){widBlocker/2}else{0-widBlocker/2})) | 584 | Actor.yPos(a1, y1); |
585 | // > ((y1-y2)/(x1-x2))); | 585 | Actor.xPos(a2, x2); |
586 | //} | 586 | Actor.yPos(a2, y2); |
587 | // | 587 | Actor.xPos(aBlocker, xBlocker); |
588 | Actor.yPos(aBlocker, yBlocker); | ||
589 | Actor.length(aBlocker, lenBlocker); | ||
590 | Actor.width(aBlocker, widBlocker); | ||
591 | |||
592 | //check(slope of a1-to-BlockerBottom > slope of a1-to-a2) | ||
593 | check( | ||
594 | ( yBlocker - y1 + (if(xBlocker > x1){0-lenBlocker/2}else{lenBlocker/2})) / | ||
595 | ( xBlocker - x1 + (if(yBlocker > y1){widBlocker/2}else{0-widBlocker/2})) | ||
596 | > ((y1-y2)/(x1-x2))); | ||
597 | } | ||
598 | |||
599 | |||
600 | |||
588 | ////OPTION 2: | 601 | ////OPTION 2: |
589 | ////we handle ITE by seperating the constraints | 602 | ////we handle ITE by seperating the constraints |
590 | // | 603 | // |
diff --git a/Domains/crossingScenario/results-prelim/plot_RQ2_FamilyTree.pdf b/Domains/crossingScenario/results-prelim/plot_RQ2_FamilyTree.pdf new file mode 100644 index 00000000..c6cda90a --- /dev/null +++ b/Domains/crossingScenario/results-prelim/plot_RQ2_FamilyTree.pdf | |||
Binary files differ | |||
diff --git a/Domains/crossingScenario/results-prelim/stats1010.csv b/Domains/crossingScenario/results-prelim/stats1010.csv new file mode 100644 index 00000000..9755619c --- /dev/null +++ b/Domains/crossingScenario/results-prelim/stats1010.csv | |||
@@ -0,0 +1,3 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,Solution0FoundAt,Solution1FoundAt,Solution2FoundAt,Solution3FoundAt,Solution4FoundAt,Solution5FoundAt,Solution6FoundAt,Solution7FoundAt,Solution8FoundAt,Solution9FoundAt,Solution1DetailedStatistics,Solution2DetailedStatistics,Solution3DetailedStatistics,Solution4DetailedStatistics,Solution5DetailedStatistics,Solution6DetailedStatistics,Solution7DetailedStatistics,Solution8DetailedStatistics,Solution9DetailedStatistics,Solution10DetailedStatistics,ExplorationInitializationTime,TransformationExecutionTime,ScopePropagationTime,MustRelationPropagationTime,TypeAnalysisTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime,States,ForwardTime,BacktrackingTime,GlobalConstraintEvaluationTime,FitnessCalculationTime,ActivationSelectionTime,Decisions,Transformations,ScopePropagations,ScopePropagationsSolverCalls,NumericalSolverSumTime,NumericalSolverProblemFormingTime,NumericalSolverSolvingTime,NumericalSolverInterpretingSolution,NumericalSolverCachingTime,NumericalSolverCallNumber,NumericalSolverCachedAnswerNumber | ||
2 | 1,1,ModelResultImpl,9010,23452,51887,1485,12797,15916,19434,23446,27192,31111,35422,40827,46435,51841,(TransformationExecutionTime164|StateCoderTime:878|ForwardTime:2360|Backtrackingtime:664|GlobalConstraintEvaluationTime:133|FitnessCalculationTime:161|ActivationSelectionTime:3|SolutionCopyTime:15|NumericalSolverSumTime:7655|NumericalSolverProblemFormingTime:7245|NumericalSolverSolvingTime:7245|NumericalSolverInterpretingSolution:11),(TransformationExecutionTime183|StateCoderTime:973|ForwardTime:2865|Backtrackingtime:808|GlobalConstraintEvaluationTime:138|FitnessCalculationTime:161|ActivationSelectionTime:4|SolutionCopyTime:32|NumericalSolverSumTime:9872|NumericalSolverProblemFormingTime:9491|NumericalSolverSolvingTime:9491|NumericalSolverInterpretingSolution:504),(TransformationExecutionTime194|StateCoderTime:1057|ForwardTime:3165|Backtrackingtime:916|GlobalConstraintEvaluationTime:142|FitnessCalculationTime:161|ActivationSelectionTime:4|SolutionCopyTime:55|NumericalSolverSumTime:12751|NumericalSolverProblemFormingTime:12412|NumericalSolverSolvingTime:12412|NumericalSolverInterpretingSolution:547),(TransformationExecutionTime203|StateCoderTime:1151|ForwardTime:3464|Backtrackingtime:1086|GlobalConstraintEvaluationTime:147|FitnessCalculationTime:161|ActivationSelectionTime:4|SolutionCopyTime:66|NumericalSolverSumTime:16025|NumericalSolverProblemFormingTime:15702|NumericalSolverSolvingTime:15702|NumericalSolverInterpretingSolution:615),(TransformationExecutionTime215|StateCoderTime:1246|ForwardTime:3765|Backtrackingtime:1215|GlobalConstraintEvaluationTime:152|FitnessCalculationTime:161|ActivationSelectionTime:5|SolutionCopyTime:75|NumericalSolverSumTime:19113|NumericalSolverProblemFormingTime:18809|NumericalSolverSolvingTime:18809|NumericalSolverInterpretingSolution:721),(TransformationExecutionTime226|StateCoderTime:1352|ForwardTime:4089|Backtrackingtime:1369|GlobalConstraintEvaluationTime:156|FitnessCalculationTime:161|ActivationSelectionTime:5|SolutionCopyTime:88|NumericalSolverSumTime:22319|NumericalSolverProblemFormingTime:22064|NumericalSolverSolvingTime:22064|NumericalSolverInterpretingSolution:804),(TransformationExecutionTime241|StateCoderTime:1478|ForwardTime:4395|Backtrackingtime:1512|GlobalConstraintEvaluationTime:160|FitnessCalculationTime:161|ActivationSelectionTime:5|SolutionCopyTime:102|NumericalSolverSumTime:25900|NumericalSolverProblemFormingTime:25664|NumericalSolverSolvingTime:25664|NumericalSolverInterpretingSolution:955),(TransformationExecutionTime252|StateCoderTime:1630|ForwardTime:4770|Backtrackingtime:1626|GlobalConstraintEvaluationTime:166|FitnessCalculationTime:161|ActivationSelectionTime:5|SolutionCopyTime:121|NumericalSolverSumTime:30532|NumericalSolverProblemFormingTime:30342|NumericalSolverSolvingTime:30342|NumericalSolverInterpretingSolution:984),(TransformationExecutionTime268|StateCoderTime:1781|ForwardTime:5284|Backtrackingtime:1781|GlobalConstraintEvaluationTime:171|FitnessCalculationTime:161|ActivationSelectionTime:5|SolutionCopyTime:130|NumericalSolverSumTime:35154|NumericalSolverProblemFormingTime:35000|NumericalSolverSolvingTime:35000|NumericalSolverInterpretingSolution:1038),(TransformationExecutionTime288|StateCoderTime:1947|ForwardTime:5919|Backtrackingtime:1949|GlobalConstraintEvaluationTime:189|FitnessCalculationTime:161|ActivationSelectionTime:6|SolutionCopyTime:141|NumericalSolverSumTime:39426|NumericalSolverProblemFormingTime:39283|NumericalSolverSolvingTime:39283|NumericalSolverInterpretingSolution:1147),877,288,74,0,425,1947,0,141,1029,5919,1980,189,161,6,1028,1334,693,0,39426,213,39283,1147,89,644,0 | ||
3 | |||
diff --git a/Domains/crossingScenario/results-prelim/stats1515.csv b/Domains/crossingScenario/results-prelim/stats1515.csv new file mode 100644 index 00000000..b4629b3c --- /dev/null +++ b/Domains/crossingScenario/results-prelim/stats1515.csv | |||
@@ -0,0 +1,3 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,Solution0FoundAt,Solution1FoundAt,Solution2FoundAt,Solution3FoundAt,Solution4FoundAt,Solution5FoundAt,Solution6FoundAt,Solution7FoundAt,Solution8FoundAt,Solution9FoundAt,Solution1DetailedStatistics,Solution2DetailedStatistics,Solution3DetailedStatistics,Solution4DetailedStatistics,Solution5DetailedStatistics,Solution6DetailedStatistics,Solution7DetailedStatistics,Solution8DetailedStatistics,Solution9DetailedStatistics,Solution10DetailedStatistics,ExplorationInitializationTime,TransformationExecutionTime,ScopePropagationTime,MustRelationPropagationTime,TypeAnalysisTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime,States,ForwardTime,BacktrackingTime,GlobalConstraintEvaluationTime,FitnessCalculationTime,ActivationSelectionTime,Decisions,Transformations,ScopePropagations,ScopePropagationsSolverCalls,NumericalSolverSumTime,NumericalSolverProblemFormingTime,NumericalSolverSolvingTime,NumericalSolverInterpretingSolution,NumericalSolverCachingTime,NumericalSolverCallNumber,NumericalSolverCachedAnswerNumber | ||
2 | 1,1,ModelResultImpl,8909,26896,147364,4539,43585,55701,66321,75680,88212,97969,110930,122811,135475,147093,(TransformationExecutionTime303|StateCoderTime:2016|ForwardTime:4913|Backtrackingtime:1500|GlobalConstraintEvaluationTime:162|FitnessCalculationTime:112|ActivationSelectionTime:7|SolutionCopyTime:29|NumericalSolverSumTime:33695|NumericalSolverProblemFormingTime:33071|NumericalSolverSolvingTime:33071|NumericalSolverInterpretingSolution:23),(TransformationExecutionTime347|StateCoderTime:2433|ForwardTime:6020|Backtrackingtime:1930|GlobalConstraintEvaluationTime:172|FitnessCalculationTime:112|ActivationSelectionTime:8|SolutionCopyTime:61|NumericalSolverSumTime:43518|NumericalSolverProblemFormingTime:42992|NumericalSolverSolvingTime:42992|NumericalSolverInterpretingSolution:1719),(TransformationExecutionTime369|StateCoderTime:2705|ForwardTime:6493|Backtrackingtime:2159|GlobalConstraintEvaluationTime:179|FitnessCalculationTime:112|ActivationSelectionTime:8|SolutionCopyTime:80|NumericalSolverSumTime:52854|NumericalSolverProblemFormingTime:52340|NumericalSolverSolvingTime:52340|NumericalSolverInterpretingSolution:2050),(TransformationExecutionTime387|StateCoderTime:3023|ForwardTime:7076|Backtrackingtime:2414|GlobalConstraintEvaluationTime:186|FitnessCalculationTime:112|ActivationSelectionTime:8|SolutionCopyTime:91|NumericalSolverSumTime:60837|NumericalSolverProblemFormingTime:60372|NumericalSolverSolvingTime:60372|NumericalSolverInterpretingSolution:2100),(TransformationExecutionTime416|StateCoderTime:3404|ForwardTime:7759|Backtrackingtime:2662|GlobalConstraintEvaluationTime:195|FitnessCalculationTime:112|ActivationSelectionTime:9|SolutionCopyTime:111|NumericalSolverSumTime:71781|NumericalSolverProblemFormingTime:71360|NumericalSolverSolvingTime:71360|NumericalSolverInterpretingSolution:2284),(TransformationExecutionTime431|StateCoderTime:3688|ForwardTime:8238|Backtrackingtime:2873|GlobalConstraintEvaluationTime:204|FitnessCalculationTime:112|ActivationSelectionTime:9|SolutionCopyTime:143|NumericalSolverSumTime:80265|NumericalSolverProblemFormingTime:79879|NumericalSolverSolvingTime:79879|NumericalSolverInterpretingSolution:4294),(TransformationExecutionTime454|StateCoderTime:4163|ForwardTime:8946|Backtrackingtime:3138|GlobalConstraintEvaluationTime:212|FitnessCalculationTime:112|ActivationSelectionTime:10|SolutionCopyTime:182|NumericalSolverSumTime:91499|NumericalSolverProblemFormingTime:91124|NumericalSolverSolvingTime:91124|NumericalSolverInterpretingSolution:5232),(TransformationExecutionTime468|StateCoderTime:4556|ForwardTime:9636|Backtrackingtime:3481|GlobalConstraintEvaluationTime:221|FitnessCalculationTime:112|ActivationSelectionTime:11|SolutionCopyTime:245|NumericalSolverSumTime:101575|NumericalSolverProblemFormingTime:101228|NumericalSolverSolvingTime:101228|NumericalSolverInterpretingSolution:7283),(TransformationExecutionTime493|StateCoderTime:5131|ForwardTime:10356|Backtrackingtime:3869|GlobalConstraintEvaluationTime:228|FitnessCalculationTime:112|ActivationSelectionTime:15|SolutionCopyTime:257|NumericalSolverSumTime:112229|NumericalSolverProblemFormingTime:111903|NumericalSolverSolvingTime:111903|NumericalSolverInterpretingSolution:7470),(TransformationExecutionTime505|StateCoderTime:5330|ForwardTime:11359|Backtrackingtime:4059|GlobalConstraintEvaluationTime:236|FitnessCalculationTime:112|ActivationSelectionTime:16|SolutionCopyTime:264|NumericalSolverSumTime:122243|NumericalSolverProblemFormingTime:122057|NumericalSolverSolvingTime:122057|NumericalSolverInterpretingSolution:7581),865,505,129,0,359,5330,0,264,1467,11359,4130,236,112,16,1466,2149,1125,0,122243,535,122057,7581,192,917,0 | ||
3 | |||
diff --git a/Domains/crossingScenario/results-prelim/stats2020.csv b/Domains/crossingScenario/results-prelim/stats2020.csv new file mode 100644 index 00000000..95c7b6ed --- /dev/null +++ b/Domains/crossingScenario/results-prelim/stats2020.csv | |||
@@ -0,0 +1,3 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,Solution0FoundAt,Solution1FoundAt,Solution2FoundAt,Solution3FoundAt,Solution4FoundAt,Solution5FoundAt,Solution6FoundAt,Solution7FoundAt,Solution8FoundAt,Solution9FoundAt,Solution1DetailedStatistics,Solution2DetailedStatistics,Solution3DetailedStatistics,Solution4DetailedStatistics,Solution5DetailedStatistics,Solution6DetailedStatistics,Solution7DetailedStatistics,Solution8DetailedStatistics,Solution9DetailedStatistics,Solution10DetailedStatistics,ExplorationInitializationTime,TransformationExecutionTime,ScopePropagationTime,MustRelationPropagationTime,TypeAnalysisTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime,States,ForwardTime,BacktrackingTime,GlobalConstraintEvaluationTime,FitnessCalculationTime,ActivationSelectionTime,Decisions,Transformations,ScopePropagations,ScopePropagationsSolverCalls,NumericalSolverSumTime,NumericalSolverProblemFormingTime,NumericalSolverSolvingTime,NumericalSolverInterpretingSolution,NumericalSolverCachingTime,NumericalSolverCallNumber,NumericalSolverCachedAnswerNumber | ||
2 | 1,1,ModelResultImpl,8960,38152,426782,5154,117015,139402,165609,258797,291602,320720,333001,373921,402602,426376,(TransformationExecutionTime494|StateCoderTime:3907|ForwardTime:8581|Backtrackingtime:2766|GlobalConstraintEvaluationTime:412|FitnessCalculationTime:226|ActivationSelectionTime:18|SolutionCopyTime:21|NumericalSolverSumTime:99075|NumericalSolverProblemFormingTime:97727|NumericalSolverSolvingTime:97727|NumericalSolverInterpretingSolution:5),(TransformationExecutionTime529|StateCoderTime:4517|ForwardTime:9707|Backtrackingtime:3074|GlobalConstraintEvaluationTime:427|FitnessCalculationTime:226|ActivationSelectionTime:19|SolutionCopyTime:29|NumericalSolverSumTime:118946|NumericalSolverProblemFormingTime:117798|NumericalSolverSolvingTime:117798|NumericalSolverInterpretingSolution:388),(TransformationExecutionTime544|StateCoderTime:4788|ForwardTime:10245|Backtrackingtime:3260|GlobalConstraintEvaluationTime:437|FitnessCalculationTime:226|ActivationSelectionTime:20|SolutionCopyTime:92|NumericalSolverSumTime:143648|NumericalSolverProblemFormingTime:142864|NumericalSolverSolvingTime:142864|NumericalSolverInterpretingSolution:2381),(TransformationExecutionTime585|StateCoderTime:5301|ForwardTime:11459|Backtrackingtime:3906|GlobalConstraintEvaluationTime:448|FitnessCalculationTime:226|ActivationSelectionTime:20|SolutionCopyTime:102|NumericalSolverSumTime:233896|NumericalSolverProblemFormingTime:232994|NumericalSolverSolvingTime:232994|NumericalSolverInterpretingSolution:2689),(TransformationExecutionTime624|StateCoderTime:5709|ForwardTime:12394|Backtrackingtime:4231|GlobalConstraintEvaluationTime:457|FitnessCalculationTime:226|ActivationSelectionTime:21|SolutionCopyTime:115|NumericalSolverSumTime:264480|NumericalSolverProblemFormingTime:263825|NumericalSolverSolvingTime:263825|NumericalSolverInterpretingSolution:2953),(TransformationExecutionTime654|StateCoderTime:6243|ForwardTime:13200|Backtrackingtime:4497|GlobalConstraintEvaluationTime:465|FitnessCalculationTime:226|ActivationSelectionTime:22|SolutionCopyTime:125|NumericalSolverSumTime:291496|NumericalSolverProblemFormingTime:291108|NumericalSolverSolvingTime:291108|NumericalSolverInterpretingSolution:3763),(TransformationExecutionTime666|StateCoderTime:6435|ForwardTime:13585|Backtrackingtime:4642|GlobalConstraintEvaluationTime:472|FitnessCalculationTime:226|ActivationSelectionTime:22|SolutionCopyTime:158|NumericalSolverSumTime:302593|NumericalSolverProblemFormingTime:302543|NumericalSolverSolvingTime:302543|NumericalSolverInterpretingSolution:3952),(TransformationExecutionTime687|StateCoderTime:6874|ForwardTime:14385|Backtrackingtime:4953|GlobalConstraintEvaluationTime:481|FitnessCalculationTime:226|ActivationSelectionTime:23|SolutionCopyTime:168|NumericalSolverSumTime:341436|NumericalSolverProblemFormingTime:341581|NumericalSolverSolvingTime:341581|NumericalSolverInterpretingSolution:4292),(TransformationExecutionTime743|StateCoderTime:7449|ForwardTime:16003|Backtrackingtime:5450|GlobalConstraintEvaluationTime:488|FitnessCalculationTime:226|ActivationSelectionTime:24|SolutionCopyTime:186|NumericalSolverSumTime:366975|NumericalSolverProblemFormingTime:367335|NumericalSolverSolvingTime:367335|NumericalSolverInterpretingSolution:4611),(TransformationExecutionTime770|StateCoderTime:7890|ForwardTime:17008|Backtrackingtime:5725|GlobalConstraintEvaluationTime:496|FitnessCalculationTime:226|ActivationSelectionTime:24|SolutionCopyTime:193|NumericalSolverSumTime:388630|NumericalSolverProblemFormingTime:389219|NumericalSolverSolvingTime:389219|NumericalSolverInterpretingSolution:4691),1756,770,161,0,482,7890,0,193,1913,17008,5828,496,226,24,1923,3123,1560,0,388630,758,389219,4691,326,1157,0 | ||
3 | |||
diff --git a/Domains/crossingScenario/results-prelim/stats2525.csv b/Domains/crossingScenario/results-prelim/stats2525.csv new file mode 100644 index 00000000..3ef3b993 --- /dev/null +++ b/Domains/crossingScenario/results-prelim/stats2525.csv | |||
@@ -0,0 +1,3 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,Solution0FoundAt,Solution1FoundAt,Solution2FoundAt,Solution3FoundAt,Solution4FoundAt,Solution5FoundAt,Solution6FoundAt,Solution7FoundAt,Solution8FoundAt,Solution9FoundAt,Solution1DetailedStatistics,Solution2DetailedStatistics,Solution3DetailedStatistics,Solution4DetailedStatistics,Solution5DetailedStatistics,Solution6DetailedStatistics,Solution7DetailedStatistics,Solution8DetailedStatistics,Solution9DetailedStatistics,Solution10DetailedStatistics,ExplorationInitializationTime,TransformationExecutionTime,ScopePropagationTime,MustRelationPropagationTime,TypeAnalysisTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime,States,ForwardTime,BacktrackingTime,GlobalConstraintEvaluationTime,FitnessCalculationTime,ActivationSelectionTime,Decisions,Transformations,ScopePropagations,ScopePropagationsSolverCalls,NumericalSolverSumTime,NumericalSolverProblemFormingTime,NumericalSolverSolvingTime,NumericalSolverInterpretingSolution,NumericalSolverCachingTime,NumericalSolverCallNumber,NumericalSolverCachedAnswerNumber | ||
2 | 1,1,ModelResultImpl,16616,45089,845556,6143,292654,361779,420309,481525,545119,607816,665526,713971,778821,844868,(TransformationExecutionTime635|StateCoderTime:5581|ForwardTime:12383|Backtrackingtime:3798|GlobalConstraintEvaluationTime:254|FitnessCalculationTime:83|ActivationSelectionTime:18|SolutionCopyTime:115|NumericalSolverSumTime:268490|NumericalSolverProblemFormingTime:267792|NumericalSolverSolvingTime:267792|NumericalSolverInterpretingSolution:19),(TransformationExecutionTime731|StateCoderTime:6897|ForwardTime:14757|Backtrackingtime:4503|GlobalConstraintEvaluationTime:272|FitnessCalculationTime:83|ActivationSelectionTime:19|SolutionCopyTime:122|NumericalSolverSumTime:332112|NumericalSolverProblemFormingTime:331778|NumericalSolverSolvingTime:331778|NumericalSolverInterpretingSolution:1898),(TransformationExecutionTime764|StateCoderTime:7443|ForwardTime:15699|Backtrackingtime:4794|GlobalConstraintEvaluationTime:283|FitnessCalculationTime:83|ActivationSelectionTime:20|SolutionCopyTime:167|NumericalSolverSumTime:388161|NumericalSolverProblemFormingTime:388433|NumericalSolverSolvingTime:388433|NumericalSolverInterpretingSolution:2204),(TransformationExecutionTime799|StateCoderTime:8129|ForwardTime:16840|Backtrackingtime:5221|GlobalConstraintEvaluationTime:300|FitnessCalculationTime:83|ActivationSelectionTime:21|SolutionCopyTime:184|NumericalSolverSumTime:446208|NumericalSolverProblemFormingTime:447299|NumericalSolverSolvingTime:447299|NumericalSolverInterpretingSolution:3008),(TransformationExecutionTime835|StateCoderTime:8878|ForwardTime:17877|Backtrackingtime:5537|GlobalConstraintEvaluationTime:310|FitnessCalculationTime:83|ActivationSelectionTime:22|SolutionCopyTime:191|NumericalSolverSumTime:506613|NumericalSolverProblemFormingTime:508301|NumericalSolverSolvingTime:508301|NumericalSolverInterpretingSolution:3261),(TransformationExecutionTime933|StateCoderTime:9919|ForwardTime:20737|Backtrackingtime:6289|GlobalConstraintEvaluationTime:320|FitnessCalculationTime:83|ActivationSelectionTime:22|SolutionCopyTime:203|NumericalSolverSumTime:563726|NumericalSolverProblemFormingTime:565943|NumericalSolverSolvingTime:565943|NumericalSolverInterpretingSolution:3396),(TransformationExecutionTime974|StateCoderTime:11009|ForwardTime:22343|Backtrackingtime:6905|GlobalConstraintEvaluationTime:331|FitnessCalculationTime:83|ActivationSelectionTime:23|SolutionCopyTime:213|NumericalSolverSumTime:617206|NumericalSolverProblemFormingTime:619686|NumericalSolverSolvingTime:619686|NumericalSolverInterpretingSolution:3626),(TransformationExecutionTime1001|StateCoderTime:11697|ForwardTime:23206|Backtrackingtime:7223|GlobalConstraintEvaluationTime:339|FitnessCalculationTime:83|ActivationSelectionTime:24|SolutionCopyTime:244|NumericalSolverSumTime:663109|NumericalSolverProblemFormingTime:665951|NumericalSolverSolvingTime:665951|NumericalSolverInterpretingSolution:4870),(TransformationExecutionTime1049|StateCoderTime:12433|ForwardTime:24701|Backtrackingtime:7654|GlobalConstraintEvaluationTime:348|FitnessCalculationTime:83|ActivationSelectionTime:25|SolutionCopyTime:250|NumericalSolverSumTime:724603|NumericalSolverProblemFormingTime:727988|NumericalSolverSolvingTime:727988|NumericalSolverInterpretingSolution:5635),(TransformationExecutionTime1126|StateCoderTime:13570|ForwardTime:26801|Backtrackingtime:8243|GlobalConstraintEvaluationTime:373|FitnessCalculationTime:83|ActivationSelectionTime:26|SolutionCopyTime:259|NumericalSolverSumTime:785878|NumericalSolverProblemFormingTime:789775|NumericalSolverSolvingTime:789775|NumericalSolverInterpretingSolution:5726),836,1126,209,0,1317,13570,0,259,2859,26801,8319,373,83,26,2859,5353,2592,0,785878,1005,789775,5726,409,1693,0 | ||
3 | |||
diff --git a/Domains/crossingScenario/src/crossingScenario/run/CrossingScenarioMain.java b/Domains/crossingScenario/src/crossingScenario/run/CrossingScenarioMain.java index 9b8f10dc..57a91dfc 100644 --- a/Domains/crossingScenario/src/crossingScenario/run/CrossingScenarioMain.java +++ b/Domains/crossingScenario/src/crossingScenario/run/CrossingScenarioMain.java | |||
@@ -3,9 +3,11 @@ package crossingScenario.run; | |||
3 | import java.awt.Desktop; | 3 | import java.awt.Desktop; |
4 | import java.io.File; | 4 | import java.io.File; |
5 | import java.io.IOException; | 5 | import java.io.IOException; |
6 | import java.nio.file.CopyOption; | ||
6 | import java.nio.file.Files; | 7 | import java.nio.file.Files; |
7 | import java.nio.file.Path; | 8 | import java.nio.file.Path; |
8 | import java.nio.file.Paths; | 9 | import java.nio.file.Paths; |
10 | import java.nio.file.StandardCopyOption; | ||
9 | import java.util.List; | 11 | import java.util.List; |
10 | 12 | ||
11 | import hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor; | 13 | import hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor; |
@@ -26,7 +28,12 @@ public class CrossingScenarioMain { | |||
26 | if (errorMessages != null) { | 28 | if (errorMessages != null) { |
27 | System.out.println(errorMessages); | 29 | System.out.println(errorMessages); |
28 | } | 30 | } |
29 | Path path = Paths.get("outputs/statistics.csv"); | 31 | |
32 | |||
33 | Path path = Paths.get("outputs/statistics.csv"); | ||
34 | Path target = Paths.get("../..//Tests/MODELS2020-CaseStudies/case.study.pledge.run/measurements1/stats.csv"); | ||
35 | Files.copy(path, target, StandardCopyOption.REPLACE_EXISTING); | ||
36 | |||
30 | List<String> content = Files.readAllLines(path); | 37 | List<String> content = Files.readAllLines(path); |
31 | String[] times = content.get(1).split(","); | 38 | String[] times = content.get(1).split(","); |
32 | System.out.println("STATISTICS"); | 39 | System.out.println("STATISTICS"); |
@@ -45,7 +52,10 @@ public class CrossingScenarioMain { | |||
45 | 52 | ||
46 | String p1 = "outputs/models/1.xmi"; | 53 | String p1 = "outputs/models/1.xmi"; |
47 | String p2 = "outputs/simplePrevLane.tgf"; | 54 | String p2 = "outputs/simplePrevLane.tgf"; |
48 | QueryDebug.checkPrevLanes(p1, p2); | 55 | // QueryDebug.checkPrevLanes(p1, p2); |
49 | // Desktop.getDesktop().open(new File(p2)); | 56 | // Desktop.getDesktop().open(new File(p2)); |
57 | System.gc(); | ||
58 | System.gc(); | ||
59 | System.gc(); | ||
50 | } | 60 | } |
51 | } | 61 | } |
diff --git a/Domains/crossingScenario/src/queries/queries.vql b/Domains/crossingScenario/src/queries/queries.vql new file mode 100644 index 00000000..d00fae3f --- /dev/null +++ b/Domains/crossingScenario/src/queries/queries.vql | |||
@@ -0,0 +1,10 @@ | |||
1 | package queries | ||
2 | |||
3 | import "http://www.example.com/crossingScenario" | ||
4 | import "http://www.eclipse.org/emf/2002/Ecore" | ||
5 | |||
6 | /////////pedestrian-width (4) //TODO Derived? | ||
7 | pattern x(p:Pedestrian) { | ||
8 | Pedestrian.length(p, l); | ||
9 | check(l != 1.0); | ||
10 | } \ No newline at end of file | ||