Added RL to README
This commit is contained in:
		
							parent
							
								
									08828e2dec
								
							
						
					
					
						commit
						d941b2c9af
					
				
							
								
								
									
										41
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								README.md
									
									
									
									
									
								
							@ -2,7 +2,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
NuCon is a Python library designed to interface with and control parameters in Nucleares, a nuclear reactor simulation game. It provides a robust, type-safe foundation for reading and writing game parameters, allowing users to easily create their own automations and control systems.
 | 
					NuCon is a Python library designed to interface with and control parameters in Nucleares, a nuclear reactor simulation game. It provides a robust, type-safe foundation for reading and writing game parameters, allowing users to easily create their own automations and control systems.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
In future versions, NuCon aims to implement built-in automation features.
 | 
					NuCon further provides a work in progress implementation of a reinforcement learning environment for training control policies.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Features
 | 
					## Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -83,6 +83,45 @@ Custom Enum Types:
 | 
				
			|||||||
- `PumpOverloadStatus`: Enum for pump overload status (ACTIVE_AND_OVERLOAD, INACTIVE_OR_ACTIVE_NO_OVERLOAD)
 | 
					- `PumpOverloadStatus`: Enum for pump overload status (ACTIVE_AND_OVERLOAD, INACTIVE_OR_ACTIVE_NO_OVERLOAD)
 | 
				
			||||||
- `BreakerStatus`: Enum for breaker status (OPEN, CLOSED)
 | 
					- `BreakerStatus`: Enum for breaker status (OPEN, CLOSED)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Reinforcement Learning (Work in Progress)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NuCon includes a preliminary Reinforcement Learning (RL) environment based on the OpenAI Gym interface. This feature is currently a work in progress and requires additional dependencies.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Additional Dependencies
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To use the RL features, you'll need to install the following packages:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					pip install gymnasium numpy
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### RL Environment
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The `NuconEnv` class in `nucon/rl.py` provides a Gym-compatible environment for reinforcement learning tasks in the Nucleares simulation. Key features include:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Observation space: Includes all readable parameters from the Nucon system.
 | 
				
			||||||
 | 
					- Action space: Encompasses all writable parameters in the Nucon system.
 | 
				
			||||||
 | 
					- Step function: Applies actions to the Nucon system and returns new observations.
 | 
				
			||||||
 | 
					- Objective function: Allows for custom objective functions to be defined for training.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Usage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Here's a basic example of how to use the RL environment:
 | 
				
			||||||
 | 
					```python
 | 
				
			||||||
 | 
					from nucon.rl import NuconEnv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					env = NuconEnv(objectives=['max_power'], seconds_per_step=5)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					obs, info = env.reset()
 | 
				
			||||||
 | 
					for _ in range(1000):
 | 
				
			||||||
 | 
					    action = env.action_space.sample()  # Your agent here (instead of random)
 | 
				
			||||||
 | 
					    obs, reward, terminated, truncated, info = env.step(action)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if terminated or truncated:
 | 
				
			||||||
 | 
					        obs, info = env.reset()
 | 
				
			||||||
 | 
					env.close()
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Testing
 | 
					## Testing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
NuCon includes a test suite to verify its functionality and compatibility with the Nucleares game. 
 | 
					NuCon includes a test suite to verify its functionality and compatibility with the Nucleares game. 
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user