algo rausbekommen



  • Gibt es eigentlich bestimmte Techniken, um Algorithmen herauszubekommen?

    Prinzipiell würde ich jetzt mal sagen, Nein. Und man muss sein Glück selbst durch langes Ausprobieren versuchen.

    Aber wer weiß ... 😉



  • Was meinst du mit "herausbekommen"?



  • Wenn du ausreichend Werte zur Verfügung hast -> Lineare Regression.



  • habito schrieb:

    Gibt es eigentlich bestimmte Techniken, um Algorithmen herauszubekommen?

    Prinzipiell würde ich jetzt mal sagen, Nein. Und man muss sein Glück selbst durch langes Ausprobieren versuchen.

    Aber wer weiß ... 😉

    Wenn du einen Algorithmus fändest, der andere Algorithmen herausfinden könnte, würdest du in die Geschichte der Künstlichen Intelligenz eingehen 😉 .

    P.S.: Zählt Konzentration eigentlich auch als Technik?



  • ja, wenn es nur endlich viele Anforderungen an den Algorithmus gibt: letztlich läßt sich alles Berechenbare auf Turingmaschinen (mit Eingabebereich = Ausgabebereich = Natürliche Zahlen) rückbauen.

    Lauten die Anforderungen an den Algorithmus dann bspw

    a(1) = 123
    a(2) = 456
    a(3) = 815
    ...
    ...
    a(271828!^314159!) = 42

    dann gibt es trivialierweise einen Algo in Form eines TM-Programms, der diese partiell def. funktion berechnet. Das ist dann in der Regel kein Dreizeiler 😃

    ist damit was gewonnen? 💡 neijanein.

    Was du meinst, ist nicht *irgendein* Algorithmus, sondern ein kurzer Algorithmus und dann gilt, was wxskip schreibt.



  • !rr!rr_. schrieb:

    Was du meinst, ist nicht *irgendein* Algorithmus, sondern ein kurzer Algorithmus und dann gilt, was wxskip schreibt.

    Ich schätze, er meint einen Algorithmus, der eine Zahl annimmt und daraus eine andere Zahl berechnet.

    int algorithm(int value);
    

    Das ist eine wesentliche Einschränkung.



  • Hab ich hier ausversehen irgendwas geblockt oder woher meint ihr zu wissen, was der OP meint?



  • Bashar schrieb:

    Hab ich hier ausversehen irgendwas geblockt oder woher meint ihr zu wissen, was der OP meint?

    Ja, da spielen natürlich die Spekulationen von Regressionist und !rr!rr_. mit rein, aber der einzige Hinweis ist das Ausprobieren. Und bei Funktionstermen kann man eben gut ausprobieren.

    Hast natürlich recht 😃 .



  • [quote="wxSkip"
    Das ist eine wesentliche Einschränkung.[/quote]

    nein, ist es nicht.

    Alles, was berechenbar ist, kann in eine Turingmaschine mit Eingabemenge = Ausgabemenge = Natürliche Zahlen eincodiert werden.



  • !rr!rr_. schrieb:

    wxSkip schrieb:

    Das ist eine wesentliche Einschränkung.

    nein, ist es nicht.

    Alles, was berechenbar ist, kann in eine Turingmaschine mit Eingabemenge = Ausgabemenge = Natürliche Zahlen eincodiert werden.

    Klar, und die Natürlichen Zahlen sind daran die Einschränkung. Außerdem kommt es ja hier nicht darauf an, ob das programmierbar ist, sondern wie man den Algorithmus herausfindet. Das hat erstmal nichts mit einer Turingmaschine zu tun.



  • wxSkip schrieb:

    Klar, und die Natürlichen Zahlen sind daran die Einschränkung.

    rechnet man in deinem Universum mit tranzendenten Zahlen? Also wir rechnen hier mit ganzen Zahlen, mehr kann die turingmaschine nicht ab.

    Letzlich kann man "alles" (das ist das selbe wie "alles, was die turingmaschien kann", Church-Turing'sche These) mit Eingabemenge = Ausgabemenge = {0,1}* berechnen, und endliche Bitketten sind nur eine andere Schreibweise für natürliche Zahlen.

    Genaugenommen ist schon die Turingmaschine Science-Fiction, schließlich gibt es in der realen Welt nur endliche Automaten, aber wir wollen nicht pingelig sein 😃



  • !rr!rr_. schrieb:

    wxSkip schrieb:

    Klar, und die Natürlichen Zahlen sind daran die Einschränkung.

    rechnet man in deinem Universum mit tranzendenten Zahlen? Also wir rechnen hier mit ganzen Zahlen, mehr kann die turingmaschine nicht ab.

    Letzlich kann man "alles" (das ist das selbe wie "alles, was die turingmaschien kann", Church-Turing'sche These) mit Eingabemenge = Ausgabemenge = {0,1}* berechnen, und endliche Bitketten sind nur eine andere Schreibweise für natürliche Zahlen.

    Genaugenommen ist schon die Turingmaschine Science-Fiction, schließlich gibt es in der realen Welt nur endliche Automaten, aber wir wollen nicht pingelig sein 😃

    Einen Algorithmus zu finden, der dir jeden möglichen String ins Englische übersetzt, ist im Normalfall wesentlich schwieriger und verläuft ganz anders als bei einem Algorithmus, der eine Zahl ausrechnet. Natürlich könntest du deinen String auch als "Zahl mit char-Bytes" übergeben, aber lassen wir das...
    Warten wir doch einfach mal ab, was der OP meint...



  • wxSkip schrieb:

    Einen Algorithmus zu finden, der dir jeden möglichen String ins Englische übersetzt, ist im Normalfall wesentlich schwieriger und verläuft ganz anders als bei einem Algorithmus, der eine Zahl ausrechnet. Natürlich könntest du deinen String auch als "Zahl mit char-Bytes" übergeben, aber lassen wir das...

    Nein, lassen wir das nicht. Das ist genau der Punkt, warum die Einschränkung auf natürliche Zahlen nicht wesentlich ist.



  • Von mir aus...



  • 1.) Zusammenhang?
    2.) Man erkennt einen Algo oft an dem, was er macht.
    3.) Was hat diese Frage mit Mathe oder Physik im Speziellen zu tun?


  • Mod

    nachtfeuer schrieb:

    1.) Zusammenhang?

    Die Kodierung in natürlichen Zahlen zeigt gut, dass es aus rein informationstheoretischen Gründen unmöglich ist einen Algorithmus aus endlich vielen Beispielen wiederzugewinnen.

    nachtfeuer schrieb:

    2.) Man erkennt einen Algo oft an dem, was er macht.

    Ich vermute, dass man mit allen gängigen Wahrscheinlichkeitsmaßen auf das Ergebnis kommt, dass man einen Algorithmus fast nie erkennen kann aus endlich vielen gegebenen Werten.

    nachtfeuer schrieb:

    3.) Was hat diese Frage mit Mathe oder Physik im Speziellen zu tun?

    Dieser Thread scheint mir von Berechenbarkeit zu handeln. Berechenbarkeit ist ein Teilgebiet der Mathematik und der theoretischen Informatik.



  • habito schrieb:

    Gibt es eigentlich bestimmte Techniken, um Algorithmen herauszubekommen?

    Prinzipiell würde ich jetzt mal sagen, Nein. Und man muss sein Glück selbst durch langes Ausprobieren versuchen.

    Aber wer weiß ... 😉

    Deine Frage ist ungenau und weckt bei mir den Verdacht das du unter dem Begriff Algorithmus etwas anderes verstehst als ich. Schaue mal unter http://de.wikipedia.org/wiki/Algorithmus nach um mal einen Eindruck zu bekommen was ein Algorithmus ist.

    Und natürlich gibt es viele Techniken zur Analyse von Problemen. Ich erinnere da an den Divide and Conquer Ansatz zur Lösung/Zerlegung von komplexen Problemen oder an die String Analyse wo Zustandsautomaten eine wichtige Technik spielen. Und auch die Technik Trial And Error kann auf Algorithmenebene angewandt werden.


Anmelden zum Antworten