1. Übungsblatt Algorithmen in der Diskreten Mathematik Gesamtpunktzahl: 40 SS 2014 Jens M. Schmidt Aufgabe 1: Bipartite Graphen (8 Punkte) Finden Sie einen effizienten Algorithmus, der einen gegebenen Graphen daraufhin überprüft, ob er bipartit ist. Geben Sie eine sinnvolle Graphenrepräsentation, die benutzten Operationen auf dieser Repräsentation und die Laufzeit des Algorithmus auf der Unit-Cost RAM an. Aufgabe 2: Gerichtete Azyklische Graphen (4 Punkte) Beweisen Sie, dass jeder gerichtete azyklische Graph einen Knoten mit Eingangsgrad 0 und einen Knoten mit Ausgangsgrad 0 enthält. Aufgabe 3: Simple Graphen (8 Punkte) Beschreiben Sie einen Linearzeitalgorithmus, der testet, ob ein gegebener Graph simple ist. Aufgabe 4: Induzierte Subgraphen (5 Punkte) Sei G ein simpler Graph mit n Knoten und m Kanten. i) Wie viele knoten- und kanten-induzierte Subgraphen enthält G jeweils (verschiedene isomorphe Subgraphen zählen separat)? ii) Ist jeder kürzeste Kreis in G (knoten-)induziert? Ist jeder induzierte Kreis in G ein Kürzester? Geben Sie Beweise oder Gegenbeispiele. Aufgabe 5: Dreiecksfreie Graphen (15 Punkte) Ein Graph G heißt dreiecksfrei, wenn er kein Dreieck (K3 ) enthält (!). Finde einen effizienten Algorithmus, der berechnet, ob ein gegebener Graph dreiecksfrei ist (schneller ⇒ besser). Welche Graph-Repräsentation ist sinnvoll und welche Laufzeit hat der Algorithmus?