Iteration final - PROBLEM_DESCRIPTION
Sequence: 5
Timestamp: 2025-07-25 22:26:20

Prompt:
You are a business analyst creating structured optimization problem documentation.

DATA SOURCES EXPLANATION:
- FINAL OR ANALYSIS: Final converged optimization problem from alternating process (iteration 1), contains business context and schema mapping evaluation
- DATABASE SCHEMA: Current database structure after iterative adjustments  
- DATA DICTIONARY: Business meanings and optimization roles of tables and columns
- CURRENT STORED VALUES: Realistic business data generated by triple expert (business + data + optimization)
- BUSINESS CONFIGURATION: Scalar parameters and business logic formulas separated from table data

CRITICAL REQUIREMENTS: 
- Ensure problem description naturally leads to LINEAR or MIXED-INTEGER optimization formulation
- Make business context consistent with the intended decision variables and objectives
- Align constraint descriptions with expected mathematical constraints
- Ensure data descriptions map clearly to expected coefficient sources
- Maintain business authenticity while fixing mathematical consistency issues
- Avoid business scenarios that would naturally require nonlinear relationships (variable products, divisions, etc.)

AUTO-EXTRACTED CONTEXT REQUIREMENTS:
- Business decisions match expected decision variables: x_i ∈ {0, 1} for each singer i, indicating selection status
- Operational parameters align with expected linear objective: maximize ∑(Sales_i * x_i) where x_i is a binary decision variable indicating whether singer i is selected
- Business configuration includes: The total budget available for promoting singers. (used for Constraint bound for total net worth of selected singers.), The maximum number of singers that can be promoted. (used for Constraint bound for the number of selected singers.)
- Use natural language to precisely describe linear mathematical relationships
- NO mathematical formulas, equations, or symbolic notation
- Present data as current operational information
- Focus on precise operational decision-making that leads to linear formulations
- Resource limitations match expected linear constraints
- Avoid scenarios requiring variable products, divisions, or other nonlinear relationships
- Include specific operational parameters that map to expected coefficient sources
- Reference business configuration parameters where appropriate

FINAL OR ANALYSIS:
{
  "database_id": "singer",
  "iteration": 1,
  "business_context": "A music label aims to maximize the total sales of songs by selecting the optimal set of singers to promote, considering their net worth and the potential sales of their songs, while adhering to budget and promotional capacity constraints.",
  "optimization_problem_description": "Maximize the total sales of songs by selecting a subset of singers, subject to constraints on the total net worth of the selected singers and the maximum number of singers that can be promoted.",
  "optimization_formulation": {
    "objective": "maximize \u2211(Sales_i * x_i) where x_i is a binary decision variable indicating whether singer i is selected",
    "decision_variables": "x_i \u2208 {0, 1} for each singer i, indicating selection status",
    "constraints": "\u2211(Net_Worth_i * x_i) \u2264 Total_Budget, \u2211(x_i) \u2264 Max_Singers"
  },
  "current_optimization_to_schema_mapping": {
    "objective_coefficients": {
      "Sales_i": {
        "currently_mapped_to": "song.Sales",
        "mapping_adequacy": "good",
        "description": "Sales of the song associated with singer i"
      }
    },
    "constraint_bounds": {
      "Total_Budget": {
        "currently_mapped_to": "business_configuration_logic.Total_Budget",
        "mapping_adequacy": "good",
        "description": "Total budget available for promoting singers"
      },
      "Max_Singers": {
        "currently_mapped_to": "business_configuration_logic.Max_Singers",
        "mapping_adequacy": "good",
        "description": "Maximum number of singers that can be promoted"
      }
    },
    "decision_variables": {
      "x_i": {
        "currently_mapped_to": "singer_selection.is_selected",
        "mapping_adequacy": "good",
        "description": "Binary decision variable indicating whether singer i is selected",
        "variable_type": "binary"
      }
    }
  },
  "missing_optimization_requirements": [],
  "iteration_status": {
    "complete": true,
    "confidence": "high",
    "next_focus": "Ready for convergence"
  }
}

FINAL DATABASE SCHEMA:
```sql
-- Iteration 1 Database Schema
-- Objective: Schema changes include creating a new table for decision variables and updating the song table to include sales data. Configuration logic updates include adding scalar parameters for Total_Budget and Max_Singers.

CREATE TABLE singer_selection (
  singer_id INTEGER,
  is_selected BOOLEAN
);

CREATE TABLE song (
  song_id INTEGER,
  singer_id INTEGER,
  Sales INTEGER
);


```

CURRENT STORED VALUES:
```sql
-- Iteration 1 Realistic Data
-- Generated by triple expert (business + data + optimization)
-- Values were determined based on realistic business scenarios, considering typical budgets for music promotions, average song sales, and the number of singers a label can effectively promote.

-- Realistic data for singer_selection
INSERT INTO singer_selection (singer_id, is_selected) VALUES (1, False);
INSERT INTO singer_selection (singer_id, is_selected) VALUES (2, True);
INSERT INTO singer_selection (singer_id, is_selected) VALUES (3, False);

-- Realistic data for song
INSERT INTO song (song_id, singer_id, Sales) VALUES (1, 1, 1500);
INSERT INTO song (song_id, singer_id, Sales) VALUES (2, 2, 2500);
INSERT INTO song (song_id, singer_id, Sales) VALUES (3, 3, 1000);


```

