RWS2_str = """
We design a reward function to solve <task_name> using reinforcement learning, and five weight groups from the reward function are given below, along with suggestions for adjusting these weights generated by the LLM. You should follow the proposed changes, adjust the weights of the input groups accordingly, and generate a new weight reorganization for each suggestion individually.

## Objectives of the task

<obj_description>

## Input weight groups

The weight coefficients provided below are part of the reward function, where each weight corresponds to a user requirement; however, a single user requirement may correspond to multiple weight values. 

<weight_groups>

## Adjustment suggestions

<suggestions>

## Output Guide

Follow the following process and execute it step by step in order to output new sets of weights based on modification suggestions:

- Convert text descriptions into variable and numerical descriptions: The above suggestions will adjust some weight coefficients based on the starting point of the search (i.e., group 1). You should first analyze what the text refers to, then directly output the weight coefficients that need to be adjusted according to these suggestions, along with the step size adjustments. List them in an itemized form.

- Determine the search starting point and final value of individual output group weights: Generally, the above suggestions will adjust some weight coefficients based on the search starting point (i.e., group 1). Additionally, for other weights not involved, no adjustments are made, i.e., they remain consistent with input group 1. The following are the specific principles of the output:

  - First, observe how the input groups have adjusted the weights and how you modify them. For example, if you wish to adjust the weight `w_xx` corresponding to requirement A, in the first group, `w_xx=3`. Generally, other groups will maintain the same `w_xx` as the first group, except for one or two groups that may increase or decrease `w_xx`, as indicated in the comments. For example, `w_xx=18; #6x increase`.
  - Based on this, if it is concluded that the weight `w_xx` requires further increase with a step size of 5x, it should be adjusted according to the **maximum existing weight value**. Then, the final output multiplier represents the combination of the attempt multiplier and the step size multiplier. For instance, if the maximum value of `w_xx` in input group 3 is `w_xx=18; #6x increase`, and a 5x increase is needed, the adjustment is shown as `w_xx=18*5=90 #30x increase`. In other words, once a step size for further adjustment is adopted, the final adjustment relative to the starting point should be **multiplied by the multiplier of the adjustment already made, rather than directly multiplying the relative step size from the starting point**. If it is necessary to decrease the weight `w_xx`, with a step size of 1/5x, since no input group has executed the decrease process, the weight can be directly decreased from the starting point. This is represented as `w_xx=18/5=3.6 # 1/5x decrease`. Conversely, if an input group has already attempted to decrease the value of `w_xx`, further decreases should be based on the value already adjusted, whereas an increase can begin directly from the starting point.
  
- Output the weight groups. We refer to the modified weight group corresponding to suggestion 1 as Output Group 1. For this output, you should follow the Python code block in the same format as the input. Note that the number of weight groups generated is the same as the number of recommendations inputted. Given five suggestions, you should produce five sets of corresponding weight coefficients. Weight coefficients should be output as Python blocks, and no other blocks should be allowed to be output (but it is allowed to emphasize what `needs to be emphasized`). 
"""

