Seite 1 von 1

Algorithmus braucht weitere Regel

Verfasst: Di Feb 07, 2017 3:54 pm
von bobpcur
Hallo,
ich habe einen Algorithmus in C# (mit Hilfe von anderen) geschrieben, welcher aus einer .txt Input Datei, die dort geschriebenen Assemblercode Zeilen ausliest, in diesem Code die Variablen reduziert und anschließend eine Output .txt produziert.

Der Algorithmus und der C# Code funktionieren wunderbar, jedoch habe ich anscheinend nicht genügend Regeln für die Reduktion aufgestellt und deswegen komme ich nicht auf das gewünschte Ergebnis. Das gewünschte Ergebniss ist, aus einer extrem großen Input .txt mit ca. 1,5k Variablen, eine .txt zu bauen, wo nur 100 Variablen verwendet werden.
Hier: https://www.proggen.org/forum/viewtopic.php?f=49&t=6645
habe ich die Funktionsweise des Algorithmus aufgeschrieben. Und ich habe eine .zip hochgeladen mit meinem C# Projekt, dazu eine Input und eine Output Datei. Wäre toll wenn jemand damit mal rumtesten könnte, ob vllt. doch noch iorgendwelche weiteren Regeln für die Reduktion angewandt werden können.
Die Eigenschaften des zu optimierienden Code zusammengefasst:
1. Jede Zeile wird exakt zu einem Zeitpunkt ausgeführt
2. Die ersten beiden Stellen nach der Anweisung in einer Zeile, werden ausgelesen
3. Die letzte Stelle in der Zeile wird beschrieben
ADD A B C -> A und B werden gelesen, C wird geschrieben
4. Sobald eine Variable ds letzte mal beschrieben wurde und nicht mehr ausgelesen wird, darf diese ersetzt werden.

Vielen Dank und leibe Grüße, Bob.

Re: Algorithmus braucht weitere Regel

Verfasst: Di Feb 07, 2017 4:50 pm
von Xin
Da müssen mehr Informationen her.

Und es ist sehr anzuraten, dass Du Deinen Variablen sprechende Namen gibst. temp6 ist für mich genauso wenig aussagekräftig wie temp4.
i verstehe ich, ii wenn es sein muss auch noch, aber da gibt es noch gg, h und k, point, point2.

Ich sehe keine Input-Datei mit 1,5k Variablen und soll ich mich da mal eben komplett einarbeiten?
:-)
Ich denke, Deine Masterarbeit kannst Du auch etwas qualitativer machen, damit jemand damit auch was anfangen kann. Und dann kann Dir evtl. auch jemand helfen, weil er den Quellcode nicht dechiffrieren muss.

Re: Algorithmus braucht weitere Regel

Verfasst: Di Feb 07, 2017 5:20 pm
von cloidnerux
Wäre toll wenn jemand damit mal rumtesten könnte, ob vllt. doch noch iorgendwelche weiteren Regeln für die Reduktion angewandt werden können.
Viele hier haben nicht die Zeit, sich mit anderen Projekten ernsthaft auseinender zu setzten, so auch ich.

Ich müsste jetzt wrsl 3h investieren, um auf deinen Kenntnisstand zu kommen, von daher kann ich das nicht machen.
Was du aber versuchen kannst ist, Systematisch Input files zu erzeugen, die kurz genug sind, um sie übersehen können, gleichzeitig aber nicht korrekt optimiert sind.
Alternativ, hast du einen alternativen Algorithmus, den du gegen deinen Testen kannst.

Re: Algorithmus braucht weitere Regel

Verfasst: Mi Feb 08, 2017 1:06 pm
von bobpcur
Ich sehe keine Input-Datei mit 1,5k Variablen und soll ich mich da mal eben komplett einarbeiten?
Die ist auch nicht dabei, es ist eine kurze Beispiel Input Datei dabei.
Gut, ich gebe zu, der Quellcode ist arg wenig kommentiert, ich ändere das noch die Tage. Jedoch geht es nicht darum, meinen C# Quellcode zu verändern, sondern nur einen Tipp geben, was noch offensichtlich falsch ist.
Was du aber versuchen kannst ist, Systematisch Input files zu erzeugen, die kurz genug sind, um sie übersehen können, gleichzeitig aber nicht korrekt optimiert sind.
Exakt das habe ich versucht, deswegen ist auch eine kurze, nicht optimierte Datei dabei und deren nicht korrekt optimierter Output.

Leider habe ich keinen alternativen Algorithmus zum Gegentesten. Mein Betreuer hat gemeint, eigentlich existieren keine weiteren Optimierkriterien, die ich nicht benutze. Ich sollte wohl schauen, wie genau die Variablen ersetzt werden, wenn diese frei werden.

Grüße.

Re: Algorithmus braucht weitere Regel

Verfasst: Mi Feb 08, 2017 1:55 pm
von Xin
bobpcur hat geschrieben:
Ich sehe keine Input-Datei mit 1,5k Variablen und soll ich mich da mal eben komplett einarbeiten?
Die ist auch nicht dabei, es ist eine kurze Beispiel Input Datei dabei.
Gut, ich gebe zu, der Quellcode ist arg wenig kommentiert, ich ändere das noch die Tage. Jedoch geht es nicht darum, meinen C# Quellcode zu verändern, sondern nur einen Tipp geben, was noch offensichtlich falsch ist.
Dafür wäre es sinnvoll, Deinen Quelltext verstehen zu können.
Du musst bedenken, dass wir nicht im Thema Deiner Masterarbeit sind und jemand, der in der Lage ist, Dir bei Deiner Masterarbeit zu helfen, nicht erstmal mal Querreferenzen lesen will, wo beschrieben steht, was Du mit Deinem Quelltext eigentlich bezwecken willst, um dann zu gucken, ob der Quelltext überhaupt Deiner Idee entspricht und ob Idee oder Quelltext falsch ist. ^^

Sowas findet faktisch nirgendwo statt, weil es Zeit kostet, die keine Firma bezahlen will. Und die Zeit forderst Du hier mal spontan ein, wenn Du Quelltext in der Form vorlegst und sagst "Lies mal hier" und "guck mal da" und dann streng Dich mal an, dass Dir dazu was einfällt, was meiner Master-Arbeit hilft.
Als Software-Entwickler rate ich Dir hier zu Test-Driven-Design: Formuliere Deine Anforderung im Test und sorge dafür, dass Dein Programm die Anforderung erfüllt. Die Anforderungen werden immer komplexer, bis das Ding tut, was Du willst.

Was du aber versuchen kannst ist, Systematisch Input files zu erzeugen, die kurz genug sind, um sie übersehen können, gleichzeitig aber nicht korrekt optimiert sind.
Exakt das habe ich versucht, deswegen ist auch eine kurze, nicht optimierte Datei dabei und deren nicht korrekt optimierter Output.

Leider habe ich keinen alternativen Algorithmus zum Gegentesten. Mein Betreuer hat gemeint, eigentlich existieren keine weiteren Optimierkriterien, die ich nicht benutze.[/quote]
Das ist doch ein Widerspruch: Dass das Ergebnis nicht optimal ist, musst Du doch an irgendeinem Kriterium erkennen.