Files
copycat/LaTeX/README_FIGURES.md
Alex Linhares 06a42cc746 Add CLAUDE.md and LaTeX paper, remove old papers directory
- Add CLAUDE.md with project guidance for Claude Code
- Add LaTeX/ with paper and figure generation scripts
- Remove papers/ directory (replaced by LaTeX/)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 19:14:01 +00:00

136 lines
5.1 KiB
Markdown

# Figure Generation for Copycat Graph Theory Paper
This folder contains Python scripts to generate all figures for the paper "From Hardcoded Heuristics to Graph-Theoretical Constructs."
## Prerequisites
Install Python 3.7+ and required packages:
```bash
pip install matplotlib numpy networkx scipy
```
## Quick Start
Generate all figures at once:
```bash
python generate_all_figures.py
```
Or run individual scripts:
```bash
python generate_slipnet_graph.py # Figure 1: Slipnet graph structure
python activation_spreading.py # Figure 2: Activation spreading dynamics
python resistance_distance.py # Figure 3: Resistance distance heat map
python workspace_evolution.py # Figures 4 & 5: Workspace evolution & betweenness
python clustering_analysis.py # Figure 6: Clustering coefficient analysis
python compare_formulas.py # Comparison plots of formulas
```
## Generated Files
After running the scripts, you'll get these figures:
### Main Paper Figures
- `figure1_slipnet_graph.pdf/.png` - Slipnet graph with conceptual depth gradient
- `figure2_activation_spreading.pdf/.png` - Activation spreading over time with differential decay
- `figure3_resistance_distance.pdf/.png` - Resistance distance vs shortest path comparison
- `figure4_workspace_evolution.pdf/.png` - Workspace graph at 4 time steps
- `figure5_betweenness_dynamics.pdf/.png` - Betweenness centrality over time
- `figure6_clustering_distribution.pdf/.png` - Clustering coefficient distributions
### Additional Comparison Plots
- `formula_comparison.pdf/.png` - 6-panel comparison of all hardcoded formulas vs proposed alternatives
- `scalability_comparison.pdf/.png` - Performance across string lengths and domain transfer
- `slippability_temperature.pdf/.png` - Temperature-dependent slippability curves
- `external_strength_comparison.pdf/.png` - Current support factor vs clustering coefficient
## Using Figures in LaTeX
Replace the placeholder `\fbox` commands in `paper.tex` with:
```latex
\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{figure1_slipnet_graph.pdf}
\caption{Slipnet graph structure...}
\label{fig:slipnet}
\end{figure}
```
## Script Descriptions
### 1. `generate_slipnet_graph.py`
Creates a visualization of the Slipnet semantic network with 30+ key nodes:
- Node colors represent conceptual depth (blue=concrete, red=abstract)
- Edge thickness shows link strength (inverse of link length)
- Hierarchical layout based on depth values
### 2. `compare_formulas.py`
Generates comprehensive comparisons showing:
- Support factor: 0.6^(1/n³) vs clustering coefficient
- Member compatibility: Discrete (0.7/1.0) vs continuous structural equivalence
- Group length factors: Step function vs subgraph density
- Salience weights: Fixed (0.2/0.8) vs betweenness centrality
- Activation jump: Fixed threshold (55.0) vs adaptive percolation threshold
- Mapping factors: Linear increments vs logarithmic path multiplicity
Also creates scalability analysis showing performance across problem sizes and domain transfer.
### 3. `activation_spreading.py`
Simulates Slipnet activation dynamics with:
- 3 time-step snapshots showing spreading from "sameness" node
- Heat map visualization of activation levels
- Time series plots demonstrating differential decay rates
- Annotations showing how shallow nodes (letters) decay faster than deep nodes (abstract concepts)
### 4. `resistance_distance.py`
Computes and visualizes resistance distances:
- Heat map matrix showing resistance distance between all concept pairs
- Comparison with shortest path distances
- Temperature-dependent slippability curves for key concept pairs
- Demonstrates how resistance distance accounts for multiple paths
### 5. `clustering_analysis.py`
Analyzes correlation between clustering and success:
- Histogram comparison: successful vs failed runs
- Box plots with statistical tests (t-test, p-values)
- Scatter plot: clustering coefficient vs solution quality
- Comparison of current support factor formula vs clustering coefficient
### 6. `workspace_evolution.py`
Visualizes dynamic graph rewriting:
- 4 snapshots of workspace evolution for abc→abd problem
- Shows bonds (blue edges), correspondences (green dashed edges)
- Annotates nodes with betweenness centrality values
- Time series showing how betweenness predicts correspondence selection
## Customization
Each script can be modified to:
- Change colors, sizes, layouts
- Add more nodes/edges to graphs
- Adjust simulation parameters
- Generate different problem examples
- Export in different formats (PDF, PNG, SVG)
## Troubleshooting
**"Module not found" errors:**
```bash
pip install --upgrade matplotlib numpy networkx scipy
```
**Font warnings:**
These are harmless warnings about missing fonts. Figures will still generate correctly.
**Layout issues:**
If graph layouts look cluttered, adjust the `k` parameter in `nx.spring_layout()` or use different layout algorithms (`nx.kamada_kawai_layout()`, `nx.spectral_layout()`).
## Contact
For questions about the figures or to report issues, please refer to the paper:
"From Hardcoded Heuristics to Graph-Theoretical Constructs: A Principled Reformulation of the Copycat Architecture"