## Problem Description and Formulation

The GameShop owner wants to attract at least 200 customers into the store daily by selling two video games, Kommand and Kontrol, at a discount. The goal is to minimize the cost while meeting the customer attraction target.

Let's define the decision variables:

* \(x\): number of units of Kommand game to stock daily
* \(y\): number of units of Kontrol game to stock daily

The objective is to minimize the total cost, which includes the cost of purchasing the games and the cost of selling them.

## Cost and Constraints

1. **Cost of purchasing the games**: The GameShop owner pays $14 and $8 for each unit of Kommand and Kontrol, respectively. The total purchasing cost is \(14x + 8y\).
2. **Cost of selling the games**: The GameShop incurs a cost of $11 and $3 for each unit of Kommand and Kontrol sold, respectively. The total selling cost is \(11x + 3y\).
3. **Total budget constraint**: The GameShop has a maximum daily budget of $500 for this sales campaign. The total cost (purchasing + selling) must not exceed this budget: \(14x + 8y + 11x + 3y \leq 500\).
4. **Customer attraction constraint**: The GameShop wants to attract at least 200 customers. Each unit of Kommand attracts 20 fans, and each unit of Kontrol attracts 5 fans. The total number of customers attracted must be at least 200: \(20x + 5y \geq 200\).
5. **Non-negativity constraints**: The number of units of each game to stock daily cannot be negative: \(x \geq 0, y \geq 0\).

## Formulating the Optimization Problem

The optimization problem can be formulated as:

Minimize: \(14x + 8y + 11x + 3y = 25x + 11y\)

Subject to:

* \(25x + 11y \leq 500\) (total budget constraint)
* \(20x + 5y \geq 200\) (customer attraction constraint)
* \(x \geq 0, y \geq 0\) (non-negativity constraints)

## Gurobi Code

```python
import gurobi

def game_shop_optimization():
    # Create a new Gurobi model
    model = gurobi.Model()

    # Define the decision variables
    x = model.addVar(name="Kommand", lb=0, vtype=gurobi.GRB.CONTINUOUS)
    y = model.addVar(name="Kontrol", lb=0, vtype=gurobi.GRB.CONTINUOUS)

    # Define the objective function
    model.setObjective(25*x + 11*y, gurobi.GRB.MINIMIZE)

    # Add constraints
    model.addConstr(25*x + 11*y <= 500, name="budget_constraint")
    model.addConstr(20*x + 5*y >= 200, name="customer_attraction_constraint")

    # Optimize the model
    model.optimize()

    # Print the results
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal solution: x = {x.varValue}, y = {y.varValue}")
        print(f"Minimum cost: {model.objVal}")
    else:
        print("No optimal solution found")

# Run the optimization
game_shop_optimization()
```

This code defines the optimization problem using Gurobi, solves it, and prints the optimal solution and the minimum cost. If no optimal solution is found, it indicates that the problem is infeasible.