www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Englisch
  Status Grammatik
  Status Lektüre
  Status Korrekturlesen
  Status Übersetzung
  Status Sonstiges (Englisch)

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Sonstiges" - Backtracking Algorithmus
Backtracking Algorithmus < Sonstiges < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Sonstiges"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Backtracking Algorithmus: Aufgabe
Status: (Frage) beantwortet Status 
Datum: 16:39 Mi 03.06.2009
Autor: Chibby

Aufgabe
Ein Programmierer soll n Kundenaufträge [mm] A_1 [/mm] bis [mm] A_n [/mm] bearbeiten. Um den Auftrag [mm] A_i [/mm] zu bearbeiten, benötigt er dazu die Zeit [mm] t_i. [/mm] Die Aufträge sollen so bearbeitet werden, dass die Kunden möglichst wenig Warten müssen.

Beispiel: Bei 3 Aufträgen mit der Bearbeitungszeit [mm] t_1 [/mm] =5, [mm] t_2 [/mm] = 10 und [mm] t_3 [/mm] = 3 ergibt sich für die Arbeitsreihenfolge [mm] A_1,A_2,A_3 [/mm] : [mm] w_1 [/mm] = 5, [mm] w_2 [/mm] =5+ 10; [mm] w_3 [/mm] = 5+10+3. Damit ist die gesamtwartezeit [mm] w_1+w_2+w_3 [/mm] = 38


Hallo.

Ich soll das Problem mit Backtracking für n Aufträge lösen, habe aber nun keine Ahnung, wie eine Abbruchsbedingung lauten könnte.
Meeine Idee wäre
Ich berechne die Gesamtwartezeit für die Auftragsreihenfolge [mm] A_1 [/mm] ... [mm] A_n; [/mm] Die Wartezeit sei [mm] w_1. [/mm]
Danach gehe ich alle anderen Auftragsreihenfolgen durch, und sobald [mm] w_2 [/mm] > [mm] w_1, [/mm] breche ich ab.

Aber irgendwie ist das dann alle Möglichkeiten durchgehen, aber vorzeitig aufhören, wenn möglich.  Muss man das so machen oder könt ihr mir da einen Pseudocode geben oder die Idee hier erläutern?

Grüße,
Chibby

        
Bezug
Backtracking Algorithmus: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 08:54 Sa 06.06.2009
Autor: Karl_Pech

Hallo Chibby,


Irgendwie ist mir die Aufgabenstellung unklar. Was spräche denn dagegen alle Aufträge nach [mm]t_i[/mm] aufsteigend zu sortieren, damit die Aufträge mit der kürzesten Wartezeit zuerst abgearbeitet werden?

Haben die Aufträge zufälligerweise eine Art Wert oder so? Wenn ja, so könnte es eine Variante des []Rucksackproblems sein. Aber so wie die Aufgabe bisher formuliert ist, scheint Sortieren nach [mm]t_i[/mm] die Lösung zu sein.



Viele Grüße
Karl




Bezug
        
Bezug
Backtracking Algorithmus: Antwort
Status: (Antwort) fertig Status 
Datum: 18:06 Di 09.06.2009
Autor: Gilga

Man sollte sich schon an die Aufgabenstellung halten.
Backtracking würde so laufen.

Dein Ansatz stimmt schon

Man wählt ersten Auftrag aus den verbliebenen, 2. .....
Und sobald die bisherige Teilsumme meine beste Zeit (aus früherem Lauf) übersteigt mache ich backtracking zum vorgehenden Auftrag.  

Dadurch muss nicht zwangsläufig alle Kombinationen durchsucht werden. Kann aber bei Backtracking vorkommen



Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Sonstiges"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.englischraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]