2-schichten literatur für diese vo kreuzungsminimierungls11- · pdf fileliteratur...
Post on 06-Feb-2018
214 Views
Preview:
TRANSCRIPT
1
2-Schichten Kreuzungsminimierung
VO Algorithm Engineering
Professor Dr. Petra Mutzel
Lehrstuhl für Algorithm Engineering, LS11
2.-te VO 18.10.2005
Literatur für diese VO
• Einführung in hierarchisches Zeichnen: Emden R. Gansner, Eleftherios Koutsofios, Stephen C. North, Kiem-Phong Vo: A Technique for Drawing Directed Graphs, Software Engineering 19 (3), 214-230, 1993
• M. Jünger und P. Mutzel: 2-Layer StraightlineCrossing Minimization: Performance of Exactand Heuristic Algorithms, Journal of Graph Algorithms and Applications 1 (1) 1-25, 1997
Überblick
• Was ist Graphzeichnen?• Zeichenverfahren - Überblick
• Hierarchisches Zeichenverfahren
• Kreuzungsminimierung
Diagramm aus der Zeitung
Verbrechensbekämpfung
2
Ergebnis der Datenbankanfrage Ergebnis der Datenbankanfrage
Metabolische Pathways
KEGG Datenbank
UML-Klassendiagramm
«Enquiry»Requisition Inquiry
PO requisition
Requisition Status
«Enquiry»GRV Inquiry
Goods Received Voucher
-GRA No.-Qty Returned-Reason
GRA
GRV Status
-GRV No-Supplier Code-Supplier Description-GRV Status-Authority No-Purchase Order No.-Suppliers Invoice/Delivery Note-Date Received
GRV Header
-UOM-Qty Ordered-Qty Received to Date-Qty on Delivery Note-Qty Counted-Qty Inspected OK-Qty Rejected-Qty Accepted-Unit Net Price-Qty on GRA-Supplier Invoice No.-Supplier Invoice Value-GRV Total (Excl. Vat)
GRV Detail
GRN Inquiry
Goods Returned Note
-GRN No-Supplier Code-Supplier Description-Suppliers Invoice/Delivery Note-GRV Ref. No-Purchase Order No.-Authority No.-Date Returned
GRN Header-Item Code-Item Description-Qty on GRN-Qty Returned-Unit Net Price-GRN Reason Code-Reason Description-Supplier Credit Note-Supplier Value
GRN Detail
-Date Required-Qty Required
Split line Item
«Enquiry»PO Inquiry
Purchase Order PO Status
-Warehouse-Supplier Code-UOM-Qty Required-Due Date-Price-Trade Discount 1-Trade Discount 2-Line Status
PO Requisition Detail
-quest No-Requistion Type-Created By-Requested By-Authorised By-Date Time Created-Request Status
PO Requisition Header-Purchase Order No-Supplier Code-Supplier Description-Order Type-Buyer-Date Time Created-Order Status : PO Status-Settlement Discount-Authority No-W/H Code-W/H Description-Version No
Purchase Order Header-Special Instructions-Requisition No-Ordering UOM-Qty Required-Qty received-Date Required-Standard Cost-Supplier Price-Trade Discount 1-Trade Discount 2-Requested By-Total Value (Excl. Vat)-Line Item Status : PO Status
Purchase Order Detail
«Enquiry»Supplier Inquiry
Supplier Status
-Supplier Code-Supplier Name-Supplier Status-Settlement Discount %-Payment Terms (Days)-Street No.-Street Name-Suburb-City-Physical Postal Code-P.O. Box No.-Postal Code-Banking Details-E-mail Address-Creditor Contact Person-MD Name-MD Number-Phone Number-Fax No-Statement Delivery Method-Method of Payment-Supplier Rating-Date Created-Trade Discount 1-Trade Discount 2
Supplier Master File
Transaction Type
-Item Code-Item Description
Stock Items
-Expence Code-Cost Center-Description of Product-Quoted Reference No.
Non-Stock Item
GL Account Stock Account
Employee GL Accounts
Budget
-Employee No.-Name-Surname-ID No.
Employee Master File
«Enquiry»Cardex Report
«Enquiry»Item Inquiry
-Supplier Code-Item Code-W/H Code-Supplier Price-Date On-Date Off-Max Stock Level-Minimum Stock Level-Multiples-Type (MRP or ROP)-Record Qty on D/Note?-Record Qty Counted?-Inspected OK?-Rejected?-Accepted?-EOQ-Supplier Lead Time-Ordering UOM-Conversion Factor
Supplier W/H Item Matrix
-Warehouse Code-Warehouse Description
Warehouse
-W/H Code-Item Code-Inventory on Hold-Inventory on Order-Supplier Code-Lead Time-Inventory on Hand-Minimum Order Qty-Maximum Order Qty-Re-order Point
Warehouse Item
-Warehouse-Product Group
Buyer Role
-Item Code-Item Description-Standard Cost-Stocking UOM-TAX-Material Cost-Last Cost Price-Inventory Unit-Forecast Method-D/Note inquiry-MRP - Lead Time-MRP - Supplier Code-MRP - W/H
Item Master File
Buyer
3
ModelElement
Feature
-body : BooleanExpressionConstraint
-defaultValue : ExpressionParameter
PersonsConstrBehavioralFeature
StructuralFeature-isRoot : Boolean-isLeaf : Boolean-isAbstract : Boolean
GeneralizableElement
Attribute
OperationMethod
ReturnName
«Datentyp»Datatype«Datentyp»
NameSpace
«Datentyp»Real
«Datentyp»String
«Datentyp»Boolean
«Datentyp»Integer
Package
Model
Classifier
-isActive : BooleanClass
Klasse17
«Datentyp»Frau«Datentyp»
Mann«Datentyp»Standort
«Datentyp»Arbeitsleistung
«Datentyp»Person
«Datentyp»Projekt
«Datentyp»bezeichnung
«Datentyp»Name
«Datentyp»budget
-language : Name-body : String
Expression
«Datentyp»InitVal
«Datentyp»Stunden
«Datentyp»getName
«Datentyp»getName
«Datentyp»setName
«Datentyp»setName
«Datentyp»NameToSet
-Ende3
*
-Ende4
*
ModelElement
Feature
-body : BooleanExpressionConstraint
-defaultValue : ExpressionParameter
PersonsConstr
BehavioralFeature
StructuralFeature
-isRoot : Boolean-isLeaf : Boolean-isAbstract : Boolean
GeneralizableElement
Attribute
Operation
Method
ReturnName
«Datentyp»Datatype
«Datentyp»NameSpace
«Datentyp»Real
«Datentyp»String
«Datentyp»Boolean
«Datentyp»Integer
Package
Model
Classifier
-isActive : BooleanClass
Klasse17
«Datentyp»Frau
«Datentyp»Mann
«Datentyp»Standort
«datatype»Arbeitsleistung
«Datentyp»Person
«datatype»Projekt
«Datentyp»bezeichnung
«Datentyp»Name
«Datentyp»budget
-language : Name-body : String
Expression «Datentyp»InitVal
«Datentyp»Stunden
«Datentyp»getName
«Datentyp»getName
«Datentyp»setName
«Datentyp»setName
«Datentyp»NameToSet
-Ende3*-Ende4*
Was ist eine schöne Zeichnung?WERKE
Werke_IDWerke_PLZ
N
SOLLBESTAND
e
ARTIKEL
Artikel_IDArtikel_Menge
PRODUKTION
t
SORTIMENTE
s
VERTRIEB
LAUFZEIT
Laufzeit_ID
WERKEWerke_IDWerke_PLZ
UMLAGERUNGENUmlagerungen_IDUmlagerungen_Menge
SOLLBESTANDSollbestand_IDSollbestand_Menge
ARTIKELArtikel_IDArtikel_Menge
PRODUKTIONProduktion_IDProduktion_Zeit
SORTIMENTESortimente_IDSortimente_Preis
VERTRIEBVertrieb_IDVertrieb_Nummer
LAUFZEIT
Laufzeit_ID
Aesthetik Kriterien
• Wenige Kreuzungen• Wenige Kantenknicke• Kurze Kantenlänge• Kleine Zeichenfläche
• speziell: Hierarchie, Symmetrie
Metrik
Topologie
Form
Datenbank Modell
Vertrag Person Produktbestand Produktvorgang Provisionssatz
Konditionbestand
Normalvertrag
Vertragsinhaber/Vertrag
Vertreter/Vorgang Vermittler/Vorgang Provisionssatz/Produktvorgang
Struktur
Bausparvertrag
Vertragsinshaber
Preis
Vermittler
Buchung
ZKVertrag Konto Vorgang Vertreter
KLVetrag Einlagenvertrag Immobilienvermittl. UnbekVetrag Darlehensvetrag RLVertrag
Original Physikalisches Modell
Datenbank Modell
4
Vertrag
Person
Produktbestand
Produktvorgang Provisionssatz
Konditionbestand
Normalvertrag
Vertragsinhaber/Vertrag
Vertreter/Vorgang
Vermittler/Vorgang
Provisionssatz/Produktvorgang
Struktur
Bausparvertrag
Vertragsinshaber
Preis Vermittler
Buchung
ZKVertrag
Konto Vorgang
Vertreter
KLVetrag
EinlagenvertragImmobilienvermittl.
UnbekVetrag
Darlehensvetrag
RLVertrag
Datenbank Modell
Quasi-orthogonales Modell
Vertrag
Person
Produktbestand ProduktvorgangProvisionssatz
Konditionbestand
Normalvertrag
Vertragsinhaber/Vertrag
Vertreter/Vorgang Vermittler/Vorgang
Provisionssatz/Produktvorgang
Struktur
Bausparvertrag
Vertragsinshaber
Preis
Vermittler
Buchung
ZKVertrag
Konto
VorgangVertreter
KLVetrag
Einlagenvertrag Immobilienvermittl.
UnbekVetrag
Darlehensvetrag
RLVertrag
Datenbank Modell
Hierarchisches Modell
Überblick
• Was ist Graphzeichnen?• Zeichenverfahren - Überblick
• Hierarchisches Zeichenverfahren
Adult Dental Health Survey ´98
Datenbankmodell einer VersicherungInsurance Data Base
Datenbankmodell einer Versicherung
5
Begutachtungsprozess(1) Schichteneinteilung
(2) Kreuzungsminimierung
(3) Koordinatenzuteilung
taz
Sugiyama Algorithmus
Festlegung der Schichten
6
Festlegung der Schichten Festlegung der Schichten
Einfügung künstlicher Knoten Kreuzungsreduktion
Kreuzungsreduktion Kreuzungsreduktion
7
Kreuzungsreduktion Kreuzungsreduktion
Kreuzungsreduktion Begradigung der Kanten
Begradigung der Kanten Begradigung der Kanten
8
26%
26%26%
100%
26,3%
95,2%
91,1%26%22,5% 12% 26% 28%
25%
26,25%
100%
23%
21,3%15,7%
VEAGVereinigte
Elektrizitätswerke
EnBWEnergie
Baden-Württ. AG
VEW AG
RWEEnergie AG
VEWEnergie AG
EnergieVerwaltungs-GmbH
RWEAG
VIAG AG
ContigasAG Bewag AG
VEBAAG
PreussenElektra AG
SydkraftAB
HEWHamburgische
Elektr.-Werke AG
Bayernwerk AG
EBHGmbH
Southern EnergyHolding Bet.-GmbH
AG
100%
1%13.5%
15.4%
30%
60%
20%
Überblick
• Was ist Graphzeichnen?• Zeichenverfahren - Überblick
• Hierarchisches Zeichenverfahren
• Kreuzungsminimierung
Exkurs: Ein RätselRätselbuch von Dudeney, 1911
G EW
A B C
Erster Versuch
A B C
G EW
Neuer Versuch
G EW
A B C
Nach Umordnung
W
G
C
A
E
B
9
2-Schichten Kreuzungsminimierung (fix)
Geg: Bipartiter Graph auf 2 Schichten,Permutation der oberen Schicht ist fixiert
1
0 2 51 3 4
0 2 3 4
Gesucht: Zeichnung mit weniger Kreuzungen durchPermutation der Knoten der unteren SchichtBilayer Crossing Minimization Problem (fix), NP-hard
Heuristiken zur 2-Schichten Kreuzungsminimierung (fix)
• Barycenter Heuristik • Median Heuristik• Greedy-Insert Heuristik• Greedy Switch Heuristik• Split Heuristik• Assign Heuristik• Stochastische Heuristik
1
0 2 51 3 4
0 2 3 4
Barycenter Heuristik
Für jeden Knoten v auf der unteren Schicht:barycenter(v) = durchschnittliche Position
der Nachbarn auf der oberen Schicht
1
0 2 51 3 4
0 2 3 4
Sortiere die Knoten auf der unteren Schicht nach ihrem Barycenter Wert.
1
0 2 51 3 4
0 2 3 4
1.6 1 3 3 3.5
Barycenter Heuristik
1
0 2 51 3 4
0 2 3 4
1 1.6 3 3 3.5
Sortiere die Knoten auf der unteren Schicht nach ihrem Barycenter Wert.
Eine Kreuzung weniger!
Barycenter Heuristik
1
0 2 51 3 4
0 2 3 4
Median Heuristik
Für jeden Knoten v auf der unteren Schicht:median(v) = Median der Positionen der Nachbarn
auf der oberen Schicht
10
1
0 2 51 3 4
0 2 3 4
2 1 3 4 5
Sortiere die Knoten auf der unteren Schicht nach ihrem Median Wert.
Median Heuristik
1
0 2 51 3 4
0 2 3 4
1 2 3 4 5
Sortiere die Knoten auf der unteren Schicht nach ihrem Median Wert.
Eine Kreuzung weniger!
Median Heuristik
Fixiere von links nach rechts indem in jedem Schritt derjenige Knoten gewählt wird, der mit den bisher gesetzten Knoten am wenigsten Kreuzungen hat.
Greedy-Insert Heuristik
1
0 2 51 3 4
0 2 3 4
Original-Positionen
Für alle benachbarten Knotenpaare (u,v): Falls es weniger Kreuzungen bringt, wenn man die Paare vertauscht, dann führe Vertauschung durch.
Greedy-Switch Heuristik
1
0 2 51 3 4
0 2 3 4
Original-Positionen
Wähle ein Pivotelement v, und platziere alle anderen Knoten entweder links oder rechts von v, je nachdem, wo es weniger Kreuzungen gibt. Führe dies rekursiv an L.S. und R.S. von v fort.
Split Heuristik
1
0 2 51 3 4
0 2 3 4
Original-Positionen
vu 1
0 2 51 3 4
2 4
Kosten von u < v: cuv = 3
fix
permute
Exakte 2-Schichten Kreuzungsminimierung (fix)
11
uv 1
0 2 51 3 4
2 4
cost of u < v: cuv = 3cost of v < u: cvu = 5
fix
permute
Exakte 2-Schichten Kreuzungsminimierung (fix)
u1
0 2 51 3 4
v 2 4
cost of u < v: cuv = 3cost of v < u: cvu = 5
fix
permute
Finde eine Permutation π von 1,2,...,ndie minimiert
Linear Ordering Problem
Exakte 2-Schichten Kreuzungsminimierung (fix)
Lineares Ordnungsproblem (LOP) Gegeben: ein vollständiger gerichteter Graph G=(V,A)
mit Kantengewichten cuv für alle Bögen (u,v) in A.
Gesucht: eine lineare Ordnung der Knoten, so dass die Summe der Gewichte aller Bögen, die dieser Ordnung entsprechen, maximiert wird.
1 2 3 4
Anwendungen: Triangulation von Input-Output Matrizen, Rangbestimmung in Turniersportarten, Kreuzungsminimierung
Graphen-Theoretische FormulierungGegeben: ein vollständiger gerichteter Graph G=(V,A)
mit Bogengewichten cuv für alle Bögen (u,v) in A.
Gesucht: ein spannendes, azyklisches Turnierin G mit größtem Gewicht
1 2 3 4
Turnier: T⊆A: entweder (i,j)∈T oder (j,i)∈T aber nicht beide
Linear Ordering Problem (LOP)
• Grötschel, Jünger, Reinelt 1984– Studierten das LOP– Praktische Umsetzung in Branch&Cut Code
auf IBM 370/168 VM/CMS PL/I MPSX
• Reimplementierung 1995– SUN SPARC UNIX C CPLEX
Algorithmus: nächste VO-Stunde
Praktische Experimente für2-Schichten
Kreuzungsminimerung
12
Experimental Setup
• Wiederholung der Experimente von Eadesund Kelly 1986 um sicherzustellen, dass wir gleiche Resultate erhalten: – je 100 zufällig generierte Graphen mit |L|=|R|=20
und steigender Dichte – Ergebnis: „All heuristics behave well for moderate
and high density“
Experimental Setup
• Random Graph Generator:• random_bigraph von Stanford GraphBase
von Knuth, denn diese Generatoren sind– Hardware unabhängig– jederzeit von allen überall reproduzierbar
• SUN Sparcstation 10, Linux
je 100 Instanzen20+20 Knotenmit steigender Dichte
Relative Qualität
100 ( SOL / OPT)
Sieger: Split HeuristikBarycenter und Stochastikauch gut
Median scheint schlecht zu sein
je 100 Instanzen20+20 Knotenmit steigender Dichte
Laufzeiten in Sekunden
Exakter Algorithmus schneller als viele Heuristiken
je 10 Instanzendünne Graphen mitaufsteigender Größe10+10 bis 100+100
Relative Qualität
100 ( SOL / OPT)
Sieger: Split HeuristikBarycenter und Stochastik
Verlierer: Greedy-Switchund Greedy-Insert
Untere Schranke ist sehr nah am Optimum
Laufzeiten in Sekunden
je 10 Instanzendünne Graphen mitaufsteigender Größe10+10 bis 100+100
Split Heuristik bis 60+60Langsamer als exakter Algorithmus
Sieger: Barycenter Heuristikund Stochastik
13
Eigentlich interessiert uns k-Schichten Kreuzungsminimierung
• Das betrachtete wird im Graphlayout nur als Teilproblem für die k-Schichten Kreuzungsminimierung benutzt.
• Uns interessiert also eigentlich, wie gut diese Heuristiken für das Originalproblem geeignet sind.
• Wiederhole Experimente für zwei Schichten, bei denen nichts fixiert ist
2-Schichten Kreuzungsminimierung (frei)• Führe abwechselnd die folgenden Schritte durch:• Fixiere obere Schicht, berechne untere Schicht• Fixiere untere Schicht, berechne obere Schicht,• Bis keine Verbesserung mehr möglich
• Gleiche Heuristiken für fixierte Probleme wie oben plus LR-OPT: jeweils der exakte Algorithmus für eine fixierte Schicht
• Optimale Berechnung damals nur für sehr kleine Instanzen möglich (bis ca. 15 Knoten auf kleinerer Schicht): Kombination von Enumeration mit exaktem fixierten Algorithmus
je 100 Instanzen 10+10 Knoten mit steigender Dichte
Relative Qualität
1 Versuch 10 Versuche
BesteHeuristiken sindsehr weit wegvom Optimum für dünneGraphen
Sieger: Barycenter,LR-OPT,Split Heuristik
je 10 Instanzen dünne Graphen von 10+10 bis 100+100
Relativ zu BarycenterAnzahl an Kreuzungen
Sieger: Barycenter,LR-OPT,Split, Median
Computational Results
Kreuzungszählen ist das Bottleneck
• Exakter Algorithmus kann optimale Kreuzungszahl (fix) berechnen für ca. 60 Knoten auf beweglicher Schicht
• Barycenter und Median sind die besten Heuristiken für Originalproblem
• Laufzeit der meisten Heuristiken wird dominiert durch das Kreuzungszählen
→ Neue theoretische und praktische Arbeiten zum Kreuzungszählen
top related