CSCI 1200 - Fall 2007
Computer Science II
Home
  Contact Information

Announcements

Prerequisites
  Course Overview

Textbooks
  Web Resources
  Additional Tutoring

Grading

Calendar
  Lecture notes
  Lab materials
  Homework
  Test reviews

Schedule
  Lab Times
  Office Hours

Academic Integrity

Homework
  Due Date and Time
  Late Day Policy
  Compilers
  Electronic Submission

Programming Tips

C++ Development
  Cygwin
  Emacs
  Dev C++
  MinGW

Other Information
  Command Line Args
  File I/O
  Redirecting I/O

HW6 Sliding Block Recursion Contest

SOLVER STRATEGIES

  • cutler: recursion, history unsorted list, heuristic based on min possible moves to solve
  • dawkim: recursive, 2 solvers (1 square, 1 non-rect), map for history, early exits
  • devars2: no undo, pass by reference or const refence
  • hutcha2: got rid of all bugs, uses lists for efficient erase
  • kasia: greedy, with heuristic based on similarity to solution
  • kramet: no info on optimizations
  • peacha: no info on optimizations
  • pedrok: breadth first search, scratch grid, uses a map for fast searching
  • radoca: depth first with increasing max depths, hashing for history
  • rakese: looks for all possible board positions
  • saulnk: no info on optimizations
  • sberard: bi-directional a* search, (preallocated) hash table of visited states
  • scourj: fast possible possible moves checker
  • vandes4: breadth first search, tree of pointers to moves
  • wellir: iterative, minimizes memory, hashes board
  • woodg: looks for pieces next to blanks to move

Source code for cutler's & sberard's solutions are posted on the calendar.

DATA

 Puzzle 1Puzzle 2Puzzle 3Puzzle 4Puzzle 5Puzzle 6Puzzle 7Puzzle 8Puzzle 9Puzzle 10Puzzle 11Puzzle 12Puzzle 13Puzzle 14Puzzle 15Puzzle 16Puzzle 17
grid2x24x32x23x23x23x23x34x34x43x33x33x34x54x44x49x59x5
#pieces3235552228884151588
shapesquarenon-rectsquaresquaresquaresquarerectnon-rectnon-rectsquaresquaresquarenon-rectsquaresquarenon-rectnon-rect
#moves4impossible46impossible18477830impossible636possible78112
cutler00003770000> 1hrseg fault0> 1hrseg fault> 1hr> 1hr
dawkim00.0100000000.070.817120memorymemory> 1hr> 1hr
devars20.010.2200.031.960.180009.59> 1hr> 1hr0> 1hr> 1hr> 1hr> 1hr
hutcha200.0100.1> 1hr1.20.030.020.15memorymemorymemory0.01memorymemory> 1hr> 1hr
kasia0.010000.050 (48)0 (6)00 (9)00.03 (226)seg fault034 (6364)seg fault> 1hr> 1hr
kramet000> 1hr> 1hr> 1hr> 1hr18> 1hrmemorymemorymemory10memorymemoryincorrect> 1hr
peacha0incorrect00> 1hrincorrectincorrectincorrect> 1hrincorrectincorrect> 1hr> 1hr> 1hr> 1hr> 1hr> 1hr
pedrok00000.020.010000.01memorymemory93memorymemorymemorymemory
radoca0.0200000000.0202.483.380memorymemory> 1hr> 1hr
rakese00000.010.010000> 1hr> 1hr0memorymemory> 1hr> 1hr
saulnk0000.02 (16)0.340.32 (118)0 (6)00 (15)memorymemorymemory7 (10)memorymemorymemorymemory
sberard0.30.250.30.30.250.290.30.290.30.290.44 (32)21070.2979> 1hr1.0711.4
scourj000 (8)0 (152)0.020 (74)0 (6)00 (19)seg fault31 (6124)seg faultincorrectseg faultseg faultseg faultseg fault
vandes40000000000> 1hr> 1hr0> 1hr> 1hr> 1hr> 1hr
wellir0000memory370000memorymemory0memorymemorymemorymemory
woodg00.1300seg fault0.09incorrectincorrectincorrectseg faultseg faultseg faultseg faultseg faultseg faultincorrectincorrect

All times above are in seconds.
The orange highlighted squares are tied for the fastest times for each puzzle (within a tenth of a second).
A number in parentheses after the time indicates the length of the non-optimal path that was output.

SUMMARY

 incorrecttoo longseg faultmemory> 1hrfinishedfastestsloccount
cutler  2 4119307
dawkim   221312630
devars2    6118323
hutcha2   5396449
kasia 52 288342
kramet1  5653437
peacha6   834257
pedrok   6 1110444
radoca   221312307
rakese   241111437
saulnk 5 7 54355
sberard 1  1154530
scourj166  44372
vandes4    61112334
wellir   7 109774
woodg5 7  54212

"incorrect" means that the output was incorrect (e.g., illegal moves).
"too long" means that the path output was non optimal.
"seg fault" means the program terminated with an error.
"memory" means ran out of memory.
"> 1hr" means the solver was still running after an hour.
"finished" is the number of correctly solved puzzles.
"fastest" is the number of puzzles for which the submission was one of the fastest.
"sloccount" is the a count of the (non comment) lines of source code.

BEST STUDENT SUBMISSIONS

  • Matthew Dawkins
  • Alex Radocea

HONORABLE MENTIONS

  • hutcha: fastest consumption of entire RAM
  • kasia: longest (incorrect) solution
  • wellir: most lines of code