f1-nexus-strategy

Crates.iof1-nexus-strategy
lib.rsf1-nexus-strategy
version1.0.0-alpha.2
created_at2025-12-13 12:45:19.540636+00
updated_at2025-12-17 02:31:59.583609+00
descriptionNext-generation Formula 1 strategy optimization platform with AI-powered race simulation
homepagehttps://github.com/mrkingsleyobi/f1-nexus
repositoryhttps://github.com/mrkingsleyobi/f1-nexus
max_upload_size
id1982888
size117,895
Kingsley Obi (mrkingsleyobi)

documentation

README

f1-nexus-strategy

Crates.io Documentation License

Advanced pit stop optimization and race strategy algorithms for Formula 1 using dynamic programming and Monte Carlo simulation.

Features

  • šŸŽļø Dynamic Programming Optimization: Find optimal pit stop windows using advanced algorithms
  • šŸŽ² Monte Carlo Race Simulation: Run 10,000+ race simulations with realistic variance
  • šŸ Tire Strategy Analysis: Optimize compound selection and stint lengths
  • ⛽ Fuel Management: Calculate optimal fuel loads and fuel-saving strategies
  • šŸ”‹ ERS Deployment: Plan energy recovery system usage for maximum performance
  • šŸŒ¦ļø Weather Adaptation: Adjust strategies based on weather forecasts
  • šŸ“Š Statistical Analysis: Confidence intervals and probability distributions

Installation

[dependencies]
f1-nexus-strategy = "1.0.0-alpha.2"

Quick Start

use f1_nexus_strategy::*;
use f1_nexus_core::*;

// Create optimization config
let config = OptimizationConfig {
    total_laps: 70,
    circuit: create_monaco_circuit(),
    available_compounds: vec![TireCompound::C1, TireCompound::C2, TireCompound::C3],
    pit_lane_time_loss: 22.0,
    tire_change_time: 2.5,
    current_position: 1,
    competitors_ahead: vec![],
    degradation_factors: DegradationFactors::default(),
    fuel_model: FuelConsumptionModel::default(),
    starting_fuel: 110.0,
};

// Optimize pit strategy
let strategy = optimize_pit_strategy(&config)?;

println!("Optimal strategy:");
println!("Starting compound: {:?}", strategy.starting_compound);
for (i, stop) in strategy.pit_stops.iter().enumerate() {
    println!("Stop {}: Lap {} -> {:?}", i + 1, stop.lap.0, stop.compound);
}
println!("Predicted race time: {:.2}s", strategy.predicted_race_time);
println!("Confidence: {:.1}%", strategy.confidence * 100.0);

Race Simulation

use f1_nexus_strategy::simulation::*;

let sim_config = SimulationConfig {
    num_iterations: 10000,
    circuit: create_spa_circuit(),
    weather_forecast: WeatherForecast::default(),
    degradation_variance: 0.05,
    lap_time_variance: 0.02,
};

let results = simulate_race(&strategy, &sim_config)?;

println!("Mean finish time: {:.2}s", results.mean_finish_time);
println!("P10 time: {:.2}s", results.percentile_10);
println!("P90 time: {:.2}s", results.percentile_90);
println!("DNF probability: {:.1}%", results.dnf_probability * 100.0);

Algorithms

Dynamic Programming Optimization

  • Time Complexity: O(n² Ɨ m) where n = laps, m = compounds
  • Space Complexity: O(n Ɨ m)
  • Accuracy: Finds globally optimal solution

Monte Carlo Simulation

  • Iterations: 1,000 - 100,000 (configurable)
  • Variance Modeling: Tire degradation, lap times, incidents
  • Output: Mean, median, P10/P90, full distribution

Use Cases

  • Race Engineers: Optimize real-time strategy during races
  • Strategy Analysts: Pre-race strategy planning and what-if analysis
  • Esports: AI-powered strategy for F1 games
  • Education: Learn about race strategy optimization algorithms
  • Research: Study optimization techniques in motorsport

Performance

  • Optimization Speed: <100ms for typical race (70 laps, 3 compounds)
  • Simulation Speed: 10,000 iterations in ~2 seconds
  • Memory Usage: <50MB for full race simulation

Documentation

Full API documentation and examples at docs.rs/f1-nexus-strategy

Related Crates

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Commit count: 0

cargo fmt