diff --git a/pc-e1-sh/ipc-2000_elevator-strips-simple-typed_29.env b/pc-e1-sh/ipc-2000_elevator-strips-simple-typed_29.env new file mode 100644 index 000000000..ed4a55973 --- /dev/null +++ b/pc-e1-sh/ipc-2000_elevator-strips-simple-typed_29.env @@ -0,0 +1,40 @@ +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/elevator-strips-simple-typed/domain.pddl +- /home/pluehne/Documents/ASP/pddl-instances/ipc-2000/domains/elevator-strips-simple-typed/instances/instance-29.pddl +- --stats +- --verbose +- --print-call +- -C 1.41 +- -F 5 +- --parallel=1 +- --shallow +configuration: + id: pc-e1-sh + instanceSets: + - lnpmr-easy-instances + options: + - --stats + - --verbose + - --print-call + - -C 1.41 + - -F 5 + - --parallel=1 + - --shallow +exitCode: 0 +instance: + domain: elevator-strips-simple-typed + instance: 29 + ipc: ipc-2000 +versions: + clingo: 5.2.2 + fastDownward: 10997:847cdf0069cab0c8841a9958e783d1a7340fe2e9 (2017-11-02 15:10 +0100) + planner: 517f2c0422a36582df17ecebb08e879b170cdfe2 (2017-11-21 02:23:06 +0100) + plasp: 3.1.0 + python: 3.6.3 +workingDirectory: /home/pluehne/Documents/ASP/plasp-javier/encodings/planner + diff --git a/pc-e1-sh/ipc-2000_elevator-strips-simple-typed_29.err b/pc-e1-sh/ipc-2000_elevator-strips-simple-typed_29.err new file mode 100644 index 000000000..cfc9b617c --- /dev/null +++ b/pc-e1-sh/ipc-2000_elevator-strips-simple-typed_29.err @@ -0,0 +1,34 @@ +# configuration: {'id': 'pc-e1-sh', 'options': ['--stats', '--verbose', '--print-call', '-C 1.41', '-F 5', '--parallel=1', '--shallow'], 'instanceSets': ['lnpmr-easy-instances']} +# instance: {'ipc': 'ipc-2000', 'domain': 'elevator-strips-simple-typed', 'instance': 29} +# 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/elevator-strips-simple-typed/domain.pddl', '/home/pluehne/Documents/ASP/pddl-instances/ipc-2000/domains/elevator-strips-simple-typed/instances/instance-29.pddl', '--stats', '--verbose', '--print-call', '-C 1.41', '-F 5', '--parallel=1', '--shallow'] +# working directory: /home/pluehne/Documents/ASP/plasp-javier/encodings/planner +# exit code: 0 +/home/pluehne/Documents/ASP/pddl-instances/ipc-2000/domains/elevator-strips-simple-typed/domain.pddl:3:10: warning: requirement “typing” used but never declared, silently adding requirement +/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)) + +/home/pluehne/Documents/ASP/plasp-javier/encodings/strips/strips-incremental.lp:66:15-28: info: atom does not occur in any rule head: + mutexGroup(G) + +/home/pluehne/Documents/ASP/plasp-javier/encodings/strips/strips-incremental.lp:66:30-45: info: atom does not occur in any rule head: + contains(G,X,V) + +/home/pluehne/Documents/ASP/plasp-javier/encodings/strips/strips-incremental.lp:67:15-28: info: atom does not occur in any rule head: + mutexGroup(G) + +/home/pluehne/Documents/ASP/plasp-javier/encodings/strips/strips-incremental.lp:74:41-56: info: atom does not occur in any rule head: + contains(G,X,V) + +/home/pluehne/Documents/ASP/plasp-javier/encodings/strips/strips-incremental.lp:84:41-56: info: atom does not occur in any rule head: + contains(G,X,V) + +# planner call: plasp-3.1.0 translate --parsing-mode=compatibility /home/pluehne/Documents/ASP/pddl-instances/ipc-2000/domains/elevator-strips-simple-typed/domain.pddl /home/pluehne/Documents/ASP/pddl-instances/ipc-2000/domains/elevator-strips-simple-typed/instances/instance-29.pddl | /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 -C 1.41 -F 5 --query-at-last --check-at-last --forbid-actions --force-actions -c planner_on=1 -c _shallow=1 -c _closure=3 -c _parallel=1 +FINISHED CPU 10.15 MEM 30288 MAXMEM 211564 STALE 0 MAXMEM_RSS 153436 + + diff --git a/pc-e1-sh/ipc-2000_elevator-strips-simple-typed_29.out b/pc-e1-sh/ipc-2000_elevator-strips-simple-typed_29.out new file mode 100644 index 000000000..661f0a403 --- /dev/null +++ b/pc-e1-sh/ipc-2000_elevator-strips-simple-typed_29.out @@ -0,0 +1,308 @@ +planner.py version 0.0.1 + +Time: 0.04s +Memory: 48MB + +Iteration 1 +Queue: [5] +Grounded Until: 0 +Grounding... [('step', [1]), ('step', [2]), ('step', [3]), ('step', [4]), ('step', [5]), ('check', [5])] +Grounding Time: 0.03s +Memory: 50MB (+2MB) +Unblocking actions... +Solving... +Solving Time: 0.01s +Memory: 50MB (+0MB) +UNSAT +Iteration Time: 0.04s + +Iteration 2 +Queue: [7] +Grounded Until: 5 +Grounding... [('step', [6]), ('step', [7]), ('check', [7])] +Grounding Time: 0.01s +Memory: 50MB (+0MB) +Unblocking actions... +Solving... +Solving Time: 0.09s +Memory: 50MB (+0MB) +UNSAT +Iteration Time: 0.11s + +Iteration 3 +Queue: [9] +Grounded Until: 7 +Grounding... [('step', [8]), ('step', [9]), ('check', [9])] +Grounding Time: 0.01s +Memory: 51MB (+1MB) +Unblocking actions... +Solving... +Solving Time: 0.24s +Memory: 51MB (+0MB) +UNKNOWN +Iteration Time: 0.25s + +Iteration 4 +Queue: [14, 9] +Grounded Until: 9 +Grounding... [('step', [10]), ('step', [11]), ('step', [12]), ('step', [13]), ('step', [14]), ('check', [14])] +Grounding Time: 0.02s +Memory: 53MB (+2MB) +Unblocking actions... +Solving... +Solving Time: 0.29s +Memory: 54MB (+1MB) +UNKNOWN +Iteration Time: 0.32s + +Iteration 5 +Queue: [9, 19, 14] +Grounded Until: 14 +Blocking actions... +Solving... +Solving Time: 0.28s +Memory: 54MB (+0MB) +UNKNOWN +Iteration Time: 0.28s + +Iteration 6 +Queue: [19, 14, 27, 9] +Grounded Until: 14 +Grounding... [('step', [15]), ('step', [16]), ('step', [17]), ('step', [18]), ('step', [19]), ('check', [19])] +Grounding Time: 0.02s +Memory: 55MB (+1MB) +Unblocking actions... +Solving... +Solving Time: 0.29s +Memory: 56MB (+1MB) +UNKNOWN +Iteration Time: 0.32s + +Iteration 7 +Queue: [14, 27, 9, 39, 19] +Grounded Until: 19 +Blocking actions... +Solving... +Solving Time: 0.29s +Memory: 56MB (+0MB) +UNKNOWN +Iteration Time: 0.29s + +Iteration 8 +Queue: [27, 9, 39, 19, 55, 14] +Grounded Until: 19 +Grounding... [('step', [20]), ('step', [21]), ('step', [22]), ('step', [23]), ('step', [24]), ('step', [25]), ('step', [26]), ('step', [27]), ('check', [27])] +Grounding Time: 0.03s +Memory: 58MB (+2MB) +Unblocking actions... +Solving... +Solving Time: 0.29s +Memory: 59MB (+1MB) +UNKNOWN +Iteration Time: 0.33s + +Iteration 9 +Queue: [9, 39, 19, 55, 14, 78, 27] +Grounded Until: 27 +Blocking actions... +Solving... +Solving Time: 0.33s +Memory: 59MB (+0MB) +UNKNOWN +Iteration Time: 0.33s + +Iteration 10 +Queue: [39, 19, 55, 14, 78, 27, 110, 9] +Grounded Until: 27 +Grounding... [('step', [28]), ('step', [29]), ('step', [30]), ('step', [31]), ('step', [32]), ('step', [33]), ('step', [34]), ('step', [35]), ('step', [36]), ('step', [37]), ('step', [38]), ('step', [39]), ('check', [39])] +Grounding Time: 0.05s +Memory: 64MB (+5MB) +Unblocking actions... +Solving... +Solving Time: 0.33s +Memory: 66MB (+2MB) +UNKNOWN +Iteration Time: 0.39s + +Iteration 11 +Queue: [19, 55, 14, 78, 27, 110, 9, 155, 39] +Grounded Until: 39 +Blocking actions... +Solving... +Solving Time: 0.34s +Memory: 66MB (+0MB) +UNKNOWN +Iteration Time: 0.34s + +Iteration 12 +Queue: [55, 14, 78, 27, 110, 9, 155, 39, 218, 19] +Grounded Until: 39 +Grounding... [('step', [40]), ('step', [41]), ('step', [42]), ('step', [43]), ('step', [44]), ('step', [45]), ('step', [46]), ('step', [47]), ('step', [48]), ('step', [49]), ('step', [50]), ('step', [51]), ('step', [52]), ('step', [53]), ('step', [54]), ('step', [55]), ('check', [55])] +Grounding Time: 0.08s +Memory: 70MB (+4MB) +Unblocking actions... +Solving... +Solving Time: 0.35s +Memory: 72MB (+2MB) +UNKNOWN +Iteration Time: 0.45s + +Iteration 13 +Queue: [14, 78, 27, 110, 9, 155, 39, 218, 19, 308, 55] +Grounded Until: 55 +Blocking actions... +Solving... +Solving Time: 0.41s +Memory: 72MB (+0MB) +UNKNOWN +Iteration Time: 0.42s + +Iteration 14 +Queue: [78, 27, 110, 9, 155, 39, 218, 19, 308, 55, 435, 14] +Grounded Until: 55 +Grounding... [('step', [56]), ('step', [57]), ('step', [58]), ('step', [59]), ('step', [60]), ('step', [61]), ('step', [62]), ('step', [63]), ('step', [64]), ('step', [65]), ('step', [66]), ('step', [67]), ('step', [68]), ('step', [69]), ('step', [70]), ('step', [71]), ('step', [72]), ('step', [73]), ('step', [74]), ('step', [75]), ('step', [76]), ('step', [77]), ('step', [78]), ('check', [78])] +Grounding Time: 0.11s +Memory: 78MB (+6MB) +Unblocking actions... +Solving... +Solving Time: 0.33s +Memory: 81MB (+3MB) +UNKNOWN +Iteration Time: 0.47s + +Iteration 15 +Queue: [27, 110, 9, 155, 39, 218, 19, 308, 55, 435, 14, 613, 78] +Grounded Until: 78 +Blocking actions... +Solving... +Solving Time: 0.33s +Memory: 81MB (+0MB) +UNKNOWN +Iteration Time: 0.34s + +Iteration 16 +Queue: [110, 9, 155, 39, 218, 19, 308, 55, 435, 14, 613, 78, 865, 27] +Grounded Until: 78 +Grounding... [('step', [79]), ('step', [80]), ('step', [81]), ('step', [82]), ('step', [83]), ('step', [84]), ('step', [85]), ('step', [86]), ('step', [87]), ('step', [88]), ('step', [89]), ('step', [90]), ('step', [91]), ('step', [92]), ('step', [93]), ('step', [94]), ('step', [95]), ('step', [96]), ('step', [97]), ('step', [98]), ('step', [99]), ('step', [100]), ('step', [101]), ('step', [102]), ('step', [103]), ('step', [104]), ('step', [105]), ('step', [106]), ('step', [107]), ('step', [108]), ('step', [109]), ('step', [110]), ('check', [110])] +Grounding Time: 0.18s +Memory: 90MB (+9MB) +Unblocking actions... +Solving... +Solving Time: 0.36s +Memory: 93MB (+3MB) +UNKNOWN +Iteration Time: 0.58s + +Iteration 17 +Queue: [9, 155, 39, 218, 19, 308, 55, 435, 14, 613, 78, 865, 27, 1220, 110] +Grounded Until: 110 +Blocking actions... +Solving... +Solving Time: 0.42s +Memory: 93MB (+0MB) +UNKNOWN +Iteration Time: 0.42s + +Iteration 18 +Queue: [155, 39, 218, 19, 308, 55, 435, 14, 613, 78, 865, 27, 1220, 110, 1720, 9] +Grounded Until: 110 +Grounding... [('step', [111]), ('step', [112]), ('step', [113]), ('step', [114]), ('step', [115]), ('step', [116]), ('step', [117]), ('step', [118]), ('step', [119]), ('step', [120]), ('step', [121]), ('step', [122]), ('step', [123]), ('step', [124]), ('step', [125]), ('step', [126]), ('step', [127]), ('step', [128]), ('step', [129]), ('step', [130]), ('step', [131]), ('step', [132]), ('step', [133]), ('step', [134]), ('step', [135]), ('step', [136]), ('step', [137]), ('step', [138]), ('step', [139]), ('step', [140]), ('step', [141]), ('step', [142]), ('step', [143]), ('step', [144]), ('step', [145]), ('step', [146]), ('step', [147]), ('step', [148]), ('step', [149]), ('step', [150]), ('step', [151]), ('step', [152]), ('step', [153]), ('step', [154]), ('step', [155]), ('check', [155])] +Grounding Time: 0.25s +Memory: 104MB (+11MB) +Unblocking actions... +Solving... +Solving Time: 0.37s +Memory: 110MB (+6MB) +UNKNOWN +Iteration Time: 0.69s + +Iteration 19 +Queue: [39, 218, 19, 308, 55, 435, 14, 613, 78, 865, 27, 1220, 110, 1720, 9, 2426, 155] +Grounded Until: 155 +Blocking actions... +Solving... +Solving Time: 0.36s +Memory: 110MB (+0MB) +UNKNOWN +Iteration Time: 0.36s + +Iteration 20 +Queue: [218, 19, 308, 55, 435, 14, 613, 78, 865, 27, 1220, 110, 1720, 9, 2426, 155, 39] +Grounded Until: 155 +Grounding... [('step', [156]), ('step', [157]), ('step', [158]), ('step', [159]), ('step', [160]), ('step', [161]), ('step', [162]), ('step', [163]), ('step', [164]), ('step', [165]), ('step', [166]), ('step', [167]), ('step', [168]), ('step', [169]), ('step', [170]), ('step', [171]), ('step', [172]), ('step', [173]), ('step', [174]), ('step', [175]), ('step', [176]), ('step', [177]), ('step', [178]), ('step', [179]), ('step', [180]), ('step', [181]), ('step', [182]), ('step', [183]), ('step', [184]), ('step', [185]), ('step', [186]), ('step', [187]), ('step', [188]), ('step', [189]), ('step', [190]), ('step', [191]), ('step', [192]), ('step', [193]), ('step', [194]), ('step', [195]), ('step', [196]), ('step', [197]), ('step', [198]), ('step', [199]), ('step', [200]), ('step', [201]), ('step', [202]), ('step', [203]), ('step', [204]), ('step', [205]), ('step', [206]), ('step', [207]), ('step', [208]), ('step', [209]), ('step', [210]), ('step', [211]), ('step', [212]), ('step', [213]), ('step', [214]), ('step', [215]), ('step', [216]), ('step', [217]), ('step', [218]), ('check', [218])] +Grounding Time: 0.38s +Memory: 126MB (+16MB) +Unblocking actions... +Solving... +Solving Time: 0.45s +Memory: 136MB (+10MB) +UNKNOWN +Iteration Time: 0.94s + +Iteration 21 +Queue: [19, 308, 55, 435, 14, 613, 78, 865, 27, 1220, 110, 1720, 9, 2426, 155, 39, 218] +Grounded Until: 218 +Blocking actions... +Solving... +Solving Time: 0.33s +Memory: 136MB (+0MB) +UNKNOWN +Iteration Time: 0.33s + +Iteration 22 +Queue: [308, 55, 435, 14, 613, 78, 865, 27, 1220, 110, 1720, 9, 2426, 155, 39, 218, 19] +Grounded Until: 218 +Grounding... [('step', [219]), ('step', [220]), ('step', [221]), ('step', [222]), ('step', [223]), ('step', [224]), ('step', [225]), ('step', [226]), ('step', [227]), ('step', [228]), ('step', [229]), ('step', [230]), ('step', [231]), ('step', [232]), ('step', [233]), ('step', [234]), ('step', [235]), ('step', [236]), ('step', [237]), ('step', [238]), ('step', [239]), ('step', [240]), ('step', [241]), ('step', [242]), ('step', [243]), ('step', [244]), ('step', [245]), ('step', [246]), ('step', [247]), ('step', [248]), ('step', [249]), ('step', [250]), ('step', [251]), ('step', [252]), ('step', [253]), ('step', [254]), ('step', [255]), ('step', [256]), ('step', [257]), ('step', [258]), ('step', [259]), ('step', [260]), ('step', [261]), ('step', [262]), ('step', [263]), ('step', [264]), ('step', [265]), ('step', [266]), ('step', [267]), ('step', [268]), ('step', [269]), ('step', [270]), ('step', [271]), ('step', [272]), ('step', [273]), ('step', [274]), ('step', [275]), ('step', [276]), ('step', [277]), ('step', [278]), ('step', [279]), ('step', [280]), ('step', [281]), ('step', [282]), ('step', [283]), ('step', [284]), ('step', [285]), ('step', [286]), ('step', [287]), ('step', [288]), ('step', [289]), ('step', [290]), ('step', [291]), ('step', [292]), ('step', [293]), ('step', [294]), ('step', [295]), ('step', [296]), ('step', [297]), ('step', [298]), ('step', [299]), ('step', [300]), ('step', [301]), ('step', [302]), ('step', [303]), ('step', [304]), ('step', [305]), ('step', [306]), ('step', [307]), ('step', [308]), ('check', [308])] +Grounding Time: 0.58s +Memory: 157MB (+21MB) +Unblocking actions... +Solving... +Solving Time: 0.57s +Memory: 172MB (+15MB) +UNKNOWN +Iteration Time: 1.36s + +Iteration 23 +Queue: [55, 435, 14, 613, 78, 865, 27, 1220, 110, 1720, 9, 2426, 155, 39, 218, 19, 308] +Grounded Until: 308 +Blocking actions... +Solving... +Answer: 1 +occurs(action(("up",constant("f0"),constant("f2"))),1) occurs(action(("up",constant("f2"),constant("f10"))),2) occurs(action(("down",constant("f10"),constant("f2"))),3) occurs(action(("up",constant("f2"),constant("f5"))),4) occurs(action(("board",constant("f5"),constant("p3"))),5) occurs(action(("board",constant("f5"),constant("p0"))),5) occurs(action(("up",constant("f5"),constant("f6"))),6) occurs(action(("down",constant("f6"),constant("f0"))),7) occurs(action(("up",constant("f0"),constant("f6"))),8) occurs(action(("down",constant("f6"),constant("f0"))),9) occurs(action(("up",constant("f0"),constant("f3"))),10) occurs(action(("board",constant("f3"),constant("p2"))),11) occurs(action(("up",constant("f3"),constant("f4"))),12) occurs(action(("up",constant("f4"),constant("f11"))),13) occurs(action(("down",constant("f11"),constant("f8"))),14) occurs(action(("down",constant("f8"),constant("f4"))),15) occurs(action(("up",constant("f4"),constant("f7"))),16) occurs(action(("down",constant("f7"),constant("f4"))),17) occurs(action(("up",constant("f4"),constant("f6"))),18) occurs(action(("board",constant("f6"),constant("p1"))),19) occurs(action(("down",constant("f6"),constant("f1"))),20) occurs(action(("up",constant("f1"),constant("f8"))),21) occurs(action(("up",constant("f8"),constant("f10"))),22) occurs(action(("down",constant("f10"),constant("f6"))),23) occurs(action(("up",constant("f6"),constant("f8"))),24) occurs(action(("down",constant("f8"),constant("f6"))),25) occurs(action(("down",constant("f6"),constant("f5"))),26) occurs(action(("up",constant("f5"),constant("f7"))),27) occurs(action(("up",constant("f7"),constant("f9"))),28) occurs(action(("down",constant("f9"),constant("f6"))),29) occurs(action(("down",constant("f6"),constant("f3"))),30) occurs(action(("up",constant("f3"),constant("f5"))),31) occurs(action(("up",constant("f5"),constant("f11"))),32) occurs(action(("depart",constant("f11"),constant("p0"))),33) occurs(action(("down",constant("f11"),constant("f7"))),34) occurs(action(("depart",constant("f7"),constant("p1"))),35) occurs(action(("board",constant("f7"),constant("p5"))),36) occurs(action(("down",constant("f7"),constant("f1"))),37) occurs(action(("up",constant("f1"),constant("f9"))),38) occurs(action(("down",constant("f9"),constant("f6"))),39) occurs(action(("down",constant("f6"),constant("f3"))),40) occurs(action(("board",constant("f3"),constant("p4"))),41) occurs(action(("down",constant("f3"),constant("f0"))),42) occurs(action(("depart",constant("f0"),constant("p3"))),43) occurs(action(("depart",constant("f0"),constant("p2"))),43) occurs(action(("up",constant("f0"),constant("f6"))),44) occurs(action(("down",constant("f6"),constant("f4"))),45) occurs(action(("up",constant("f4"),constant("f5"))),46) occurs(action(("down",constant("f5"),constant("f4"))),47) occurs(action(("up",constant("f4"),constant("f5"))),48) occurs(action(("up",constant("f5"),constant("f8"))),49) occurs(action(("down",constant("f8"),constant("f4"))),50) occurs(action(("up",constant("f4"),constant("f5"))),51) occurs(action(("up",constant("f5"),constant("f8"))),52) occurs(action(("depart",constant("f8"),constant("p4"))),53) occurs(action(("down",constant("f8"),constant("f6"))),54) occurs(action(("depart",constant("f6"),constant("p5"))),55) +Solving Time: 0.29s +Memory: 172MB (+0MB) +SAT +SATISFIABLE + +Models : 1+ +Calls : 23 +Time : 9.699s (Solving: 7.16s 1st Model: 0.26s Unsat: 0.10s) +CPU Time : 9.700s + +Choices : 698529 +Conflicts : 193856 (Analyzed: 193854) +Restarts : 2101 (Average: 92.27 Last: 207) +Model-Level : 982.0 +Problems : 23 (Average Length: 91.87 Splits: 0) +Lemmas : 193854 (Deleted: 185620) + Binary : 70 (Ratio: 0.04%) + Ternary : 301 (Ratio: 0.16%) + Conflict : 193854 (Average Length: 62.3 Ratio: 100.00%) + Loop : 0 (Average Length: 0.0 Ratio: 0.00%) + Other : 0 (Average Length: 0.0 Ratio: 0.00%) +Backjumps : 193854 (Average: 1.94 Max: 2292 Sum: 376709) + Executed : 193789 (Average: 1.94 Max: 2292 Sum: 376438 Ratio: 99.93%) + Bounded : 65 (Average: 4.17 Max: 56 Sum: 271 Ratio: 0.07%) + +Rules : 0 +Atoms : 0 +Bodies : 0 +Tight : Yes +Variables : 107617 (Eliminated: 0 Frozen: 44220) +Constraints : 402182 (Binary: 92.6% Ternary: 3.7% Other: 3.7%) + +Memory Peak : 174MB +Max. Length : 308 steps +Sol. Length : 55 steps + +