Numerisches Programmieren



Ähnliche Dokumente
Numerisches Programmieren

Numerisches Programmieren

W-Rechnung und Statistik für Ingenieure Übung 11

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Kapitel 15. Lösung linearer Gleichungssysteme

Lineare Gleichungssysteme

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

Lineare Gleichungssysteme

Wie Google Webseiten bewertet. François Bry

Menü auf zwei Module verteilt (Joomla 3.4.0)

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Musterlösungen zur Linearen Algebra II Blatt 5

Lineare Algebra und Lösung linearer zeitinvarianter Differentialgleichungssysteme

1. Was sind Aufgaben? Aufgaben einrichten Ansicht für die Teilnehmer/innen... 3

Semestralklausur zur Vorlesung. Web Mining. Prof. J. Fürnkranz Technische Universität Darmstadt Sommersemester 2004 Termin:

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Wie halte ich Ordnung auf meiner Festplatte?

Eigenwerte und Eigenvektoren von Matrizen

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Lineare Gleichungssysteme

Behörde für Bildung und Sport Abitur 2008 Lehrermaterialien zum Leistungskurs Mathematik

5 Eigenwerte und die Jordansche Normalform

1 Mathematische Grundlagen

4 Vorlesung: Matrix und Determinante

Anleitung über den Umgang mit Schildern

TYPO3 Tipps und Tricks

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Primzahlen und RSA-Verschlüsselung

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

Die Lightbox-Galerie funktioniert mit allen gängigen Webbrowsern. Zur Benutzung muss JavaScript im Browser aktiviert sein.

Einführung in die Vektor- und Matrizenrechnung. Matrizen

Webalizer HOWTO. Stand:

Lineare Gleichungssysteme

LANGFRISTIGE HAUSAUFGABE (LINEARE GLEICHUNGSSYSTEME)

Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder

5. Übung: PHP-Grundlagen

MMS - Update auf Version 4.4

Auf der linken Seite wählen Sie nun den Punkt Personen bearbeiten.

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

Im Jahr t = 0 hat eine Stadt Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. z(t) = at + b

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

Abenteuer e-commerce Erfolgreich mit dem eigenen Onlineshop.

TYPO3-Schulung für Redakteure Stand:

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Professionelle Seminare im Bereich MS-Office

Stapelverarbeitung Skalieren von Bildern

Präventionsforum+ Erfahrungsaustausch. HANDOUT GRUPPEN-ADMINISTRATOREN Anlage zum Endnutzer-Handbuch. Stand: Änderungen vorbehalten

Gezielt über Folien hinweg springen

Erstellen von x-y-diagrammen in OpenOffice.calc

GEONET Anleitung für Web-Autoren

Lineare Gleichungssysteme I (Matrixgleichungen)

Webgestaltung - Jimdo 2.7

Pfötchenhoffung e.v. Tier Manager

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Handbuch Social Linkbuilding Automatik-Software

Repetitionsaufgaben Wurzelgleichungen

1 Lineare Gleichungssysteme

Um eine Person in Magnolia zu erfassen, gehen Sie wie folgt vor:

BEDIENUNGSANLEITUNG: EINREICH-TOOL

Sichern auf den zentralen TSM-Servern unter Windows. Sichern auf den zentralen TSM-Servern unter Windows

Kevin Caldwell. 18.April 2012

Datenbanken Kapitel 2

Abwesenheitsnotiz im Exchange Server 2010

Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben

Wenn nicht alle alles mitbekommen sollen: Surfspuren vollständig beseitigen

Stammdatenanlage über den Einrichtungsassistenten

Lineare Differentialgleichungen erster Ordnung erkennen

Um in das Administrationsmenü zu gelangen ruft Ihr Eure Seite auf mit dem Zusatz?mod=admin :

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Fotogalerie mit PWGallery in Joomla (3.4.0) erstellen

WinVetpro im Betriebsmodus Laptop

Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags

7 Rechnen mit Polynomen

1 topologisches Sortieren

Einführungskurs MOODLE Themen:

Tutorium zur Mikroökonomie II WS 02/03 Universität Mannheim Tri Vi Dang. Aufgabenblatt 3 (KW 44) ( )

Kennen, können, beherrschen lernen was gebraucht wird

