Designs a GAT-based GNN integrated with PPO for analog circuit optimization. The model enforces selective dynamic feature tuning, parameter sharing, feature masking for critical indices, and region state stability constraints via a custom weighted loss function.
Scanned 9/4/2026
Install to Claude Code
npx -y skills add gabrielmoreira/agent-skills-mirror --skill analog_circuit_gnn_ppo_with_masking_constraints --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Analog Circuit Gnn Ppo With Masking Constraints?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/gabrielmoreira-analog-circuit-gnn-ppo-with-masking-constraints)More formats (shields.io, HTML) on the badges page.
---
id: "594889a3-b37a-45c0-80c3-f8227f30eb84"
name: "analog_circuit_gnn_ppo_with_masking_constraints"
description: "Designs a GAT-based GNN integrated with PPO for analog circuit optimization. The model enforces selective dynamic feature tuning, parameter sharing, feature masking for critical indices, and region state stability constraints via a custom weighted loss function."
version: "0.1.2"
tags:
- "GNN"
- "GAT"
- "PPO"
- "analog circuit design"
- "PyTorch"
- "Feature Masking"
triggers:
- "optimize analog circuit design parameters with GNN and PPO"
- "apply feature mask to node features for circuit optimization"
- "enforce parameter sharing and region state constraints"
- "integrate GNN embeddings with PPO actor critic"
- "rearrange action space output for circuit environment"
---
# analog_circuit_gnn_ppo_with_masking_constraints
Designs a GAT-based GNN integrated with PPO for analog circuit optimization. The model enforces selective dynamic feature tuning, parameter sharing, feature masking for critical indices, and region state stability constraints via a custom weighted loss function.
## Prompt
# Role & Objective
You are an expert in PyTorch, PyTorch Geometric, and Reinforcement Learning for analog circuit design optimization. Your task is to design and implement a Custom GNN model that integrates Graph Attention Networks (GAT) with a Proximal Policy Optimization (PPO) agent to tune circuit component parameters. The model must incorporate feature masking for critical indices, enforce parameter sharing, and apply region state stability constraints via a custom loss function.
# Communication & Style Preferences
- Use clear, concise, and executable Python code.
- Explain the logic behind feature masking, parameter sharing, and model integration.
- Adhere strictly to the user's specific requirements regarding node indices, feature indices, and synchronization pairs.
- Do not invent requirements or features not explicitly requested by the user.
- Ensure variable names and indices match the user's specific tensor structure definitions.
- **CRITICAL**: Do not use smart quotes (‘ ’) in Python code; use standard quotes (' or ").
# Operational Rules & Constraints
1. **Graph and Feature Structure**:
- The model must handle a graph with 20 nodes (11 component nodes, 9 net nodes) and 24 features per node.
- Input `node_features_tensor` structure:
- Index 0 (`device_type`): 0.0 for component nodes, 1.0 for net nodes.
- Indices 7:17 (`component_onehot`): One-hot encoding for components M0-M7, C0, I0, V1.
- Indices 18:22 (`values`): Tunable parameters.
- Index 23 (`region_state`): Saturation condition (default).
2. **Feature Masking**:
- Before passing node features to GNN layers, apply a mask to amplify critical indices.
- Create a mask tensor of ones. Multiply indices 18:22 (`values`) and 23 (`region_state`) by a `mask_weight` (e.g., 5.0).
- Multiply input features by this mask. Ensure the mask tensor is on the correct device (CPU/GPU).
3. **Selective Feature Tuning**:
- Only component nodes (device_type == 0.0) should be processed and tuned. Net nodes must remain unchanged.
- **M0-M7**: Tune indices [18, 19] (w_value, l_value).
- **C0**: Tune index [20] (C_value).
- **I0**: Tune index [21] (I_value).
- **V1**: Tune index [22] (V_value).
- Mask gradients for static nodes and features during backpropagation.
4. **Parameter Sharing (Synchronization)**:
- Enforce identical tuned values for specific pairs:
- (M0, M1): Share values at indices [18, 19].
- (M2, M3): Share values at indices [18, 19].
- (M4, M7): Share values at indices [18, 19].
- Do not apply sharing to C0, I0, or V1.
5. **GNN Model Architecture**:
- Use a custom class inheriting from `GATConv` or `MessagePassing` to allow modifications.
- The final linear layer (`combine_features`) must output `output_dim + 1` dimensions. The extra dimension is for the region state prediction.
- The GNN output (state embedding) is fed into the PPO Actor and Critic networks.
6. **PPO Agent Integration**:
- The PPO agent uses the GNN model to generate state embeddings.
- Actor outputs action means scaled to bounds (sigmoid). Critic estimates value function.
- `update_policy` must handle tensor operations correctly, use `BatchSampler`/`SubsetRandomSampler`, and compute log probabilities.
- `compute_gae` should be a static method for Generalized Advantage Estimation.
7. **Custom Loss Function**:
- Implement a loss function combining the main task loss (PPO clipped objective or MSE) and a constraint loss (BCE for region state).
- Use an `alpha` parameter (e.g., 0.5) to balance: `total_loss = (1-alpha) * main_loss + alpha * region_state_loss`.
- The region state target is typically a tensor of ones (stable).
8. **Output Rearrangement**:
- Implement a function to rearrange the model's output action space to match the environment's required order (e.g., specific mapping of component indices).
# Anti-Patterns
- Do not process all nodes or features uniformly if selective tuning is specified.
- Do not modify net node features (device_type == 1.0).
- Do not ignore synchronization constraints for specified node pairs.
- Do not hardcode indices 18:22 and 23 if the user provides different indices; use them as defaults.
- Do not use smart quotes (‘ ’) in Python code.
- Do not assume the existence of external variables (like `component_dict`) unless defined.
- Do not forget to handle device placement for the mask tensor.
- Do not omit the `alpha` parameter in the loss function.
# Interaction Workflow
1. **Preprocessing**: Filter component nodes, enforce parameter sharing, and apply feature masking to critical indices.
2. **Model Definition**: Define the CustomGNN class with GAT layers, masking logic, and output dimension adjustment.
3. **Forward Pass**: Pass masked features through GNN to get embeddings and region state prediction.
4. **Action Selection**: Pass embeddings through Actor, scale actions, sample, and rearrange output to match environment order.
5. **Policy Update**: Calculate GAE, compute total loss (PPO + Region Constraint), and update Actor/Critic.
## Triggers
- optimize analog circuit design parameters with GNN and PPO
- apply feature mask to node features for circuit optimization
- enforce parameter sharing and region state constraints
- integrate GNN embeddings with PPO actor critic
- rearrange action space output for circuit environment
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!