Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions benchmark_accuracy.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@

import numpy as np

sys.path.insert(0, "/home/user/Eigen-Geometric-Control")
sys.path.insert(0, "/home/user/Eigen-Geometric-Control") # noqa: E402

import pandas as pd
import pandas as pd # noqa: E402

from src import (
from src import ( # noqa: E402
compute_change_stability,
compute_ds2,
compute_gradient,
Expand Down
12 changes: 6 additions & 6 deletions benchmark_adaptive_twophase.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@

import numpy as np

sys.path.insert(0, "/home/user/Eigen-Geometric-Control")
sys.path.insert(0, "/home/user/Eigen-Geometric-Control") # noqa: E402

import pandas as pd
import pandas as pd # noqa: E402

from src import (
from src import ( # noqa: E402
adaptive_control_parameters,
compute_ds2,
compute_gradient,
Expand Down Expand Up @@ -288,11 +288,11 @@ def main():
) * 100

print("IMPROVEMENTS:")
print(f" vs Fixed Fast:")
print(" vs Fixed Fast:")
print(f" • {vs_fast_precision:+.1f}% better precision")
print(f" • Similar speed (both reach 10cm in ~{adaptive_ticks_to_10cm} ticks)")
print()
print(f" vs Fixed Ultra-Slow:")
print(" vs Fixed Ultra-Slow:")
print(f" • {vs_ultraslow_speed:+.1f}% faster to 10cm")
print(
f" • Similar precision ({adaptive_final_error:.1f}mm vs {ultraslow_final_error:.1f}mm)"
Expand All @@ -315,7 +315,7 @@ def main():
print(
f" Adaptive control spent only {terminal_phase_ticks/len(df_adaptive)*100:.1f}% of time in slow mode,"
)
print(f" but achieved precision comparable to 100% ultra-slow!")
print(" but achieved precision comparable to 100% ultra-slow!")

print()
print("=" * 80)
Expand Down
8 changes: 4 additions & 4 deletions benchmark_dynamic.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@

import numpy as np

sys.path.insert(0, "/home/user/Eigen-Geometric-Control")
sys.path.insert(0, "/home/user/Eigen-Geometric-Control") # noqa: E402

import pandas as pd
import pandas as pd # noqa: E402

from src import (
from src import ( # noqa: E402
compute_change_stability,
compute_ds2,
compute_gradient,
Expand Down Expand Up @@ -216,7 +216,7 @@ def analyze_tracking(df, scenario_name):
return metrics


def main():
def main(): # noqa: C901
print("=" * 80)
print("DYNAMIC SCENARIOS: Moving Targets and Obstacles".center(80))
print("=" * 80)
Expand Down
9 changes: 3 additions & 6 deletions benchmark_dynamic_adaptation.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,17 +48,14 @@ def simulate_robot_control(
# Heavy robot: slow movements, needs small eta
velocity_scale = 0.1
noise_level = 0.05
optimal_eta = 0.05
elif robot_type == "fast":
# Agile robot: fast movements, can handle large eta
velocity_scale = 2.0
noise_level = 0.2
optimal_eta = 0.3
else: # medium
# Baseline robot
velocity_scale = 0.5
noise_level = 0.1
optimal_eta = 0.1

state = initial_state.copy()
trajectory = [state.copy()]
Expand Down Expand Up @@ -240,17 +237,17 @@ def run_benchmark():

all_results[robot_type] = results

print(f" Convergence Time:")
print(" Convergence Time:")
print(f" Adaptive: {avg_conv_adaptive:.1f} steps")
print(f" Fixed: {avg_conv_fixed:.1f} steps")
print(f" Improvement: {conv_improvement:+.1f}%")
print()
print(f" Final Error:")
print(" Final Error:")
print(f" Adaptive: {avg_err_adaptive:.4f}")
print(f" Fixed: {avg_err_fixed:.4f}")
print(f" Improvement: {error_improvement:+.1f}%")
print()
print(f" Auto-Detected Parameters:")
print(" Auto-Detected Parameters:")
print(f" c (characteristic velocity): {avg_c:.3f}")
print(f" eta (recommended): {avg_eta:.3f}")
print(f" confidence: {avg_confidence:.3f}")
Expand Down
6 changes: 3 additions & 3 deletions benchmark_geodesic_planning.py
Original file line number Diff line number Diff line change
Expand Up @@ -227,17 +227,17 @@ def run_benchmark():

all_results[scenario_name] = results

print(f" Success Rate:")
print(" Success Rate:")
print(f" Naive: {naive_success_rate:.1f}%")
print(f" Geodesic: {geo_success_rate:.1f}%")
print(f" Improvement: {success_improvement:+.1f}%")
print()
print(f" Collisions:")
print(" Collisions:")
print(f" Naive: {naive_avg_collisions:.2f}")
print(f" Geodesic: {geo_avg_collisions:.2f}")
print(f" Reduction: {collision_reduction:+.1f}%")
print()
print(f" Path Length:")
print(" Path Length:")
print(f" Naive: {naive_avg_length:.2f}")
print(f" Geodesic: {geo_avg_length:.2f}")
print()
Expand Down
8 changes: 4 additions & 4 deletions benchmark_landing.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@

import numpy as np

sys.path.insert(0, "/home/user/Eigen-Geometric-Control")
sys.path.insert(0, "/home/user/Eigen-Geometric-Control") # noqa: E402

import pandas as pd
import pandas as pd # noqa: E402

from src import (
from src import ( # noqa: E402
compute_change_stability,
compute_ds2,
compute_gradient,
Expand Down Expand Up @@ -236,7 +236,7 @@ def analyze_landing(df, scenario_name):
return metrics


def main():
def main(): # noqa: C901
print("=" * 80)
print("AUTONOMOUS LANDING: Moving Platform Scenarios".center(80))
print("=" * 80)
Expand Down
12 changes: 6 additions & 6 deletions benchmark_mars_landing.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@

import numpy as np

sys.path.insert(0, "/home/user/Eigen-Geometric-Control")
sys.path.insert(0, "/home/user/Eigen-Geometric-Control") # noqa: E402

import pandas as pd
import pandas as pd # noqa: E402

from src import (
from src import ( # noqa: E402
compute_change_stability,
compute_ds2,
compute_gradient,
Expand Down Expand Up @@ -229,7 +229,7 @@ def analyze_mars_landing(df, scenario_name, safe_zone_radius=0.015):
return metrics


def main():
def main(): # noqa: C901
print("=" * 80)
print("MARS LANDING: Mission-Critical Precision Landing".center(80))
print("=" * 80)
Expand Down Expand Up @@ -466,7 +466,7 @@ def sample_return_site(t):
baseline_successes = sum(1 for r in results if r["baseline"]["mission_success"])
lightlike_successes = sum(1 for r in results if r["lightlike"]["mission_success"])

print(f"MISSION SUCCESS RATE:")
print("MISSION SUCCESS RATE:")
print(
f" Baseline: {baseline_successes}/{len(results)} missions successful ({baseline_successes/len(results)*100:.0f}%)"
)
Expand Down Expand Up @@ -503,7 +503,7 @@ def sample_return_site(t):
if lightlike_successes > baseline_successes or total_oscillation_reduction > 5:
print("★★★ MISSION-CRITICAL IMPROVEMENT ★★★")
print()
print(f"The lightlike observer SAVES MISSIONS:")
print("The lightlike observer SAVES MISSIONS:")
print(f" • {lightlike_successes - baseline_successes} additional successful landing(s)")
print(f" • {total_oscillation_reduction} fewer descent oscillations")
print(f" • {avg_precision_improvement:.1f}% better landing precision")
Expand Down
5 changes: 1 addition & 4 deletions benchmark_moving_targets.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,7 @@
import matplotlib.pyplot as plt
import numpy as np

from src.eigen_lorentz import (
estimate_target_velocity,
moving_target_control_step,
)
from src.eigen_lorentz import moving_target_control_step


def simulate_moving_target_tracking(
Expand Down
3 changes: 1 addition & 2 deletions benchmark_qec.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
import numpy as np

from src.eigen_qec import (
correct_measurement_errors,
qec_control_step,
simulate_sensor_array,
)
Expand Down Expand Up @@ -191,7 +190,7 @@ def run_benchmark():

all_results[failure_rate] = results

print(f" Final Error:")
print(" Final Error:")
print(f" Naive: {avg_error_naive:.3f}")
print(f" QEC: {avg_error_qec:.3f}")
print(f" Improvement: {error_improvement:+.1f}%")
Expand Down
10 changes: 5 additions & 5 deletions benchmark_scaling.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@

import numpy as np

sys.path.insert(0, "/home/user/Eigen-Geometric-Control")
sys.path.insert(0, "/home/user/Eigen-Geometric-Control") # noqa: E402

import pandas as pd
import pandas as pd # noqa: E402

from src import (
from src import ( # noqa: E402
compute_change_stability,
compute_ds2,
compute_gradient,
Expand Down Expand Up @@ -188,7 +188,7 @@ def analyze_precision(df_baseline, df_lightlike, target, scenario_name):
}


def main():
def main(): # noqa: C901
print("=" * 80)
print("SCALING ANALYSIS: Lightlike Observer Benefits vs Complexity".center(80))
print("=" * 80)
Expand Down Expand Up @@ -306,7 +306,7 @@ def main():
)
print()
print("For 3D robot control (6-DOF or 7-DOF):")
print(f" • Configuration space: 2D → 6D or 7D (3-3.5x more dimensions)")
print(" • Configuration space: 2D → 6D or 7D (3-3.5x more dimensions)")
print(
f" • Expected improvement: ~{avg_improvement * 3:.1f}% to {avg_improvement * 3.5:.1f}%"
)
Expand Down
5 changes: 2 additions & 3 deletions benchmark_self_tuning.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import numpy as np

from src.eigen_meta_control import self_tuning_control_step
from src.eigen_similarity import lightlike_damping_factor


def gradient_step_with_damping(
Expand Down Expand Up @@ -192,9 +191,9 @@ def main():
print("=" * 70)
print()
print("Key Results:")
print(f" 1. No infinite loops despite self-reference (TC+ property ✓)")
print(" 1. No infinite loops despite self-reference (TC+ property ✓)")
print(f" 2. Parameters self-adjusted in {len(params2)-1} iterations")
print(f" 3. Recovered from bad initial params automatically")
print(" 3. Recovered from bad initial params automatically")
print()
print("Computational Implications:")
print(" • System observes itself: a = current_params")
Expand Down
9 changes: 4 additions & 5 deletions benchmark_stereo_lorentz.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,20 +22,19 @@

import numpy as np

sys.path.insert(0, "/home/user/Eigen-Geometric-Control")
sys.path.insert(0, "/home/user/Eigen-Geometric-Control") # noqa: E402

import pandas as pd
import pandas as pd # noqa: E402

from src import (
from src import ( # noqa: E402
compute_change_stability,
compute_ds2,
compute_gradient,
detect_oscillation,
forward_kinematics,
lightlike_damping_factor,
)
from src.eigen_lorentz import (
lorentz_to_stereo,
from src.eigen_lorentz import ( # noqa: E402
regime_classification,
stereo_to_lorentz,
)
Expand Down
13 changes: 6 additions & 7 deletions benchmark_terminal_descent.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@

import numpy as np

sys.path.insert(0, "/home/user/Eigen-Geometric-Control")
sys.path.insert(0, "/home/user/Eigen-Geometric-Control") # noqa: E402

import pandas as pd
import pandas as pd # noqa: E402

from src import (
from src import ( # noqa: E402
compute_change_stability,
compute_ds2,
compute_gradient,
Expand Down Expand Up @@ -228,7 +228,6 @@ def main():

# Find best precision
best = min(results, key=lambda r: r["light_final_mm"])
worst = max(results, key=lambda r: r["base_final_mm"])

print("KEY FINDINGS:")
print()
Expand All @@ -238,7 +237,7 @@ def main():
print(f" - Configuration: eta={best['eta']}, {best['ticks']} iterations")
print()

print(f"2. PRECISION SCALING:")
print("2. PRECISION SCALING:")
fast_precision = results[0]["base_final_mm"]
slow_precision = results[-1]["base_final_mm"]
precision_gain = (fast_precision - slow_precision) / fast_precision * 100
Expand All @@ -247,7 +246,7 @@ def main():
print(f" - Improvement from slowing down: {precision_gain:.1f}%")
print()

print(f"3. LIGHTLIKE OBSERVER BENEFIT:")
print("3. LIGHTLIKE OBSERVER BENEFIT:")
avg_improvement = sum(r["improvement_pct"] for r in results) / len(results)
print(f" - Average improvement across all speeds: {avg_improvement:+.1f}%")

Expand All @@ -260,7 +259,7 @@ def main():

# Oscillation analysis
total_osc_reduction = sum(r["base_oscillations"] - r["light_oscillations"] for r in results)
print(f"4. STABILITY:")
print("4. STABILITY:")
print(f" - Total oscillation reduction: {total_osc_reduction:+d} events")
print()

Expand Down
8 changes: 4 additions & 4 deletions benchmark_visual_servoing.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@

import numpy as np

sys.path.insert(0, "/home/user/Eigen-Geometric-Control")
sys.path.insert(0, "/home/user/Eigen-Geometric-Control") # noqa: E402

import pandas as pd
import pandas as pd # noqa: E402

from src import (
from src import ( # noqa: E402
compute_change_stability,
compute_ds2,
compute_gradient,
Expand Down Expand Up @@ -262,7 +262,7 @@ def analyze_visual_servoing(df, scenario_name):
return metrics


def main():
def main(): # noqa: C901
print("=" * 80)
print("VISUAL SERVOING: Stereo Vision + Lightlike Observer".center(80))
print("=" * 80)
Expand Down
Loading
Loading