Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

Leela

Mädchen

  • "Leela" is female
  • "Leela" started this thread

Posts: 88

Date of registration: Sep 15th 2011

1

Tuesday, August 27th 2013, 4:44pm

KVA - SPACE und TIME

Hallo!

Wäre es möglich, dass mir jemand - am Besten an Hand eines kleines Beispiels - folgenden Platz- und Speicherbedarf erläutert. Also ein Algorithmus, der in
  1. SPACE(log n)
  2. SPACE (n log n)
  3. TIME(log n)
  4. TIME(n log n)

läuft.

P.S.: Ich meine keinen Algorithmus, der alle 4 Punkte auf einmal schafft. ;) Sondern je einen Algorithmus...

lg Doro

Anselm

borlark

Posts: 164

Date of registration: Oct 13th 2010

Occupation: WiMi ThI

2

Tuesday, August 27th 2013, 9:03pm

Zu 1. und 2.: Auf jeden Fall separates Eingabeband! Sonst wäre es ja sofort linearer Platzbedarf.
1. Generell Algorithmen, deren Eingabe n Objekte enthält und die sich nur eine konstante Anzahl von Positionen darin merken müssen. Da die Positionen z.B. binär codiert werden können (oder allgemeiner: nicht nur unär, sondern auch zu anderen Basen) ergibt sich der logarithmische Platzbedarf. Zum Beispiel: Entscheidungs-Algorithmus für die Sprache {<a,b,c> | a + b = c}, da der aber Inhalt eines der Testate ist kann ich da nicht näher drauf eingehen.
2. Spontan keine sinnvolle Idee. Irgendein Algorithmus, der sich linear viele Positionen merken muss. Die Ideen, die ich dazu bisher habe sind nicht sinnvoll, funktionieren nichtmal so ganz und würden nur verwirren.

zu 3. und 4. hab ich spontan keine Idee auf Turingmaschinen. Als "normale" Algorithmen, also mit wahlfreiem Zugriff auf den Speicher (z.B. durch Verweise in einem Baum) gibts natürlich folgende Standardbeispiele:
3. Suche im ausbalancierten binären Suchbaum
4. Merge-Sort

Hoffe das hilft schon ein bisschen.
"Once you figure out what a joke everything is, being the comedian's the only thing makes sense."
~The Comedian

Leela

Mädchen

  • "Leela" is female
  • "Leela" started this thread

Posts: 88

Date of registration: Sep 15th 2011

3

Wednesday, August 28th 2013, 10:47am


Hoffe das hilft schon ein bisschen.


3. und 4. ist nun "klar" bzw. habe ich hier nun eine gute Vorstellung davon. Allerdings steige ich bei 1. und 2. noch nicht ganz dahinter...

Anselm

borlark

Posts: 164

Date of registration: Oct 13th 2010

Occupation: WiMi ThI

4

Wednesday, August 28th 2013, 11:31am

Da ich nicht eine Lösung für die Testataufgaben hier reinschreiben will ein anderes (einfacheres) Beispiel für 1:



Ein Entscheidungsalgorithmus für diese Sprache muss Position für Position durch die beiden Wörter gehen und jeweils vergleichen, ob beide Zeichen gleich sind. Dafür genügt es, auf deim Arbeitsband binär hochzuzählen, die wievielte Stelle man gerade vergleichen will UND außerdem, um dann jeweils die richtige Position in bzw. zu erreichen, die aktuelle Position ein zweites mal aufs Arbeitsband zu schreiben und immer wieder 1 zu subtrahieren, bis 0 erreicht wird (in dem Moment wird die richtige Position in bzw. erreicht). Auf diese Weise ist der höchste vorkommende Platzbedarf zweimal der Platzbedarf für die Binärdarstellung der Anzahl von Zeichen von + ein Trennzeichen, also .

Ich bin jetzt nicht auf jedes Detail eingegangen, insbesondere für unterschiedlich lange Wörter braucht man natürlich noch eine Prüfung.

Ein Algorithmus, der tatsächlich benötigt (und nicht mit weniger auskommt) müsste sich entsprechend so etwas wie verschiedene Positionen merken. Dazu habe ich bisher keine gute Idee für ein Beispiel.

Viele Grüße,
Anselm
"Once you figure out what a joke everything is, being the comedian's the only thing makes sense."
~The Comedian

