matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Schulmathe
  Status Primarstufe
  Status Mathe Klassen 5-7
  Status Mathe Klassen 8-10
  Status Oberstufenmathe
    Status Schul-Analysis
    Status Lin. Algebra/Vektor
    Status Stochastik
    Status Abivorbereitung
  Status Mathe-Wettbewerbe
    Status Bundeswettb. Mathe
    Status Deutsche MO
    Status Internationale MO
    Status MO andere Länder
    Status Känguru
  Status Sonstiges

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
StartseiteMatheForenOperations ResearchGreedy für Matroide
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Informatik • Physik • Technik • Biologie • Chemie
Forum "Operations Research" - Greedy für Matroide
Greedy für Matroide < Operations Research < Diskrete Mathematik < Hochschule < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Operations Research"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Greedy für Matroide: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 13:29 Di 29.07.2014
Autor: Morgyr

Aufgabe
Gegeben seien eine Menge von n Aufträgen. Zu jedem Auftrag gehört ein
Schlußtermin [mm] d_{i} \in \IN [/mm] und ein Gewinn [mm] p_{i} \in \IN. [/mm] Diese Aufträge sollen auf einer Maschine
ausgeführt werden. Die Maschine kann jeden der Aufträge in einer Zeiteinheit erledigen.
Eine zulässige Lösung ist eine Auswahl A [mm] \subseteq \{1,\ldots,n\} [/mm] der Aufträge, so dass die Aufträge
in A so angeordnet werden können, dass jeder dieser Aufträge bis zu seinem Schlußtermin
erledigt ist. Gesucht ist eine zulässige Lösung mit maximalem Gewinn.
Zeige, dass dem Problem ein Matroid zugrunde liegt und mit einem Greedy-Algorithmus
gelöst werden kann.

Moin,
ein paar Fragen zum Algorithmus(die sich während des schreibens auch fast wieder erledigt hatten), und bissl Übung zum Sätze formulieren :D

Fange erstmal an:

Sei M=(S,U) ein Matroid.

Die Menge der Aufträge entspreche S.
Für die Lösung des Problems muss jede mögliche Kombination der Aufträge betrachet werden. Diese Kombinationen bilden die Menge U. Da jede Kombination eine Teilmenge von S ist, ist U ein Menge von Teilmengen von S.
Da jede erdenkliche Kombination betrachtet wird, ist auch die leere Menge in U enthalten. Entsprechend ist auch jede Teilmenge einer Teilmenge von S in U enthalten und umgekehrt gibt es für jedes A, B [mm] \in [/mm] U und |B| = |A|+1 ein x [mm] \in [/mm] B \ A für das gilt [mm] A\cup \{x\} \subseteq [/mm] U.
Damit sind alle Bedingungen eines Matroids erfüllt und daher liegt dem Problem ein Matroid zu Grunde.

Der Greedy-Algorithmus findet für Matroide und eine Gewichtsfunktion eine Basis A minimalen Gewichts.
Eine (inklusions)maximale unabhängige Menge A [mm] \in [/mm] U nennt man Basis.
Entsprechend bricht der Algorithmus ab, sobald A eine Basis von M ist. Dies ist genau dann gegeben, wenn für jedes Element x x [mm] \in [/mm] S und x [mm] \in [/mm] A gilt. Da je Schleife das kleinste Element w(y) mit y [mm] \in [/mm] S zu A hinzugefügt wird, und A erst dann Basis ist, wenn jedes Element sortiert enthalten ist, terminiert der Algorithmus immer mit einer Basis und einer aufsteigenden Sortierung der Elemente x entlang w(x).

Da für das Problem ein Matroid zu Grunde liegt und eine Gewichtsfunktion d(x) gegeben ist, liefert der Greedy-Algorithmus eine Menge von allen Aufträgen, aufsteigend nach dem Schlußtermin sortiert. Somit erfüllt der Greedy die Aufgabenstellung nicht.

Ende
p(x) bzw [mm] p_{i} [/mm] wird ja gar nicht betrachtet, und es ist auch nicht gewährleistet, dass jeder Auftrag rechtzeitig abgearbeitet werden kann. Für 3 Aufträge, wobei der 1. Schlußtermin 1 hat und die beiden anderen Schlußtermin 2 haben, habe ich ja nicht unbedingt den maximalen Gewinn.

Nun kann man natürlich sagen, dass die Gewichtsfunktion p(x) ist und dann praktisch die sortierte Menge von hinten ausgelesen wird. Da wird der Schlußtermin gar nicht berücksichtigt, d.h. der erste bearbeitete Auftrag kann auch derjenige sein, der zwar den höchsten Profit hat aber auch die niedrigste Dringlichkeit. Da der ja direkt bearbeitet wird, hat ein Auftrag mit Schlußtermin 1 keine Chance mehr bearbeitet zu werden und somit ist auch der Profit nicht unbedingt der höchste.

Darüber hinaus liefert der Greedy ja eine sortierte Menge und nicht eine "Auswahl A ... die noch sortiert wird"

Oder verstehe ich da was falsch?



        
Bezug
Greedy für Matroide: Antwort
Status: (Antwort) fertig Status 
Datum: 06:48 Fr 01.08.2014
Autor: meili

Hallo,

