## Problem Description and Formulation

The problem is a linear programming (LP) optimization problem. George has $1,000,000 to invest across four industries: oil and gas, tech, mining, and retail. The goal is to maximize his return on investment (ROI) while adhering to several constraints.

### Variables

Let's denote the amount invested in each industry as:
- \(x_{og}\): oil and gas
- \(x_{tech}\): tech
- \(x_{mining}\): mining
- \(x_{retail}\): retail

### Objective Function

The return on investment for each industry is given as:
- Oil and gas: 6%
- Tech: 8%
- Mining: 9%
- Retail: 11%

The objective function to maximize the total return is:
\[ \text{Maximize:} \quad 0.06x_{og} + 0.08x_{tech} + 0.09x_{mining} + 0.11x_{retail} \]

### Constraints

1. **Total Investment Constraint**: The total amount invested cannot exceed $1,000,000.
\[ x_{og} + x_{tech} + x_{mining} + x_{retail} \leq 1,000,000 \]

2. **Retail vs. Oil and Gas Constraint**: The amount invested in retail cannot exceed the amount invested in oil and gas.
\[ x_{retail} \leq x_{og} \]

3. **Tech vs. Mining Constraint**: The amount invested in tech cannot exceed the amount invested in mining.
\[ x_{tech} \leq x_{mining} \]

4. **Retail Industry Limit**: At most 28% of the total amount invested can be in the retail industry.
\[ x_{retail} \leq 0.28 \times 1,000,000 \]
\[ x_{retail} \leq 280,000 \]

5. **Non-Negativity Constraints**: The amount invested in each industry must be non-negative.
\[ x_{og}, x_{tech}, x_{mining}, x_{retail} \geq 0 \]

### Gurobi Code

```python
import gurobi

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

    # Define variables
    x_og = model.addVar(lb=0, name="oil_and_gas")
    x_tech = model.addVar(lb=0, name="tech")
    x_mining = model.addVar(lb=0, name="mining")
    x_retail = model.addVar(lb=0, name="retail")

    # Objective function: Maximize return
    model.setObjective(0.06 * x_og + 0.08 * x_tech + 0.09 * x_mining + 0.11 * x_retail, gurobi.GRB.MAXIMIZE)

    # Total investment constraint
    model.addConstr(x_og + x_tech + x_mining + x_retail <= 1000000, name="total_investment")

    # Retail vs. Oil and Gas constraint
    model.addConstr(x_retail <= x_og, name="retail_vs_oil_and_gas")

    # Tech vs. Mining constraint
    model.addConstr(x_tech <= x_mining, name="tech_vs_mining")

    # Retail industry limit
    model.addConstr(x_retail <= 280000, name="retail_limit")

    # Optimize
    model.optimize()

    # Print solution
    if model.status == gurobi.GRB.OPTIMAL:
        print("Optimal Solution:")
        print(f"Oil and Gas: ${x_og.x:.2f}")
        print(f"Tech: ${x_tech.x:.2f}")
        print(f"Mining: ${x_mining.x:.2f}")
        print(f"Retail: ${x_retail.x:.2f}")
        print(f"Max Return: ${model.objVal:.2f}")
    else:
        print("No optimal solution found.")

solve_investment_problem()
```