Computerwissenschaften

Fragen und Antworten für Studenten, Forscher und Informatiker

1
Entscheidungsproblem derart, dass jeder Algorithmus einen exponentiell schnelleren Algorithmus zulässt
In Hromkovičs Algorithmics for Hard Problems (2. Auflage) gibt es diesen Satz (2.3.3.3, Seite 117): Es gibt ein (entscheidbares) Entscheidungsproblem so dass es für jeden Algorithmus , der löst, einen anderen Algorithmus , der auch löst und zusätzlich erfülltAPPPEINAAA ' PPPPEIN′A′A'PPP ∀∞n∈N.TimeA′(n)=log2TimeA(n)∀∞n∈N.TimeA′(n)=log2⁡TimeA(n)\qquad \forall^\infty n \in \mathbb{N}. \mathrm{Time}_{A'}(n) = \log_2 \mathrm{Time}_A(n) …

2
Wie viele Kanten kann ein unipathischer Graph haben?
Ein unipathischer Graph ist ein gerichteter Graph, so dass es höchstens einen einfachen Pfad von einem Scheitelpunkt zu einem anderen Scheitelpunkt gibt. Unipathische Graphen können Zyklen haben. Beispielsweise ist eine doppelt verknüpfte Liste (keine kreisförmige!) Ein unipathischer Graph. Wenn die Liste Elemente enthält, enthält der Graph Zyklen der Länge 2 …

1
Speichern bei Array-Initialisierung
Ich habe kürzlich gelesen, dass es möglich ist, Arrays zu haben, die nicht initialisiert werden müssen, dh, es ist möglich, sie zu verwenden, ohne Zeit aufwenden zu müssen, um jedes Mitglied auf den Standardwert zu setzen. Das heißt, Sie können das Array so verwenden, als ob es mit dem Standardwert …



3
ML-Funktion vom Typ 'a ->' b
Unser Professor hat uns gebeten, uns eine Funktion in OCaml zu überlegen, die den Typ hat 'a -> 'b dh eine Funktion eines Arguments, das alles sein kann und das etwas anderes zurückgeben kann. Ich dachte an die Verwendung raisein einer Funktion, die ihr Argument ignoriert: let f x = …

1
Einfache Reduktion von 3SAT auf Hamilton-Pfadproblem
Das Sipser-Buch "Einführung in die Berechnungstheorie" auf Seite 286 enthält eine Reduktion von 3SAT zu Hamilton-Pfadproblem. Gibt es eine einfachere Reduzierung? Mit einfacher meine ich eine Reduktion, die (für Studenten) leichter zu verstehen wäre. Gibt es eine Reduktion, die eine lineare Anzahl von Variablen verwendet? Die Reduktion von Sipser verwendet …

4
Strategien, um das Verstehen von TCS loszuwerden
Ich bin ein Doktorand, der einen Kurs in Rechentheorie belegt, und ich habe ernsthafte Probleme, Inhalte zu produzieren, wenn ich dazu aufgefordert werde. Ich kann dem Lehrbuch (Einführung in die Computertheorie von Michael Sipser) und den Vorlesungen folgen; Wenn ich jedoch gebeten werde, etwas zu beweisen oder eine formale Beschreibung …

2
Algorithmen zur Typprüfung
Ich beginne eine persönliche bibliografische Recherche über Algorithmen zur Typprüfung und möchte einige Tipps. Was sind die am häufigsten verwendeten Algorithmen, Strategien und allgemeinen Techniken zur Typprüfung? Ich interessiere mich besonders für komplexe Algorithmen zur Typprüfung, die in weithin bekannten stark statisch typisierten Sprachen wie beispielsweise C ++, Java 5+, …


5
Eine Fallunterscheidung zur dynamischen Programmierung: Benötigtes Beispiel!
Ich arbeite seit einiger Zeit an dynamischer Programmierung. Die kanonische Methode zum Auswerten einer dynamischen Programmierrekursion besteht darin, eine Tabelle mit allen erforderlichen Werten zu erstellen und zeilenweise zu füllen. Siehe zum Beispiel Cormen, Leiserson et al .: "Introduction to Algorithms" für eine Einführung. Ich konzentriere mich auf das tabellenbasierte …

2
Verleiht die Operation 'difference' einer Abfragesprache, die bereits 'join' enthält, Ausdruck?
Der gesetzte Differenzoperator (z. B. EXCEPTin einigen SQL-Varianten) ist einer der vielen grundlegenden Operatoren der relationalen Algebra. Es gibt jedoch einige Datenbanken, die den Mengenunterschiedsoperator nicht direkt unterstützen, die jedoch LEFT JOIN(eine Art äußere Verknüpfung) unterstützen. In der Praxis kann dies anstelle einer Mengenunterschiedsoperation verwendet werden, um den gleichen Effekt …


6
Wie unterscheidet sich dynamische Programmierung von Brute Force?
Ich habe mich gerade mit dynamischer Programmierung befasst, als ich auf folgendes Zitat gestoßen bin Ein dynamischer Programmieralgorithmus untersucht alle Möglichkeiten zur Lösung des Problems und wählt die beste Lösung aus. Daher können wir uns die dynamische Programmierung grob als intelligente Brute-Force-Methode vorstellen, die es uns ermöglicht, alle möglichen Lösungen …

4
Datenstruktur für Schnittmenge festlegen?
Gibt es eine Datenstruktur, die eine Sammlung von Mengen (von endlichen Mengen) verwaltet, die die folgenden Operationen unterstützt? Jede sublineare Laufzeit wird geschätzt? Initiere ein leeres Set. Fügen Sie einem Set ein Element hinzu. Geben Sie bei zwei Sätzen an, ob sie sich überschneiden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.