Entwickler-Ecke
Algorithmen, Optimierung und Assembler - Programmierübungen für experten
Delete - Di 09.03.10 12:52
Titel: Programmierübungen für experten
Guten Morgen,
Ich suche eine komplexe Programmieraufgabe, ich meine, etwas wirklich kniffliges.
Habe im Moment Recht viel freizeit und suche etwas das mich richtig fordert.
Kommentare wie "Denk dir was aus" oder ähnliches werden von mir gleich ignoriert.
Hintergrundinfo:
ich programmiere seit release der Programmiersprache Pascal
Ich bin sehr interessiert an kreativen vorschlägen die ich dann umsetzen kann
Dank im Vorraus
Seniore
elundril - Di 09.03.10 13:08
wie wäre es mit einem programm das den turing test besteht? :mrgreen:
sorry, musste einfach sein^^
lg elundril
Delete - Di 09.03.10 13:25
ich brauche was komplexeres und ernsteres.
Also suche weiterhin nen Vorschlag!
Liebe grüße
F34r0fTh3D4rk - Di 09.03.10 13:29
Schreibe ein Programm, welches zu einer gegebenen Notenfolge eine möglichst gut spielbare Tabulatur für Gitarre ausgibt. Hierbei gibt es natürlich verschiedene Spieltechniken zu beachten.
Ich habe so etwas mal gemacht, aber mein Ansatz war ein Durchprobieren (fast) aller Möglichkeiten, gepaart mit einer Bewertungsfunktion.
Vielleicht schafft man es irgendwie die menschliche Hand zu modellieren und mithilfe eines genetischen Algorithmus einen spielbaren Fingersatz zu erzeugen.
Mein Programm erzeugte auf Eingabe der C-Dur Tonleiter das hier:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| // Test C-Dur Tonleiter //------------------------- //------------------------- //------------------2--4--5 //---------2--3--5--------- //---3--5------------------ //------------------------- |
Das lässt sich gut spielen und der Fingersatz ist relativ offensichtlich. Aber das ist auch noch ein relativ einfacher Fall.
Hier gibt es ein paar Infos für Nicht-Gitarristen:
http://de.wikipedia.org/wiki/Tabulatur#Beispiel_f.C3.BCr_eine_ASCII-Gitarrentabulatur
Nersgatt - Di 09.03.10 13:38
elundril hat folgendes geschrieben : |
wie wäre es mit einem programm das den turing test besteht? :mrgreen: |
So schwer ist ein Brainfuck (oder auch Miau)-Interpreter ja nun nicht zu implementieren.... :D
Narses - Di 09.03.10 13:55
Moin!
elundril hat folgendes geschrieben : |
wie wäre es mit einem programm das den turing test besteht? |
Seniore hat folgendes geschrieben : |
ich brauche was komplexeres und ernsteres.
Also suche weiterhin nen Vorschlag! |
Also was für
echte Experten... :gruebel:
Wie wäre es mit einem kleinen Beispiel-Programm, dass das Turing-Halteproblem umgeht? :think:
cu
Narses
thepaine91 - Di 09.03.10 13:58
Wie wäre es mit einem Chatbot der so ausgereift ist, das man nicht merkt mit einem bot zu schreiben. Bzw. dieser sollte Fragen beantworten können mit hilfe von KI.(s.o.) ;) Das ist was für Experten vorallem da es bis heute noch nicht existiert. Oder ein Neuronales Netz Programmtechnisch verwirklichen.
[Ironie] Vorallem ein Experte wie du, der aber nicht weis wie man bei einem Synedit den Cursor an den Anfang der Seite setzt sollte das mit links schaffen. [/Ironie]
Narses - Di 09.03.10 14:01
Moin!
thepaine91 hat folgendes geschrieben : |
Wie wäre es mit einem Chatbot der so ausgereift ist, das man nicht merkt mit einem bot zu schreiben. Bzw. dieser sollte Fragen beantworten können |
elundril hat folgendes geschrieben : |
wie wäre es mit einem programm das den turing test besteht? |
:nixweiss:
cu
Narses
thepaine91 - Di 09.03.10 14:04
Ach :D turing Test hies es sorry hab das verschwitzt.
Marc. - Di 09.03.10 14:11
thepaine91 hat folgendes geschrieben : |
Wie wäre es mit einem Chatbot der so ausgereift ist, das man nicht merkt mit einem bot zu schreiben. Bzw. dieser sollte Fragen beantworten können mit hilfe von KI. ;). |
Der
Turing-Test [
http://de.wikipedia.org/wiki/Turing-Test] wurde doch bereits erwähnt. :roll:
Edit: Ajax war deaktiviert.
Den Vorschlag von
F34r0fTh3D4rk könnte man auch dorthin modifizieren, dass zudem ein Algorithmus zur Notenerkennung implementiert wird. Quasi hören, erkennen und richtig notieren. :zustimm:
Gausi - Di 09.03.10 14:12
Wie wäre es damit:
Eingabe: Ein Bild, Foto, Zeichnung, sonstwas.
Ausgabe: Eine Bastelanleitung/Steckvorlage für Ministeck inklusive Einkaufsliste.
Probleme, die dabei zu lösen sind:
Farbreduzierung auf 24 (?) fest vorgegebene Farben, unter der Nebenbedingung, nicht zu pixelig zu werden. Denn 1x1-Steinchen gibt es bei Ministeck nicht einzeln zu kaufen.
Außerdem: Aufteilung eines Rechtwinkligen Polygons in Teilpolygone in dem Verhältnis, wie sie in den handelsüblichen Ministeck-Blisterpackungen zu finden sind.
Hab ich mich mal mit eher sehr mäßigem Erfolg dran probiert und es dann aufgegeben. ;-)
elundril - Di 09.03.10 14:12
Nersgatt hat folgendes geschrieben : |
elundril hat folgendes geschrieben : | wie wäre es mit einem programm das den turing test besteht? :mrgreen: |
So schwer ist ein Brainfuck (oder auch Miau)-Interpreter ja nun nicht zu implementieren.... :D |
Turing-Vollständig <> Turing-Test.
Das eine gibt an ob eine Programmiersprache mindestens das selbe kann wie eine Turingmaschiene (soweit ich das verstanden hab), das andere ob eine KI so stark ist das man nicht mehr zwischen Mensch und PC unterscheiden kann wenn man sich mit einer unterhält zb. ;) welches nun welches ist darfst du selbst rausfinden. :mrgreen:
lg elundril
Thorsten83 - Di 09.03.10 14:22
Wobei es ja wieder eine interessante Frage ist ob eine KI stark (im Sinne der KI-Forschung) sein muss um den Turing-Test zu bestehen :D
Suchst du denn eine Aufgabe die schwierig zu implementieren ist, oder eher ein algorithmisches Problem?
thepaine91 - Di 09.03.10 14:29
Oder was wir schon lange nicht mehr hatten war ein Betriebssystem mit Delphi zu programmieren.
Horschdware - Di 09.03.10 15:04
thepaine91 hat folgendes geschrieben : |
Oder was wir schon lange nicht mehr hatten war ein Betriebssystem mit Delphi zu programmieren. |
Nanana, pfui, böse. Du sollst doch andere Leute nicht so ärgern. ;-p
Delete - Di 09.03.10 15:51
@ Thorsten83, ich such eine Aufgabe die schwierig zu implementieren ist.
An die anderen Danke für eure Vorschläge, klingt alles sehr interessant, das mit dem Chatbot stammt ja ursprünglich von einem Herrn Weizenbaum. Er nannte sein Chatprogramm "ELIZA". Zu damaligen verhältnissen war Eliza von der KI her schon recht weit, heute würde vermutlich nichtmal mehr ein Grundschüler drauf reinfallen.
Zu dieser sache vom netten user "thepaine91" wobei paine, wenn es denn dann schmerz bedeuten soll *lach ohne e geschrieben wird.
"
[Ironie] Vorallem ein Experte wie du, der aber nicht weis wie man bei einem Synedit den Cursor an den Anfang der Seite setzt sollte das mit links schaffen. [/Ironie]"
Ich hab die frage für nen user reingestellt weil sie ihm nicht beantwortet wurde, niemand ging auf seinen eintrag ein, also stellte ich es nochmal rein.
Liebe Grüße
Seniore
Marc. - Di 09.03.10 16:10
Seniore hat folgendes geschrieben : |
[Ironie] Vorallem ein Experte wie du, der aber nicht weis wie man bei einem Synedit den Cursor an den Anfang der Seite setzt sollte das mit links schaffen. [/Ironie]"
Ich hab die frage für nen user reingestellt weil sie ihm nicht beantwortet wurde, niemand ging auf seinen eintrag ein, also stellte ich es nochmal rein. |
[OT]Worum geht's hier? Warum hast Du sie nicht beanwortet? :nixweiss: :roll: [/OT]
Da "schwierig zu implementieren" relativ und die Aussage seit Release von Pascal zu programmieren nur (schwach) quantitativer Natur ist, wäre es interessant zu erfahren, welche (aus Deiner Sicht) komplexen Programme Du bereits vorzuweisen hast.
In welche Richtung soll das ganze denn tendieren? Etwas Wissenschaftliches (Bsp.: Simulationen)? Etwas Nützliches (Bsp.: Notenerkennung)? Etc.? :)
Delete - Di 09.03.10 16:15
Also,
ich habe mich mit um die Programmierung von Speziellen Programmen für die Raumfahrtsforschung beschäftigt. 1 Programm wird noch heute von der NASA genutzt, auch wenn sich mitlerweile völlig andere Leute um es kümmern.
Ich hatte es gerne gemacht. Nun, wo ich alt bin, habe ich viel Freizeit und suche neue herausforderungen, früher hab ich mich speziell um physikalische Vorgänge gekümmert, programme zur berechnung geschrieben..
Ich möchte jetzt was völlig neues ausprobieren, etwas wo man sich richtig durchfuchsen muss.
Dank im Vorraus
SeSeniore
thepaine91 - Di 09.03.10 16:44
Mir ist durchaus bewusst das pain ohne e geschrieben wird. Hat auch andere hintergründe kann ich dir gerne via pm erklären. ;)
Und falls ich mich bezüglich dieses Beitrages wirklich geirrt haben sollte entschuldige ich mich hiermit. ;)
Wenn deine Kenntnisse denn so fortgeschritten sind ist z.B. Gesichtserkennung ein Thema o.ä.
Thorsten83 - Di 09.03.10 16:47
Hmm leider muss ich mich meinen Vorrednern anschließen, "schwierig zu implementieren" ist ziemlich subjektiv, kann halt von benötigten Sprachkenntnissen über design patterns bis hin zu speziellen Datenstrukturen (etc. pp) reichen.
Da hier ja öfter der Bereich der KI angesprochen wurde: Ich fand's immer witzig "KIs" für Spiele zu programmieren.
Bei Zweispieler-Nullsummenspielen ist da der alpha-beta-Algorithmus das Mittel der Wahl, sieht leicht aus, wird aber tricky wenn man ihn richtig schnell kriegen will. Da hat man halt GUI-Programmierung mit drin, zusätzlich Überlegungen zu dem Spiel (--> Stellungsbewertung, Ruhesuche etc. pp), muss zusehen dass man z.B. die Zuggenerierung schnell hinbekommt, und was ich persönlich schön finde ist zu sehen, wie die KI immer stärker wird.
Bei anderen Spielen kann man beliebig an Heuristiken rumbasteln ;)
Delete - Di 09.03.10 17:00
Danke für die neuen Vorschläge, finds supi spitze klasse, das ihr euch so beteiligt.
ja schwer zu implementieren ist recht sukjektiv da es hal wie gesagt einige möglichkeiten gibt.
Ich finde das mit der KI sehr interessant und denke es wird ein Spiel werden, eins, das für jeden interessant ist.
Bevor ich jetzt extra nen neuen Thread starte "Was für ein Spiel soll es werden?" ;) ich bin ein alter mann, mir fehlt dort einfach die Fantasie.
Dank im Vorraus
Seniore
Delete - Di 09.03.10 17:10
Was macht denn dein Programm für die NASA? Allzu speziell kann es ja nicht gewesen sein, wenn sie es heute noch benutzen.
elundril - Di 09.03.10 17:16
erinnerst du dich an die Rakete die wegen einer fehlenden Umwandlung zwischen Grad und Neugrad abgestürzt ist? :mrgreen:
sorry, musste einfach sein
lg elundril
Marc. - Di 09.03.10 17:18
elundril hat folgendes geschrieben : |
erinnerst du dich an die Rakete die wegen einer fehlenden Umwandlung zwischen Grad und Neugrad abgestürzt ist? :mrgreen: |
:rofl:
Thorsten83 - Di 09.03.10 17:31
Um ein Gefühl für Spielbäume zu bekommen kann man als erstes eine KI für ein triviales Spiel, z.B. TicTacToe, schreiben.
Schach ist schon deutlich anspruchsvoller, da hier viele Dinge berücksichtigt werden müssen, einfacher ist z.B. Dame oder Mühle.
Ich würde definitiv nicht empfehlen, gleich mit Schach anzufangen, mach lieber erstmal die Anfängerfehler bei einem "einfachen" Spiel... ;)
delphi10 - Di 09.03.10 17:52
Seniore hat folgendes geschrieben : |
Zu dieser sache vom netten user "thepaine91" wobei paine, wenn es denn dann schmerz bedeuten soll *lach ohne e geschrieben wird.
Liebe Grüße
Seniore |
Zu dieser Sache vom netten User "seniore" wobei vorraus, wenn es denn dann voraus bedeuten soll *lach nur mit einem "r" geschrieben wird.
Delete - Di 09.03.10 18:01
wo steht vorraus?
und was ist schwerwiegender ein rechtschreibfehler in irgendeinem satz oder ein fehler im nickname? Fass dir mal ann´kopf Delphi10. Außerdem bin ich kein Deutscher, das entschuldigt alle rechtschreibfehler haha :)
und zum NASA Programm, es war eins der grundlegenden Programme, heutzutage ist es schon viel spezieller, aber früher, da war es noch recht algemein, aber es war top.
Zu der Schach Idee, geb ich dir recht, mit ki bin ich noch nicht wirklich weit, bzw. hab ich dazu noch garkeine infos. Ich werde mich die tage darauf konzentrieren mir wissen anzueignen.
Werde dann aber auch mit sowas wie schach anfangen, da ich selber begeisterter schachspieler bin.
Liebe Grüße
Seniore
ub60 - Di 09.03.10 19:22
Vorschlag 1:
Also hier mal eine Idee für ein Programm, was ich selber schon seit vielen Jahren schreiben wollte (und immer fehlt die Zeit:) : Programmiere doch mal einen komplexen Stausimulator.
Auto, Ampeln, Fußgänger usw. als Objekte, Fahrbahnen als (?) irgendwie verkettete Listen. Das ganze mit individuell einstellbaren Größen wie Aggressivität, vorausschauendes Fahren, Fahrziel, Parkdauer, ...
Und das ganze natürlich mit grafischer Oberfläche, damit man sich schön zurücklehnen kann und zuschauen kann, wann der Stau beginnt. Und sich freuen, dass man nicht drin steckt:).
Vorschlag 2:
Unter VB und C# gibt es ein Super-Projekt mit intelligenten Ameisen (
http://antme.net/). So was in Delphi zum Programmieren eigener Ameisen würde sicher hier im Forum (und an vielen Schulen) eine große Fangemeinde finden.
ub60
Jakob_Ullmann - Di 09.03.10 20:29
F34r0fTh3D4rk hat folgendes geschrieben : |
Schreibe ein Programm, welches zu einer gegebenen Notenfolge eine möglichst gut spielbare Tabulatur für Gitarre ausgibt. Hierbei gibt es natürlich verschiedene Spieltechniken zu beachten.
Ich habe so etwas mal gemacht, aber mein Ansatz war ein Durchprobieren (fast) aller Möglichkeiten, gepaart mit einer Bewertungsfunktion.
Vielleicht schafft man es irgendwie die menschliche Hand zu modellieren und mithilfe eines genetischen Algorithmus einen spielbaren Fingersatz zu erzeugen. |
Nun, also erstens meinst du ja hoffentlich einen generischen Algorithmus, oder? Gar keine schlechte Idee, das ganze ist eigentlich wie geschaffen für neuronale Netze. Allerdings ist das eher Geschmackssache. LilyPond kann zum Beispiel etwas derartiges, und wahrscheinlich würde das Ergebnis den meisten Gitarristen gefallen, allerdings kann man das meiner Meinung nach nicht verallgemeinern, ohne ein paar Randbegingungen zu beachten. Die Tatsache zum Beispiel, dass du auf einer E-Gitarre mehr greifbare Bünde hast als auf einer akustischen und dass der Hals schmaler ist. Das erachte ich als ziemlich wesentlich.
Der Standard-Ansatz dürfte ja wohl sein, dass sich die Zahlen möglichst geringfügig ändern. Ist aber nicht immer ideal.
Aber wo wir gerade bei Musik sind: Eine grafische Oberfläche für LilyPond, die unter Windows läuft und sich per Tastatur bedienen lässt, wäre mal eine echte Marktlücke.
Oder ein Programm, das algebraisch integrieren kann (also auch die schwierigeren Sachen wie Integration durch Substitution).
delphi10 - Di 09.03.10 21:38
Seniore hat folgendes geschrieben : |
wo steht vorraus? |
das letzte Mal geschrieben heute 16:00
Zitat: |
und was ist schwerwiegender ein rechtschreibfehler in irgendeinem satz oder ein fehler im nickname? Fass dir mal ann´kopf Delphi10. Außerdem bin ich kein Deutscher, das entschuldigt alle rechtschreibfehler haha :) |
Ja nee, is klar...
Und ich dachte immer, ein Nickname ist so was von individuell, dass er gar nicht falsch sein kann.
dummzeuch - Di 09.03.10 22:08
Wie waere es mit einem Programm, welches automatisch in Strassenbildern Schilder erkennt. Ich wuerde erstmal damit anfangen, dass es ueberhaupt erkennt, wo ein Schild ist. Danach dann zu erkennen, um welches Schild es sich handelt, waere dann die Kuer.
Aber Vorsicht: Daran beissen sich gerade diverse Entwicklerteams die Zaehne aus. Es ist nicht so einfach, wie es erstmal klingt. Ich habe es selbst mal probiert und hatte keine besonders hohe Trefferquote.
Wenn Du es hinbekommst, garantiere ich Dir, dass es international eine Menge Interessenten gibt, die richtig Geld dafuer hinlegen wuerden. Derzeit wird das naemlich in "Hand-"Arbeit durch Menschen erledigt, was ziemlich teuer kommt.
Delete - Di 09.03.10 22:10
Seniore hat folgendes geschrieben : |
und zum NASA Programm, es war eins der grundlegenden Programme, heutzutage ist es schon viel spezieller, aber früher, da war es noch recht algemein, aber es war top. |
Werde doch mal etwas konkreter. Und wie bist du dazu gekommen das zu schreiben?
Delete - Mi 10.03.10 09:36
Guten Morgen
Viele interessante Ideen, viele interssante Dinge die sich mit sicherheit lohnen würden umzusetzen.
Also im vornerein: Den Turing Test werde ich nicht übernehmen *schmunzel
Auf den Loebner Preis bin ich auch nicht wirklich scharf.
Vielmehr würde mich die geschichte mit dem generischen Algorithmus interessieren. Programme wie GuitarPro sind zwar nett aber ich finde sowas ist noch sehr ausbaufähig.
Auf der anderen Seite die Geschichte mit den Straßenschildern die ein Programm finden und erkennen soll.
Ich glaube auch das es da mit Sicherheit viele interessenten gäbe, und interessant finde ich das Thema selber auch. Ich denke ich werde mich diesem Thema witmen.
Zum neugierigen Luckie (lucky?), wenn dich mein Leben und meine Arbeit so interessiert, schau dir meine Seite auf Wikipedia an (musste aber übersetzer drüber laufen lassen)
http://sr.wikipedia.org/sr-el/%D0%9C%D0%B8%D0%BB%D0%BE%D1%98%D0%BA%D0%BE_%D0%92%D1%83%D1%87%D0%B5%D0%BB%D0%B8%D1%9B
Viele Dank
Seniore
Gausi - Mi 10.03.10 10:06
Hier mach ich auch dicht.
Ein 80-jähriger Veteran der US-Raumfahrt, Mitarbeiter bei Apollo 13, ausgezeichnet mit der Medal of Freedom, fragt im Delphi-Forum nach, was er noch programmieren könnte und lässt keine Gelegenheit aus, andere (?) User zu beleidigen?
Diese Entscheidung wird intern weiterdiskutiert werden. Wie man da mitreden kann, weißt du ja schon.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!