fork(2) download
  1. import numpy as np
  2. from itertools import product # To generate all binary combinations
  3.  
  4. # Initialisierung der Schwellenwerte
  5. lower_threshold = 0.8
  6. upper_threshold = 1.2
  7.  
  8. # Lernrate
  9. learning_rate = 0.1
  10.  
  11. # Trainingsdaten (Inputs für das XOR-Problem und andere)
  12. inputs = [[0, 0], [0, 1], [1, 0], [1, 1]]
  13.  
  14. # Alle möglichen Zieltabellen (16 Kombinationen)
  15. all_possible_targets = list(product([0, 1], repeat=4))
  16.  
  17. # Trainingsloop für jede mögliche Zieltabelle
  18. for table_index, targets in enumerate(all_possible_targets, start=1):
  19. print(f"\n=== Wahrheitstabelle {table_index}: Targets = {targets} ===")
  20.  
  21. # Trainingsloop mit max. 1000 Iterationen
  22. max_iterations = 1000
  23. epoch = 0
  24. network_trained = False
  25. start_weights = None
  26. final_weights = None
  27. all_epoch_outputs = [] # Store outputs of all epochs for debugging and transparency
  28.  
  29. while epoch < max_iterations:
  30. epoch += 1
  31. all_correct = True # Flag, um zu überprüfen, ob alle Ausgaben korrekt sind
  32. current_weights = np.random.rand(2) # Zufällige Startgewichte
  33.  
  34. if epoch == 1: # Die erste Iteration nach Initialisierung
  35. start_weights = current_weights # Speichere die Startgewichte
  36.  
  37. epoch_outputs = [] # To store outputs of this epoch
  38.  
  39. for input_vector, target in zip(inputs, targets):
  40. # Berechnung der gewichteten Summe
  41. weighted_sum = np.dot(input_vector, current_weights)
  42.  
  43. # Aktivierungsfunktion (einfache Schwellenwertfunktion)
  44. output = 1 if lower_threshold < weighted_sum < upper_threshold else 0
  45.  
  46. # Fehlerberechnung
  47. error = target - output
  48.  
  49. # Wenn ein Fehler vorliegt, dann weise die Gewichte an
  50. if error != 0:
  51. all_correct = False
  52. current_weights += learning_rate * error * np.array(input_vector)
  53.  
  54. epoch_outputs.append((input_vector, output, target)) # Save each iteration's output
  55.  
  56. all_epoch_outputs.append(epoch_outputs)
  57.  
  58. # Überprüfe, ob alle Ausgaben korrekt sind
  59. if all_correct:
  60. network_trained = True
  61. final_weights = current_weights # Speichere die finalen Gewichte
  62. break # Stoppe, wenn alle Ausgaben korrekt sind
  63.  
  64. # Wenn Tabelle nach 100 Iterationen nicht gelernt wurde, setze neue zufällige Startgewichte
  65. if epoch % 100 == 0:
  66. print(f"Nicht funktionierende Startgewichte: {start_weights}")
  67. start_weights = np.random.rand(2) # Setze neue Startgewichte
  68.  
  69. if network_trained:
  70. print(f"Das Netzwerk hat Wahrheitstabelle {table_index} korrekt nach {epoch} Iterationen gelernt.")
  71. print(f"Die Working Startgewichte waren: {start_weights}")
  72. print(f"Die finalen Gewichte sind: {final_weights}")
  73. else:
  74. print(f"Das Netzwerk hat Wahrheitstabelle {table_index} nach {epoch} Iterationen nicht korrekt gelernt.")
  75. print("\nFinal Test Output übersprungen, da das Netzwerk nicht gelernt hat.")
  76. continue # Skip final testing if the network didn't learn the truth table
  77.  
  78. # Testen des Netzwerks nach den Lern-Iterationen
  79. print("\nFinal Test Output:")
  80. for input_vector, target in zip(inputs, targets):
  81. weighted_sum = np.dot(input_vector, final_weights)
  82. output = 1 if lower_threshold < weighted_sum < upper_threshold else 0
  83. print(f"Input: {input_vector}, Target: {target}, Output: {output}")
  84.  
  85. # Optionally, print out the outputs of each epoch for transparency
  86. print("\nEpoch Outputs:")
  87. for epoch_index, epoch_outputs in enumerate(all_epoch_outputs):
  88. print(f"Epoch {epoch_index + 1}:")
  89. for input_vector, output, target in epoch_outputs:
  90. print(f" Input: {input_vector}, Output: {output}, Target: {target}")
  91.  