DATA DICTIONARY:
{
  "tables": {
    "singer_selection": {
      "business_purpose": "Represents the selection of singers for promotion.",
      "optimization_role": "decision_variables",
      "columns": {
        "singer_id": {
          "data_type": "INTEGER",
          "business_meaning": "Unique identifier for each singer.",
          "optimization_purpose": "Links to the singer being considered for selection.",
          "sample_values": [
            1,
            2,
            3
          ]
        },
        "is_selected": {
          "data_type": "BOOLEAN",
          "business_meaning": "Indicates whether the singer is selected for promotion.",
          "optimization_purpose": "Binary decision variable x_i.",
          "sample_values": [
            true,
            false,
            true
          ]
        }
      }
    },
    "song": {
      "business_purpose": "Represents the songs and their sales data.",
      "optimization_role": "objective_coefficients",
      "columns": {
        "song_id": {
          "data_type": "INTEGER",
          "business_meaning": "Unique identifier for each song.",
          "optimization_purpose": "Links to the song being considered.",
          "sample_values": [
            1,
            2,
            3
          ]
        },
        "singer_id": {
          "data_type": "INTEGER",
          "business_meaning": "Identifier for the singer of the song.",
          "optimization_purpose": "Links the song to the singer.",
          "sample_values": [
            1,
            2,
            3
          ]
        },
        "Sales": {
          "data_type": "INTEGER",
          "business_meaning": "Sales of the song.",
          "optimization_purpose": "Objective coefficient Sales_i.",
          "sample_values": [
            1000,
            2000,
            3000
          ]
        }
      }
    }
  }
}


BUSINESS CONFIGURATION:

BUSINESS CONFIGURATION:
{
  "Total_Budget": {
    "data_type": "INTEGER",
    "business_meaning": "The total budget available for promoting singers.",
    "optimization_role": "Constraint bound for total net worth of selected singers.",
    "configuration_type": "scalar_parameter",
    "value": 500000,
    "business_justification": "A realistic budget for promoting multiple singers, considering typical marketing and promotional costs."
  },
  "Max_Singers": {
    "data_type": "INTEGER",
    "business_meaning": "The maximum number of singers that can be promoted.",
    "optimization_role": "Constraint bound for the number of selected singers.",
    "configuration_type": "scalar_parameter",
    "value": 3,
    "business_justification": "A manageable number of singers that a label can effectively promote without overextending resources."
  }
}

Business Configuration Design: 
Our system separates business logic design from value determination:
- Configuration Logic (business_configuration_logic.json): Templates designed by data engineers with sample_value for scalars and actual formulas for business logic
- Configuration Values (business_configuration.json): Realistic values determined by domain experts for scalar parameters only
- Design Rationale: Ensures business logic consistency while allowing flexible parameter tuning


TASK: Create structured markdown documentation for SECTIONS 1-3 ONLY (Problem Description).

EXACT MARKDOWN STRUCTURE TO FOLLOW:

# Complete Optimization Problem and Solution: singer

## 1. Problem Context and Goals

### Context  
[Regenerate business context that naturally aligns with LINEAR optimization formulation. Ensure:]
- Business decisions match expected decision variables: x_i ∈ {0, 1} for each singer i, indicating selection status
- Operational parameters align with expected linear objective: maximize ∑(Sales_i * x_i) where x_i is a binary decision variable indicating whether singer i is selected
- Business configuration includes: The total budget available for promoting singers. (used for Constraint bound for total net worth of selected singers.), The maximum number of singers that can be promoted. (used for Constraint bound for the number of selected singers.)
- Use natural language to precisely describe linear mathematical relationships
- NO mathematical formulas, equations, or symbolic notation
- Present data as current operational information
- Focus on precise operational decision-making that leads to linear formulations
- Resource limitations match expected linear constraints
- Avoid scenarios requiring variable products, divisions, or other nonlinear relationships
- Include specific operational parameters that map to expected coefficient sources
- Reference business configuration parameters where appropriate
- CRITICAL: Include ALL business configuration information (scalar parameters AND business logic formulas) in natural business language

### Goals  
[Regenerate goals that clearly lead to LINEAR mathematical objective:]
- Optimization goal: maximize
- Metric to optimize: maximize ∑(Sales_i * x_i) where x_i is a binary decision variable indicating whether singer i is selected
- Success measurement aligned with expected coefficient sources
- Use natural language to precisely describe linear optimization goal
- NO mathematical formulas, equations, or symbolic notation

## 2. Constraints    

[Regenerate constraints that directly match expected LINEAR mathematical constraints:]
- Expected constraint: ∑(Net_Worth_i * x_i) ≤ Total_Budget, ∑(x_i) ≤ Max_Singers (Form: Standard constraint form based on business requirements)

[Each constraint should be described in business terms that naturally lead to LINEAR mathematical forms (no variable products or divisions)]