Hilfe zum Warenkorb des Elektronischen Katalogs 2007 Version 1.0

Physik 4, Übung 11, Prof. Förster

Dateimanagement in Moodle Eine Schritt-für

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Anzeige von eingescannten Rechnungen

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

Veröffentlichen von Apps, Arbeitsblättern und Storys. Qlik Sense Copyright QlikTech International AB. Alle Rechte vorbehalten.

MARCANT - File Delivery System

1. Kennlinien. 2. Stabilisierung der Emitterschaltung. Schaltungstechnik 2 Übung 4

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

1 C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R

Datenbanken Microsoft Access 2010

Geld Verdienen im Internet leicht gemacht

Hardware - Software - Net zwerke

Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden?

Transkript:

Technische Universität München SoSe 213 Institut für Informatik Prof. Dr. Thomas Huckle Dipl.-Inf. Christoph Riesinger Dipl.-Math. Jürgen Bräckle Numerisches Programmieren 2. Programmieraufgabe: Lineare Gleichungssysteme & PageRank Einführung Für Suchmaschinen ist es interessant, die Bedeutung einer Website zu kennen. Das von Google verwendete PageRank-Verfahren betrachtet dazu die Links zwischen den Seiten. Das Grundprinzip lautet: Je mehr Links auf eine Seite verweisen, umso bedeutender ist diese Seite. Je bedeutender die verweisenden Seiten sind, desto größer ist der Effekt. Dieses Prinzip führt zu einem System linearer Gleichungen, das in dieser Aufgabe gelöst werden soll. PageRank Wie in der Einführung erwähnt soll der Rang einer Seite von der Anzahl der eingehenden Links und dem Rang der verlinkenden Seiten abhängen. Wir betrachten nun jemanden, der durch das Web surft, indem er zufällig Links folgt. Dieser Zufallssurfer wird sich desto häufiger auf einer bestimmten Webseite aufhalten, umso mehr Links auf sie verweisen, und umso bedeutender die vorherige Seite ist. Anhand der Aufenthaltswahrscheinlichkeit (=Rang p j ) eines Zufallssurfers auf einer Seite j kann nun eine Rangliste der Seiten aufgestellt werden. Um das zufällige Surfen auf insgesamt n Seiten zu simulieren, stellen wir zunächst eine Matrix A IR n n auf, in der das Element a ij die Wahrscheinlichkeit angibt, von Seite j auf Seite i zu gelangen. Da es sich um Wahrscheinlichkeiten handelt, muss für die Spaltensummen n i=1 a ij = 1 gelten. Außerdem soll jedem Link mit gleicher Wahrscheinlichkeit gefolgt werden, es gilt also { 1 falls j auf i linkt a ij = #Links die von j ausgehen sonst.

Wir nehmen an, dass jede Seite auf sich selbst verweist; dies verhindert insbesondere eine Division durch. Im bisherigen Modell könnte es passieren, dass einige Seiten eine Insel bilden und nur untereinander, aber nicht zum Rest des Internets verlinken. Um zu verhindern, dass der Surfer auf einer solchen Insel gefangen bleibt, lassen wir ihn mit einer Wahrscheinlichkeit ρ [, 1] irgendeine Seite (z.b. aus seinen Bookmarks) besuchen, anstatt einem Link zu folgen. Dadurch ergibt sich eine modifizierte Wahrscheinlichkeits-Matrix à mit ã ij = (1 ρ) a ij + ρ/n. Der Aufenthaltsort des Surfers ist zunächst stark von der Ausgangsseite abhängig. Wir hoffen aber, dass sich die Aufenthaltswahrscheinlichkeiten nach hinreichend langer Zeit auf ein Gleichgewicht einpendeln, das von der Ausgangsseite unabhängig ist. 1 Falls wir die Wahrscheinlichkeiten p j, sich auf der Seite j zu befinden, als Vektor p notieren, so sind die Wahrscheinlichkeiten nach einem weiteren Schritt zufälligen Surfens Ãp. Das gesuchte Gleichgewicht p verändert sich nicht mehr nach einem Surf-Schritt, also erfüllt es à p = p. Gesucht ist also ein Eigenvektor p von à zum Eigenwert 1.2 Es gilt à p = p à p I p = (à I) p =, d.h. p ist eine Lösung des linearen Gleichungssystems (à I)p =. (1) Da jedoch auch jedes Vielfache λ p ein Eigenvektor ist, ist die Lösung nicht eindeutig, d.h. (à I) ist nicht invertierbar und der normale Gauß-Algorithmus kann keine Lösung finden. Ein mögliches Lösungsverfahren eines solchen singulären Systems ist eine modifizierte Version des Gauß-Algorithmus, welcher im folgenden Abschnitt vorgestellt wird. Sei p nun eine Lösung des Systems (1). Durch Normierung von p erhält man die gesuchten Aufenthaltswahrscheinlichkeiten 3 n p = λp mit λ = 1/ p j j=1 ( p erfüllt nun n p j = 1). j=1 Basierend auf diesen Werten findet das PageRank-Verfahren eine sinnvolle Sortierung der Webbseiten. 1 Bei dem Modell handelt es sich um eine Markov-Kette. Das gesuchte Gleichgewicht ist eine stationäre Verteilung. 2 1 ist immer Eigenwert von Ã, da per Konstruktion von à (Spaltensumme 1) (1,, 1) EV von ÃT zum EW 1 ist und à und ÃT dasselbe char. Polynom haben. 3 Die von à beschriebene Markov-Kette ist ergodisch. Die stationäre Verteilung p ist daher eindeutig.

Verfahren zur Lösung von Linearen Gleichungssystemen In diesem Abschnitt werden nun einige Löser linearer Gleichungssysteme vorgestellt: die Rückwärtssubstitution für obere Dreiecksmatrizen, die Gauß-Elimination für allgemeine invertierbare Systeme und ein modifizierter Gauß-Algorithmus für singuläre Systeme. Rückwärtssubstitution a 11 a 12 a 1n a 22 a 2n.... a nn x 1. x n = b 1. b n (2) Ein Gleichungssystem der Form (2) mit einer oberen Dreiecksmatrix lässt sich leicht zeilenweise von unten nach oben lösen. Beim Lösen der i-ten Zeile sind x i+1,..., x n bereits bekannt, wodurch die einzige verbleibende Unbekannte x i sofort bestimmt werden kann. Gauß-Elimination mit Spalten-Pivotsuche Die Gauß-Elimination ist ein Verfahren um lineare Gleichungssysteme in die leicht lösbare obere Dreiecksform zu bringen. Im k-ten Schritt der Gauß-Elimination müssen alle Elemente der k-ten Spalte unterhalb der Hauptdiagonalen zu Null werden. Dazu wird von jeder Zeile i > k die mit a ik a kk multiplizierte k-te Zeile abgezogen. Dies ist nur möglich, falls a kk. Zudem sollte 1 a kk möglichst klein sein, um Rechenfehler nicht zu verstärken. Die Spalten-Pivotsuche ermittelt daher vor jedem Eliminationsschritt die Zeile j k, die das betragsgrößte Element a jk, j k enthält (bei Gleichstand die Zeile mit kleinstem Index). Falls k j werden die Zeilen k und j vertauscht. Im folgenden Beispiel ist die erste Spalte schon fertig bearbeitet, d.h. es muss nun auf der zweiten Spalte die Pivot-Suche durchgeführt werden. Von den zu untersuchenden Matrixelementen ist das in der dritten Zeile das betragsmäßig größte, die zweite Zeile wird daher mit der dritten Zeile vertauscht: 1 4 8 3 7 2 2 4 3 7 2 1 1 5 2 2 1 4 8 3 7 3 7 2 1 2 2 4 1 5 2 2

Modifizierter Gauß-Algorithmus Gegeben sei nun das System Ap = (3) mit einer singulären Matrix A. Wir verwenden eine Abwandlung des Gauß- Algorithmus mit Spalten-Pivotsuche, um ein p zu bestimmen, das (3) löst. Dazu werden zunächst die üblichen Schritte der Gauß-Elimination ausgeführt. Aufgrund der Nicht-Invertierbarkeit der Matrix A kann dieses Vorgehen nicht bis zum Ende fortgesetzt werden. Die Gauß-Schritte enden, wenn kein Pivotelement gefunden werden kann, d.h. wenn alle in Frage kommenden Elemente sind (in unserem Fall < 1E 1). Das umgeformte LGS hat zu diesem Zeitpunkt also folgende Struktur: T v p. } {{ } :=Â =., (4) wobei T eine invertierbare obere Dreiecksmatrix ist. Löst man T x = v durch Rückwärtssubstitution nach x, erhält man mit eine Lösung von (4), da gilt: Âp = = x T v 1 v + p := (x, 1,... ) T 4 ( v = ) =. T x + v 1 + 4 x ist hier der obere Teil des Vektors p

Beschreibung des Programmgerüsts Das auf der Vorlesungsseite zur Verfügung gestellte Programmgerüst enthält: Gauss: Diese Klasse soll um Funktionen zur Lösung von linearen Gleichungssystemen erweitert werden. Zum einfachen Testen dieser Funktionen enthält sie bereits eine Methode zur Multiplikation einer Matrix mit einem Vektor (matrixvectormult()). PageRank: Die Klasse PageRank bietet Methoden zur Generierung der Matrix der Übergangswahrscheinlichkeiten Ã, zur Ermittlung des Gleichgewichts der Aufenthaltswahrscheinlichkeiten p und der daraus resultierenden Reihenfolge der Webseiten. In Form einer Link-Matrix L erhalten diese Methoden die Informationen zu den Links zwischen den Webseiten. LinkMatrix: Eine Link-Matrix { beschreibt die Link-Verbindungen zwischen den Webseiten, d.h. L ij = 1 falls j auf i linkt sonst webseiten: Dieser Ordner enthält Beispiele für Link-Matrizen und Webseiten Crawler: Der Webcrawler durchforstet, ausgehend von einer Startadresse, das Internet über Hyperlinks und ermöglicht das Speichern von Link-Informationen in Form einer Link-Matrix. GUI: Mit der GUI lassen sich Link-Matrizen erstellen. Von einer gegebenen Menge an Addressen aus startend besuchen Crawler verlinkte Webseiten und speichern die gesammelten Informationen in einer Ausgabedatei. Util: Diese Klasse bietet Test- und Textausgabemethoden.

Aufgaben Im Folgenden werden die zu implementierenden Methoden aufgelistet. Details finden Sie jeweils in den Kommentaren zu den einzelnen Methoden. Überlegen Sie sich zu allen Methoden Testbeispiele und testen Sie unbedingt jede einzelne Methode direkt nach der Erstellung. Sie können zusätzlich die zur Verfügung gestellte Testklasse Test verwenden. Es ersetzt aber nicht das Verwenden eigener Testbeispiele. Programmieren Sie in der Klasse Gauss die gegebenen Methodenrümpfe backsubst, solve und solvesing. Programmieren Sie in der Klasse PageRank die gegebenen Methodenrümpfe buildprobabilitymatrix und rank. Formalien und Hinweise Das Programmgerüst erhalten Sie auf den Webseiten zur Vorlesung. Ergänzen Sie das Programmgerüst bitte nur an den dafür vorgegebenen Stellen! Falls Sie die Struktur der Programme an anderer Stelle verändern, können wir sie evtl. nicht mehr testen. Beseitigen Sie vor Abgabe Ihres Programms alle Ausgaben an die Konsole und reichen Sie bis zum 7. Juni 213, 12: Uhr über Moodle ein. Reichen Sie nur die Dateien Gauss.java und PageRank.java ein. Bitte laden Sie Ihre java-dateien als flaches tgz-archiv hoch. Der Dateiname ist beliebig wählbar, bei der Erweiterung muss es sich jedoch um.tgz oder.tar.gz handeln. Ein solches Archiv können Sie beispielsweise mit dem Linux-Tool tar erstellen, indem Sie die laut Aufgabenstellung zu bearbeitenden java-dateien in ein sonst leeres Verzeichnis legen und dort anschließend den Befehl > tar cvvzf numpro_aufg2.tgz *.java ausführen. In jeder Gruppe sollte nur ein Teammitglied eine Lösung einreichen. Wir empfehlen Ihnen, die Programme unter Linux (Rechnerhalle) zu testen. Bitte beachten Sie: Alle Abgaben, die nicht den formalen Kriterien genügen, werden grundsätzlich mit Punkten bewertet!