Success #stdin #stdout 0.63s 29164KB
stdin
Standard input is empty
stdout
=== Wahrheitstabelle 1: Targets = (0, 0, 0, 0) ===
Das Netzwerk hat Wahrheitstabelle 1 korrekt nach 1 Iterationen gelernt.
Die Working Startgewichte waren: [0.30936177 0.00534285]
Die finalen Gewichte sind: [0.30936177 0.00534285]

Final Test Output:
Input: [0, 0], Target: 0, Output: 0
Input: [0, 1], Target: 0, Output: 0
Input: [1, 0], Target: 0, Output: 0
Input: [1, 1], Target: 0, Output: 0

Epoch Outputs:
Epoch 1:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 0

=== Wahrheitstabelle 2: Targets = (0, 0, 0, 1) ===
Das Netzwerk hat Wahrheitstabelle 2 korrekt nach 2 Iterationen gelernt.
Die Working Startgewichte waren: [0.8779852  0.80312883]
Die finalen Gewichte sind: [0.46478305 0.73161745]

Final Test Output:
Input: [0, 0], Target: 0, Output: 0
Input: [0, 1], Target: 0, Output: 0
Input: [1, 0], Target: 0, Output: 0
Input: [1, 1], Target: 1, Output: 1

Epoch Outputs:
Epoch 1:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 0
  Input: [1, 0], Output: 1, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 2:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 1

=== Wahrheitstabelle 3: Targets = (0, 0, 1, 0) ===
Das Netzwerk hat Wahrheitstabelle 3 korrekt nach 3 Iterationen gelernt.
Die Working Startgewichte waren: [0.22478567 0.16954829]
Die finalen Gewichte sind: [0.96620591 0.33301305]

Final Test Output:
Input: [0, 0], Target: 0, Output: 0
Input: [0, 1], Target: 0, Output: 0
Input: [1, 0], Target: 1, Output: 1
Input: [1, 1], Target: 0, Output: 0

Epoch Outputs:
Epoch 1:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 0
Epoch 2:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 0
Epoch 3:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 1, Target: 1
  Input: [1, 1], Output: 0, Target: 0

=== Wahrheitstabelle 4: Targets = (0, 0, 1, 1) ===
Das Netzwerk hat Wahrheitstabelle 4 korrekt nach 36 Iterationen gelernt.
Die Working Startgewichte waren: [0.68451656 0.25659547]
Die finalen Gewichte sind: [0.83349148 0.04481712]

Final Test Output:
Input: [0, 0], Target: 0, Output: 0
Input: [0, 1], Target: 0, Output: 0
Input: [1, 0], Target: 1, Output: 1
Input: [1, 1], Target: 1, Output: 1

Epoch Outputs:
Epoch 1:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 1
Epoch 2:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 3:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 1
Epoch 4:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 5:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 6:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 1
Epoch 7:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 8:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 1
Epoch 9:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 10:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 1
Epoch 11:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 12:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 13:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 1
Epoch 14:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 15:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 1
Epoch 16:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 1, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 17:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 1
Epoch 18:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 1
Epoch 19:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 20:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 1
Epoch 21:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 22:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 23:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 1, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 24:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 1
Epoch 25:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 26:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 1
Epoch 27:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 1
Epoch 28:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 1
Epoch 29:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 1, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 30:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 31:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 1
Epoch 32:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 33:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 1, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 34:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 1, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 35:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 36:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 1, Target: 1
  Input: [1, 1], Output: 1, Target: 1

=== Wahrheitstabelle 5: Targets = (0, 1, 0, 0) ===
Das Netzwerk hat Wahrheitstabelle 5 korrekt nach 21 Iterationen gelernt.
Die Working Startgewichte waren: [0.05041714 0.66194427]
Die finalen Gewichte sind: [0.62443927 0.9011323 ]

Final Test Output:
Input: [0, 0], Target: 0, Output: 0
Input: [0, 1], Target: 1, Output: 1
Input: [1, 0], Target: 0, Output: 0
Input: [1, 1], Target: 0, Output: 0

Epoch Outputs:
Epoch 1:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 0
Epoch 2:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 1, Target: 0
  Input: [1, 1], Output: 0, Target: 0