## 3. Available Data  

### Database Schema  
```sql
-- Iteration 1 Database Schema
-- Objective: Schema changes include creating a new table for decision variables and updating the song table to include sales data. Configuration logic updates include adding scalar parameters for Total_Budget and Max_Singers.

CREATE TABLE singer_selection (
  singer_id INTEGER,
  is_selected BOOLEAN
);

CREATE TABLE song (
  song_id INTEGER,
  singer_id INTEGER,
  Sales INTEGER
);


```

### Data Dictionary  
[Create comprehensive business-oriented data dictionary mapping tables and columns to their business purposes and optimization roles - NOT technical database terms. Base this on the data_dictionary provided but rewrite in business language that clearly connects to the expected linear mathematical formulation]

### Current Stored Values  
```sql
-- Iteration 1 Realistic Data
-- Generated by triple expert (business + data + optimization)
-- Values were determined based on realistic business scenarios, considering typical budgets for music promotions, average song sales, and the number of singers a label can effectively promote.

-- Realistic data for singer_selection
INSERT INTO singer_selection (singer_id, is_selected) VALUES (1, False);
INSERT INTO singer_selection (singer_id, is_selected) VALUES (2, True);
INSERT INTO singer_selection (singer_id, is_selected) VALUES (3, False);

-- Realistic data for song
INSERT INTO song (song_id, singer_id, Sales) VALUES (1, 1, 1500);
INSERT INTO song (song_id, singer_id, Sales) VALUES (2, 2, 2500);
INSERT INTO song (song_id, singer_id, Sales) VALUES (3, 3, 1000);


```

STOP HERE - Do not include section 4 (Mathematical Optimization Formulation).

Response:
# Complete Optimization Problem and Solution: singer

## 1. Problem Context and Goals

### Context  
A music label is tasked with selecting a subset of singers to promote in order to maximize the total sales of their songs. The label must make these decisions while adhering to two key operational constraints: the total budget available for promotions and the maximum number of singers that can be effectively promoted. 

The decision to promote a singer is represented as a binary choice: either the singer is selected for promotion or they are not. The total sales of songs associated with the selected singers will be used to measure the success of the promotion strategy. The label has a fixed budget of 500,000 units, which limits the total net worth of the singers that can be promoted. Additionally, the label can promote no more than 3 singers at a time to ensure effective resource allocation and promotional impact.

### Goals  
The primary goal of this optimization problem is to maximize the total sales of songs by selecting the optimal set of singers for promotion. Success is measured by the cumulative sales of the songs associated with the selected singers. The label aims to achieve this goal while staying within the constraints of the available budget and the maximum number of singers that can be promoted.

## 2. Constraints  

1. **Budget Constraint**: The total net worth of the singers selected for promotion must not exceed the available budget of 500,000 units. This ensures that the label does not overspend on promotional activities.  
2. **Promotional Capacity Constraint**: The label can promote a maximum of 3 singers at a time. This ensures that the promotional efforts are focused and manageable, avoiding resource overextension.

## 3. Available Data  

### Database Schema  
```sql
-- Iteration 1 Database Schema
-- Objective: Schema changes include creating a new table for decision variables and updating the song table to include sales data. Configuration logic updates include adding scalar parameters for Total_Budget and Max_Singers.

CREATE TABLE singer_selection (
  singer_id INTEGER,
  is_selected BOOLEAN
);

CREATE TABLE song (
  song_id INTEGER,
  singer_id INTEGER,
  Sales INTEGER
);
```

### Data Dictionary  
- **singer_selection**:  
  - **Business Purpose**: Represents the selection of singers for promotion.  
  - **Optimization Role**: Decision variables indicating whether a singer is selected.  
  - **Columns**:  
    - **singer_id**: Unique identifier for each singer. Links to the singer being considered for selection.  
    - **is_selected**: Binary indicator of whether the singer is selected for promotion.  

- **song**:  
  - **Business Purpose**: Represents the songs and their sales data.  
  - **Optimization Role**: Provides the sales data used to measure the success of the promotion strategy.  
  - **Columns**:  
    - **song_id**: Unique identifier for each song.  
    - **singer_id**: Identifier for the singer of the song. Links the song to the singer.  
    - **Sales**: Sales of the song. Used as the objective coefficient in the optimization problem.  

### Current Stored Values  
```sql
-- Iteration 1 Realistic Data
-- Generated by triple expert (business + data + optimization)
-- Values were determined based on realistic business scenarios, considering typical budgets for music promotions, average song sales, and the number of singers a label can effectively promote.

-- Realistic data for singer_selection
INSERT INTO singer_selection (singer_id, is_selected) VALUES (1, False);
INSERT INTO singer_selection (singer_id, is_selected) VALUES (2, True);
INSERT INTO singer_selection (singer_id, is_selected) VALUES (3, False);

-- Realistic data for song
INSERT INTO song (song_id, singer_id, Sales) VALUES (1, 1, 1500);
INSERT INTO song (song_id, singer_id, Sales) VALUES (2, 2, 2500);
INSERT INTO song (song_id, singer_id, Sales) VALUES (3, 3, 1000);
```
