835 MB
10,492 files
Updated 4 months ago
README.md

CA17: Reinforcement Learning for Mathematics

🧮 Overview

This project implements advanced reinforcement learning systems specifically designed for mathematical problem-solving. It features RL agents that can learn to solve mathematical problems, discover mathematical patterns, and develop problem-solving strategies through interaction with mathematical environments.

🎯 Key Features

Core Capabilities

  • Mathematical Problem Solving: RL agents solving mathematical problems
  • Pattern Discovery: Discovering mathematical patterns and relationships
  • Strategy Learning: Learning problem-solving strategies
  • Mathematical Reasoning: Developing mathematical reasoning capabilities
  • Adaptive Learning: Adapting to different mathematical domains

Advanced Features

  • Multi-Agent Mathematical Systems: Multiple agents collaborating on mathematical problems
  • Hierarchical RL: Hierarchical reinforcement learning for complex problems
  • Curriculum Learning: Progressive learning from simple to complex problems
  • Mathematical Environment Design: Custom environments for mathematical learning
  • Performance Optimization: Optimizing RL performance for mathematical tasks

🏗️ System Architecture

1. RL Mathematical Pipeline

┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│ Mathematical│    │ RL Agent    │    │ Solution    │
│ Environment │───▶│ Processing  │───▶│ Generation  │
└─────────────┘    └─────────────┘    └─────────────┘

2. RL Agent Architecture

┌─────────────────────────────────────────────────────────┐
│                RL Mathematical Agent                    │
├─────────────┬─────────────┬─────────────┬─────────────┤
│ State       │ Action      │ Reward      │ Policy      │
│ Encoder     │ Generator   │ Function    │ Network     │
└─────────────┴─────────────┴─────────────┴─────────────┘

3. Mathematical Environment Framework

┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│ Problem     │    │ Solution    │    │ Feedback    │
│ Generator   │───▶│ Evaluator   │───▶│ Provider    │
└─────────────┘    └─────────────┘    └─────────────┘

📁 Project Structure

CA17_reinforcement_learning_math/
├── CA17.ipynb                    # Main Jupyter notebook
├── src/                          # Source code
│   ├── agents/                   # RL agents
│   │   ├── base_agent.py         # Base RL agent
│   │   ├── mathematical_agent.py # Mathematical RL agent
│   │   ├── hierarchical_agent.py # Hierarchical RL agent
│   │   └── multi_agent.py        # Multi-agent system
│   ├── environments/             # Mathematical environments
│   │   ├── arithmetic_env.py     # Arithmetic environment
│   │   ├── algebra_env.py        # Algebra environment
│   │   ├── geometry_env.py        # Geometry environment
│   │   └── calculus_env.py       # Calculus environment
│   ├── algorithms/               # RL algorithms
│   │   ├── dqn.py                # Deep Q-Network
│   │   ├── policy_gradient.py    # Policy gradient methods
│   │   ├── actor_critic.py       # Actor-critic methods
│   │   └── hierarchical_rl.py    # Hierarchical RL
│   ├── curriculum/               # Curriculum learning
│   │   ├── curriculum_designer.py # Curriculum design
│   │   ├── difficulty_scheduler.py # Difficulty scheduling
│   │   ├── task_sequencer.py     # Task sequencing
│   │   └── progress_tracker.py   # Progress tracking
│   ├── evaluation/               # Evaluation components
│   │   ├── performance_metrics.py # Performance metrics
│   │   ├── mathematical_metrics.py # Mathematical metrics
│   │   ├── learning_analyzer.py   # Learning analysis
│   │   └── benchmark_evaluator.py # Benchmark evaluation
│   └── utils/                    # Utility functions
│       ├── visualization.py      # Visualization tools
│       ├── analysis.py           # Analysis utilities
│       └── io_utils.py           # I/O utilities
├── configs/                      # Configuration files
│   ├── agent_config.yaml         # Agent configuration
│   ├── environment_config.yaml   # Environment configuration
│   ├── algorithm_config.yaml     # Algorithm configuration
│   └── curriculum_config.yaml    # Curriculum configuration
├── scripts/                      # Utility scripts
│   ├── train_agent.py            # Agent training script
│   ├── evaluate_agent.py         # Agent evaluation script
│   ├── curriculum_generator.py   # Curriculum generation
│   └── benchmark_runner.py       # Benchmark runner
├── tests/                        # Test files
│   ├── test_agents.py            # Agent tests
│   ├── test_environments.py      # Environment tests
│   ├── test_algorithms.py        # Algorithm tests
│   └── test_curriculum.py        # Curriculum tests
├── data/                         # Data files
│   ├── problems/                 # Mathematical problems
│   ├── solutions/                # Solution datasets
│   └── benchmarks/               # Benchmark data
├── results/                      # Output results
├── logs/                         # Execution logs
├── visualizations/               # Generated visualizations
├── requirements.txt              # Python dependencies
├── run.sh                        # Execution script
└── README.md                     # This file

