Computergestützte Marketingplanung

Slides:



Advertisements
Ähnliche Präsentationen
Web 2.0 Social Network Communities
Advertisements

Algorithmentheorie 08 – Dynamische Programmierung (1)
Imperative Programmierung
Fast Fourier Transformation
Matrixmultiplikation
Prof. Dr. S. Albers Prof.Dr.Th Ottmann
Zusammenfassung der Vorwoche
5. Sortier-Algorithmen Vorbemerkungen:
Datenbankzugriff im WWW (Kommerzielle Systeme)
Untersuchung und szenariobasierte Entwicklung von Websites zur Orientierung in Universitätsstudiengängen unter Berücksichtigung von Prinzipien des Web.
Qualitätssicherung von Software
HTML - Einführung Richard Göbel.
Java: Objektorientierte Programmierung
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Java: Grundlagen der Sprache
DOM (Document Object Model)
ARRAY oder FELD oder VEKTOR
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Genetische Algorithmen
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Diskrete Mathematik I Vorlesung Arrays-
Klausur „Diskrete Mathematik II“
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Grundlegende Analysen & Zwischendarstellungen
Excel Kurs Teil I Excel starten, Verknüpfungen auf dem Desktop anlegen. F. Bäumer.
Grundschutztools
Folie 1 Reengineering-Werkzeugen für Webseiten Johannes Martin, University of Victoria Ludger Martin, Technische Universität Darmstadt WSR 2001 Bad Honnef,
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
Konzeption und Realisierung von DSS
Vielstoffthermodynamik
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Java programmieren mit JavaKara
Plattformunabhängige Programmiersprache
Effiziente Algorithmen
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
AINF-Lehrgang PROGRAMMIEREN Martina GREILER Wolfgang KATOLNIG
Einführung in die Programmierung
Effiziente Algorithmen
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Diskrete Mathematik II
Polynome und schnelle Fourier-Transformation
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 5 Dr. W. Narzt u. Dr. A. Stritzinger.
Framing Effekt: Der getrennte Einfluss von Wahrscheinlichkeiten und Utilities Ralf Stork, E. H. Witte Universität Hamburg, Fachbereich Psychologie, Von-Melle-Park.
SAP Seminar 2007 Materialstammsätze anlegen
Java-AG Benutzeroberflächen Juni 2001 Michael Haas.
Analyseprodukte numerischer Modelle
Informatik Datenstruktur Graph 3.3 Durchlaufen von Graphen
Programmiervorkurs WS 2014 Referenzdatentypen
Übung 2 - MdMT Methoden der Medizintechnik Übung zur Vorlesung Folge 2 – Basics Vom ersten Befehl zum Plot.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Analyse der Laufzeit von Algorithmen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Java-Kurs Übung Besprechung der Hausaufgabe
XML-basierte Beschreibungssprachen für grafische Benutzerschnittstellen Seminarvortrag im Studiengang „Scientific Programming“ von Steffen Richter.
J. Nürnberger2007 / 081 Tabellenkalkulation (3) Arbeiten mit Formeln am Beispiel von OpenOffice.org Calc.
Klausur „Diskrete Mathematik II“
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
 Präsentation transkript:

Computergestützte Marketingplanung Implementation des Analytic Hierarchy Process als Java Applet David Divisek und Robin Meyersiek Karlsruhe, 23.Mai 2001

Der Analytic Hierarchy Process (AHP) Inhalt des Vortrages Der Analytic Hierarchy Process (AHP) Die Vorgehensweise Vortragbegleitendes Beispiel Bisherige Implementationen JavaAHP Web-Hipre Expert-Choice Unsere Implementation: AHP for JAVA Design und Datenstruktur Vor- und Nachteile Erweiterungsmöglichkeiten Fazit ahp4java