RWS2_example = """
## Examples & Output Format

### Input groups

Input Group 1

```python
# -------- PARAMETERS --------
    w_a = 3;
    w_b = 3;
    w_another = 2;
```

Input Group 2

```python
# -------- PARAMETERS --------
    w_a = 15; # 5x increase
    w_b = 3;
    w_another = 2;
```

Input Group 3

```python
# -------- PARAMETERS --------
    w_a = 3;
    w_b = 15; # 5x increase
    w_another = 2;
```

Input Group 4

```python
# -------- PARAMETERS --------
    w_a = 3;
    w_b = 3;
    w_another = 2; # 4x increase
```

### Input suggestions

- Suggestion 1: This suggestion only attempts mutation (adjustment) from the starting point and solely decreases the weight corresponding to requirement C (mutation). Due to significant overshadowing, a step size of 1/5x has been chosen.
- Suggestion 2: In addition to suggestion 1, this output crosses the requirement to increase the weight of Demand A by 2.5 times (mutation + mutation & crossover). Since the adjustment range is difficult to determine, a mid-range step size of 2x has been chosen.
- Suggestion 3: This suggestion only takes a 1/2x step size for the weight of requirement C compared to the starting point, while also incorporating the adjustment already made in input group 3 to increase the weight of Demand B (mutation + crossover), without further increase.

### Output example

NOTE: The number of weight groups generated is the same as the number of recommendations inputted.

#### Corresponding weight group for suggestion 1

We can infer that the weight `w_c` of requirement C needs to be decreased, and the step size is 1/5x.

- Weight to be adjusted:
  - `w_c`, step_size=1/5x
- Search start point: Follow this format strictly to output the analysis results. Nothing is allowed to be reduced.
  - `w_c`: `w_c=8` for input group 4, and `w_c=2` for input groups, namely the value of `w_c` increases 4x for input group 4. As we search from the smallest value for decreasing a weight, the 1/5x adjustment starts from `w_c=2`, and finally `w_c=2/5=0.4`. As the start point does not perform any search (input groups 1, 2, 3, 5), the accumulated step size is still `1/5x`.

- Output group 1:

```python
# Set 1: Decreasing the weight of requirement C
	w_a = 3;
    w_b = 3;
    w_another = 0.4; # 1/5x decrease
```

#### Corresponding weight group for suggestion 2

Same to suggestion 1, we can infer that the weight `w_c` of requirement C needs to be decreased, and the step size is 1/5x. Besides, the weight `w_a` of requirement A need to be increased, and the step size is 2x. 

- weight to be adjusted:
  - `w_c`, step_size=1/5x
  - `w_a`, step_size=2x
- Search start point: **Follow this format strictly to output the analysis results. Nothing is allowed to be reduced.**
  - `w_c`: `w_c=8` for input group 4, and `w_c=2` for input groups, namely the value of `w_c` increases 4x for input group 4. As we search from the smallest value for decreasing a weight, the 1/5x adjustment starts from `w_c=2`, and finally `w_c=2/5=0.4`. As the reference point does not perform any search(input group 1,2,3,5), the accumulated step size is still `1/5x`.
  - `w_c`: `w_a=15` for input group 2, and `w_a=3` for input groups, namely the value of `w_a` increases 5x for input group 5. As we search from the biggest value for increasing a weight, the 2x adjustment starts from `w_c=15`, and finally `w_c=15*2=30`.  As the reference point have already perform a `15/3=5x` adjustment (input group 2), the accumulated step size is `5x*2x=10x`.
- Output group 2:

```python
# Output Group 2: Decreasing the weight of requirement C, while increasing the weight of requirement A
	w_a = 30; # 10X increase
    w_b = 3;
    w_another = 0.4; # 1/5x decrease
```

#### Corresponding weight group for suggestion 3

We can infer that the weight `w_c` of requirement C needs to be decreased, and the step size is 1/2x. Besides, the weight `w_a` of requirement B need to directly use the value from the input group 3. (As the suggestion mentioned that "adjustment already made in input group 3 without further increase")

- weight to be adjusted:
  - `w_c`, step_size=1/2x
  - `w_b`,  refer from input group 3 without further increase
- Search start point: **Follow this format strictly to output the analysis results. Nothing is allowed to be reduced.**
  - `w_c`: `w_c=8` for input group 4, and `w_c=2` for input groups, namely the value of `w_c` increases 4x for input group 4. As we search from the smallest value for decreasing a weight, the 1/2x adjustment starts from `w_c=2`, and finally `w_c=2/2=1.0`. As the reference point(input group 1,2,3,5) not perform any search, the accumulated step size is still `1/5x`.
  - `w_b`: For input 3, `w_b=15`. As the reference point(input group 3) have already performed a 5x increase, the accumulated step size is still `5x`.
- Output group 3:

```python
# Output Group 3: Decreasing the weight of requirement C, while increasing the weight of requirement B
	w_a = 3; 
    w_b = 15 # 5X increase
    w_another = 1; # 1/2x decrease
```
"""