> Gegeben seien eine Menge von n Aufträgen. Zu jedem Auftrag
> gehört ein
>  Schlußtermin [mm]d_{i} \in \IN[/mm] und ein Gewinn [mm]p_{i} \in \IN.[/mm]
> Diese Aufträge sollen auf einer Maschine
>  ausgeführt werden. Die Maschine kann jeden der Aufträge
> in einer Zeiteinheit erledigen.
>  Eine zulässige Lösung ist eine Auswahl A [mm]\subseteq \{1,\ldots,n\}[/mm]
> der Aufträge, so dass die Aufträge
>  in A so angeordnet werden können, dass jeder dieser
> Aufträge bis zu seinem Schlußtermin
>  erledigt ist. Gesucht ist eine zulässige Lösung mit
> maximalem Gewinn.
>  Zeige, dass dem Problem ein Matroid zugrunde liegt und mit
> einem Greedy-Algorithmus
>  gelöst werden kann.
>  Moin,
>  ein paar Fragen zum Algorithmus(die sich während des
> schreibens auch fast wieder erledigt hatten), und bissl
> Übung zum Sätze formulieren :D
>  
> Fange erstmal an:
>  
> Sei M=(S,U) ein Matroid.
>  
> Die Menge der Aufträge entspreche S.

[ok]

>  Für die Lösung des Problems muss jede mögliche
> Kombination der Aufträge betrachet werden. Diese
> Kombinationen bilden die Menge U. Da jede Kombination eine
> Teilmenge von S ist, ist U eine Menge von Teilmengen von S.
> Da jede erdenkliche Kombination betrachtet wird, ist auch
> die leere Menge in U enthalten.

[ok]

> Entsprechend ist auch jede
> Teilmenge einer Teilmenge von S in U enthalten und

Hier solltest du noch genauer sein. Es ist besser, wenn man als U nicht
die Potenzmenge von S (alle Teilmengen von S) nimmt, sondern nur die
in der Aufgabe als zulässige Lösungen bezeichneten Teilmengen von S.
Und dann zeigen, dass S mit diesem Mengensystem ein Matroid ist.

> umgekehrt gibt es für jedes A, B [mm]\in[/mm] U und |B| = |A|+1 ein
> x [mm]\in[/mm] B \ A für das gilt [mm]A\cup \{x\} \subseteq[/mm] U.
>  Damit sind alle Bedingungen eines Matroids erfüllt und
> daher liegt dem Problem ein Matroid zu Grunde.
>  
> Der Greedy-Algorithmus findet für Matroide und eine
> Gewichtsfunktion eine Basis A minimalen Gewichts.
>  Eine (inklusions)maximale unabhängige Menge A [mm]\in[/mm] U nennt
> man Basis.
>  Entsprechend bricht der Algorithmus ab, sobald A eine
> Basis von M ist. Dies ist genau dann gegeben, wenn für
> jedes Element x x [mm]\in[/mm] S und x [mm]\in[/mm] A gilt. Da je Schleife
> das kleinste Element w(y) mit y [mm]\in[/mm] S zu A hinzugefügt
> wird, und A erst dann Basis ist, wenn jedes Element
> sortiert enthalten ist, terminiert der Algorithmus immer
> mit einer Basis und einer aufsteigenden Sortierung der
> Elemente x entlang w(x).
>
> Da für das Problem ein Matroid zu Grunde liegt und eine
> Gewichtsfunktion d(x) gegeben ist, liefert der
> Greedy-Algorithmus eine Menge von allen Aufträgen,
> aufsteigend nach dem Schlußtermin sortiert. Somit erfüllt
> der Greedy die Aufgabenstellung nicht.

Mit verändertem Matroid und als Gewichtsfunktion p(x) der Gewinn pro
Autrag sollte es gehen.
Wie ist das mit minimal und maximal der Gewichtsfunktion?
Gewinn soll ja maximal werden.

>  
> Ende
>  p(x) bzw [mm]p_{i}[/mm] wird ja gar nicht betrachtet, und es ist
> auch nicht gewährleistet, dass jeder Auftrag rechtzeitig
> abgearbeitet werden kann. Für 3 Aufträge, wobei der 1.
> Schlußtermin 1 hat und die beiden anderen Schlußtermin 2
> haben, habe ich ja nicht unbedingt den maximalen Gewinn.
>  
> Nun kann man natürlich sagen, dass die Gewichtsfunktion
> p(x) ist und dann praktisch die sortierte Menge von hinten
> ausgelesen wird. Da wird der Schlußtermin gar nicht
> berücksichtigt, d.h. der erste bearbeitete Auftrag kann
> auch derjenige sein, der zwar den höchsten Profit hat aber
> auch die niedrigste Dringlichkeit. Da der ja direkt
> bearbeitet wird, hat ein Auftrag mit Schlußtermin 1 keine
> Chance mehr bearbeitet zu werden und somit ist auch der
> Profit nicht unbedingt der höchste.
>  
> Darüber hinaus liefert der Greedy ja eine sortierte Menge
> und nicht eine "Auswahl A ... die noch sortiert wird"
>  
> Oder verstehe ich da was falsch?

Wahrscheinlich muss du U  auf andere weise wie ein Greedy-Algorithmus herstellen.

>  
>  

Gruß
meili

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


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