## Problem Description and Formulation

The problem is a linear programming optimization problem. We need to maximize the profit from investing in the logging and shipping industries, given certain constraints.

Let's define the variables:
- $x_1$: the amount of money invested in the logging industry
- $x_2$: the amount of money invested in the shipping industry

The objective function to maximize the total profit is:
\[ \text{Maximize:} \quad 0.06x_1 + 0.03x_2 \]

The constraints are:
1. Total investment: $x_1 + x_2 \leq 3000$
2. Minimum investment in logging: $x_1 \geq 0.5 \times 3000 = 1500$
3. Minimum investment in shipping: $x_2 \geq 1000$
4. Non-negativity: $x_1 \geq 0, x_2 \geq 0$

However, since $x_1$ and $x_2$ represent investments, they are implicitly non-negative.

## Gurobi Code

```python
import gurobi

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

    # Define the variables
    x1 = model.addVar(name="logging_investment", lb=0)
    x2 = model.addVar(name="shipping_investment", lb=0)

    # Objective function: Maximize 0.06x1 + 0.03x2
    model.setObjective(0.06 * x1 + 0.03 * x2, gurobi.GRB.MAXIMIZE)

    # Constraints
    model.addConstr(x1 + x2 <= 3000, name="total_investment")
    model.addConstr(x1 >= 1500, name="min_logging_investment")
    model.addConstr(x2 >= 1000, name="min_shipping_investment")

    # Optimize the model
    model.optimize()

    # Print the results
    if model.status == gurobi.GRB.OPTIMAL:
        print("Optimal Solution:")
        print(f"Logging Investment: ${model.cbGetSolution(x1):.2f}")
        print(f"Shipping Investment: ${model.cbGetSolution(x2):.2f}")
        print(f"Max Profit: ${model.objVal:.2f}")
    else:
        print("The model is infeasible.")

solve_investment_problem()
```

This code defines the optimization problem using Gurobi's Python interface, solves it, and then prints out the optimal investments in the logging and shipping industries along with the maximum profit achievable.