Kann ein Programm dazulernen?



  • Nö geht nicht, weil du dazu erstmal nen Menschen erfinden mußt, der das Lastenheft eindeutig verfasst. Heutzutage sind die alle noch widersprüchlich und unvollständig (wenn überhaupt vorhanden).



  • satanfreze schrieb:

    Rein theoretisch geht es schon - nur ich denke, dass wir diesen Augenblick nicht mehr erleben werden.

    Ne, also rein theoretisch geht sowas schonmal nicht. Aber vielleicht ist es zumindest für interessante Spezialfälle möglich.



  • wxSkip schrieb:

    Für mich ist ein wirklich intelligentes Programm z.B. ein Programm, das ein anderes Programm generieren kann, das intelligenter ist als es selbst (d.h. dieses muss wiederrum ein intelligenteres Programm generieren können usw.)

    Dann guckst Du hier: http://www.idsia.ch/~juergen/gmsummary.html

    Ein universeller Problemlöser, der an sich selbst beweisbare, optimale Verbesserungen vornimmt.



  • satanfreze schrieb:

    Rein theoretisch geht es schon - nur ich denke, dass wir diesen Augenblick nicht mehr erleben werden.

    1. Sprache ist inhärent Mehrdeutig.
    2. Problemstellungen können beliebig komplex sein. Ein Beispiel wäre das Problem: "Das Programm soll am Ende in der Lage sein P!=NP zu Beweisen, oder zu widerlegen."



  • otze schrieb:

    satanfreze schrieb:

    Rein theoretisch geht es schon - nur ich denke, dass wir diesen Augenblick nicht mehr erleben werden.

    1. Sprache ist inhärent Mehrdeutig.
    2. Problemstellungen können beliebig komplex sein. Ein Beispiel wäre das Problem: "Das Programm soll am Ende in der Lage sein P!=NP zu Beweisen, oder zu widerlegen."

    Das stimmt. Aber würde man als Vorraussetzung nehmen, dass man eindeutige, klare Informationen in das Lastenheft einträgt. Ebenfalls unlogische oder unwahre Informationen sollten dort nicht eingetragen sein.
    Nur weil es heutzutage noch unseren Horizont übersteigt, heißt es ja nicht, dass es niemals umsetzbar wäre.



  • Jester schrieb:

    Ne, also rein theoretisch geht sowas schonmal nicht. Aber vielleicht ist es zumindest für interessante Spezialfälle möglich.

    Ich weiß nicht, ob ich deine Aussage richtig interpretiert habe, aber wieso soll das nicht gehen? Dass es doch geht, dafür sind Lebewesen der (pardon) lebende Beweis.
    Die Frage, ob Menschen jemals in der Lage sein werden, etwas vergleichbares nachzubauen, ist wieder eine andere Frage, die der theoretischen Machbarkeit aber keinen Abbruch tut.



  • Athar schrieb:

    Ich weiß nicht, ob ich deine Aussage richtig interpretiert habe, aber wieso soll das nicht gehen? Dass es doch geht, dafür sind Lebewesen der (pardon) lebende Beweis.

    Nein. Es gibt meistens eine große Diskrepanz zwischen dem, was der Kunde möchte und dem was im Lastenheft steht. Es ist fast immer zusätzliche Information vonnöten, um den Inhalt des Lastenheftes korrekt interpretieren zu können. Und selbst dann hagelt es Fehler. Bereits die Anforderung ein eindeutiges Lastenheft zu schreiben ist damit völlig utopisch. Auch ist es bei der Umsetzung nicht klar, ob es einen Algorithmus gibt, der die Anforderungen am Ende in ein Programm umsetzen kann.

    Für spezialfälle wird das sicherlich mal gehen, wenn man das Problem in einer bestimmten eineindeutigen Art formulieren kann und alle Teilproblemstellungen bereits gelöst sind. Aber das ist am Ende nichts anderes, als sich ein Programm aus Komponenten zusammenzuklicken. Sowas gibt es aber bereits zuhauf.



  • Die Frage ist nicht eindeutig gestellt. Was soll denn das Programm selbst lernen können, sich selbst optimieren, Codierfehler bereinigen, geänderte Bedingungen oder Anforderungen einfügen, häufige Benutzerfehler eliminieren oder was? 😕

    Natürlich kann man ein Programm schreiben, das aus seinem Sourcecode einen neuen erstellen kann und dann gleich eine neue EXE macht. Vorstellen kann man sich nahezu alles. Ist jetzt aber nicht mein Ding zum weiteren Nachdenken! :p

    @otze: Sowas wäre toll - eine Programmierhilfe, was der Kunde gewollt, der Programmierer aber nicht voll verstanden hat. Wie macht man das?



  • Das ist äußerst interessant: viele hier beziehen die Ungenauigkeit der Beschreibungen in dem Lastenheft, geschaffen durch den Menschen selbst, mit ein, sodass die Software Schwierigkeiten bekommen könnte, die Aussagen komplett und exakt zu interpretieren.

    Wie wäre es, wenn die Anwendung den Gedankengang der Planung ebenfalls übernimmt? Das heißt, die Anwendung "erahnt" die Bedürfnisse des Anwenders und erschafft eine dementsprechende Software, die diese Bedürfnisse befriedigt.

    Auch wenn wieder Leute losschreien, dass dies doch total unmöglich sei: für die Homosapiens die vor 70.000 Jahren lebten war es auch unvorstellbar, Häuser aus Holz zu bauen - jetzt ragen Wolkenkratzer mit bis zu 800 Metern Höhe in den Himmel.



  • Dass ein Lastenheft nicht eindeutig ist, ist schon klar. Aber das Problem haben menschliche Softwareentwickler genauso, da müssen bei Bedarf eben Rückfragen gestellt werden.

    Das heißt, die Anwendung "erahnt" die Bedürfnisse des Anwenders und erschafft eine dementsprechende Software, die diese Bedürfnisse befriedigt.

    Naja, erahnen kann man auch raten nennen. Die Anwendung müsste umfangreiches Wissen über die Situation und Bedürfnisse des Anwenders haben um da eine hohe Erfolgsquote zu haben.



  • satanfreze schrieb:

    Wie wäre es, wenn die Anwendung den Gedankengang der Planung ebenfalls übernimmt? Das heißt, die Anwendung "erahnt" die Bedürfnisse des Anwenders und erschafft eine dementsprechende Software, die diese Bedürfnisse befriedigt.

    Auch nicht schlecht: ein sich selbst schreibendes vollkommene Lastenheft, das ein fehlerfreies und weiter lernfähiges Programm erstellt. Zielvorstellung: der Anwender gibt über ein Mikrofon seine Wünsche ein und alles weitere läuft von selbst. Während des Programmlaufes sagt er dann 'das habe ich so nicht gewollt, sondern so' oder er sagt 'da muss hier noch folgendes rein'.


Anmelden zum Antworten