Posts by Raph_M

    Ah danke,die 48 ECTS habe ich überlesen - wird auf den 36 Seiten auch nur einmal kurz erwähnt...


    Damit ergeben dann die beiden von mir erwähnten Punkte auch Sinn.

    Da ich schon mitten in den LVAs von CompInt bin habe ich mich heute an die weitere Planung gemacht und bin auf eine kleine Unstimmigkeit gestoßen.



    Erstmal was ich aus dem Studienplan "extrahiert" habe:


    x) "Pflichtfächer" sind Algorithmics, Discrete Mathematics VO + UE, Formal Methods, KBS, Logic and Computability
    -> 33 ECTS


    x) Dann gibt es die 4 Vertiefungsmodule "Algorithms and Complexity", "Knowledge Representation and Artificial Intelligence", "Programming Languages and Verification", "Logic, Mathematics, and Theoretical Computer Science". Davon muss man 2 Wählen, es gibt dann jeweils einen Katalog aus dem man sich LVAs für 9 ECTS aussuchen kann. LVAs vom Typ PR zählen nicht zu diesen 9 ECTS. Zusatzconstraint ist dass man 2 Seminare wählen muss (Typ SE), ob beide in einem Modul liegen oder man sie 1:1 aufteilt ist egal.
    -> 18 ECTS


    x) "Fächerübergreifende Qualifikationen" - einfach 4,5 ECTS LVAs aus einem Katalog auswählen.
    -> 4,5 ECTS


    x) Freie Wahl - (max?) 4,5 ECTS
    -> 4,5ECTS


    x) Diplomarbeit
    -> 30 ECTS



    Jetzt die Merkwürdigkeiten:


    x) Bei den Vertiefungsmodulen zählen LVAs vom Typ "PR" nicht. Warum stehen diese dann überhaupt in den jeweiligen Auflistungen?


    x) Freie Wahl: Wenn ich es richtig verstehe kann man die restlichen 30 (bzw. 34,5 wenn man das Modul dazunimmt) ECTS mit beliebigen Freifächern füllen ("Im Modul Freie Wahl sind so viele Lehrveranstaltungen zu absolvieren, dass ihr Umfang zusammen mit den 37.5 Ects der übrigen Pflichtmodule, der Diplomarbeit und dem Umfang der gewählten Vertiefungsmodule 120 Ects oder mehr ergibt.")


    Aber warum ist freie Wahl dann überhaupt als Modul aufgeführt und was soll man von dem "maximal 4,5 ECTS" halten?
    Man findet dazu auch noch diesen in sich widersprüchlichen Satz:
    "Der Umfang der frei wählbaren Lehrveranstaltungen ergänzt den Umfang der übrigen im Studium absolvierten Lehrveranstaltungen auf 90 Ects (oder mehr), wobei ihr Anteil daran 4.5Ects nicht übersteigen darf."



    edit: Bezieht sich auf den neuen Oktober 2011 Plan: http://www.informatik.tuwien.a…tational_Intelligence.pdf

    Annahme Detektor kann nur A oder B zeigen und zeigt immer die Wahrheit.



    Deterministische Welt:
    - Detektor zeigt A: Man wird sicher A machen. (sonst wäre die Welt nicht deterministisch -> siehe emptyvi)
    - Detektor zeigt B: Man wird sicher B machen.
    Beide Cases enthalten keinen Widerspruch - hier kann der Detektor also existieren (und wäre eine Art eingeschränkter Laplace'scher Dämon, der halt auf Morde "spezialisiert" ist)


    Indeterministische Welt:
    - Detektor zeigt A: Ich kann noch immer A oder B machen, entschließe mich für B. -> Widerspruch
    - Detektor zeigt B: Ich kann noch immer A oder B machen, entschließe mich für A -> Widerspruch
    Beide Cases können zu einem Widerspruch geführt werden (es würde sogar nur einer genügen) - Detektor kann nicht existieren.



    Der "Logik-part" der Geschichte ist so gesehen trivial, die eigentliche Denktsportaufgabe ist das man sich den Unterschied Determinismus/Indeterminismus bewusst macht.

    Prof. Tompits erklärt das immer ziemlich anschaulich:
    Verschiedene Logiken sind nichts anderes als verschiedene Werkzeuge, manche davon sind zur Lösung gewisser Probleme besser geeignet als andere.


    Ausserdem steht im Hintergrund ja immer die philosophische Frage, welche Logik die betrachtete Wirklichkeit am besten beschreibt.


    Zur Frage ob alle mehrwertigen (klassischen) Logiken gleich ausdrucksstark sind weiß ich leider nichts, aber andere nichtklassische Logiken (z.B. Modallogik) sind definitiv ausdrucksstärker als PL1, da eine Erweiterung.

    Ohne VO Besuch ist der Stoff einiger LVAs knallhart, ausserdem müsstest du zumindest bei verpflichtenden Abgaben immer schauen dass du frei bekommst - sowas wie spezielle Abendtermine gibts in der Regel nicht.


    Ich selbst arbeite schon mein ganzes Studium parallel, habe aber auch Riesenglück mit meinem Job. Bin als Freelancer Entwickler in einer international tätigen Firma, d.h. "richtiger" gut bezahlter Job und trotzdem flexible Zeiteinteilung.


    In den Studienmonaten reduzier ich die Arbeit auf 2-3 Wochentage und hab so den BAC durchgedrückt und zZt. den CompInt Master (sogar in Planzeit :) ).


    Aber selbst mit freier Einteilung ists knallhart - will man gut weiterkommen gibts "heimkommen und entspannen" nur selten, manchmal muss man auch komplette Wochenenden fürs Studium freihalten.


    Also zusammengefasst: Arbeit + TU geht, die notwendige Flexibilität muss aber von der Arbeit kommen. Ist man ein "Reinbeisser" kommt man sogar flott durchs Studium. Problem ist wohl die richtige Arbeit zu finden: Mit traditionellem 9-5 halt ich ein TU Studium leider für schwer bis unmöglich, will man einen flexiblen Job wirds echt rar wenn man übers typische "Callcenterniveau" hinauswill.

    Bei mir ähnlich:


    x) Parsing - Combinatorial und Monadic: Da habe ich gleich das Zittern bekommen, über das Kapitel hatte ich nur flüchtig drüber geschaut. Hab das allgemeine Parsingkonzept erklärt, bei den "Einheiten" vom Combinatorial Parser (always succeeding, always failing, spot) hat er mir dann geholfen. Dann habe ich noch erwähnt dass die einzelnen Bausteine so komponiert werden dass sich im Endeffekt die Grammatik der Sprache ergibt. Dann noch kurz zu Monadic Parsern: "Im Prinzip genauso, nur dass das komponieren auf dem Monadenkonzept beruht"


    x) dadurch: Monaden -> siehe oben


    x) Und dann noch Memoization und dyn. Programmierung im Vergleich



    Nach dem etwas holprigen Parserstart alles gut gegangen, habe immer viel erzählt, gemütliche Stimmung: Sehr gut :).
    Aja die Beispiele hatte ich alle allein auf 100% gelöst, die wurden aber garnicht angesprochen.

    Ah Mist, die Argumentation ist mir beim Test nicht eingefallen aber stimmt natürlich.


    Man nimmt alle

    Algorithmen her die die möglichen Ausgänge hartkodieren. Die sind natürlich alle berechenbar.
    Ganz egal wie das Konvergenzverhalten von

    tatsächlich aussieht hat man so in jedem Fall ein berechenbare Funktion für f in diesem Set.


    Also dasselbe Prinzip wie die P=NP oder "Gott existiert" Beispiele, nur mit

    statt 2 Fällen.

    Ich bin mal so frei, bevors ganz aus meiner Erinnerung verblasst:



    1) Einen natürlichen Satz in PL1 formulieren: Hatte so ziemlich alles drinnen was möglich ist (Relationen, Funktionen, forall, exists), war aber naturgemäß trotzdem einfach (es war zumindest ein Satz der keine Mehrdeutigkeiten enthielt)


    2) Die Gültigkeit einer vereinfachten Tseitin-Transformation beweisen: Wahrscheinlich nicht schwer wenn man in den letzten Wochen zufällig mit Tseitin zu tun hatte, spontan zumindest für mich aber unmöglich. Ich habe zwar irgendeine Structural Induction angesetzt, erhoffe mir von dem Beispiel aber nichts.


    3) Validity einer gegebenen Formel beweisen, hatte ich im Sequenzkalkül innerhalb einer Minute.


    4) Funktion war gegeben - computable / not-computable? - Kann mich leider schlecht erinnern, war aber glaube ich nc.


    5) Set war gegeben - recursive, recursively enumerable, nichts von beidem? - Kann mich leider schlecht erinnern, war aber glaube ich weder noch.


    6) Zeigen dass Serialität (

    ) durch

    charakterisiert wird. - Das entsprechende Übungsbeispiel habe ich intensiv gemacht, auch hier also ein gutes Gefühl.


    7) "Freitextfrage" welche Auswirkungen das Gödel-Tarski Incompleteness Theorem auf Software Verification hat.




    Insgesamt also gut machbar, nur 2) empfand ich irgendwie als "out of scope". Wer noch die konkreten Beispiele weiß kann sie gern ergänzen.

    Nicht viel zu sagen, das Blatt kam mir ziemlich einfach vor.


    1. Als Anregung: Eine linkstotale Relation definieren in der keine "Loops" erlaubt sind. Wenn man auch Transititivät fordert ist dieses "keine Loops" ebenfalls relativ straight-forward. Hier gibts wahrscheinlich viele Lösungen.


    2, 3.: Basic stuff


    4.: 1,2: invalid mit Counterexample, 3: valid. Bei 3) habe ich mit der Semantikdefinition aus den Folien gearbeitet, was doch etwas mühsam war.

    Für die Übungsblätter gibts (was ich mitbekommen) keine Abgabegespräche oder ähnliches.


    Die Termine im TISS unter "Prüfungsblattbesprechung" sind von Uwe Egly und dafür da sich Feedback zu seinem Blatt zu holen (er hat auch gestern über TISS eine Mail verschickt in der das erklärt wird).


    Im Mail hat er geschrieben dass ab 14:00 wegen anderen Terminen nichts mehr geht, jedoch scheinen ab 16:00 doch wieder Zeitslots frei zu sein was seltsamerweise unter einem anderen Topic "Übungsblattbesprechung" angelegt wurde.


    also: Don't panic ;)

    Cooles Thema, bin dazu auf diesen Thread gestoßen:


    http://cstheory.stackexchange.…mputability-of-a-function


    Dort wurde dasselbe Problem diskutiert und die Antworten darunter erklären sehr gut warum eine derartige Argumentationen gültig ist:

    Consider your definition for computability: we say
    [I]f[/I] is (Turing-)computable if and only if [I]MTM:fM=f[/I]. That is you only have to show existence of an appropriate Turing machine, not give one. What you -- we -- try to do there is to compute the Turing machine that computes the required function. This is a way harder problem!

    Kommt darauf an ob man

    als klassische Implikation oder eher als Entailment interpretiert.


    Als klassische Implikation:



    Für

    kann man dann sowohl ein Model als auch ein Counterexample angeben.


    Sollte aber bei der Abgabe relativ egal sein, das wichtige scheint ja die Konstruktion eines Model zu sein und das hat man in beiden Fällen.

    Mich irritiert das Wort "correctness" bei Ex1 etwas.


    Bei a) kann man mit der KB von Dimitrij zeigen dass die Formel erfüllbar ist, ein Gegenbeispiel findet sich noch einfacher, daher ist die Formel insgesamt doch SAT but not VALID?


    Bei b) hat man die CUT Rule vor sich und kann allgemein (also in allen Fällen) zeigen dass die Formel VALID ist.

    Im Prinzip findet man alles notwendige unter dem Wikipedialink - mir hat noch sehr geholfen dass ich ein "Haskell-Nerd" bin.


    Da Encoding von Zahlen im Lambdakalkül aber in der VO nicht angesprochen wurde kann es schon sein dass die "*2" Lösung auch akzeptiert wird, mit der streng formalen Variante ist man halt in jedem Fall auf der sicheren Seite.

    Dann noch 2 Observations von mir:


    x) "Doris" hat keinen Typ (Thing) und hat eine "manages" Relation zu "Off3". Laut Regel (g) sollte "Doris" daher intuitiv zu einem "Employee" werden, das ist aber nicht der Fall da (g) nur "necessary" und nicht "necessary + sufficient" ist - Anmerkungen dazu, ist das so gewollt, sollte (g) eine definition sein (Angabefehler) oder übersehe ich etwas?
    ("Doris" ist z.B. wegen (o) ein "Boss", weil (o) necessary+sufficient ist, Gil und Jim sind aus demselben Grund keine Employees aber "Boss" bzw. "Manager" + "TopManager")


    x) "SmithBrothers" ist laut (n) ein "FamilyBasedEP". "FamilyBasedEP" ist laut (l) ein "Enterprise" und hat weniger als 3 Leute. "Ein Enterprise" hat laut (a) mindestens eine "managed-by" Relation. Das ist aber für "SmithBrothers" nicht der Fall - warum ist die KB nicht inkonsistent?

    Ein paar Details:



    (a) (property) An enterprise is managed by someone and employs someone.


    Wie habt ihr "someone" aufgefasst? Man hat ja die Möglichkeiten

    Code
    1. employs some Employee

    oder

    Code
    1. employs some Thing

    , selbiges mit is-managed-by und Manager.



    (g) (property) If someone manages some entity she is an employee.


    Selbes Problem wie bei (a), das Wort "entity" klingt aber so allgemein dass ich hier

    Code
    1. manages some Thing

    für richtiger halte als

    Code
    1. manages some (Enterprise or Department or Office)

    - die zweite Möglichkeit würde auch Annahmen treffen die so garnicht in der Angabe stehen.



    -> Wie habt ihr bei (a) und (g) die "someones" bzw. "entity" aufgefasst?


    -> Wie habt ihr Kardinalitäten verwendet? (b) könnte man z.B. als


    Code
    1. is-part-of some Enterprise


    oder als


    Code
    1. is-part-of exactly 1 Enterprise


    auffassen.


    Ich hab jetzt im Allgemeinen immer "some" verwendet, ausser bei den Enterprise Definitionen in denen wirklich Zahlen vorkommen.



    -> Noch ein kleiner Pitfall: Bei der ABox Definition gibt es ja einige Elemente ohne "Typ" (z.B. Alice, Jim, Doris usw...) - diese sollen imo als "Thing" modelliert werden und werden später erst zu Employees inferiert. Ansonsten wären die Regeln (e) und (g) unnötig. Bei den "AlcatelWorkern 1-15" ist jedoch vom Text her nicht ganz klar ob sie im vornherein als Employee gelten sollen oder ob sie "Things" sein sollen und der Typ Employee erst inferiert wird.


    (Btw. ich hasse es wenn Abgaben automatisch ausgewertet werden, die Angaben dazu aber unterdefiniert sind :( )

    Ich steig bei 2.2 komplett aus.


    Der Ablauf (im

    Beispiel in den Folien):


    x) Step 1 (nicht in den Folien):

    wird durch seine Definition

    ersetzt <- ok


    x) Step 2:

    wird umgeformt zu

    <- das ist doch gar nicht equivalent?!?


    x) Step 3:


    wird zu


    <- warum geht das, der Term

    ist doch nur die linke Hälfte der Definition von

    ?!?



    Weiters ist bei den LK Beweisen unklar: Soll


    x) wirklich gezeigt werden dass jeder einzelne Schritt der einzelnen Herleitungen valid ist? (siehe Vorposter)
    Das wären ja tatsächlich mindestens 6*2*3 LKs, mehr noch wenn man mehr als 3 Schritte braucht - wirkt für ein einzelnes Beispiel äußerst übertrieben.