Der AHP unterstützt die Entscheidungsfindung bei komplexen Problemen durch hierarchische Strukturierung von Kriterien und Reduzierung auf paarweise Vergleiche Die Vorgehensweise Auflistung aller in Frage kommenden Alternativen Strukturierung der möglichen Einflussfaktoren in eine Hierarchie von Kriterien Bestimmung von subjektiven Bewertungen der relativen Wichtigkeit aller Kriterien bzw. Alternativen durch paarweise Vergleiche auf einer Skala von 1 (gleich wichtig) bis 9 (Absolut wichtiger) Errechnung von Gewichten aus den Paarweisen Vergleichen und Überprüfung auf Konsistenz Bestimmung der besten Alternative anhand der so errechneten Gewichte Analyse des Ergebnisses

Beispiel: Die Entscheidung über den Kauf eines von drei Computern anhand von drei Kriterien Goal HW SW VS Gewicht 1 1/8 1/3 0,0820 8 3 0,6816 0,2364 Ziel HW Dell HP IBM Gewicht 1 3 9 0,6583 1/3 6 0,2819 1/9 1/6 0,0598 SW Dell HP IBM Gewicht 1 ½ 1/8 0,0874 2 1/5 0,1622 8 5 0,7504 VS Dell HP IBM Gewicht 1 6 0,4967 3 0,3967 1/6 1/3 0,1066 Kriterien Dell 0,6583*0,082 + 0,0874*0,6816 + 0,4967*0,2364 = 23,0% 5,4% 5,9% 11,7% HP 2,3% + 11,0% + 9,4% = 22,7% IBM 0,5% + 51,1% + 2,5% = 54,1% Alternativen 2. 3. 1. Quelle: In Anlehnung an GAUL (1999) S. AH9

Zwei Applets und ein Professionelles Software Packet wurden im Vorfeld untersucht Entwickelt von Xuan Zhu, Jon Willis und Luis Laredo für CSIRO (Commonwealth Scientific and Industrial Research Organisation), Australia Designed von Raimo P. Hämäläinen und Programmiert von Jyri Mustajoki für das Systems Analysis Laboratory, Helsinki University of Technology, 1998 Web-HIPRE unterstützt neben AHP auch noch weitere Gewichtungsmethoden Web-HIPRE ist eine Internet Version der HIPRE 3+ software zur analytischen Strukturierung von Entscheidungsproblemen, multikriterielle Bewertung and Priorisierung Kommerzielle Decision Support Software von Expert Choice EC wurde 1983 von Professor Ernest H. Foreman und Dr. Saaty (Entwickelte den AHP-Algorithmus in den 70er Jahren) Professional Version: $1,195 (Einzelplatzversion) Enterprise Version: $198,995 (20 Builders, 150 Participants)

Das Anlegen der Kriterienhierarchie und der Alternativenliste ist bei den beiden Applets recht ähnlich Auf einer Art Zeichenbrett werden die Knoten und Kanten der Kriterienhierarchie und Alternativen einzeln in Ebenenen angeordnet Kleine Symbole geben die Bewertungsmethode an Dies geschieht Mausgesteuert. Alle Kanten müssen „per Hand“ verbunden werden Wie sie sehen haben wir bei unserem Beispiel immer die selbe Methode verwendet. P bzw PW steh für „12 pairwise“ Auch die Alternativen werden eingezeichnet

Expert Choice unterteilt die Oberfläche in eine Kriterienhierarchie und eine Alternativenliste Alternativen: Für das aktuell gewählte Kriterium wird graphisch und numerisch die Gewichtung angegeben Kriterien: Sind die Vergleichsdaten noch nicht eingegeben, haben die Knoten des Baumes einen roten Punkt. Nach der Dateneingabe gibt der Füllgrad die Gewichtung, die auch in Klammern steht, des Kriteriums an. Die Kriterienhierarchie erinnert an die baumartige Verzeichnisübersicht eines Dateiexplorer

JavaAHP hat drei Möglichkeiten zur Eingabe der Paarweisen Vergleiche* 1. Verbal Assessment Zwei Alternativen bzw. Kriterien werden bezüglich eines Oberkriteriums mit den Schlüsselwörtern importance, preference und likelihood grob abgegrenzt und danach noch verfei- nert. 2. Direkteingabe 3. Questionaire mit Skala Konsistenz und Gewichte werden gleichzeitig angezeigt Verbale Anzeige * Die Eingabe der Gewichtungen mit der SMARTER-Technik ist ebenfalls möglich. Siehe Folie ...andere Methoden (II)