Epoch 3:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 1, Target: 0
  Input: [1, 1], Output: 0, Target: 0
Epoch 4:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 0
Epoch 5:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 1, Target: 0
  Input: [1, 1], Output: 1, Target: 0
Epoch 6:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 1, Target: 0
  Input: [1, 1], Output: 0, Target: 0
Epoch 7:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 0
Epoch 8:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 0
Epoch 9:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 0
Epoch 10:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 0
Epoch 11:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 0
Epoch 12:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 1, Target: 0
  Input: [1, 1], Output: 0, Target: 0
Epoch 13:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 1, Target: 0
  Input: [1, 1], Output: 0, Target: 0
Epoch 14:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 0
Epoch 15:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 1, Target: 0
  Input: [1, 1], Output: 0, Target: 0
Epoch 16:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 1, Target: 0
  Input: [1, 1], Output: 0, Target: 0
Epoch 17:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 0
Epoch 18:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 1, Target: 0
  Input: [1, 1], Output: 1, Target: 0
Epoch 19:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 0
Epoch 20:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 0
Epoch 21:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 0

=== Wahrheitstabelle 6: Targets = (0, 1, 0, 1) ===
Das Netzwerk hat Wahrheitstabelle 6 korrekt nach 41 Iterationen gelernt.
Die Working Startgewichte waren: [0.7137586  0.23791281]
Die finalen Gewichte sind: [0.2400474  0.85362223]

Final Test Output:
Input: [0, 0], Target: 0, Output: 0
Input: [0, 1], Target: 1, Output: 1
Input: [1, 0], Target: 0, Output: 0
Input: [1, 1], Target: 1, Output: 1

Epoch Outputs:
Epoch 1:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 1
Epoch 2:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 1
Epoch 3:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 4:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 1, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 5:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 6:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 1, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 7:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 8:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 9:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 1, Target: 0
  Input: [1, 1], Output: 1, Target: 1
Epoch 10:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 1, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 11:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 1
Epoch 12:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 1
Epoch 13:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 14:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 15:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 16:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 1
Epoch 17:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 18:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 1
Epoch 19:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 1, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 20:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 21:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 1
Epoch 22:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 23:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 24:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 1, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 25:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 1, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 26:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 27:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 28:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 1
Epoch 29:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 30:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 1
Epoch 31:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 32:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 33:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 1
Epoch 34:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 35:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 36:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 37:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 38:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 39:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 40:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 1
Epoch 41:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 1

=== Wahrheitstabelle 7: Targets = (0, 1, 1, 0) ===
Das Netzwerk hat Wahrheitstabelle 7 korrekt nach 11 Iterationen gelernt.
Die Working Startgewichte waren: [0.43501938 0.95263077]
Die finalen Gewichte sind: [0.93934246 0.87996204]

Final Test Output:
Input: [0, 0], Target: 0, Output: 0
Input: [0, 1], Target: 1, Output: 1
Input: [1, 0], Target: 1, Output: 1
Input: [1, 1], Target: 0, Output: 0

Epoch Outputs:
Epoch 1:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 0
Epoch 2:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 1, Target: 1
  Input: [1, 1], Output: 0, Target: 0
Epoch 3:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 1, Target: 1
  Input: [1, 1], Output: 0, Target: 0
Epoch 4:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 1, Target: 1
  Input: [1, 1], Output: 1, Target: 0
Epoch 5:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 1, Target: 1
  Input: [1, 1], Output: 0, Target: 0
Epoch 6:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 0
Epoch 7:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 0
Epoch 8:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 0
Epoch 9:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 0
Epoch 10:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 0
Epoch 11:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 1, Target: 1
  Input: [1, 1], Output: 0, Target: 0

=== Wahrheitstabelle 8: Targets = (0, 1, 1, 1) ===
Nicht funktionierende Startgewichte: [0.1166959  0.95911398]
Nicht funktionierende Startgewichte: [0.36938887 0.95254523]
Nicht funktionierende Startgewichte: [0.29856133 0.65370548]
Nicht funktionierende Startgewichte: [0.09545466 0.49911629]
Nicht funktionierende Startgewichte: [0.30120092 0.66830801]
Nicht funktionierende Startgewichte: [0.0527675  0.00831056]
Nicht funktionierende Startgewichte: [0.94051015 0.85238563]
Nicht funktionierende Startgewichte: [0.62058438 0.37338027]
Nicht funktionierende Startgewichte: [0.43982914 0.24506188]
Nicht funktionierende Startgewichte: [0.13143973 0.50596007]
Das Netzwerk hat Wahrheitstabelle 8 nach 1000 Iterationen nicht korrekt gelernt.

