From 59991f9df55880b52934d7aee29f16e0f1690f6a Mon Sep 17 00:00:00 2001 From: potassco-bot Date: Tue, 28 Nov 2017 05:34:06 +0100 Subject: [PATCH] Add benchmark result [gc-ta1-tt1 | ipc-2000 | blocks-strips-typed | 52] --- .../ipc-2000_blocks-strips-typed_52.env | 51 +++ .../ipc-2000_blocks-strips-typed_52.err | 18 + .../ipc-2000_blocks-strips-typed_52.out | 355 ++++++++++++++++++ 3 files changed, 424 insertions(+) create mode 100644 gc-ta1-tt1/ipc-2000_blocks-strips-typed_52.env create mode 100644 gc-ta1-tt1/ipc-2000_blocks-strips-typed_52.err create mode 100644 gc-ta1-tt1/ipc-2000_blocks-strips-typed_52.out diff --git a/gc-ta1-tt1/ipc-2000_blocks-strips-typed_52.env b/gc-ta1-tt1/ipc-2000_blocks-strips-typed_52.env new file mode 100644 index 000000000..7e13a3a46 --- /dev/null +++ b/gc-ta1-tt1/ipc-2000_blocks-strips-typed_52.env @@ -0,0 +1,51 @@ +command: +- timeout +- -m=8000000 +- -t=900 +- python3 +- /home/pluehne/Documents/ASP/plasp-javier/encodings/planner/runplanner.py +- --domain=/home/pluehne/Documents/ASP/pddl-instances/ipc-2000/domains/blocks-strips-typed/domain.pddl +- /home/pluehne/Documents/ASP/pddl-instances/ipc-2000/domains/blocks-strips-typed/instances/instance-52.pddl +- --stats +- --verbose +- --print-call +- --translate +- -B 0.9 +- --parallel=0 +- --shallow +- --use-heuristic +- --test-until-not-sat +- --test=0 +- --test-add=1 +- --test-times=1 +configuration: + id: gc-ta1-tt1 + instanceSets: + - lpnmr-first-plan-not-serializable + - rintanen-aij-2012 + options: + - --stats + - --verbose + - --print-call + - --translate + - -B 0.9 + - --parallel=0 + - --shallow + - --use-heuristic + - --test-until-not-sat + - --test=0 + - --test-add=1 + - --test-times=1 +exitCode: 0 +instance: + domain: blocks-strips-typed + instance: 52 + ipc: ipc-2000 +versions: + clingo: 5.2.2 + fastDownward: 10997:847cdf0069cab0c8841a9958e783d1a7340fe2e9 (2017-11-02 15:10 +0100) + planner: 61750c0521c6104870e5b881c8b0c237e2af4a96 (2017-11-27 07:44:27 +0100) + plasp: 3.1.1 + python: 3.6.3 +workingDirectory: /home/pluehne/Documents/ASP/plasp-javier/encodings/planner + diff --git a/gc-ta1-tt1/ipc-2000_blocks-strips-typed_52.err b/gc-ta1-tt1/ipc-2000_blocks-strips-typed_52.err new file mode 100644 index 000000000..e94f0b7cb --- /dev/null +++ b/gc-ta1-tt1/ipc-2000_blocks-strips-typed_52.err @@ -0,0 +1,18 @@ +# configuration: {'id': 'gc-ta1-tt1', 'options': ['--stats', '--verbose', '--print-call', '--translate', '-B 0.9', '--parallel=0', '--shallow', '--use-heuristic', '--test-until-not-sat', '--test=0', '--test-add=1', '--test-times=1'], 'instanceSets': ['lpnmr-first-plan-not-serializable', 'rintanen-aij-2012']} +# instance: {'ipc': 'ipc-2000', 'domain': 'blocks-strips-typed', 'instance': 52} +# command: ['timeout', '-m=8000000', '-t=900', 'python3', '/home/pluehne/Documents/ASP/plasp-javier/encodings/planner/runplanner.py', '--domain=/home/pluehne/Documents/ASP/pddl-instances/ipc-2000/domains/blocks-strips-typed/domain.pddl', '/home/pluehne/Documents/ASP/pddl-instances/ipc-2000/domains/blocks-strips-typed/instances/instance-52.pddl', '--stats', '--verbose', '--print-call', '--translate', '-B 0.9', '--parallel=0', '--shallow', '--use-heuristic', '--test-until-not-sat', '--test=0', '--test-add=1', '--test-times=1'] +# working directory: /home/pluehne/Documents/ASP/plasp-javier/encodings/planner +# exit code: 0 +/home/pluehne/Documents/ASP/plasp-javier/encodings/strips/preprocess.lp:13:4-34: info: atom does not occur in any rule head: + requires(feature(actionCosts)) + +/home/pluehne/Documents/ASP/plasp-javier/encodings/strips/preprocess.lp:14:4-33: info: atom does not occur in any rule head: + requires(feature(axiomRules)) + +/home/pluehne/Documents/ASP/plasp-javier/encodings/strips/preprocess.lp:15:4-41: info: atom does not occur in any rule head: + requires(feature(conditionalEffects)) + +# planner call: /home/wv/bin/linux/64/fast-downward/fast-downward.py --translate --build=release64 /home/pluehne/Documents/ASP/pddl-instances/ipc-2000/domains/blocks-strips-typed/domain.pddl /home/pluehne/Documents/ASP/pddl-instances/ipc-2000/domains/blocks-strips-typed/instances/instance-52.pddl && plasp-3.1.1 translate --parsing-mode=compatibility output.sas | /home/pluehne/Documents/ASP/plasp-javier/encodings/planner/planner.py - /home/pluehne/Documents/ASP/plasp-javier/encodings/strips/preprocess.lp /home/pluehne/Documents/ASP/plasp-javier/encodings/strips/strips-incremental.lp --stats --verbose -B 0.9 --test-until-not-sat --query-at-last --check-at-last --forbid-actions --force-actions -c planner_on=1 --test=- --test=/home/pluehne/Documents/ASP/plasp-javier/encodings/planner/test_files/test.lp /home/pluehne/Documents/ASP/plasp-javier/encodings/planner/test_files/block_forall_t.lp --test-once --heuristic=Domain /home/pluehne/Documents/ASP/plasp-javier/encodings/planner/heuristic.lp -c _shallow=1 -c _closure=3 -c _parallel=0 +FINISHED CPU 42.19 MEM 33472 MAXMEM 691752 STALE 1 MAXMEM_RSS 630356 + + diff --git a/gc-ta1-tt1/ipc-2000_blocks-strips-typed_52.out b/gc-ta1-tt1/ipc-2000_blocks-strips-typed_52.out new file mode 100644 index 000000000..63ab68a54 --- /dev/null +++ b/gc-ta1-tt1/ipc-2000_blocks-strips-typed_52.out @@ -0,0 +1,355 @@ +INFO Running translator. +INFO translator input: ['/home/pluehne/Documents/ASP/pddl-instances/ipc-2000/domains/blocks-strips-typed/domain.pddl', '/home/pluehne/Documents/ASP/pddl-instances/ipc-2000/domains/blocks-strips-typed/instances/instance-52.pddl'] +INFO translator arguments: [] +INFO translator time limit: None +INFO translator memory limit: None +INFO callstring: /home/pluehne/.usr/bin/python /home/wv/bin/linux/64/fast-downward-10997/builds/release64/bin/translate/translate.py /home/pluehne/Documents/ASP/pddl-instances/ipc-2000/domains/blocks-strips-typed/domain.pddl /home/pluehne/Documents/ASP/pddl-instances/ipc-2000/domains/blocks-strips-typed/instances/instance-52.pddl +Parsing... +Parsing: [0.020s CPU, 0.018s wall-clock] +Normalizing task... [0.000s CPU, 0.002s wall-clock] +Instantiating... +Generating Datalog program... [0.000s CPU, 0.006s wall-clock] +Normalizing Datalog program... +Normalizing Datalog program: [0.010s CPU, 0.012s wall-clock] +Preparing model... [0.010s CPU, 0.011s wall-clock] +Generated 21 rules. +Computing model... [0.260s CPU, 0.264s wall-clock] +2077 relevant atoms +1375 auxiliary atoms +3452 final queue length +6005 total queue pushes +Completing instantiation... [0.420s CPU, 0.417s wall-clock] +Instantiating: [0.700s CPU, 0.714s wall-clock] +Computing fact groups... +Finding invariants... +10 initial candidates +Finding invariants: [0.020s CPU, 0.022s wall-clock] +Checking invariant weight... [0.010s CPU, 0.004s wall-clock] +Instantiating groups... [0.030s CPU, 0.028s wall-clock] +Collecting mutex groups... [0.000s CPU, 0.005s wall-clock] +Choosing groups... +26 uncovered facts +Choosing groups: [0.030s CPU, 0.027s wall-clock] +Building translation key... [0.020s CPU, 0.009s wall-clock] +Computing fact groups: [0.160s CPU, 0.151s wall-clock] +Building STRIPS to SAS dictionary... [0.000s CPU, 0.004s wall-clock] +Building dictionary for full mutex groups... [0.010s CPU, 0.009s wall-clock] +Building mutex information... +Building mutex information: [0.010s CPU, 0.016s wall-clock] +Translating task... +Processing axioms... +Simplifying axioms... [0.000s CPU, 0.000s wall-clock] +Processing axioms: [0.020s CPU, 0.021s wall-clock] +Translating task: [0.490s CPU, 0.488s wall-clock] +1850 effect conditions simplified +0 implied preconditions added +Detecting unreachable propositions... +0 operators removed +0 axioms removed +50 propositions removed +Detecting unreachable propositions: [0.300s CPU, 0.299s wall-clock] +Reordering and filtering variables... +51 of 51 variables necessary. +26 of 51 mutex groups necessary. +1250 of 1250 operators necessary. +0 of 0 axiom rules necessary. +Reordering and filtering variables: [0.150s CPU, 0.150s wall-clock] +Translator variables: 51 +Translator derived variables: 0 +Translator facts: 702 +Translator goal facts: 24 +Translator mutex groups: 26 +Translator total mutex groups size: 676 +Translator operators: 1250 +Translator axioms: 0 +Translator task size: 10753 +Translator peak memory: 42700 KB +Writing output... [0.190s CPU, 0.195s wall-clock] +Done! [2.050s CPU, 2.069s wall-clock] +planner.py version 0.0.1 + +Time: 0.36s +Memory: 71MB + +Iteration 1 +Queue: [(0,0,0,True), (1,5,0,True), (2,10,0,True), (3,15,0,True), (4,20,0,True), (5,25,0,True), (6,30,0,True)] +Grounded Until: 0 +Solving... +Solving Time: 0.00s +Memory: 71MB (+0MB) +UNSAT +Iteration Time: 0.00s + +Iteration 2 +Queue: [(1,5,0,True), (2,10,0,True), (3,15,0,True), (4,20,0,True), (5,25,0,True), (6,30,0,True)] +Grounded Until: 0 +Grounding... [('step', [1]), ('step', [2]), ('step', [3]), ('step', [4]), ('step', [5]), ('check', [5])] +Grounding Time: 0.14s +Memory: 74MB (+3MB) +Unblocking actions... +Solving... +Solving Time: 0.01s +Memory: 77MB (+3MB) +UNSAT +Iteration Time: 0.19s + +Iteration 3 +Queue: [(2,10,0,True), (3,15,0,True), (4,20,0,True), (5,25,0,True), (6,30,0,True)] +Grounded Until: 5 +Grounding... [('step', [6]), ('step', [7]), ('step', [8]), ('step', [9]), ('step', [10]), ('check', [10])] +Grounding Time: 0.16s +Memory: 85MB (+8MB) +Unblocking actions... +Solving... +Solving Time: 0.01s +Memory: 88MB (+3MB) +UNSAT +Iteration Time: 0.23s + +Iteration 4 +Queue: [(3,15,0,True), (4,20,0,True), (5,25,0,True), (6,30,0,True)] +Grounded Until: 10 +Grounding... [('step', [11]), ('step', [12]), ('step', [13]), ('step', [14]), ('step', [15]), ('check', [15])] +Grounding Time: 0.16s +Memory: 94MB (+6MB) +Unblocking actions... +Solving... +Solving Time: 0.01s +Memory: 97MB (+3MB) +UNSAT +Iteration Time: 0.23s + +Iteration 5 +Queue: [(4,20,0,True), (5,25,0,True), (6,30,0,True)] +Grounded Until: 15 +Grounding... [('step', [16]), ('step', [17]), ('step', [18]), ('step', [19]), ('step', [20]), ('check', [20])] +Grounding Time: 0.20s +Memory: 106MB (+9MB) +Unblocking actions... +Solving... +Solving Time: 0.01s +Memory: 111MB (+5MB) +UNSAT +Iteration Time: 0.28s + +Iteration 6 +Queue: [(5,25,0,True), (6,30,0,True)] +Grounded Until: 20 +Grounding... [('step', [21]), ('step', [22]), ('step', [23]), ('step', [24]), ('step', [25]), ('check', [25])] +Grounding Time: 0.16s +Memory: 116MB (+5MB) +Unblocking actions... +Solving... +Solving Time: 0.01s +Memory: 123MB (+7MB) +UNSAT +Iteration Time: 0.24s + +Iteration 7 +Queue: [(6,30,0,True)] +Grounded Until: 25 +Grounding... [('step', [26]), ('step', [27]), ('step', [28]), ('step', [29]), ('step', [30]), ('check', [30])] +Grounding Time: 0.16s +Memory: 128MB (+5MB) +Unblocking actions... +Solving... +Solving Time: 0.02s +Memory: 130MB (+2MB) +UNSAT +Iteration Time: 0.25s + +Iteration 8 +Queue: [(7,35,0,True), (8,40,0,True), (9,45,0,True), (10,50,0,True), (11,55,0,True), (12,60,0,True), (13,65,0,True)] +Grounded Until: 30 +Grounding... [('step', [31]), ('step', [32]), ('step', [33]), ('step', [34]), ('step', [35]), ('check', [35])] +Grounding Time: 0.17s +Memory: 137MB (+7MB) +Unblocking actions... +Solving... +Solving Time: 0.03s +Memory: 145MB (+8MB) +UNSAT +Iteration Time: 0.27s + +Iteration 9 +Queue: [(8,40,0,True), (9,45,0,True), (10,50,0,True), (11,55,0,True), (12,60,0,True), (13,65,0,True)] +Grounded Until: 35 +Grounding... [('step', [36]), ('step', [37]), ('step', [38]), ('step', [39]), ('step', [40]), ('check', [40])] +Grounding Time: 0.24s +Memory: 155MB (+10MB) +Unblocking actions... +Solving... +Solving Time: 0.03s +Memory: 159MB (+4MB) +UNSAT +Iteration Time: 0.35s + +Iteration 10 +Queue: [(9,45,0,True), (10,50,0,True), (11,55,0,True), (12,60,0,True), (13,65,0,True)] +Grounded Until: 40 +Grounding... [('step', [41]), ('step', [42]), ('step', [43]), ('step', [44]), ('step', [45]), ('check', [45])] +Grounding Time: 0.17s +Memory: 164MB (+5MB) +Unblocking actions... +Solving... +Solving Time: 0.04s +Memory: 167MB (+3MB) +UNSAT +Iteration Time: 0.29s + +Iteration 11 +Queue: [(10,50,0,True), (11,55,0,True), (12,60,0,True), (13,65,0,True)] +Grounded Until: 45 +Grounding... [('step', [46]), ('step', [47]), ('step', [48]), ('step', [49]), ('step', [50]), ('check', [50])] +Grounding Time: 0.17s +Memory: 173MB (+6MB) +Unblocking actions... +Solving... +Solving Time: 0.05s +Memory: 179MB (+6MB) +UNSAT +Iteration Time: 0.32s + +Iteration 12 +Queue: [(11,55,0,True), (12,60,0,True), (13,65,0,True)] +Grounded Until: 50 +Grounding... [('step', [51]), ('step', [52]), ('step', [53]), ('step', [54]), ('step', [55]), ('check', [55])] +Grounding Time: 0.17s +Memory: 183MB (+4MB) +Unblocking actions... +Solving... +Solving Time: 0.13s +Memory: 197MB (+14MB) +UNSAT +Iteration Time: 0.39s + +Iteration 13 +Queue: [(12,60,0,True), (13,65,0,True)] +Grounded Until: 55 +Grounding... [('step', [56]), ('step', [57]), ('step', [58]), ('step', [59]), ('step', [60]), ('check', [60])] +Grounding Time: 0.17s +Memory: 197MB (+0MB) +Unblocking actions... +Solving... +Solving Time: 0.15s +Memory: 202MB (+5MB) +UNSAT +Iteration Time: 0.44s + +Iteration 14 +Queue: [(13,65,0,True)] +Grounded Until: 60 +Grounding... [('step', [61]), ('step', [62]), ('step', [63]), ('step', [64]), ('step', [65]), ('check', [65])] +Grounding Time: 0.17s +Memory: 206MB (+4MB) +Unblocking actions... +Solving... +Solving Time: 0.67s +Memory: 211MB (+5MB) +UNSAT +Iteration Time: 0.96s + +Iteration 15 +Queue: [(14,70,0,True), (15,75,0,True), (16,80,0,True), (17,85,0,True), (18,90,0,True), (19,95,0,True), (20,100,0,True)] +Grounded Until: 65 +Grounding... [('step', [66]), ('step', [67]), ('step', [68]), ('step', [69]), ('step', [70]), ('check', [70])] +Grounding Time: 0.18s +Memory: 220MB (+9MB) +Unblocking actions... +Solving... +Solving Time: 1.34s +Memory: 229MB (+9MB) +UNSAT +Iteration Time: 1.63s + +Iteration 16 +Queue: [(15,75,0,True), (16,80,0,True), (17,85,0,True), (18,90,0,True), (19,95,0,True), (20,100,0,True)] +Grounded Until: 70 +Grounding... [('step', [71]), ('step', [72]), ('step', [73]), ('step', [74]), ('step', [75]), ('check', [75])] +Grounding Time: 0.17s +Memory: 240MB (+11MB) +Unblocking actions... +Solving... +Solving Time: 0.20s +Memory: 247MB (+7MB) +UNSAT +Iteration Time: 0.50s + +Iteration 17 +Queue: [(16,80,0,True), (17,85,0,True), (18,90,0,True), (19,95,0,True), (20,100,0,True)] +Grounded Until: 75 +Grounding... [('step', [76]), ('step', [77]), ('step', [78]), ('step', [79]), ('step', [80]), ('check', [80])] +Grounding Time: 0.18s +Memory: 250MB (+3MB) +Unblocking actions... +Solving... +Solving Time: 0.22s +Memory: 271MB (+21MB) +UNSAT +Iteration Time: 0.53s + +Iteration 18 +Queue: [(17,85,0,True), (18,90,0,True), (19,95,0,True), (20,100,0,True)] +Grounded Until: 80 +Grounding... [('step', [81]), ('step', [82]), ('step', [83]), ('step', [84]), ('step', [85]), ('check', [85])] +Grounding Time: 0.33s +Memory: 284MB (+13MB) +Unblocking actions... +Solving... +Solving Time: 28.48s +Memory: 638MB (+354MB) +UNKNOWN +Iteration Time: 28.94s + +Iteration 19 +Queue: [(18,90,0,True), (19,95,0,True), (20,100,0,True)] +Grounded Until: 85 +Grounding... [('step', [86]), ('step', [87]), ('step', [88]), ('step', [89]), ('step', [90]), ('check', [90])] +Grounding Time: 0.16s +Memory: 638MB (+0MB) +Unblocking actions... +Solving... +Solving Time: 1.17s +Memory: 617MB (+-21MB) +SAT +Testing... +SERIALIZABLE +Testing Time: 0.30s +Memory: 617MB (+0MB) +Answer: 1 +occurs(action(("unstack","k","f")),1) occurs(action(("put-down","k")),2) occurs(action(("unstack","f","b")),3) occurs(action(("put-down","f")),4) occurs(action(("unstack","b","y")),5) occurs(action(("put-down","b")),6) occurs(action(("unstack","y","l")),7) occurs(action(("put-down","y")),8) occurs(action(("unstack","l","w")),9) occurs(action(("put-down","l")),10) occurs(action(("unstack","u","g")),11) occurs(action(("put-down","u")),12) occurs(action(("unstack","w","d")),13) occurs(action(("put-down","w")),14) occurs(action(("pick-up","g")),15) occurs(action(("stack","g","u")),16) occurs(action(("unstack","s","q")),17) occurs(action(("stack","s","g")),18) occurs(action(("unstack","d","t")),19) occurs(action(("stack","d","y")),20) occurs(action(("unstack","q","a")),21) occurs(action(("put-down","q")),22) occurs(action(("unstack","t","c")),23) occurs(action(("put-down","t")),24) occurs(action(("unstack","c","i")),25) occurs(action(("stack","c","t")),26) occurs(action(("pick-up","f")),27) occurs(action(("stack","f","w")),28) occurs(action(("pick-up","k")),29) occurs(action(("stack","k","f")),30) occurs(action(("unstack","i","r")),31) occurs(action(("stack","i","l")),32) occurs(action(("unstack","r","p")),33) occurs(action(("put-down","r")),34) occurs(action(("unstack","p","n")),35) occurs(action(("put-down","p")),36) occurs(action(("unstack","n","h")),37) occurs(action(("put-down","n")),38) occurs(action(("unstack","h","o")),39) occurs(action(("stack","h","a")),40) occurs(action(("unstack","o","x")),41) occurs(action(("stack","o","p")),42) occurs(action(("unstack","x","e")),43) occurs(action(("stack","x","k")),44) occurs(action(("unstack","s","g")),45) occurs(action(("stack","s","x")),46) occurs(action(("unstack","e","j")),47) occurs(action(("stack","e","d")),48) occurs(action(("unstack","j","m")),49) occurs(action(("stack","j","s")),50) occurs(action(("unstack","e","d")),51) occurs(action(("stack","e","j")),52) occurs(action(("unstack","m","v")),53) occurs(action(("stack","m","c")),54) occurs(action(("pick-up","v")),55) occurs(action(("stack","v","e")),56) occurs(action(("pick-up","b")),57) occurs(action(("stack","b","v")),58) occurs(action(("unstack","g","u")),59) occurs(action(("stack","g","b")),60) occurs(action(("unstack","h","a")),61) occurs(action(("stack","h","g")),62) occurs(action(("unstack","m","c")),63) occurs(action(("stack","m","h")),64) occurs(action(("unstack","c","t")),65) occurs(action(("stack","c","m")),66) occurs(action(("pick-up","q")),67) occurs(action(("stack","q","c")),68) occurs(action(("unstack","i","l")),69) occurs(action(("stack","i","q")),70) occurs(action(("unstack","d","y")),71) occurs(action(("stack","d","i")),72) occurs(action(("unstack","o","p")),73) occurs(action(("stack","o","d")),74) occurs(action(("pick-up","a")),75) occurs(action(("stack","a","o")),76) occurs(action(("pick-up","u")),77) occurs(action(("stack","u","a")),78) occurs(action(("pick-up","l")),79) occurs(action(("stack","l","u")),80) occurs(action(("pick-up","n")),81) occurs(action(("stack","n","l")),82) occurs(action(("pick-up","r")),83) occurs(action(("stack","r","n")),84) occurs(action(("pick-up","t")),85) occurs(action(("stack","t","r")),86) occurs(action(("pick-up","y")),87) occurs(action(("stack","y","t")),88) occurs(action(("pick-up","p")),89) occurs(action(("stack","p","y")),90) +SATISFIABLE + +Models : 1+ +Calls : 19 +Time : 37.929s (Solving: 32.11s 1st Model: 1.07s Unsat: 2.59s) +CPU Time : 37.916s + +Choices : 297991 (Domain: 297991) +Conflicts : 13615 (Analyzed: 13603) +Restarts : 145 (Average: 93.81 Last: 118) +Model-Level : 1385.0 +Problems : 19 (Average Length: 47.00 Splits: 0) +Lemmas : 13603 (Deleted: 9012) + Binary : 318 (Ratio: 2.34%) + Ternary : 12 (Ratio: 0.09%) + Conflict : 13603 (Average Length: 14343.6 Ratio: 100.00%) + Loop : 0 (Average Length: 0.0 Ratio: 0.00%) + Other : 0 (Average Length: 0.0 Ratio: 0.00%) +Backjumps : 13603 (Average: 20.42 Max: 3007 Sum: 277747) + Executed : 13554 (Average: 20.32 Max: 3007 Sum: 276349 Ratio: 99.50%) + Bounded : 49 (Average: 28.53 Max: 72 Sum: 1398 Ratio: 0.50%) + +Rules : 32994 +Atoms : 32994 +Bodies : 1 (Original: 0) +Tight : Yes +Variables : 183574 (Eliminated: 0 Frozen: 59709) +Constraints : 1072059 (Binary: 94.4% Ternary: 4.5% Other: 1.1%) + +Memory Peak : 638MB +Max. Length : 90 steps +Sol. Length : 90 steps +Models : 1 + +