// use std::ops::Neg;
// use crate::genetic_algorithm::GA;
// use crate::Opti;
//
//
// /// simulated_annealing 模拟退火算法
// // #[derive(Clone, Copy)]
// // #[pyclass]
// // pub struct SA{
// // 	#[pyo3(get, set)]
// //     n: usize,
// //     #[pyo3(get, set)]
// //     m: usize,
// //     #[pyo3(get, set)]
// //     c1: f64,
// //     #[pyo3(get, set)]
// //     c2: f64,
// // }
// //
//
// // impl Opti for SA {
// // 	fn min<const F: usize, O: PartialOrd + Neg<Output=O>>(self, f: impl Fn([f64; F]) -> f64, x_min: [f64; F], x_max: [f64; F]) -> ([f64; F], O) {
// // 		todo!()
// // 	}
// // 	fn min_gin<const F: usize, const I: usize, O: PartialOrd + Neg<Output=O>>(self, f: impl Fn([f64; F], [isize; I]) -> f64, xf_min: [f64; F], xf_max: [f64; F], xi_min: [isize; I], xi_max: [isize; I]) -> ([f64; F], [isize; I], O) {
// // 		todo!()
// // 	}
// // 	fn min_bin<const F: usize, const B: usize, O: PartialOrd + Neg<Output=O>>(self, f: impl Fn([f64; F], [bool; B]) -> f64, x_min: [f64; F], x_max: [f64; F]) -> ([f64; F], [bool; B], O) {
// // 		todo!()
// // 	}
// // 	fn min_gin_bin<const F: usize, const I: usize, const B: usize, O: PartialOrd + Neg<Output=O>>(self, f: impl Fn([f64; F], [isize; I], [bool; B]) -> f64, xf_min: [f64; F], xf_max: [f64; F], xi_min: [isize; I], xi_max: [isize; I]) -> ([f64; F], [isize; I], [bool; B], O) {
// // 		todo!()
// // 	}
// // }
// use pyo3::prelude::*;