fork download
  1. import numpy as np
  2. import itertools
  3.  
  4. # Initialisierung der Schwellenwerte
  5. lower_threshold = 0.8
  6. upper_threshold = 1.2
  7.  
  8. # Lernrate und Momentum
  9. learning_rate = 0.1
  10. momentum = 0.9
  11.  
  12. # Eingabekombinationen (2 Eingänge)
  13. inputs = [[0, 0], [0, 1], [1, 0], [1, 1]]
  14.  
  15. # Generiere alle 16 möglichen Wertetabellen (Targets)
  16. all_truth_tables = list(itertools.product([0, 1], repeat=4))
  17.  
  18. # Trainingsloop für jede Wertetabelle
  19. max_iterations = 2000
  20. restart_threshold = 100
  21. results = [] # Zum Speichern der Ergebnisse für jede Wertetabelle
  22.  
  23. # Schwellenwert-Aktivierungsfunktion (Wie im Originalprogramm)
  24. def threshold_activation(x):
  25. return 1 if lower_threshold < x < upper_threshold else 0
  26.  
  27. # Trainingsprozess für jede Wertetabelle
  28. for truth_table_idx, targets in enumerate(all_truth_tables):
  29. print(f"\nLerne Wertetabelle {truth_table_idx + 1}: Targets = {targets}")
  30.  
  31. epoch = 0
  32. network_trained = False
  33. all_epoch_outputs = []
  34.  
  35. # Initialisiere Startgewichte
  36. input_hidden_weights = np.random.rand(2, 3) # 2 Inputs, 3 Neuronen im Hidden Layer
  37. hidden_output_weights = np.random.rand(3) # 3 Neuronen im Hidden Layer, 1 Ausgang
  38.  
  39. # Initialisiere Momentum für Gewichtupdates
  40. prev_input_hidden_weights_update = np.zeros_like(input_hidden_weights)
  41. prev_hidden_output_weights_update = np.zeros_like(hidden_output_weights)
  42.  
  43. # Trainingsprozess für die aktuelle Wertetabelle
  44. while epoch < max_iterations:
  45. epoch += 1
  46. all_correct = True # Flag, um zu überprüfen, ob alle Ausgaben korrekt sind
  47.  
  48. epoch_outputs = [] # Outputs der aktuellen Epoche
  49.  
  50. for input_vector, target in zip(inputs, targets):
  51. # Berechnung der gewichteten Summe für Hidden Layer
  52. hidden_input = np.dot(input_vector, input_hidden_weights)
  53. hidden_output = np.array([threshold_activation(x) for x in hidden_input])
  54.  
  55. # Berechnung der gewichteten Summe für Output Layer
  56. final_output = np.dot(hidden_output, hidden_output_weights)
  57. final_output = threshold_activation(final_output) # Aktivierung im Output Layer
  58.  
  59. # Fehlerberechnung
  60. error = target - final_output
  61. if error != 0:
  62. all_correct = False
  63.  
  64. # Fehlerkorrektur für den Output Layer mit Momentum
  65. output_weights_update = learning_rate * error * hidden_output
  66. hidden_output_weights += output_weights_update + momentum * prev_hidden_output_weights_update
  67.  
  68. # Fehlerkorrektur für den Hidden Layer mit Momentum
  69. hidden_weights_update = np.outer(np.array(input_vector), error * hidden_output_weights)
  70. input_hidden_weights += learning_rate * hidden_weights_update + momentum * prev_input_hidden_weights_update
  71.  
  72. # Speichere die Updates für Momentum
  73. prev_input_hidden_weights_update = hidden_weights_update
  74. prev_hidden_output_weights_update = output_weights_update
  75.  
  76. epoch_outputs.append((input_vector, final_output, target))
  77.  
  78. # Überprüfe, ob alle Ausgaben korrekt sind
  79. if all_correct:
  80. network_trained = True
  81. break
  82.  
  83. # Neustart der Gewichte nach `restart_threshold` Iterationen
  84. if epoch % restart_threshold == 0:
  85. print(f" -> Neustart der Startgewichte nach {epoch} Iterationen.")
  86. input_hidden_weights = np.random.rand(2, 3)
  87. hidden_output_weights = np.random.rand(3)
  88. prev_input_hidden_weights_update = np.zeros_like(input_hidden_weights)
  89. prev_hidden_output_weights_update = np.zeros_like(hidden_output_weights)
  90.  
  91. all_epoch_outputs.append(epoch_outputs)
  92.  
  93. # Ergebnisse speichern
  94. results.append({
  95. "truth_table_idx": truth_table_idx + 1,
  96. "targets": targets,
  97. "epochs": epoch,
  98. "network_trained": network_trained,
  99. "final_weights": (input_hidden_weights, hidden_output_weights),
  100. "all_epoch_outputs": all_epoch_outputs
  101. })
  102.  
  103. # Statusmeldung
  104. if network_trained:
  105. print(f" -> Wertetabelle korrekt gelernt nach {epoch} Iterationen.")
  106. else:
  107. print(f" -> Netzwerk konnte die Wertetabelle nicht lernen.")
  108.  
  109. # Alle Ergebnisse anzeigen
  110. print("\nZusammenfassung der Ergebnisse:")
  111. for result in results:
  112. print(f"Wertetabelle {result['truth_table_idx']}: Targets = {result['targets']}")
  113. print(f" -> Erfolg: {'Ja' if result['network_trained'] else 'Nein'}")
  114. print(f" -> Benötigte Epochen: {result['epochs']}")
  115. if result["network_trained"]:
  116. print(f" -> Finale Gewichte: {result['final_weights']}")
  117. print()
  118.  
Success #stdin #stdout 3.55s 36712KB
stdin
Standard input is empty
stdout
Lerne Wertetabelle 1: Targets = (0, 0, 0, 0)
  -> Wertetabelle korrekt gelernt nach 1 Iterationen.

Lerne Wertetabelle 2: Targets = (0, 0, 0, 1)
  -> Neustart der Startgewichte nach 100 Iterationen.
  -> Wertetabelle korrekt gelernt nach 101 Iterationen.

Lerne Wertetabelle 3: Targets = (0, 0, 1, 0)
  -> Neustart der Startgewichte nach 100 Iterationen.
  -> Neustart der Startgewichte nach 200 Iterationen.
  -> Neustart der Startgewichte nach 300 Iterationen.
  -> Wertetabelle korrekt gelernt nach 303 Iterationen.

Lerne Wertetabelle 4: Targets = (0, 0, 1, 1)
  -> Neustart der Startgewichte nach 100 Iterationen.
  -> Neustart der Startgewichte nach 200 Iterationen.
  -> Neustart der Startgewichte nach 300 Iterationen.
  -> Neustart der Startgewichte nach 400 Iterationen.
  -> Neustart der Startgewichte nach 500 Iterationen.
  -> Neustart der Startgewichte nach 600 Iterationen.
  -> Neustart der Startgewichte nach 700 Iterationen.
  -> Neustart der Startgewichte nach 800 Iterationen.
  -> Neustart der Startgewichte nach 900 Iterationen.
  -> Neustart der Startgewichte nach 1000 Iterationen.
  -> Neustart der Startgewichte nach 1100 Iterationen.
  -> Neustart der Startgewichte nach 1200 Iterationen.
  -> Neustart der Startgewichte nach 1300 Iterationen.
  -> Neustart der Startgewichte nach 1400 Iterationen.
  -> Neustart der Startgewichte nach 1500 Iterationen.
  -> Neustart der Startgewichte nach 1600 Iterationen.
  -> Neustart der Startgewichte nach 1700 Iterationen.
  -> Neustart der Startgewichte nach 1800 Iterationen.
  -> Neustart der Startgewichte nach 1900 Iterationen.
  -> Neustart der Startgewichte nach 2000 Iterationen.
  -> Netzwerk konnte die Wertetabelle nicht lernen.

Lerne Wertetabelle 5: Targets = (0, 1, 0, 0)
  -> Wertetabelle korrekt gelernt nach 2 Iterationen.

Lerne Wertetabelle 6: Targets = (0, 1, 0, 1)
  -> Neustart der Startgewichte nach 100 Iterationen.
  -> Neustart der Startgewichte nach 200 Iterationen.
  -> Neustart der Startgewichte nach 300 Iterationen.
  -> Neustart der Startgewichte nach 400 Iterationen.
  -> Neustart der Startgewichte nach 500 Iterationen.
  -> Neustart der Startgewichte nach 600 Iterationen.
  -> Neustart der Startgewichte nach 700 Iterationen.
  -> Neustart der Startgewichte nach 800 Iterationen.
  -> Neustart der Startgewichte nach 900 Iterationen.
  -> Neustart der Startgewichte nach 1000 Iterationen.
  -> Neustart der Startgewichte nach 1100 Iterationen.
  -> Neustart der Startgewichte nach 1200 Iterationen.
  -> Neustart der Startgewichte nach 1300 Iterationen.
  -> Neustart der Startgewichte nach 1400 Iterationen.
  -> Neustart der Startgewichte nach 1500 Iterationen.
  -> Neustart der Startgewichte nach 1600 Iterationen.
  -> Neustart der Startgewichte nach 1700 Iterationen.
  -> Neustart der Startgewichte nach 1800 Iterationen.
  -> Wertetabelle korrekt gelernt nach 1801 Iterationen.

Lerne Wertetabelle 7: Targets = (0, 1, 1, 0)
  -> Neustart der Startgewichte nach 100 Iterationen.
  -> Neustart der Startgewichte nach 200 Iterationen.
  -> Neustart der Startgewichte nach 300 Iterationen.
  -> Neustart der Startgewichte nach 400 Iterationen.
  -> Neustart der Startgewichte nach 500 Iterationen.
  -> Neustart der Startgewichte nach 600 Iterationen.
  -> Wertetabelle korrekt gelernt nach 602 Iterationen.

Lerne Wertetabelle 8: Targets = (0, 1, 1, 1)
  -> Neustart der Startgewichte nach 100 Iterationen.
  -> Neustart der Startgewichte nach 200 Iterationen.
  -> Neustart der Startgewichte nach 300 Iterationen.
  -> Neustart der Startgewichte nach 400 Iterationen.
  -> Neustart der Startgewichte nach 500 Iterationen.
  -> Neustart der Startgewichte nach 600 Iterationen.
  -> Neustart der Startgewichte nach 700 Iterationen.
  -> Neustart der Startgewichte nach 800 Iterationen.
  -> Neustart der Startgewichte nach 900 Iterationen.
  -> Neustart der Startgewichte nach 1000 Iterationen.
  -> Neustart der Startgewichte nach 1100 Iterationen.
  -> Neustart der Startgewichte nach 1200 Iterationen.
  -> Neustart der Startgewichte nach 1300 Iterationen.
  -> Neustart der Startgewichte nach 1400 Iterationen.
  -> Neustart der Startgewichte nach 1500 Iterationen.
  -> Neustart der Startgewichte nach 1600 Iterationen.
  -> Neustart der Startgewichte nach 1700 Iterationen.
  -> Neustart der Startgewichte nach 1800 Iterationen.
  -> Neustart der Startgewichte nach 1900 Iterationen.
  -> Neustart der Startgewichte nach 2000 Iterationen.
  -> Netzwerk konnte die Wertetabelle nicht lernen.

Lerne Wertetabelle 9: Targets = (1, 0, 0, 0)
  -> Neustart der Startgewichte nach 100 Iterationen.
  -> Neustart der Startgewichte nach 200 Iterationen.
  -> Neustart der Startgewichte nach 300 Iterationen.
  -> Neustart der Startgewichte nach 400 Iterationen.
  -> Neustart der Startgewichte nach 500 Iterationen.
  -> Neustart der Startgewichte nach 600 Iterationen.
  -> Neustart der Startgewichte nach 700 Iterationen.
  -> Neustart der Startgewichte nach 800 Iterationen.
  -> Neustart der Startgewichte nach 900 Iterationen.
  -> Neustart der Startgewichte nach 1000 Iterationen.
  -> Neustart der Startgewichte nach 1100 Iterationen.
  -> Neustart der Startgewichte nach 1200 Iterationen.
  -> Neustart der Startgewichte nach 1300 Iterationen.
  -> Neustart der Startgewichte nach 1400 Iterationen.
  -> Neustart der Startgewichte nach 1500 Iterationen.
  -> Neustart der Startgewichte nach 1600 Iterationen.
  -> Neustart der Startgewichte nach 1700 Iterationen.
  -> Neustart der Startgewichte nach 1800 Iterationen.
  -> Neustart der Startgewichte nach 1900 Iterationen.
  -> Neustart der Startgewichte nach 2000 Iterationen.
  -> Netzwerk konnte die Wertetabelle nicht lernen.

Lerne Wertetabelle 10: Targets = (1, 0, 0, 1)
  -> Neustart der Startgewichte nach 100 Iterationen.
  -> Neustart der Startgewichte nach 200 Iterationen.
  -> Neustart der Startgewichte nach 300 Iterationen.
  -> Neustart der Startgewichte nach 400 Iterationen.
  -> Neustart der Startgewichte nach 500 Iterationen.
  -> Neustart der Startgewichte nach 600 Iterationen.
  -> Neustart der Startgewichte nach 700 Iterationen.
  -> Neustart der Startgewichte nach 800 Iterationen.
  -> Neustart der Startgewichte nach 900 Iterationen.
  -> Neustart der Startgewichte nach 1000 Iterationen.
  -> Neustart der Startgewichte nach 1100 Iterationen.
  -> Neustart der Startgewichte nach 1200 Iterationen.
  -> Neustart der Startgewichte nach 1300 Iterationen.
  -> Neustart der Startgewichte nach 1400 Iterationen.
  -> Neustart der Startgewichte nach 1500 Iterationen.
  -> Neustart der Startgewichte nach 1600 Iterationen.
  -> Neustart der Startgewichte nach 1700 Iterationen.
  -> Neustart der Startgewichte nach 1800 Iterationen.
  -> Neustart der Startgewichte nach 1900 Iterationen.
  -> Neustart der Startgewichte nach 2000 Iterationen.
  -> Netzwerk konnte die Wertetabelle nicht lernen.

Lerne Wertetabelle 11: Targets = (1, 0, 1, 0)
  -> Neustart der Startgewichte nach 100 Iterationen.
  -> Neustart der Startgewichte nach 200 Iterationen.
  -> Neustart der Startgewichte nach 300 Iterationen.
  -> Neustart der Startgewichte nach 400 Iterationen.
  -> Neustart der Startgewichte nach 500 Iterationen.
  -> Neustart der Startgewichte nach 600 Iterationen.
  -> Neustart der Startgewichte nach 700 Iterationen.
  -> Neustart der Startgewichte nach 800 Iterationen.
  -> Neustart der Startgewichte nach 900 Iterationen.
  -> Neustart der Startgewichte nach 1000 Iterationen.
  -> Neustart der Startgewichte nach 1100 Iterationen.
  -> Neustart der Startgewichte nach 1200 Iterationen.
  -> Neustart der Startgewichte nach 1300 Iterationen.
  -> Neustart der Startgewichte nach 1400 Iterationen.
  -> Neustart der Startgewichte nach 1500 Iterationen.
  -> Neustart der Startgewichte nach 1600 Iterationen.
  -> Neustart der Startgewichte nach 1700 Iterationen.
  -> Neustart der Startgewichte nach 1800 Iterationen.
  -> Neustart der Startgewichte nach 1900 Iterationen.
  -> Neustart der Startgewichte nach 2000 Iterationen.
  -> Netzwerk konnte die Wertetabelle nicht lernen.

Lerne Wertetabelle 12: Targets = (1, 0, 1, 1)
  -> Neustart der Startgewichte nach 100 Iterationen.
  -> Neustart der Startgewichte nach 200 Iterationen.
  -> Neustart der Startgewichte nach 300 Iterationen.
  -> Neustart der Startgewichte nach 400 Iterationen.
  -> Neustart der Startgewichte nach 500 Iterationen.
  -> Neustart der Startgewichte nach 600 Iterationen.
  -> Neustart der Startgewichte nach 700 Iterationen.
  -> Neustart der Startgewichte nach 800 Iterationen.
  -> Neustart der Startgewichte nach 900 Iterationen.
  -> Neustart der Startgewichte nach 1000 Iterationen.
  -> Neustart der Startgewichte nach 1100 Iterationen.
  -> Neustart der Startgewichte nach 1200 Iterationen.
  -> Neustart der Startgewichte nach 1300 Iterationen.
  -> Neustart der Startgewichte nach 1400 Iterationen.
  -> Neustart der Startgewichte nach 1500 Iterationen.
  -> Neustart der Startgewichte nach 1600 Iterationen.
  -> Neustart der Startgewichte nach 1700 Iterationen.
  -> Neustart der Startgewichte nach 1800 Iterationen.
  -> Neustart der Startgewichte nach 1900 Iterationen.
  -> Neustart der Startgewichte nach 2000 Iterationen.
  -> Netzwerk konnte die Wertetabelle nicht lernen.

Lerne Wertetabelle 13: Targets = (1, 1, 0, 0)
  -> Neustart der Startgewichte nach 100 Iterationen.
  -> Neustart der Startgewichte nach 200 Iterationen.
  -> Neustart der Startgewichte nach 300 Iterationen.
  -> Neustart der Startgewichte nach 400 Iterationen.
  -> Neustart der Startgewichte nach 500 Iterationen.
  -> Neustart der Startgewichte nach 600 Iterationen.
  -> Neustart der Startgewichte nach 700 Iterationen.
  -> Neustart der Startgewichte nach 800 Iterationen.
  -> Neustart der Startgewichte nach 900 Iterationen.
  -> Neustart der Startgewichte nach 1000 Iterationen.
  -> Neustart der Startgewichte nach 1100 Iterationen.
  -> Neustart der Startgewichte nach 1200 Iterationen.
  -> Neustart der Startgewichte nach 1300 Iterationen.
  -> Neustart der Startgewichte nach 1400 Iterationen.
  -> Neustart der Startgewichte nach 1500 Iterationen.
  -> Neustart der Startgewichte nach 1600 Iterationen.
  -> Neustart der Startgewichte nach 1700 Iterationen.
  -> Neustart der Startgewichte nach 1800 Iterationen.
  -> Neustart der Startgewichte nach 1900 Iterationen.
  -> Neustart der Startgewichte nach 2000 Iterationen.
  -> Netzwerk konnte die Wertetabelle nicht lernen.

Lerne Wertetabelle 14: Targets = (1, 1, 0, 1)
  -> Neustart der Startgewichte nach 100 Iterationen.
  -> Neustart der Startgewichte nach 200 Iterationen.
  -> Neustart der Startgewichte nach 300 Iterationen.
  -> Neustart der Startgewichte nach 400 Iterationen.
  -> Neustart der Startgewichte nach 500 Iterationen.
  -> Neustart der Startgewichte nach 600 Iterationen.
  -> Neustart der Startgewichte nach 700 Iterationen.
  -> Neustart der Startgewichte nach 800 Iterationen.
  -> Neustart der Startgewichte nach 900 Iterationen.
  -> Neustart der Startgewichte nach 1000 Iterationen.
  -> Neustart der Startgewichte nach 1100 Iterationen.
  -> Neustart der Startgewichte nach 1200 Iterationen.
  -> Neustart der Startgewichte nach 1300 Iterationen.
  -> Neustart der Startgewichte nach 1400 Iterationen.
  -> Neustart der Startgewichte nach 1500 Iterationen.
  -> Neustart der Startgewichte nach 1600 Iterationen.
  -> Neustart der Startgewichte nach 1700 Iterationen.
  -> Neustart der Startgewichte nach 1800 Iterationen.
  -> Neustart der Startgewichte nach 1900 Iterationen.
  -> Neustart der Startgewichte nach 2000 Iterationen.
  -> Netzwerk konnte die Wertetabelle nicht lernen.

Lerne Wertetabelle 15: Targets = (1, 1, 1, 0)
  -> Neustart der Startgewichte nach 100 Iterationen.
  -> Neustart der Startgewichte nach 200 Iterationen.
  -> Neustart der Startgewichte nach 300 Iterationen.
  -> Neustart der Startgewichte nach 400 Iterationen.
  -> Neustart der Startgewichte nach 500 Iterationen.
  -> Neustart der Startgewichte nach 600 Iterationen.
  -> Neustart der Startgewichte nach 700 Iterationen.
  -> Neustart der Startgewichte nach 800 Iterationen.
  -> Neustart der Startgewichte nach 900 Iterationen.
  -> Neustart der Startgewichte nach 1000 Iterationen.
  -> Neustart der Startgewichte nach 1100 Iterationen.
  -> Neustart der Startgewichte nach 1200 Iterationen.
  -> Neustart der Startgewichte nach 1300 Iterationen.
  -> Neustart der Startgewichte nach 1400 Iterationen.
  -> Neustart der Startgewichte nach 1500 Iterationen.
  -> Neustart der Startgewichte nach 1600 Iterationen.
  -> Neustart der Startgewichte nach 1700 Iterationen.
  -> Neustart der Startgewichte nach 1800 Iterationen.
  -> Neustart der Startgewichte nach 1900 Iterationen.
  -> Neustart der Startgewichte nach 2000 Iterationen.
  -> Netzwerk konnte die Wertetabelle nicht lernen.

Lerne Wertetabelle 16: Targets = (1, 1, 1, 1)
  -> Neustart der Startgewichte nach 100 Iterationen.
  -> Neustart der Startgewichte nach 200 Iterationen.
  -> Neustart der Startgewichte nach 300 Iterationen.
  -> Neustart der Startgewichte nach 400 Iterationen.
  -> Neustart der Startgewichte nach 500 Iterationen.
  -> Neustart der Startgewichte nach 600 Iterationen.
  -> Neustart der Startgewichte nach 700 Iterationen.
  -> Neustart der Startgewichte nach 800 Iterationen.
  -> Neustart der Startgewichte nach 900 Iterationen.
  -> Neustart der Startgewichte nach 1000 Iterationen.
  -> Neustart der Startgewichte nach 1100 Iterationen.
  -> Neustart der Startgewichte nach 1200 Iterationen.
  -> Neustart der Startgewichte nach 1300 Iterationen.
  -> Neustart der Startgewichte nach 1400 Iterationen.
  -> Neustart der Startgewichte nach 1500 Iterationen.
  -> Neustart der Startgewichte nach 1600 Iterationen.
  -> Neustart der Startgewichte nach 1700 Iterationen.
  -> Neustart der Startgewichte nach 1800 Iterationen.
  -> Neustart der Startgewichte nach 1900 Iterationen.
  -> Neustart der Startgewichte nach 2000 Iterationen.
  -> Netzwerk konnte die Wertetabelle nicht lernen.

Zusammenfassung der Ergebnisse:
Wertetabelle 1: Targets = (0, 0, 0, 0)
  -> Erfolg: Ja
  -> Benötigte Epochen: 1
  -> Finale Gewichte: (array([[0.26367611, 0.30478119, 0.76651335],
       [0.24038814, 0.33690454, 0.93222526]]), array([0.37323868, 0.13987249, 0.75306888]))

Wertetabelle 2: Targets = (0, 0, 0, 1)
  -> Erfolg: Ja
  -> Benötigte Epochen: 101
  -> Finale Gewichte: (array([[0.23188735, 0.75072062, 0.04025285],
       [0.42731415, 0.26495827, 0.33200987]]), array([0.4944258 , 0.87901019, 0.57301512]))

Wertetabelle 3: Targets = (0, 0, 1, 0)
  -> Erfolg: Ja
  -> Benötigte Epochen: 303
  -> Finale Gewichte: (array([[0.59632223, 1.19557717, 1.02385789],
       [0.42879834, 0.79891836, 0.60705829]]), array([0.36383244, 0.56347537, 0.62510893]))

Wertetabelle 4: Targets = (0, 0, 1, 1)
  -> Erfolg: Nein
  -> Benötigte Epochen: 2000

Wertetabelle 5: Targets = (0, 1, 0, 0)
  -> Erfolg: Ja
  -> Benötigte Epochen: 2
  -> Finale Gewichte: (array([[0.28086434, 0.71818657, 0.77500746],
       [0.77118071, 0.06243882, 0.80376986]]), array([0.47536862, 0.34482749, 0.88159161]))

Wertetabelle 6: Targets = (0, 1, 0, 1)
  -> Erfolg: Ja
  -> Benötigte Epochen: 1801
  -> Finale Gewichte: (array([[0.8506268 , 0.02471539, 0.69532997],
       [0.70870685, 0.94241568, 0.06318287]]), array([0.78028624, 0.95809141, 0.11517308]))

Wertetabelle 7: Targets = (0, 1, 1, 0)
  -> Erfolg: Ja
  -> Benötigte Epochen: 602
  -> Finale Gewichte: (array([[0.61564438, 0.53633315, 0.81623392],
       [0.08283061, 0.44619549, 0.8078911 ]]), array([0.55700983, 0.68148803, 0.88074596]))

Wertetabelle 8: Targets = (0, 1, 1, 1)
  -> Erfolg: Nein
  -> Benötigte Epochen: 2000

Wertetabelle 9: Targets = (1, 0, 0, 0)
  -> Erfolg: Nein
  -> Benötigte Epochen: 2000

Wertetabelle 10: Targets = (1, 0, 0, 1)
  -> Erfolg: Nein
  -> Benötigte Epochen: 2000

Wertetabelle 11: Targets = (1, 0, 1, 0)
  -> Erfolg: Nein
  -> Benötigte Epochen: 2000

Wertetabelle 12: Targets = (1, 0, 1, 1)
  -> Erfolg: Nein
  -> Benötigte Epochen: 2000

Wertetabelle 13: Targets = (1, 1, 0, 0)
  -> Erfolg: Nein
  -> Benötigte Epochen: 2000

Wertetabelle 14: Targets = (1, 1, 0, 1)
  -> Erfolg: Nein
  -> Benötigte Epochen: 2000

Wertetabelle 15: Targets = (1, 1, 1, 0)
  -> Erfolg: Nein
  -> Benötigte Epochen: 2000

Wertetabelle 16: Targets = (1, 1, 1, 1)
  -> Erfolg: Nein
  -> Benötigte Epochen: 2000