mirror of
https://github.com/lux-apps/papers.git
synced 2026-11-03 05:07:46 +00:00
Restructured from flat .tex/.pdf files into per-paper subdirectories. Added Antje Worring as co-author on all papers. Synced PDFs to pdfs/ for download site.
87 lines
2.5 KiB
TeX
87 lines
2.5 KiB
TeX
\section{Adaptive Threshold Mechanism}
|
|
|
|
\label{sec:adaptive}
|
|
|
|
The key innovation in FPC is the adaptive threshold function that prevents metastability while ensuring convergence.
|
|
|
|
\subsection{Sigmoid Cooling Function}
|
|
|
|
The threshold evolves according to a sigmoid cooling schedule:
|
|
|
|
\begin{equation}
|
|
\theta(r) = \theta_{\min} + \frac{\theta_{\max} - \theta_{\min}}{1 + e^{-r/\tau}}
|
|
\label{eq:sigmoid}
|
|
\end{equation}
|
|
|
|
where $\tau = \frac{\text{totalRounds}}{4}$ controls the transition rate.
|
|
|
|
\begin{figure}[h]
|
|
\centering
|
|
\begin{tikzpicture}
|
|
\begin{axis}[
|
|
xlabel={Round $r$},
|
|
ylabel={Threshold $\theta(r)$},
|
|
xmin=0, xmax=10,
|
|
ymin=0.45, ymax=0.85,
|
|
grid=major,
|
|
width=10cm,
|
|
height=6cm,
|
|
legend pos=south east,
|
|
]
|
|
\addplot[blue, thick, smooth] {0.5 + 0.3/(1 + exp(-4*x/10))};
|
|
\addlegendentry{$\theta(r)$ with $\tau=2.5$}
|
|
|
|
\addplot[red, dashed, thick] {0.5};
|
|
\addlegendentry{$\theta_{\min} = 0.5$}
|
|
|
|
\addplot[green, dashed, thick] {0.8};
|
|
\addlegendentry{$\theta_{\max} = 0.8$}
|
|
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\caption{Sigmoid cooling function for adaptive threshold}
|
|
\label{fig:sigmoid}
|
|
\end{figure}
|
|
|
|
\subsection{Phase-Shift Dynamics}
|
|
|
|
The protocol exhibits three distinct phases:
|
|
|
|
\begin{enumerate}
|
|
\item \textbf{Exploration Phase} ($r < \tau$): $\theta \approx 0.5$, neutral voting to discover majority
|
|
\item \textbf{Transition Phase} ($\tau \leq r < 2\tau$): Rapid increase in threshold
|
|
\item \textbf{Exploitation Phase} ($r \geq 2\tau$): $\theta \to 0.8$, lock in decision
|
|
\end{enumerate}
|
|
|
|
\begin{lemma}
|
|
The phase-shift function prevents metastability by ensuring $\theta(r) \to \theta_{\max}$ as $r \to \infty$.
|
|
\end{lemma}
|
|
|
|
\begin{proof}
|
|
$$\lim_{r \to \infty} \frac{1}{1 + e^{-r/\tau}} = 1$$
|
|
Therefore:
|
|
$$\lim_{r \to \infty} \theta(r) = \theta_{\min} + (\theta_{\max} - \theta_{\min}) \cdot 1 = \theta_{\max} > 0.5 + \text{margin}$$
|
|
\end{proof}
|
|
|
|
\subsection{Temperature Modulation}
|
|
|
|
To enable adaptive exploration, we introduce temperature-based noise in early rounds:
|
|
|
|
\begin{lstlisting}[language=Go, caption=Temperature-modulated threshold computation]
|
|
func computeThreshold(round int, temperature float64) float64 {
|
|
tau := float64(maxRounds) / 4.0
|
|
sigmoid := 1.0 / (1.0 + math.Exp(-float64(round)/tau))
|
|
|
|
exploration := temperature * 0.1
|
|
threshold := thetaMin + (thetaMax-thetaMin)*sigmoid
|
|
|
|
if round < maxRounds/3 {
|
|
noise := (rand.Float64() - 0.5) * exploration
|
|
threshold += noise
|
|
}
|
|
|
|
return math.Max(0.51, math.Min(0.99, threshold))
|
|
}
|
|
\end{lstlisting}
|
|
|