|
@@ -0,0 +1,27 @@
|
|
|
+# -*- coding: utf-8 -*-
|
|
|
+
|
|
|
+from typing import Dict, Optional
|
|
|
+
|
|
|
+import numpy as np
|
|
|
+import pandas as pd
|
|
|
+
|
|
|
+from app.services.transfer import Season
|
|
|
+from app.schemas.feedback import Feedback
|
|
|
+
|
|
|
+
|
|
|
+class StepSizeCalculator:
|
|
|
+ """
|
|
|
+ Calculate adjustment step size of environment target when a user send feedback.
|
|
|
+ """
|
|
|
+ def __init__(self, weight: Dict):
|
|
|
+ self.weight = weight
|
|
|
+
|
|
|
+ def calculate_step_size(
|
|
|
+ self,
|
|
|
+ space_realtime_temperature: float,
|
|
|
+ space_comfortable_temperature: float,
|
|
|
+ feedback: Feedback
|
|
|
+ ):
|
|
|
+ base_step_size = 1.8 / (1 + np.exp((space_comfortable_temperature - space_realtime_temperature) / 2))
|
|
|
+ return
|
|
|
+
|