Inspiration
The idea for DolorCor emerged from the need for a more mathematically elegant and computationally efficient way to map symptoms to diseases. Traditional symptom-disease mapping methods often rely on heuristic-based approaches, which can be inefficient and ambiguous. Modern symptom-disease mapping software use LLMs, which are non-deterministic and untraceable, i.e., one set of inputs may result in infinitely many outputs given the "black box" aspect, and may be trained on biased data. By leveraging the fundamental theorem of arithmetic and bipartite graph structures, we sought to create an alternative system to both traditional methods and LLMs to suggest a new model that is both deterministic and traceable.
What it does
DolorCor utilizes prime numbers to represent symptoms and square-free integers to represent diseases. This allows for an efficient, divisibility-based matching algorithm, where a disease is identified by checking if its square-free integer is divisible by the prime numbers representing the given symptoms. Additionally, the relationships between symptoms and diseases can be visually represented as a bipartite graph, making it easier to analyze and interpret data.
How we built it
- Prime Number Mapping: We assigned a unique prime number to each symptom.
- Disease Representation: Each disease was given a square-free integer, which is the product of the primes corresponding to its symptoms.
- Algorithm Implementation: The core matching function checks divisibility of the disease square-free integer against user-inputted symptom primes.
- Graph Visualization: We used a bipartite graph structure to represent the relationships between symptoms and diseases.
- Interactive CLI: A simple command-line interface allows users to input symptoms and retrieve matching diseases along with a visual representation.
Challenges we ran into
- Prime Assignment: Ensuring each symptom received a unique prime while keeping the system scalable.
- Performance Optimization: Making sure the system remains efficient as more symptoms and diseases are added.
Accomplishments that we're proud of
- Mathematically Pure Model: We successfully implemented a deterministic system that ensures 100% accurate symptom-disease matching.
- Scalable Matching Algorithm: The approach works efficiently even as the dataset grows. In the backend, there are no large adjacency matrices or use of computationally intensive libraries such as PyTorch or TensorFlow, and instead we rely on simple lists of strings which are hashed onto integers.
- Intuitive Graph Representation: The bipartite structure provides clear insights into symptom-disease relationships.
- Engineer-ability: A working implementation includes a tracing output that shows exactly how the input led to the output, utilizing simply two sets of vectors to represent (1) the set of primes as input and (2) the set of square-free integers as output.
- Cryptographic Properties: Given the prime-divisibility structure of our algorithm, we can check for any data that has been corrupted or hacked using a simple divisibility function. The assignment of primes to the symptoms can be randomly generated for cryptographic purposes, making this an optimal approach for future implementation for securing patient data.
What we learned
- Number Theory Applications: We leveraged our understanding of prime factorization and its practical applications to graph theory, essentially discovering a new branch of theoretical computer science.
- Graph Theory in Medicine: Bipartite graphs provide a structured way to represent and analyze relationships in medical data.
- Optimizing Search Algorithms: We explored efficient methods to check divisibility and match symptoms to diseases in real time. This computational function is also extremely efficient both in terms of memory and compute, thus making it an ideal framework for future developments and scaling.
What's next for DolorCor
- Database Integration: Expand to a dynamic database rather than a static mapping system.
- Web Interface: Expand our web platform UI to be more user-friendly for non-technical users.
- Expansion of Disease Set: Incorporate a broader range of symptoms and diseases for real-world applications by collaborating with academics and doctors in medicine.
- Hardware Component: Implement this efficient algorithm into new wearable devices, or incorporate into existing infrastructure (e.g., Fitbit, Apple Watch, etc.)
Log in or sign up for Devpost to join the conversation.