The goal of this project is to compare a Neural Network algorithm with the First Fit algorithm on a version of the multi-dimensional online bin packing problem.
The end goal is met with a combination of many smaller programs - Unix style.
make
cp ./octave_header.txt ./train.txt
(./generate -l 5 -r 0.2 -d 2 && cat) | ./annotate -d 2 -f ./train.txt
# adjust the header of train.txt
For manual annotation.
OR
./create_training_set.sh ./train.txt
For auto annotation. (Grab a coffee for this one. Can last from 5 - 30 min)
cd octave
cp ../train.txt ./
octave-cli
main
Can run for a while. Around 30 min with the default settings.
cd ..
tail -n +6 ./octave/X_opt.txt > Xopt.txt
tail -n +6 ./octave/X_pred.txt > Xpred.txt
./evaluate -t ./Xopt.txt -p ./Xpred.txt -d 2 -l 12
The current implementation uses only one hidden layer. While I expected it to perform worse than First Fit, the actual result is much worse than that.
Switch to python (theano) for experimenting. Use a deep convolutional neural network. Resources and tasks will naturally fit into that scheme. I expect much better results from it.