I can think of a greedy algorithm:
- Let $B$ be a fundamental cycle basis of graph $G$ induced by spanning tree (or forest) $T$
- For $e\in T$, let $n_+(e)$ ($n_-(e)$) be the number of even (odd) cycles in $B$ that contain $e$
- Find an $e\in T$ contained in an odd cycle $C\in B$ such that $n_-(e)-n_+(e)>0$ is maximised
- Replace all cycles $C'$ in $B$ that contain $e$ with $C'+C$ (apart from $C$ itself) to form new basis $B'$
- The number of odd cycles in $B'$ has now been reduced by $n_-(e)-n_+(e)-1$
- Repeat until you can't find $n_-(e)-n_+(e)>0$
This can find a "local minimum" for this quantity but one can construct cases where it terminates at a non-optimal solution.
Is there an efficient way to find the optimal solution witout simply checking every basis?
Some further thoughts:
I had a notion that a solution to this problem might give a solution to the minimal odd cycle transversal problem (NP-hard) but on further thought I'm less convinced. I'll include my thinking here in case it ends up being helpful.
In a given fundamental basis $B$ induced by $T$ each cycle $C(e)\in B$ is associated with a unique $e\notin T$. A vertex cover of the set of $e$ associated with odd elements of $B$ (odd $e$) would be an odd cycle transversal. However there is no guarantee that the minimal set of odd $e$ over all fundamental bases will have the smallest minimal vertex cover. This is also to say nothing about the hardness of finding the minimal vertex cover of this set in the first place.