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>
This commit is contained in:
135
LaTeX/README_FIGURES.md
Normal file
135
LaTeX/README_FIGURES.md
Normal file
@ -0,0 +1,135 @@
|
||||
# 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"
|
||||
Reference in New Issue
Block a user