Die Eingabe nach AHP bei Web-Hipre bietet ähnliche Möglichkeiten 1. Direkteingabe (mit einer Nachkommastelle) 2. Schieberegler 3. Verbal Konsistenzindex und Gewichte werden gleichzeitig angezeigt zu 1.: Die Reziproken Werte können nicht direkt eingegeben werden sondern es muss über die Auswahlknöpfe die generelle Präferenz angegeben werden Zu 2. Auch beim Schieberegler ist es möglich Werte mit einer Nachkommastelle festzulegen. Allerdings ist und unklar, wozu eine noch feinere Skala gut sein soll. Zu 3. Hier wird die standardmäßige 9-stufige AHP-Skala verwendet KI: wird ab 10% rot Gleichzeitig werden die Gewichte durch grüne Balken angezeigt Transformation: Die Gewichte werden so hochgerechnet, daß das Wichtigste den Wert 1 bekommt Transformiert die Gewichte

Expert Choice verfügt über vier Verfahren zur Eingabe der Paarweisen Vergleiche 1. Schieberegler mit numerischer Skala Gewichte werden graphisch, Konsistenzindex wird numerisch 2. Schieberegler mit verbaler Skala Zu 4. Die Direkteingabe ist natürlich jederzeit möglich, dabei geben schwarze werte eine Präferenz für den Zeilenwert, rote für den Spaltenwert an. Das Problem: wie wechselt man die Farbe, da Bruch oder Negative Werte Werte eingegeben werden können 3. Graphisch mit Balken und Kuchendiagramm (ziehen am Balken ergibt Vergleichswert) 4. Direkteingabe in die Matrix

Bei Web-Hipre kann der Beitrag einzelner Kriterien graphisch aufgegliedert werden Segments Wahl der Hierarchieebene, die festlegt, wie die Säulen der zusammengesetzten Gewichte in Segmente unterteilt werden. Zeigt den relativen Beitrag der Elemente dieser Ebene zu dem Gesamtgewicht, repräsentiert durch die ganze Säule Goal Auswahl des übergeordneten Kriteriums, für das die zusammen-gesetzten Gewichtungen berechnet werden Bars Auswahl der Ebene, deren Elemente durch die Säulen dargestellt werden sollen Zeigt die Werte statt der Säulen an

Die Sensitivitätsanalyse veranschaulicht kritische Gewichtungen Altes Gewicht Sensitivity Analysis Hier lässt sich die Auswirkung einer Gewichtsänderung eines Kriteriums auf die Bewertung der Alternativen nachvollziehen Neues Gewicht Unterkriterium Kriterium Bewertung der Alternativen mit neuem Gewicht Man sieht das die Gewichtung der Hardware ab 0.4 die Entscheidung von IBM zu Gunsten von Dell kippen würde Sensitivity – zur Analyse der Ergebnisse kann der Anwender die Kriterienebene wählen und die Gewichtungen, die sich nach dem AHP ergeben, verändern und dabei zeitgleich die Auswirkungen auf die Alternativenbewertung beobachten.

Die Ergebnisanalyse bietet vier weitere Möglichkeiten 1. Performance Sensitivity 2. 2D-Plot 3. Gradient Sensitivity 4. Head to Head Sensitivity

Neben vielen Ähnlichkeiten gibt es auch Unterschiede Typ Applet Windows Preis Kostenlos >$1000 Gruppen-entscheidungen -  Schwächen Anlegen der Hierarchie Editieren der Knoten Die vielen Fenster sind verwirrend Besonderheiten Report Viele Gewichtungs-methoden Viele Analyse-möglichkeiten

Zur Implementierung wurde ausschließlich auf frei verfügbare Tools zurückgegriffen Die Entwicklungstools Sun Microsystems Java™ 2 SDK, Standard Edition. v 1.3 (SDK) Borland Jbuilder 4.0 Foundation Microsoft Internet Explorer 5.5 Netscape Navigator 6.0 Das Programm 8 Klassen mit 15 internen Klassen Ca. 1200 Zeilen Code davon „nur“ 50 Zeilen für die wichtigen AHP-Methoden: berechneConsistency() berechneGewichtsvektor() berechneErgebnis()