🚀 Quick Start

Prerequisites

  • Python 3.8+
  • CUDA-capable GPU (recommended)
  • Jupyter Notebook (optional)

Installation

  1. Clone the repository
git clone <repository-url>
cd CA17_reinforcement_learning_math
  1. Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies
pip install -r requirements.txt
  1. Run the project
chmod +x run.sh
./run.sh

Manual Execution

# Train RL agent
python scripts/train_agent.py

# Evaluate agent
python scripts/evaluate_agent.py

# Generate curriculum
python scripts/curriculum_generator.py

# Run benchmarks
python scripts/benchmark_runner.py

# Run Jupyter notebook
jupyter notebook CA17.ipynb

🔧 Configuration

Agent Configuration

# configs/agent_config.yaml
agent:
  type: "mathematical_agent"
  state_dim: 128
  action_dim: 64
  hidden_layers: [256, 128, 64]
  learning_rate: 0.001
  epsilon_start: 1.0
  epsilon_end: 0.01
  epsilon_decay: 0.995

Environment Configuration

# configs/environment_config.yaml
environment:
  type: "arithmetic_env"
  problem_types: ["addition", "subtraction", "multiplication", "division"]
  difficulty_levels: 5
  max_problem_length: 10
  reward_structure:
    correct_solution: 1.0
    incorrect_solution: -0.1
    timeout: -0.5

Algorithm Configuration

# configs/algorithm_config.yaml
algorithm:
  type: "dqn"
  buffer_size: 10000
  batch_size: 32
  target_update_frequency: 100
  gamma: 0.99
  tau: 0.005

Curriculum Configuration

# configs/curriculum_config.yaml
curriculum:
  enabled: true
  progression_strategy: "difficulty_based"
  difficulty_levels: 5
  progression_threshold: 0.8
  adaptation_rate: 0.1

📊 Features & Capabilities

1. Mathematical Environments

  • Arithmetic Environment: Basic arithmetic operations
  • Algebra Environment: Algebraic problem solving
  • Geometry Environment: Geometric problem solving
  • Calculus Environment: Calculus problem solving

2. RL Algorithms

  • Deep Q-Network (DQN): Value-based RL
  • Policy Gradient: Policy-based RL
  • Actor-Critic: Actor-critic methods
  • Hierarchical RL: Hierarchical reinforcement learning

3. Curriculum Learning

  • Progressive Difficulty: Gradually increasing difficulty
  • Task Sequencing: Optimal task ordering
  • Adaptive Curriculum: Adapting curriculum based on performance
  • Multi-Domain Curriculum: Curriculum across mathematical domains

4. Evaluation Metrics

  • Mathematical Accuracy: Accuracy in mathematical problem solving
  • Learning Speed: Speed of learning new concepts
  • Generalization: Performance on unseen problems
  • Efficiency: Computational efficiency

🧪 Mathematical Domains

1. Arithmetic

  • Basic Operations: Addition, subtraction, multiplication, division
  • Order of Operations: Following mathematical precedence
  • Fractions: Working with fractions
  • Decimals: Working with decimal numbers

2. Algebra

  • Linear Equations: Solving linear equations
  • Quadratic Equations: Solving quadratic equations
  • Systems of Equations: Solving systems of equations
  • Polynomial Operations: Working with polynomials

3. Geometry

  • Basic Shapes: Properties of basic shapes
  • Area and Perimeter: Calculating area and perimeter
  • Volume: Calculating volume
  • Coordinate Geometry: Working with coordinates

4. Calculus

  • Derivatives: Calculating derivatives
  • Integrals: Calculating integrals
  • Limits: Working with limits
  • Applications: Applying calculus concepts

📈 Usage Examples

Basic RL Agent Training

from src.agents.mathematical_agent import MathematicalAgent
from src.environments.arithmetic_env import ArithmeticEnvironment

# Initialize environment
env = ArithmeticEnvironment()

# Initialize agent
agent = MathematicalAgent(state_dim=env.state_dim, action_dim=env.action_dim)

# Train agent
for episode in range(1000):
    state = env.reset()
    done = False

    while not done:
        action = agent.select_action(state)
        next_state, reward, done, info = env.step(action)
        agent.store_experience(state, action, reward, next_state, done)
        state = next_state

    agent.learn()

print("Training completed!")

