41 lines
1.6 KiB
Markdown
41 lines
1.6 KiB
Markdown
# README_main.md
|
|
|
|
## Overview
|
|
`main.py` is the primary entry point for the Copycat program, which implements an analogical reasoning system. The program takes three strings as input and attempts to find an analogous transformation between them.
|
|
|
|
## Usage
|
|
Run the program from the terminal with the following command:
|
|
```bash
|
|
python main.py abc abd ppqqrr --iterations 10
|
|
```
|
|
|
|
### Arguments
|
|
- `initial`: The first string in the analogy (e.g., "abc")
|
|
- `modified`: The second string showing the transformation (e.g., "abd")
|
|
- `target`: The third string to be transformed (e.g., "ppqqrr")
|
|
- `--iterations` (optional): Number of times to run the case (default: 1)
|
|
- `--seed` (optional): Provide a deterministic seed for the random number generator
|
|
- `--plot` (optional): Generate a bar graph of answer distribution
|
|
- `--noshow` (optional): Don't display the bar graph at the end of the run
|
|
|
|
## Output
|
|
The program produces output in the following format:
|
|
```
|
|
iiijjjlll: 670 (avg time 1108.5, avg temp 23.6)
|
|
iiijjjd: 2 (avg time 1156.0, avg temp 35.0)
|
|
...
|
|
```
|
|
Where:
|
|
- The first number indicates how many times Copycat chose that string as its answer (higher means "more obvious")
|
|
- The last number indicates the average final temperature of the workspace (lower means "more elegant")
|
|
|
|
## Features
|
|
- Implements the Copycat analogical reasoning system
|
|
- Provides detailed logging to `./output/copycat.log`
|
|
- Can generate visualizations of answer distributions
|
|
- Saves results to `output/answers.csv`
|
|
|
|
## Dependencies
|
|
- Requires the `copycat` module
|
|
- Uses `argparse` for command-line argument parsing
|
|
- Uses `logging` for output logging |