Bei der Benutzeroberfläche stand Übersichtlichkeit und intuitive Bedienbarkeit im Fordergrund Die GUI Vergleichs- matrix Kriterien- hierarchie Vergleichs- eingabe Alternativen und aktuelle Bewertung

Aktueller Gewichtsvektor Die Vergleichsmatrix dient der schnellen und einfachen Eingabe der Paarweisen Vergleiche Aktueller Konsistenzindex Die Vergleichsmatrix Übergeordnetes Kriterium Aktueller Gewichtsvektor Schieberegler und Knöpfe zur Bewertung Am Ende: Aber nun erstmal eine kleine Demonstration (auf das Icon klicken) Verbale Gewichtung

Für die interne Datenstruktur wurde auf Standarddatenstrukturen zurückgegriffen DIE DATENSTRUKTUR Die Kriterien Hierarchie Dynamischer Baum Das Baummodel basiert auf dem DefaultTreeModel Die einzelnen Knoten sind vom Typ DefaultMutableTreeNode und haben als UserObject Instanzen der Klasse Kriterium Die Alternativen Dynamische Tabelle Array, das zur Laufzeit vergrößert und verkleinert werden kann Enthält auch die Bewertung der Alternativen durch den AHP

Die Klasse Kriterium enthält die Vergleichsdaten und Methoden zur Berechnung VARIABLEN vergleichsMatrix Zweidimensionales quadratisches Array das zur Laufzeit vergrößert und verkleinert werden kann gewichtsVektor Eindimensionales Array das den Gewichtsvektor der Vergleichsmatrix enthält METHODEN berechne_Gewichtsvektor Errechnet den Gewichtsvektor der vergleichsMatrix berechne_CI Berrechnet den Consistency Index und das Consistency Ratio der Vergleichsmatrix berechne_Ergebnis Traversiert den Baum um die Alternativengewichte zu errechnen