Final Test Output übersprungen, da das Netzwerk nicht gelernt hat.

=== Wahrheitstabelle 9: Targets = (1, 0, 0, 0) ===
Nicht funktionierende Startgewichte: [0.24723204 0.08044109]
Nicht funktionierende Startgewichte: [0.54877184 0.06587105]
Nicht funktionierende Startgewichte: [0.8699827  0.21680787]
Nicht funktionierende Startgewichte: [0.84655277 0.81249277]
Nicht funktionierende Startgewichte: [0.05557202 0.52328799]
Nicht funktionierende Startgewichte: [0.1648852  0.54928214]
Nicht funktionierende Startgewichte: [0.23943602 0.81274578]
Nicht funktionierende Startgewichte: [0.91136895 0.29288048]
Nicht funktionierende Startgewichte: [0.60494843 0.7214495 ]
Nicht funktionierende Startgewichte: [0.44317314 0.79720933]
Das Netzwerk hat Wahrheitstabelle 9 nach 1000 Iterationen nicht korrekt gelernt.

Final Test Output übersprungen, da das Netzwerk nicht gelernt hat.

=== Wahrheitstabelle 10: Targets = (1, 0, 0, 1) ===
Nicht funktionierende Startgewichte: [0.21985186 0.69384845]
Nicht funktionierende Startgewichte: [0.69878425 0.05051141]
Nicht funktionierende Startgewichte: [0.94394067 0.75943675]
Nicht funktionierende Startgewichte: [0.05567775 0.99201804]
Nicht funktionierende Startgewichte: [0.23088575 0.9887669 ]
Nicht funktionierende Startgewichte: [0.07514986 0.77271682]
Nicht funktionierende Startgewichte: [0.46760326 0.6213189 ]
Nicht funktionierende Startgewichte: [0.52274341 0.81488279]
Nicht funktionierende Startgewichte: [0.72240095 0.43849446]
Nicht funktionierende Startgewichte: [0.4568835  0.05765814]
Das Netzwerk hat Wahrheitstabelle 10 nach 1000 Iterationen nicht korrekt gelernt.

Final Test Output übersprungen, da das Netzwerk nicht gelernt hat.

=== Wahrheitstabelle 11: Targets = (1, 0, 1, 0) ===
Nicht funktionierende Startgewichte: [0.74331033 0.23812905]
Nicht funktionierende Startgewichte: [0.09586863 0.51347315]
Nicht funktionierende Startgewichte: [0.61709114 0.5477619 ]
Nicht funktionierende Startgewichte: [0.5496879  0.59318353]
Nicht funktionierende Startgewichte: [0.39542322 0.68490598]
Nicht funktionierende Startgewichte: [0.57251863 0.92645154]
Nicht funktionierende Startgewichte: [0.6835546 0.5877947]
Nicht funktionierende Startgewichte: [0.6270097  0.14270528]
Nicht funktionierende Startgewichte: [0.7873859  0.93645978]
Nicht funktionierende Startgewichte: [0.70970478 0.05578414]
Das Netzwerk hat Wahrheitstabelle 11 nach 1000 Iterationen nicht korrekt gelernt.

Final Test Output übersprungen, da das Netzwerk nicht gelernt hat.

=== Wahrheitstabelle 12: Targets = (1, 0, 1, 1) ===
Nicht funktionierende Startgewichte: [0.63443307 0.34570079]
Nicht funktionierende Startgewichte: [0.29127346 0.0824199 ]
Nicht funktionierende Startgewichte: [0.93081394 0.57816934]
Nicht funktionierende Startgewichte: [0.91143479 0.11421631]
Nicht funktionierende Startgewichte: [0.90130293 0.68100678]
Nicht funktionierende Startgewichte: [0.54830924 0.75503142]
Nicht funktionierende Startgewichte: [0.57802322 0.47931433]
Nicht funktionierende Startgewichte: [0.73383733 0.68423259]
Nicht funktionierende Startgewichte: [0.35803673 0.27697057]
Nicht funktionierende Startgewichte: [0.21015158 0.53854493]
Das Netzwerk hat Wahrheitstabelle 12 nach 1000 Iterationen nicht korrekt gelernt.

