aishani-s20 commited on
Commit
2265a3b
·
1 Parent(s): e0905ca

modified grader

Browse files
server/quantum_openenv_env_environment.py CHANGED
@@ -80,43 +80,47 @@ TASK_CONFIGS = {
80
  # Graders
81
  # ============================================================================
82
 
83
- def universal_grade_logic(observation: QuantumObservation) -> float:
84
- """Core logic for relative compression grading."""
85
  final_count = observation.gate_count
86
  metadata = observation.metadata or {}
87
  initial_count = metadata.get("initial_count", final_count)
88
-
89
  if initial_count == 0:
90
  return 1.0
91
-
92
  compression_ratio = (initial_count - final_count) / initial_count
93
  return max(0.0, min(1.0, compression_ratio))
94
 
95
- class EasyGrader:
96
- @staticmethod
97
- def grade(observation: QuantumObservation) -> float:
98
- return universal_grade_logic(observation)
99
-
100
- class MediumGrader:
101
- @staticmethod
102
- def grade(observation: QuantumObservation) -> float:
103
- return universal_grade_logic(observation)
104
 
105
- class HardGrader:
106
- @staticmethod
107
- def grade(observation: QuantumObservation) -> float:
108
- return universal_grade_logic(observation)
 
 
 
 
 
109
 
110
  # Exporting for inference.py and Hackathon Platform
111
  GRADERS = {
112
- "easy": EasyGrader.grade,
113
- "medium": MediumGrader.grade,
114
- "hard": HardGrader.grade,
115
  }
116
 
117
  # Explicitly define TASKS list for the platform's static analyzer
118
  TASKS = ["easy", "medium", "hard"]
119
 
 
120
  # ============================================================================
121
  # Environment
122
  # ============================================================================
 
80
  # Graders
81
  # ============================================================================
82
 
83
+ def grade_easy(observation: QuantumObservation) -> float:
84
+ """Independent grader for Easy Task."""
85
  final_count = observation.gate_count
86
  metadata = observation.metadata or {}
87
  initial_count = metadata.get("initial_count", final_count)
 
88
  if initial_count == 0:
89
  return 1.0
 
90
  compression_ratio = (initial_count - final_count) / initial_count
91
  return max(0.0, min(1.0, compression_ratio))
92
 
93
+ def grade_medium(observation: QuantumObservation) -> float:
94
+ """Independent grader for Medium Task."""
95
+ final_count = observation.gate_count
96
+ metadata = observation.metadata or {}
97
+ initial_count = metadata.get("initial_count", final_count)
98
+ if initial_count == 0:
99
+ return 1.0
100
+ compression_ratio = (initial_count - final_count) / initial_count
101
+ return max(0.0, min(1.0, compression_ratio))
102
 
103
+ def grade_hard(observation: QuantumObservation) -> float:
104
+ """Independent grader for Hard Task."""
105
+ final_count = observation.gate_count
106
+ metadata = observation.metadata or {}
107
+ initial_count = metadata.get("initial_count", final_count)
108
+ if initial_count == 0:
109
+ return 1.0
110
+ compression_ratio = (initial_count - final_count) / initial_count
111
+ return max(0.0, min(1.0, compression_ratio))
112
 
113
  # Exporting for inference.py and Hackathon Platform
114
  GRADERS = {
115
+ "easy": grade_easy,
116
+ "medium": grade_medium,
117
+ "hard": grade_hard,
118
  }
119
 
120
  # Explicitly define TASKS list for the platform's static analyzer
121
  TASKS = ["easy", "medium", "hard"]
122
 
123
+
124
  # ============================================================================
125
  # Environment
126
  # ============================================================================