False Feet Algorithm
Amoeba: Novel Multi-Branch Hypothesis Evaluation with Inverse Resource Allocation
A Python library for solving complex reasoning problems through competitive multi-branch investigation. The algorithm forces weak hypotheses to strengthen or die off by allocating MORE resources to them, not less. When multiple independent reasoning paths converge on the same answer, that's a robust signal.
Quick Start
pip install false-feet-algorithm
Run the examples:
python -m false_feet_algorithm.examples.mystery_solving
python -m false_feet_algorithm.examples.clinical_diagnosis
python -m false_feet_algorithm.examples.llm_reasoning_robustness
How It Works
The 6-phase algorithm repeats until convergence:
- Investigation — Branches evaluate current evidence
- Evaluation — Score each hypothesis (0-1)
- Resource Allocation — INVERSE ranking (weakest gets most resources!)
- Evidence Gathering — Branches propose new evidence to test
- Starvation & Culling — Non-improving branches die off
- Convergence Check — All branches agree? → Problem solved
Use It for Your Domain
Extend the framework with your own hypothesis evaluation logic:
from false_feet_algorithm.core import Problem, Option, DataPoint, BaseBranch, BaseEvaluator, AmoebaInvestigation
class YourBranch(BaseBranch):
def evaluate(self, data_pool):
# Your domain-specific reasoning
return score # 0.0-1.0
def propose_data(self, data_pool):
# Suggest the next evidence to gather
return proposed_evidence_ids
class YourEvaluator(BaseEvaluator):
def evaluate(self, branch, data_pool):
# Your scoring logic
return score
# Set up the problem
problem = Problem(title="My Problem")
problem.add_option(Option("hypothesis_1"))
problem.add_option(Option("hypothesis_2"))
# ... add evidence ...
# Solve it
solver = AmoebaInvestigation(
problem,
branch_class=YourBranch,
evaluator=YourEvaluator()
)
result = solver.solve()
print(f"Best hypothesis: {result.option.id}")
Examples Included
- Mystery Solving — Classic logic puzzle (identify the culprit from clues)
- Medical Diagnosis — Differential diagnosis from symptoms and tests
- LLM Reasoning Robustness — Verify LLM answer quality by generating multiple independent reasoning paths (step-by-step, devil's advocate, constraint-based, evidence-first) and checking for convergence. Uses inverse resource allocation to give extra scrutiny to weaker reasoning paths.
Visualization (Optional)
Install with visualization support:
pip install false-feet-algorithm[viz]
Then use the built-in plotting utilities to visualize algorithm convergence.
Features
- ✅ Pure Python, minimal dependencies
- ✅ Generic framework for any hypothesis evaluation problem
- ✅ 39 comprehensive tests (Python 3.8+)
- ✅ Optional matplotlib visualization
- ✅ Well-documented API with examples
Testing
pytest
License
MIT License
Learn More
For the complete algorithm specification and C++ reference implementation, see the GitHub repository.
Metadata
Release files for false-feet-algorithm 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| false_feet_algorithm-0.2.0.tar.gz | 28.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| false_feet_algorithm-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 60.8 kB
Release files / false_feet_algorithm-0.2.0.tar.gz
| Download URL | false_feet_algorithm-0.2.0.tar.gz |
|---|---|
| Size | 28.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dddd5a02be121615be8a1928c6719595c26085c5236b7363a29ae4a41ee1b6a0
|
|
BLAKE2b-256 checksum How to use checksums |
6b227c6772dd3961e1e4e370d649d92c8f02e9c2e191abe9bbacfcbc67656a66
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.21
|
Release files / false_feet_algorithm-0.2.0-py3-none-any.whl
| Download URL | false_feet_algorithm-0.2.0-py3-none-any.whl |
|---|---|
| Size | 32.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
595dbb25e5425024df56dd9a22ea728dbc37700f39ceb21170276b95be0863c0
|
|
BLAKE2b-256 checksum How to use checksums |
dfd4bbdf287e05afe3811fe07e4a6889eacd5278977f53d668ee619cd58acfbf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.21
|