Bundeswettbewerb Informatik - nur für Genies?



  • 😮 😕 nich schlecht die Aufgaben. Da müsst ich glaub ich auch ne Weile rumprobieren.



  • Wäre auch ein langweiliger Wettbewerb wenn jeder ohne weiteres auf eine perfekte Lösung kommen würde.



  • das ganze ist ein informatik wettbewerb. das heisst, programmieren ist zwar integraler bestandteil, aber hauptaugenmerk liegt darauf, aus den aufgabenstellungen auf das eigentliche problem zu schließen.

    was ist also das kernproblem bei aufgabe 2? auf welche mathematischen probleme lässt sich das ganze reduzieren, vielleicht optimierung?
    sobald das klar ist, kann das programmieren beginnen. und erst dann kommt die fähigkeit der umsetzung (des programmierens) zum tragen.

    aufgabe 2 ist tatsächlich nicht trivial und wird ohne gründliche vorüberlegung schwerlich zu lösen sein.

    ein ansatz wäre folgender:

    zu finden sind die koeffizienten A und B, so dass die varianz von M der in der aufgabe dargestellten formel bezüglich der messwerte minimiert wird.



  • Für Aufgabe2 sollte man mal nach "Lineare Optimierung" suchen.



  • Überseh ich was? Oder was soll an Aufgabe 2 jetzt so schwer sein? Drei verschachtelte Schleifen, zwei Formeln zum einsetzten, Fehler merken, die mit kleinstem Fehler sind die besten, wenns mehrere gibt noch die Faktoren anschauen.



  • ja, du übersiehst, dass das problem unbeschränkt ist. kleinen koeffzienten wird zwar der vorzug gegeben, aber wenn ein wenig größere andere anforderungen besser befriedigen, dann sind sie auch ok.

    es wird aufgrund der generellen beschränktheit der aufgabe mittels brute-force in annehmbarer zeit lösbar sein. aber das birgt zwei probleme:
    1. brute force ist niemals schön 😉
    2. kannst du die nachfolgenden fragen dann ohne probleme beantworten?



  • Hier mal mein Ansatz:
    Seinen x,y,z die Messwerte wobei z der M Wert ist uns a,b,c die Koeffizienten. a,cNa,c \in N und bZb \in Z.

    Die angegebene Formel ist dann:
    a\*x + b\*y = c*z
    Ziehen wir da z raus
    z = \frac{a\*x + b\*y}{c}
    Die Abweichung wäre dann
    |\frac{a\*x+b\*y}{c} - z|
    Es gilt also
    \sum|\frac{a\*x+b\*y}{c} - z|
    Zu minimieren.

    Dieser absoluter Wert stört mich enorm. Anderseits sollte sich die Abweichung ja eh um 0 liegen also bleibt der Fehler klein wenn wir ihn ignoriren.

    Geben wir uns zwei Messergebnise
    \frac{a\*x\_1+b\*y\_1}{c} - z\_1 + \frac{a\*x\_2+b\*y\_2}{c} - z\_2
    = \frac{a\*x\_1+b\*y\_1+a\*x\_2+b\*y\_2}{c} - (z\_1 + z\_2)
    =a(x_1+x_2)+b(y_1+y_2)c(z_1+z_2)= \frac{a*(x\_1+x\_2)+b*(y\_1+y\_2)}{c} - (z\_1 + z\_2)
    Das sieht ja toll aus.
    \sum\frac{a\*x+b\*y}{c} - z = \frac{a*\sum{x}+b*\sum{y}}{c} - \sum{z}
    ax+by=cz\Leftrightarrow{a*\sum{x}+b*\sum{y} = c*\sum{z}}

    Überprüfen wir das mal gleich mit dem angegebenen Beispiel:
    ax+by=497a*\sum{x}+b*\sum{y} = 497
    cz=501c*\sum{z} = 501
    Huch 😕 Sollte die Abweichung nicht 0 sein?

    Mal sehen:
    2*57 - 1*31 = 3*29
    114-31 = 87
    83 = 87
    Nee also für Experiment 2 ist die Abweichung doch nicht 0. Also kann die Summe aller Abweichungen gar nicht 0 sein!

    Weiter mit diesem Ansatz geh ich jetzt nicht. Das Problem ist, dass 2 schlimme Fehler in 2 Exprerimenten sich ausgleichen können.



  • Ok, vielleicht sollt ich schaun, dass ich mich in Mathe etwas steigere. Oder mich als Altgrieche(!) nach anderen Problemen umsehen. Aber andererseits kann ich die restlichen Aufgaben fast ebenso wenig (außer die erste, da müsst ich zwar lange rumprobieren, aber ich versteh wenigstens die Angabe 🙂 ).

    Außerdem ich glaub nicht, dass man "Programmieren" und "Informatik" so strikt trennen darf. Wenn jemand weiß, wie man ein Werkzeug bedient und trotzdem keine Ahnung hat, was er schließlich damit anfangen soll, steht auch blöd da, oder? Wenn ich programmieren, aber kein Problem lösen kann, werd ich wohl auch nicht sehr erfolgreich werden.



  • Ben04 schrieb:

    Dieser absoluter Wert stört mich enorm. Anderseits sollte sich die Abweichung ja eh um 0 liegen also bleibt der Fehler klein wenn wir ihn ignoriren.

    Das mit dem ignorieren kann ich nicht nachvollziehen. Wenn Du das machst, dann kannst Du Dein Verfahren nicht mehr gut analysieren, weil Du nicht weißt welche Fehler passieren.

    Eine gute Möglichkeit den Betrag loszuwerden ist, den quadratischen Fehler zu minimieren. Damit bestraft man große Abweichungen stärker. Kriegt man den quadratischen Fehler auf 0, dann ist auch der absolute 0. Außerdem bleibt so die Fehlerfunktion differenzierbar, was man sich unter Umständen für die Minimumsuche zu Nutze machen könnte.

    Das wäre vielleicht ne ganz nette Idee. Erstmal den quadratischen Fehler minimieren, dann die schlechtesten Experimente rausschmeißen, neu berechnen und dann die Koeffizienten auf ganze Zahlen runden.

    Ich denke die Aufgabe zielt auch insgesamt mehr drauf ab, daß geschickte Vereinfachungen der Aufgabenstellung gemacht werden, um so das Problem lösen zu können. Eine "Optimallösung" ist da vermutlich garnicht gefordert.



  • Außerdem ich glaub nicht, dass man "Programmieren" und "Informatik" so strikt trennen darf.

    doch, das darf man, beziehungsweise muss man sogar. informatik ist eine wissenschaft, die sich (grob) mit informationsauswertung/-beschaffung befasst und versucht, probleme so zu formulieren, dass sie automatisiert gelöst werden können.

    das umsetzen solcher ergebnisse, also der praktische ansatz, ist dann meist das programmieren. also der vorgang, die problembeschreibung und lösung in ein standardisiertes format (eine hochsprache) zu bringen.

    wie heisst es so schön? computer sind für die informatik das, was teleskope für die astronomie sind.


Anmelden zum Antworten