Consensus Mechanisms
The swarm employs multiple consensus strategies:
Weighted Voting
// Weighted voting consensus
function weightedVotingConsensus(signals, weights) {
const tally = {};
// Initialize tally for each asset and direction
signals.forEach(signal => {
const key = `${signal.asset}-${signal.direction}`;
if (!tally[key]) {
tally[key] = {
asset: signal.asset,
direction: signal.direction,
weightedConfidence: 0,
votes: 0,
signals: []
};
}
});
// Add weighted votes
signals.forEach(signal => {
const key = `${signal.asset}-${signal.direction}`;
const agentWeight = weights[signal.agentId] || 1;
tally[key].weightedConfidence += signal.confidence * agentWeight;
tally[key].votes += 1;
tally[key].signals.push(signal);
});
// Calculate final confidence scores and sort by strength
const results = Object.values(tally).map(result => {
return {
...result,
consensusConfidence: result.weightedConfidence /
result.signals.reduce((sum, signal) => sum + weights[signal.agentId], 0)
};
});
// Sort by consensus confidence
return results.sort((a, b) => b.consensusConfidence - a.consensusConfidence);
}
// Example usage
const consensusResults = weightedVotingConsensus(allAgentSignals, agentWeights);
console.log('Consensus results:', consensusResults);Bayesian Aggregation
Collective Decision Making
Signal Composition
Decision Refinement
Last updated