This post has been edited 1 times, last edit by "Anselm" (Aug 28th 2013, 11:33am)


Leela

Mädchen

  • "Leela" is female
  • "Leela" started this thread

Posts: 88

Date of registration: Sep 15th 2011

5

Wednesday, August 28th 2013, 12:41pm

Danke. Nun kann ich mir das Ganze wesentlich besser vorstellen.

Arne

ThI

  • "Arne" is male

Posts: 1,798

Date of registration: Oct 7th 2002

Location: Hannover :)

Occupation: Lecturer ThI

6

Wednesday, August 28th 2013, 2:20pm

Zu 1. und 2.: Auf jeden Fall separates Eingabeband! Sonst wäre es ja sofort linearer Platzbedarf.


Also eine Sprache in benötigt kein separates Eingabeband. Ein Beispiel hierfür ist zum Beispiel eine Pfadsuche in einem Graphen. Eine mögliche Lösung wäre die naive Konstruktion des Pfades über Breitensuche, bei der der gesamte Pfad immer im Speicher gehalten (und schrittweise konstruiert) wird. Hierzu müssen wir uns Knotenanzahl (des Pfades) mal Knotennummern merken. Die Knotennummern können wir uns binär speichern, wodurch der logarithmische Faktor zu tragen kommt. Im schlimmsten Fall ist der Pfad so lang wie es Knoten im Graphen gibt. Die Knotenanzahlen sind durch nach oben beschränkt, daher erhält man einen Algorithmus mit Speicherbedarf .

Klarer geworden?
"NP - The class of dashed hopes and idle dreams." Complexity Zoo

Leela

Mädchen

  • "Leela" is female
  • "Leela" started this thread

Posts: 88

Date of registration: Sep 15th 2011

7

Wednesday, August 28th 2013, 3:31pm

Klarer geworden?


Jein. Was mir nicht ganz klar ist wie das "der gesamte Pfad immer im Speicher gehalten (und schrittweise konstruiert) wird" gemeint ist. Der logarithmische Platzbedarf leuchtet ein. Aber läuft die Breitensuche auf einer TM? Dann bräuchte ich doch ein zweites Band als Speicher, oder?

Anselm

borlark

Posts: 164

Date of registration: Oct 13th 2010

Occupation: WiMi ThI

8

Wednesday, August 28th 2013, 3:43pm

Man kann den Pfad auch hinter die Eingabe schreiben. Klar, damit wird die TM aufwendiger - aber der Platzbedarf bleibt in . Insofern stimmt natürlich, dass nur für 1. ein separates Eingabeband nötig ist.
"Once you figure out what a joke everything is, being the comedian's the only thing makes sense."
~The Comedian

This post has been edited 1 times, last edit by "Anselm" (Aug 28th 2013, 3:44pm)


Leela

Mädchen

  • "Leela" is female
  • "Leela" started this thread

Posts: 88

Date of registration: Sep 15th 2011

9

Wednesday, August 28th 2013, 4:07pm

Man kann den Pfad auch hinter die Eingabe schreiben.

Ok. Da hätte ich auch drauf kommen können. :)

Ozz

Trainee

  • "Ozz" is male

Posts: 102

Date of registration: Oct 19th 2010

10

Friday, August 30th 2013, 10:14pm

Wo wir grad dabei sind.... ich habe vergessen, welche Hilfsmittel wir bei der Klausur nutzen dürfen. Skript? Beidseitig beschriebenes DIN-A4-Blatt? Nix?
Arrr!!! :evil:

Bastian

Dies, das, einfach so verschiedene Dinge

Posts: 988

Date of registration: Sep 30th 2007

11

Saturday, August 31st 2013, 8:28am

http://www.thi.uni-hannover.de/166.html

Quoted

Komplexität von Algorithmen, Montag, 02.09.13, 15:00 - 16:15, E-214 (Großer Physiksaal, Hauptgebäude); Erlaubte Hilfsmittel: 1 DinA4 Zettel beliebig beidseitig beschrieben/bedruckt.

Ozz

Trainee

  • "Ozz" is male

Posts: 102

Date of registration: Oct 19th 2010

12

Sunday, September 1st 2013, 2:09pm

Ah, danke!
Arrr!!! :evil: