QGAN_Project / vGe0.1 /dashboard_simulation.py
1bnjmn3's picture
Add files using upload-large-folder tool
0f755ec verified
import numpy as np
import time
import sys
import os
import random
# ANSI Colors for "Hacker Mode" Dashboard
class Colors:
HEADER = '\033[95m'
BLUE = '\033[94m'
GREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
def main():
print(f"{Colors.HEADER}╔══════════════════════════════════════════════════════════════╗{Colors.ENDC}")
print(f"{Colors.HEADER}β•‘ FUSION REACTOR SAFETY MONITOR - HYBRID AI SYSTEM β•‘{Colors.ENDC}")
print(f"{Colors.HEADER}β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•{Colors.ENDC}")
print("Loading Neural Links...")
time.sleep(1)
# 1. LOAD THE "TRUTH" DATA
try:
q_data = np.load("qsvc_results/qsvc_results.npz")
q_preds = q_data['preds']
y_test = q_data['targets']
# Regenerate Classical Predictions
possible_paths = ['vG.0.1/qgan_data_optimized.npz', 'qgan_data_optimized.npz']
data_path = next((p for p in possible_paths if os.path.exists(p)), None)
data = np.load(data_path)
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier(n_estimators=100, random_state=42)
rf.fit(data['X_train'], data['y_train'])
# Predict on same subset
X_test_sub = data['X_test'][:len(q_preds)]
c_preds = rf.predict_proba(X_test_sub)[:, 1]
except Exception as e:
print(f"{Colors.FAIL}System Error: Could not load model history.{Colors.ENDC}")
print(e)
return
print(f"{Colors.GREEN}βœ” System Online.{Colors.ENDC}\n")
print(f"{'SHOT ID':<10} | {'CLASSICAL GUARD':<20} | {'QUANTUM GUARD':<20} | {'STATUS'}")
print("-" * 75)
events_found = 0
for i in range(len(y_test)):
c_score = c_preds[i]
q_score = q_preds[i]
is_disruption = y_test[i] == 1
# Formatting
c_status = f"{c_score:.2f} (SAFE)" if c_score < 0.5 else f"{c_score:.2f} {Colors.FAIL}(WARN){Colors.ENDC}"
q_status = f"{q_score:.2f} (SAFE)" if q_score < 0.5 else f"{q_score:.2f} {Colors.FAIL}(WARN){Colors.ENDC}"
final_msg = ""
delay = 0.05 # Default delay
# --- LOGIC TREE ---
# A. BORING (Both Safe)
if (c_score < 0.5 and q_score < 0.5):
final_msg = f"{Colors.GREEN}STABLE{Colors.ENDC}"
delay = 0.02 # Fast forward
# B. AGREEMENT (Both Danger)
elif (c_score > 0.5 and q_score > 0.5):
final_msg = f"{Colors.WARNING}MITIGATED{Colors.ENDC}"
delay = 0.1
# C. THE QUANTUM SAVE (The Money Shot)
elif (c_score < 0.5 and q_score > 0.5 and is_disruption):
events_found += 1
print("-" * 75)
print(f"{Colors.BOLD}>>> ANOMALY DETECTED IN SHOT {i} <<<{Colors.ENDC}")
print(f" Classical AI: {Colors.GREEN}SAFE ({c_score:.2f}){Colors.ENDC} --> ❌ FALSE NEGATIVE")
print(f" Quantum AI: {Colors.FAIL}DANGER ({q_score:.2f}){Colors.ENDC} --> βœ… TRUE POSITIVE")
print(f" ACTION: {Colors.WARNING}[TRIGGERING EMERGENCY SHUTDOWN]{Colors.ENDC}")
print("-" * 75)
time.sleep(1.5)
continue
# D. FALLBACK (Disagreements that aren't saves, or False Alarms)
else:
final_msg = f"{Colors.BLUE}ANALYZING{Colors.ENDC}"
delay = 0.05
# Print Logic (Skip boring lines to keep screen moving)
if delay == 0.02 and i % 10 != 0:
continue
print(f"{i:<10} | {c_status:<29} | {q_status:<29} | {final_msg}")
time.sleep(delay)
if events_found >= 5:
print(f"\n{Colors.BOLD}Simulation Limit Reached. 5 Quantum Saves Demonstrated.{Colors.ENDC}")
break
if __name__ == "__main__":
main()