Hierarchical RL

from src.agents.hierarchical_agent import HierarchicalAgent

# Initialize hierarchical agent
hierarchical_agent = HierarchicalAgent()

# Train hierarchical agent
hierarchical_agent.train(env, num_episodes=1000)

# Evaluate performance
performance = hierarchical_agent.evaluate(env)
print(f"Hierarchical agent performance: {performance}")

Curriculum Learning

from src.curriculum.curriculum_designer import CurriculumDesigner

# Initialize curriculum designer
curriculum = CurriculumDesigner()

# Design curriculum
curriculum.design_curriculum(
    problem_types=["arithmetic", "algebra", "geometry"],
    difficulty_levels=5
)

# Train with curriculum
agent.train_with_curriculum(curriculum)

Multi-Agent System

from src.agents.multi_agent import MultiAgentSystem

# Initialize multi-agent system
multi_agent = MultiAgentSystem(num_agents=3)

# Train multi-agent system
multi_agent.train(env, num_episodes=1000)

# Evaluate collaboration
collaboration_score = multi_agent.evaluate_collaboration()
print(f"Collaboration score: {collaboration_score}")

🔍 Advanced Features

1. Adaptive Learning

  • Dynamic Difficulty: Adapting difficulty based on performance
  • Personalized Learning: Adapting to individual learning patterns
  • Meta-Learning: Learning to learn new mathematical concepts
  • Transfer Learning: Transferring knowledge across domains

2. Mathematical Reasoning

  • Step-by-Step Reasoning: Breaking down complex problems
  • Proof Generation: Generating mathematical proofs
  • Pattern Recognition: Recognizing mathematical patterns
  • Conjecture Formation: Forming mathematical conjectures

3. Performance Optimization

  • Parallel Training: Parallel training across multiple agents
  • Memory Optimization: Optimizing memory usage
  • Speed Optimization: Optimizing training speed
  • Resource Management: Managing computational resources

4. Real-Time Adaptation

  • Online Learning: Learning from new problems in real-time
  • Dynamic Environment: Adapting to changing environments
  • Immediate Feedback: Providing immediate feedback
  • Continuous Improvement: Continuously improving performance

🛠️ Development

Adding New Mathematical Environments

  1. Create environment class in src/environments/
  2. Implement environment interface
  3. Add problem generation logic
  4. Add evaluation methods
  5. Add tests for new environment

Adding New RL Algorithms

  1. Create algorithm class in src/algorithms/
  2. Implement algorithm logic
  3. Add configuration parameters
  4. Add tests for new algorithm
  5. Update documentation

Custom Curriculum Design

# Add custom curriculum
from src.curriculum.base_curriculum import BaseCurriculum

class CustomCurriculum(BaseCurriculum):
    def __init__(self, config):
        super().__init__(config)

    def design_curriculum(self, problem_types, difficulty_levels):
        # Implement custom curriculum design


## 📚 Theoretical Background

- **Policy Optimization**: Optimizing decision-making policies
- **Exploration vs Exploitation**: Balancing exploration and exploitation

### Mathematical Learning

- **Problem Solving**: Strategies for solving mathematical problems
- **Pattern Recognition**: Recognizing mathematical patterns
- **Reasoning**: Mathematical reasoning processes
- **Generalization**: Applying learned concepts to new problems

### Key Concepts

- **State Representation**: Representing mathematical problems
- **Action Space**: Defining possible actions
- **Reward Function**: Designing reward functions
- **Learning Objectives**: Defining learning goals

## 📖 References

### Key Papers

- Sutton, R. S., & Barto, A. G. "Reinforcement Learning: An Introduction"
- Mnih, V., et al. "Human-level control through deep reinforcement learning"
- Vinyals, O., et al. "AlphaGo: Mastering the game of Go with deep neural networks"

### Resources

- Reinforcement Learning: https://spinningup.openai.com/
- Mathematical RL: https://github.com/mathematical-rl
- OpenAI Gym: https://gym.openai.com/

## 📞 Support

### Issues

- Report bugs via GitHub Issues
- Request features via GitHub Discussions
- Ask questions via GitHub Discussions

### Documentation

- API Documentation: `docs/api/`
- Tutorials: `docs/tutorials/`
- Examples: `examples/`

## 📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

## 🙏 Acknowledgments

- Reinforcement learning research community
- Mathematical education researchers
- AI in education researchers
- Open source libraries and frameworks

---

**Last Updated**: January 2025  
**Version**: 1.0.0  
**Maintainer**: AI Systems Course Team
Total size
835 MB
Files
10,492
Last updated
Jun 17
Pre-warmed CDN
US EU US EU

Contributors