Zuerst: Ich bin noch ein ziemlicher Neuling, was Java angeht. (gut, auch was Programmieren angeht...)
Folgendes Problem:
Ich habe einen bestimmten Betrag an maximaler Arbeitszeit (in Minuten) "workDay", den ich pro Tag aufbringen muss.
Nun gilt es, diese Arbeitszeit aufzufüllen mit verschiedenen Tätigkeiten, wobei diese verschiedenen Tätigkeiten individuell unterschiedliche Zeiten "act_time" haben.
Diese Zeiten werden alle in einem Array gespeichert (soweit habe ich das ja alles auch noch geschafft).
Nun möchte ich ausrechnen, welche dieser Tätigkeiten ich wie kombinieren muss, um die höchstmögliche Arbeitszeit zu erreichen, ohne dabei mein Pensum pro Tag zu überschreiten (so viel wie nötig, sowenig wie möglich). Dabei gilt - die Arbeitszeit pro Tag ist der Wert, der nicht überschritten werden darf.
Außerdem darf eine Tätigkeit nur einmal durchgeführt werden.
Die Tätigkeiten und die Arbeitszeit sollen veränderbar sein (d.h. das Programm weiß zuerst nicht, wie hoch das Arbeitspensum ist und wieviele Tätigkeiten wie lang dauern).
Ich habe nun den Begriff "Tiefensuche" oder "Depth-First-Search" gefunden. Ich denke, ich muss das Prinzip irgendwie in mein Programm implementieren, weiß aber nicht wie. Alle Beispiele im Internet gehen von Labyrinthen oder sowas aus (mein Problem ist ja ein anderes).
Kann mir dabei vielleicht jemand helfen (und vielleicht einen Beispiel-Code geben)?
EDIT: Ich habe noch einen sogenannten "Greedy-Algorithmus" gefunden. Eignet der sich vielleicht besser, das Problem zu lösen?
Folgendes Problem:
Ich habe einen bestimmten Betrag an maximaler Arbeitszeit (in Minuten) "workDay", den ich pro Tag aufbringen muss.
Nun gilt es, diese Arbeitszeit aufzufüllen mit verschiedenen Tätigkeiten, wobei diese verschiedenen Tätigkeiten individuell unterschiedliche Zeiten "act_time" haben.
Diese Zeiten werden alle in einem Array gespeichert (soweit habe ich das ja alles auch noch geschafft).
Nun möchte ich ausrechnen, welche dieser Tätigkeiten ich wie kombinieren muss, um die höchstmögliche Arbeitszeit zu erreichen, ohne dabei mein Pensum pro Tag zu überschreiten (so viel wie nötig, sowenig wie möglich). Dabei gilt - die Arbeitszeit pro Tag ist der Wert, der nicht überschritten werden darf.
Außerdem darf eine Tätigkeit nur einmal durchgeführt werden.
Die Tätigkeiten und die Arbeitszeit sollen veränderbar sein (d.h. das Programm weiß zuerst nicht, wie hoch das Arbeitspensum ist und wieviele Tätigkeiten wie lang dauern).
Ich habe nun den Begriff "Tiefensuche" oder "Depth-First-Search" gefunden. Ich denke, ich muss das Prinzip irgendwie in mein Programm implementieren, weiß aber nicht wie. Alle Beispiele im Internet gehen von Labyrinthen oder sowas aus (mein Problem ist ja ein anderes).
Kann mir dabei vielleicht jemand helfen (und vielleicht einen Beispiel-Code geben)?
EDIT: Ich habe noch einen sogenannten "Greedy-Algorithmus" gefunden. Eignet der sich vielleicht besser, das Problem zu lösen?