Final Test Output übersprungen, da das Netzwerk nicht gelernt hat.

=== Wahrheitstabelle 13: Targets = (1, 1, 0, 0) ===
Nicht funktionierende Startgewichte: [0.35871261 0.34493951]
Nicht funktionierende Startgewichte: [0.47966226 0.83742788]
Nicht funktionierende Startgewichte: [0.505201   0.27954603]
Nicht funktionierende Startgewichte: [0.69279591 0.15905088]
Nicht funktionierende Startgewichte: [0.04240292 0.24055534]
Nicht funktionierende Startgewichte: [0.73886436 0.46855442]
Nicht funktionierende Startgewichte: [0.94631672 0.34571479]
Nicht funktionierende Startgewichte: [0.48615474 0.95450016]
Nicht funktionierende Startgewichte: [0.71300151 0.06405456]
Nicht funktionierende Startgewichte: [0.24394725 0.12157912]
Das Netzwerk hat Wahrheitstabelle 13 nach 1000 Iterationen nicht korrekt gelernt.

Final Test Output übersprungen, da das Netzwerk nicht gelernt hat.

=== Wahrheitstabelle 14: Targets = (1, 1, 0, 1) ===
Nicht funktionierende Startgewichte: [0.63195233 0.96884088]
Nicht funktionierende Startgewichte: [0.54603002 0.0459835 ]
Nicht funktionierende Startgewichte: [0.37860929 0.28151282]
Nicht funktionierende Startgewichte: [0.40687684 0.41838644]
Nicht funktionierende Startgewichte: [0.3856756  0.21693916]
Nicht funktionierende Startgewichte: [0.43064782 0.05216019]
Nicht funktionierende Startgewichte: [0.95756404 0.37534696]
Nicht funktionierende Startgewichte: [0.54331348 0.32739848]
Nicht funktionierende Startgewichte: [0.98462156 0.4062927 ]
Nicht funktionierende Startgewichte: [0.20887328 0.4027498 ]
Das Netzwerk hat Wahrheitstabelle 14 nach 1000 Iterationen nicht korrekt gelernt.

Final Test Output übersprungen, da das Netzwerk nicht gelernt hat.

=== Wahrheitstabelle 15: Targets = (1, 1, 1, 0) ===
Nicht funktionierende Startgewichte: [0.86615532 0.86787265]
Nicht funktionierende Startgewichte: [0.57029198 0.85780954]
Nicht funktionierende Startgewichte: [0.1355198  0.08725067]
Nicht funktionierende Startgewichte: [0.44134307 0.2808212 ]
Nicht funktionierende Startgewichte: [0.06311594 0.64431523]
Nicht funktionierende Startgewichte: [0.88545272 0.07817937]
Nicht funktionierende Startgewichte: [0.61266422 0.95718289]
Nicht funktionierende Startgewichte: [0.73277851 0.250828  ]
Nicht funktionierende Startgewichte: [0.26809338 0.22307798]
Nicht funktionierende Startgewichte: [0.09154152 0.87039184]
Das Netzwerk hat Wahrheitstabelle 15 nach 1000 Iterationen nicht korrekt gelernt.

Final Test Output übersprungen, da das Netzwerk nicht gelernt hat.

=== Wahrheitstabelle 16: Targets = (1, 1, 1, 1) ===
Nicht funktionierende Startgewichte: [0.60355648 1.03308554]
Nicht funktionierende Startgewichte: [0.5054533  0.98881153]
Nicht funktionierende Startgewichte: [0.17539729 0.96756683]
Nicht funktionierende Startgewichte: [0.56422539 0.76895763]
Nicht funktionierende Startgewichte: [0.92895426 0.39433618]
Nicht funktionierende Startgewichte: [0.20283488 0.91771819]
Nicht funktionierende Startgewichte: [0.32830688 0.32345921]
Nicht funktionierende Startgewichte: [0.98906121 0.10341863]
Nicht funktionierende Startgewichte: [0.70804997 0.87666629]
Nicht funktionierende Startgewichte: [0.68119466 0.55705812]
Das Netzwerk hat Wahrheitstabelle 16 nach 1000 Iterationen nicht korrekt gelernt.

Final Test Output übersprungen, da das Netzwerk nicht gelernt hat.