## Problem Description and Formulation

The travel company wants to maximize its profit by selling guided tour packages and regular tickets to LA. The profit per guided tour package is $500, and the profit per regular ticket is $200. The company can sell at most 300 tickets in total. They reserve at least 50 guided tour packages. Additionally, at least 2 times as many people prefer to buy regular tickets than guided tour packages.

## Decision Variables

- Let \(G\) be the number of guided tour packages sold.
- Let \(R\) be the number of regular tickets sold.

## Objective Function

The objective is to maximize the total profit \(P\), which is given by:
\[ P = 500G + 200R \]

## Constraints

1. **Total Tickets Constraint**: The company can sell at most 300 tickets.
\[ G + R \leq 300 \]

2. **Guided Tour Packages Reservation**: At least 50 guided tour packages are reserved.
\[ G \geq 50 \]

3. **Regular Tickets vs. Guided Tour Packages**: At least 2 times as many people prefer to buy regular tickets than guided tour packages.
\[ R \geq 2G \]

4. **Non-Negativity Constraints**: The number of tickets cannot be negative.
\[ G \geq 0, R \geq 0 \]
However, given \(G \geq 50\), the \(G \geq 0\) and \(R \geq 0\) constraints are partially redundant.

## Gurobi Code

```python
import gurobipy as gp

# Create a new model
m = gp.Model("Travel_Company_Optimization")

# Decision variables
G = m.addVar(lb=50, name="Guided_Tour_Packages")  # At least 50 guided tour packages
R = m.addVar(name="Regular_Tickets")

# Objective function: Maximize profit
m.setObjective(500*G + 200*R, gp.GRB.MAXIMIZE)

# Constraints
m.addConstr(G + R <= 300, name="Total_Tickets")  # At most 300 tickets
m.addConstr(R >= 2*G, name="Regular_vs_Guided")  # At least 2 times regular tickets

# Solve the model
m.solve()

# Output solution
if m.status == gp.GRB.OPTIMAL:
    print(f"Optimal Solution: Guided Tour Packages = {G.varValue}, Regular Tickets = {R.varValue}")
    print(f"Max Profit: ${500*G.varValue + 200*R.varValue}")
else:
    print("No optimal solution found.")
```