## Problem Description and Formulation

The problem is a linear programming (LP) optimization problem. Luca wants to invest up to $20,000 in two industries: fishing and education. The profit per dollar invested in the fishing industry is $1.30, and in the education industry is $2.10. There are three constraints:

1. The total investment should not exceed $20,000.
2. A minimum of $5,000 must be invested in the education industry.
3. At least 30% of all money invested must be in the fishing industry.

Let's denote the amount invested in the fishing industry as \(x\) and in the education industry as \(y\).

## Objective Function

The objective is to maximize Luca's profit, which can be represented as:
\[ \text{Maximize:} \quad 1.30x + 2.10y \]

## Constraints

1. Total investment not exceeding $20,000:
\[ x + y \leq 20000 \]

2. Minimum investment in education industry:
\[ y \geq 5000 \]

3. At least 30% of investment in the fishing industry:
\[ x \geq 0.30(x + y) \]
Simplifying:
\[ x \geq 0.30x + 0.30y \]
\[ 0.70x \geq 0.30y \]
\[ 7x \geq 3y \]
\[ 7x - 3y \geq 0 \]

## Non-Negativity Constraints

\[ x \geq 0 \]
\[ y \geq 0 \]

## Gurobi Code

```python
import gurobi

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

    # Define variables
    x = model.addVar(name="fishing_investment", lb=0)
    y = model.addVar(name="education_investment", lb=0)

    # Objective function: Maximize profit
    model.setObjective(1.30*x + 2.10*y, gurobi.GRB.MAXIMIZE)

    # Constraints
    model.addConstr(x + y <= 20000, name="total_investment")
    model.addConstr(y >= 5000, name="min_education_investment")
    model.addConstr(7*x - 3*y >= 0, name="fishing_investment_percentage")

    # Solve the model
    model.optimize()

    # Print the results
    if model.status == gurobi.GRB.OPTIMAL:
        print("Optimal Solution:")
        print(f"Investment in fishing industry: ${x.varValue:.2f}")
        print(f"Investment in education industry: ${y.varValue:.2f}")
        print(f"Max Profit: ${model.objVal:.2f}")
    else:
        print("The model is infeasible.")

# Run the function
luca_investment_problem()
```