DDx is a system to solve complex math problems
Project description
DDx: Dynamic Diagnosis System for Mathematical Problem Solving
DDx (Dynamic Diagnosis) is an intelligent, iterative problem-solving system inspired by the critical-thinking process seen in House M.D.. It is designed to break down complex mathematical problems into manageable phases, leveraging multiple agents to collaboratively solve and refine solutions.
🚀 Features
-
Phased Problem Solving: DDx splits problem-solving into six logical phases:
- Understanding: Decipher the problem statement and identify goals.
- Decomposition: Break the problem into smaller, solvable components.
- Planning: Create a strategy to solve the subproblems.
- Execution: Solve each component systematically.
- Verification: Validate the solutions against the original problem.
- Compilation: Combine results into a cohesive final answer.
-
Interactive Agents: Mimics the dynamic interaction of "House" (critical guide) and "Team" (problem solvers) to iteratively improve solutions.
-
Tool Integration: Leverages symbolic computation (e.g., SymPy) for mathematical operations during the execution phase.
-
Verbose Debugging: Option to enable detailed output for tracking agent reasoning and decision-making.
🧠 How It Works
- Input a Problem: Provide a complex mathematical or symbolic problem to DDx.
- Iterative Problem-Solving:
- The "House" agent oversees the process, iteratively questioning and refining the solution.
- The "Team" agent generates outputs for each phase.
- Tools & Execution: Utilize computational tools like SymPy for precise calculations.
- Verification & Refinement: Validate and refine solutions until the "House" agent is satisfied.
- Final Answer: Output a fully solved and explained solution.
🔨 How to use?
Ensure you have OPENAI_API_KEY in the environment and the API is just one function.
from ddx_ai import DDx
DDx("<question>", verbose=False)
📄 Example Usage
Input Problem
Nondimensionalize the polynomial: [ P(x) = a_1 x^{25} + a_2 x + a_3 ] into the form: [ \epsilon y^{25} + y + 1 ] Express (\epsilon) as a function of (a_1), (a_2), and (a_3).
Output
-
Understanding Phase:
- Identify the goal: Transform the polynomial into the specified nondimensional form.
- Extract key coefficients: (a_1), (a_2), (a_3).
-
Decomposition Phase:
- Break the problem into:
- Variable scaling ((L)) to make (y^1) coefficient equal to 1.
- Normalizing the constant term to 1.
- Calculating (\epsilon).
- Break the problem into:
-
Execution Phase:
- Perform substitutions: (x = L y), where (L = \frac{1}{a_2}).
- Solve for (\epsilon = \frac{a_1 a_3^{24}}{a_2^{25}}).
-
Verification Phase:
- Substitute back into the polynomial to ensure it matches the desired form.
-
Compilation Phase:
- Final answer: [ \boxed{\epsilon = \frac{a_1 a_3^{24}}{a_2^{25}}} ]
💡 Key Design Principles
- Iterative Refinement:
- Mimics real-world diagnostic processes to refine solutions through critical questioning.
- Dynamic Interactions:
- Encourages agents to think critically, ensuring high-quality solutions.
- Phased Approach:
- Logical segmentation for tackling complex problems methodically.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ddx_ai-0.1.5.tar.gz.
File metadata
- Download URL: ddx_ai-0.1.5.tar.gz
- Upload date:
- Size: 16.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29d6b155da5422bd14651d893b00de8e15ca3b2bfb0cf26df431e1e1bfcbcb64
|
|
| MD5 |
fc5f30b0e21780360796e1284ba4e6b3
|
|
| BLAKE2b-256 |
3e90d192fe69acdf9d89e060edd202867c7dfa346930deb5b5e004550e5cbf01
|
File details
Details for the file ddx_ai-0.1.5-py3-none-any.whl.
File metadata
- Download URL: ddx_ai-0.1.5-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd1c3482813b1b4dc2f789b4458d6a66380548326a357c561aa4439c9b02b88f
|
|
| MD5 |
dbe272e5d394240e033b2b5dbeef34b9
|
|
| BLAKE2b-256 |
8457a58f9400002802d8d11d1c2aa695ac95f7e49af786cf1c2dd56cbdfe0f1d
|