void draw() {
background(0, 0, 255);
translate(width/2+100, height/2-200); // Position -1|2 zentrieren
// pro Einheit 100 Pixel
for (int x = -200; x < 0; x++) // für jede x Position zwischen -2 und 0
for (int y = 100; y < 300; y++) { // für jede y Position zwischen 1 und 3
vNo = max(0, x + 100) * (-1) + // Werte der versteckten Neuronen der
max(0, - x -100) * (-1) + // ersten Schicht und zweiten Schicht
max(0, y - 200) * (-1) + // berechnen
max(0, - y + 200) * (-1) + 100;
vNu = max(0, -x + y -300) * (-1) +
max(0, x - y + 300) * (-1) +
max(0, -x - y + 100) * (-1) +
max(0, x + y - 100) * (-1) + sqrt(2) * 100;
if (vNo > 0 || vNu > 0) // Skizze des Bereichs in der
rect(x, y, 1, 1); // xy-Ebene mit z > 0 visualisieren
z = vNo + vNu ; // z für die aktuelle Position berechnen
temp = max(temp, z); // größtes z merken
if (z == temp) { // Position mit dem größten z merken
xPos=x;
yPos=y;
}
}
// Ergebnisse ausgeben
println("Maximalwert für z:", temp/100);
print("Krippenposition : P(", xPos/100, "|", yPos/100, ")");
fill(255, 0, 0); // blaue Füllung
ellipse(xPos, yPos, 10, 10); // Krippenposition vergrößert visualisieren
noLoop();
}
Auch eine wunderbare Aufgabe, den Stern nur mittels Zettel und Stift mit Hilfe von Ungleichungen zu konstruieren, hat echt Spaß gemacht!! Es ergeben sich zwei Qadrate, die aufeinander gelegt, Stern 5 ergeben.
Ja, ging mir genauso! Es hat richtig Spaß gemacht, auch wenn es dann gar nicht so schwer war.
Ich hab den gleichen Lösungsweg, aber ich versuche die einzelnen Schritte etwas anschaulicher zu machen:
1. Koordinatentransformation
Die 8 Ausdrücke für die Neuronen-Werte lassen erkennen, dass man das Koordinatensystem in die Mitte des erwarteten Sterns verschieben kann:
x+1 => x
y-2 => y
Daraus ergibt sich, dass der Sternmittelpunkt im alten Koordinatensystem bei (-1,2) lag. Und offensichtlich liegt dort auch das Maximum des z-Werts.
(12-30-2024, 09:24 PM)DerAlteHeinz schrieb: Ja, ging mir genauso! Es hat richtig Spaß gemacht, auch wenn es dann gar nicht so schwer war.
Ich hab den gleichen Lösungsweg, aber ich versuche die einzelnen Schritte etwas anschaulicher zu machen:
1. Koordinatentransformation
Die 8 Ausdrücke für die Neuronen-Werte lassen erkennen, dass man das Koordinatensystem in die Mitte des erwarteten Sterns verschieben kann:
x+1 => x
y-2 => y
Daraus ergibt sich, dass der Sternmittelpunkt im alten Koordinatensystem bei (-1,2) lag. Und offensichtlich liegt dort auch das Maximum des z-Werts.
Damit sehen die Ausdrücke in den Neutronen der 2. Ebene nun so aus:
1 - (|x|+|y|)
SQRT(2) - (|x−y|+|x+y|)
Dann gehts weiter wie bei pierrot, das finde ich anschaulich genug.
Das beschreibt genau, das Problem, das ich mit dieser Aufgabe hatte. So wie die Aufgabe gestellt ist muss nämlich z >=0 gelten, also 1+SQRT(2)-(|x| +|y|+|x-y|+|x+y|)>=0. Das liefert aber nicht die gezeigte Sternabbildung.
Der Lösungsstern passt zu folgender Aufgabenstellung: Mindestens ein Neuton 2.Stufe hat einen positiven Wert. Das ergibt nämlich die beiden getrennten Bedingungen (wie oben beschrieben). ==> Zwei verdrehte Quadrate.
Der "echte" Lösungsstern ist etwas kleiner. Denn wenn ein Neuronwert größer als 0 und der andere Neutonwert kleiner als 0 ist, kommt es darauf an wer "gewinnt".
Ich habe dann natürlich auch den Stern mit den verdrehten Quadraten ausgewählt, denn die eigentliche Lösung kommt leider nicht vor.
Trotzdem war es eine wunderschöne Aufgabe.
Da das output-Neutron ebenfalls die max-funktion anwendet (im Text steht nichts anderes) ist z immer >=0. Es ist z = max(0,n1+n2). An der Begrenzung des Sterns ist Z noch 0, aber der Strich ist eh dicker wie eps und innen ist es dann größer null.
(01-02-2025, 11:47 AM)MatheJuergen schrieb: So wie die Aufgabe gestellt ist muss nämlich z >=0 gelten, also 1+SQRT(2)-(|x| +|y|+|x-y|+|x+y|)>=0. Das liefert aber nicht die gezeigte Sternabbildung.
Der Lösungsstern passt zu folgender Aufgabenstellung: Mindestens ein Neuton 2.Stufe hat einen positiven Wert. Das ergibt nämlich die beiden getrennten Bedingungen (wie oben beschrieben). ==> Zwei verdrehte Quadrate.
Der "echte" Lösungsstern ist etwas kleiner. Denn wenn ein Neuronwert größer als 0 und der andere Neutonwert kleiner als 0 ist, kommt es darauf an wer "gewinnt".
Ich habe dann natürlich auch den Stern mit den verdrehten Quadraten ausgewählt, denn die eigentliche Lösung kommt leider nicht vor.
Wie kommst du auf x>=0? Es geht um >0, für x>=0 wäre die komplette Fläche gelb.
Du übersiehst, dass die Werte der Neuronen der zweiten versteckten Reihe nach denselben Regeln, wie bei der ersten versteckten Reihe gebildet werden sollten. Das beinhaltet auch, dass auch hier keine negativen Werte auftreten können, da ein Maximum von 0 und dem berechneten Wert gebildet wird. Daher ist z>0 identisch mit "eines der beiden inneren Neuronen der zweiten Spalte ist größer als 0".
(01-02-2025, 12:51 PM)Kosakenzipfel schrieb: Da das output-Neutron ebenfalls die max-funktion anwendet (im Text steht nichts anderes) ist z immer >=0. Es ist z = max(0,n1+n2). An der Begrenzung des Sterns ist Z noch 0, aber der Strich ist eh dicker wie eps und innen ist es dann größer null.
Nicht ganz... Bei z ist die Regel anders, hier wird in der Aufgabenstellung explizit von der Summe der beiden Neuronen der zweiten Schicht die Rede, keine Max-Funktion. Da es die Summe von zwei Werten >=0 ist, spielt das an dieser Stelle aber auch keine Rolle
(01-02-2025, 11:47 AM)MatheJuergen schrieb: So wie die Aufgabe gestellt ist muss nämlich z >=0 gelten, also 1+SQRT(2)-(|x| +|y|+|x-y|+|x+y|)>=0. Das liefert aber nicht die gezeigte Sternabbildung.
Der Lösungsstern passt zu folgender Aufgabenstellung: Mindestens ein Neuton 2.Stufe hat einen positiven Wert. Das ergibt nämlich die beiden getrennten Bedingungen (wie oben beschrieben). ==> Zwei verdrehte Quadrate.
Der "echte" Lösungsstern ist etwas kleiner. Denn wenn ein Neuronwert größer als 0 und der andere Neutonwert kleiner als 0 ist, kommt es darauf an wer "gewinnt".
Ich habe dann natürlich auch den Stern mit den verdrehten Quadraten ausgewählt, denn die eigentliche Lösung kommt leider nicht vor.
Wie kommst du auf x>=0? Es geht um >0, für x>=0 wäre die komplette Fläche gelb.
Du übersiehst, dass die Werte der Neuronen der zweiten versteckten Reihe nach denselben Regeln, wie bei der ersten versteckten Reihe gebildet werden sollten. Das beinhaltet auch, dass auch hier keine negativen Werte auftreten können, da ein Maximum von 0 und dem berechneten Wert gebildet wird. Daher ist z>0 identisch mit "eines der beiden inneren Neuronen der zweiten Spalte ist größer als 0".
(01-02-2025, 12:51 PM)Kosakenzipfel schrieb: Da das output-Neutron ebenfalls die max-funktion anwendet (im Text steht nichts anderes) ist z immer >=0. Es ist z = max(0,n1+n2). An der Begrenzung des Sterns ist Z noch 0, aber der Strich ist eh dicker wie eps und innen ist es dann größer null.
Nicht ganz... Bei z ist die Regel anders, hier wird in der Aufgabenstellung explizit von der Summe der beiden Neuronen der zweiten Schicht die Rede, keine Max-Funktion. Da es die Summe von zwei Werten >=0 ist, spielt das an dieser Stelle aber auch keine Rolle
Vielen Dank! Man sollte den Text genauer lesen. Das mit dem Max. hatte ich da nicht mehr auf dem Schirm. Damit ist klar, dass z >=0 immer erfüllt ist.