Die Methoden berechne_Gewichtsvektor und berechne_Consistency sind simple for-Schleifen public void berechne_Gewichtsvektor() { for (int i = 0; i < matrixSize; i++) for (int j = 0; j < matrixSize; j++) spaltenSumme[j] = spaltenSumme[j] + vglMatrix[i][j]; //berechne Spaltensumme gewichtsVektor[i] = gewichtsVektor[i] + (vglMatrix[i][j] / (spaltenSumme[j] * matrixSize)); } public void berechne_Consistency() { hilfsVektor[i] = hilfsVektor[i] + (gewichtsVektor[j] * vglMatrix[i][j]); mittelWert = mittelWert + (hilfsVektor[i] / (gewichtsVektor[i] * matrixSize)); consistencyIndex = (mittelWert - matrixSize) / (matrixSize - 1); consistencyRatio = consistencyIndex / randomConsistency[matrixSize];

Die Methode berechne_Ergebnis traversiert den Kriterienbaum von jedem Blatt zur Wurzel public void berechne_Ergebnis() { DefaultMutableTreeNode meinKnoten = treePanel.rootNode; int anzahlBlaetter = meinKnoten.getLeafCount(); for (int i = 0; i < altAnzahl; i++) { //für alle Alternativen huepfKnoten = meinKnoten.getFirstLeaf(); //beginne mit einem Blatt for (int j = 0; j < anzahlBlaetter; j++) { //für alle Blätter pufferKnoten = huepfKnoten; produkt = 1.0; produkt = produkt * ((Kriterium)huepfKnoten.getUserObject()).gewichtsVektor[i]; while (huepfKnoten.getParent() != null) { vaterKnoten = (DefaultMutableTreeNode)huepfKnoten.getParent(); int childIndex = treePanel.treeModel.getIndexOfChild(vaterKnoten, huepfKnoten); produkt = produkt * ((Kriterium)vaterKnoten.getUserObject()).gewichtsVektor[childIndex]; huepfKnoten = vaterKnoten; } alternativenWert[i] = alternativenWert[i] + produkt; if (pufferKnoten.getNextLeaf() != null) huepfKnoten = pufferKnoten.getNextLeaf(); } } } Um die Gewichtung auszurechnen, werden in einer Schleife für jede Alternative die entsprechenden Gewichtungen entlang des direkten Pfades von einem Blatt zur Wurzel aufmultipliziert und dann für jedes Blatt aufaddiert. Das Ergebnis wird dann sowohl als Zahl als auch als Balkendiagramm angezeigt.

Die Hauptprogrammierarbeit lag beim Design der GUI und der Implementierung der Listener Editierbar? Wert übergeben jSliderScale Zelle wird markiert jTableMatrix Die Imple- mentation diverser Listener führt eine Datenänderung, hier zum Beispiel eine Änderung eines Paarweisen Vergleiches zu einer sofortigen Aktualisierung aller Gewichtsvektoren, Konsistenzindizes und der Alternativengewichte. jTableAlternative Wert übergeben jLabelConsistency Wert übergeben Slider wird verändert berechne_ Gewichtsvektor berechne_ Ergebnis berechne_ Consistency

Bei der Implementierung aufgetretene Probleme: MS Windows 2000 Professional und seine Probleme mit Java! Wie greift man auf die Vergleichsmatrix einzelner Kriterien in einem Baum zu? Wie traversiert man einen Baum von den Blättern zur Wurzel? Bei der Erstellung der Vergleichsmatrizen muss sowohl auf den DynamicTree als auch auf die Alternativen Tabelle zurückgegriffen werden. Wie informiert man die einzelnen Klassen von den aktuellen Zuständen (Selektionen) in den anderen Klassen? Wie bekommt man einen graphischen Balken in eine Tabellenzelle? Wie vergrößert bzw. verkleinert man Arrays zur Laufzeit? Wie bringt man einem Slider bei, eine Nichtlineare Skala zu verwenden?

Vor- und Nachteile von AHP for Java VORTEILE Übersichtlichkeit: Alles auf einen Blick Schnelles Feedback: Echtzeitberechnung Plattformunabhängig durch JAVA Web-basiert Keine Größenbeschränkung: Kriterienhierarchiegröße und Alternativenanzahl nur Speicherabhängig (Einzige Einschränkung: Random Consistency bei großen Matrizen) Kostenlos NACHTEILE Keine Sensitivitätsanalyse Keine Gruppenentscheidungen Abspeichern nicht möglich

Ansatzpunkte zur Erweiterung von AHP for Java Sensitivtätsanalyse Wie ändert sich die Vorteilhaftigkeit einer Alternative bei Änderung eines Paarweisen Vergleiches Gruppenentscheidungen Über das Internet können mehrere Experten an der Entscheidung teilnehmen und Ihre Vergleichsbewertung eingeben: Für jedes Kriterium ein Experte Mittelwertbildung von mehreren Einzelbewertungen GUI Laden und Speichern von Entscheidungen Weitere Eingabemöglich-keiten Weitere Ausgabemöglich-keiten Vorteilhaftigkeit Hardware Software Service

AHP for Java erlaubt es das AHP-Verfahren schnell und anschaulich zu demonstrieren WIE WURDE DAS ZIEL ERREICHT? Produktidee Einfaches und übersichtliches AHP-Applet für Online Skripte Marktbeobachtung Welche Programme gibt es bereits am Markt? Gibt es eine Marktnische? Produktgestaltung Verwende so weit es geht vorhandene Komponenten Keep it simple Make it work Make it look nice Verkaufsgespräch

Das Berechnen der Gewichte und des Consistency Ratio geschieht nach der vereinfachten Methode 1. Spaltensummen 3. Zeilenmittelwerte Goal HW SW VS 1 1/8 1/3 8 3  12 35/24 13/3 2. Matrixelemente durch Spaltensumme teilen A‘ HW SW VS (1/n)* 1/12 3/35 1/13 0,082 2/3 24/35 9/13 0,6816 1/4 8/35 3/13 0,2364 Gewichts-vektor w 4. Ausgangsmatrix A mit Ge-wichtsvektor w multiplizieren 5. Mittelwert der Quo-tienten aus Aw und w Aw 0,246 2,0468 0,7096 Consistency Index: Consitency Ratio: Matrix konsistent genug * RC: Random Consitency Index