I am developing a console based personal schedule planner for students. My aim is that the app will take what activities the user wants to do along with the total time available with the user for the day, and then allot time slots and display them in tabular format .
The time alotted will depend on the subject (more time allotted for more important tasks etc).
I am doing this project for my 4’th semester eng.
I have started working on the algorithm, my question is that, is any such algorithm (already) available? I searched on the web but the planning algorithms I found are all for bus schedule and others, but not exactly what I’m looking for.
As requested by amit, here are a couple of resources.
The Knapsack problem is, as far as I understand it, a maximisation problem. Given a set of items of particular usefulness and weight, you wish to select the optimum subset – that is, the ‘best’ combination of items for a given weight – the maximum capacity you can carry in a knapsack / rucksack.
For example, a chainsaw might be a very useful item in a Zombie invasion, but it is large and bulky, so its usefulness might be outweighed, literally, by its bulk. Whereas a knife is also useful, but weighs a lot less. If you select the knife, you can also select the torch, crowbar, dry rations and a sleeping bag, whereas if you select the chainsaw you only have space for the dry rations.
Your particular problem is to attempt to fit a set of activities into a fixed time period. To do this you will need to weight the activities by certain factors, such as
You then need to come up with a weighting algorithm for these various factors, and use that weighting algorithm to decide how to select activities for a particular day; remembering that different people might have different preferences and you will need to likely permit some form of configurability in the weighting you’ll use.
(Please note that this is all hypothetical based on my limited exposure to the algorithm – as I said, I’ve never done it myself and the above represents my first thoughts on how I’d approach the problem).
Some resources I found via google are:
http://www.es.ele.tue.nl/education/5MC10/Solutions/knapsack.pdf
http://mathworld.wolfram.com/KnapsackProblem.html
http://academicearth.org/lectures/knapsack-problem-1 (a MIT lecture video)
good luck, it sounds like an interesting project.