## Problem Description and Symbolic Representation

The problem involves finding the optimal number of advertisements on search engines, videos, and social media to maximize influence given certain constraints.

### Symbolic Variables
- $x_1$ : Number of advertisements on search engines
- $x_2$ : Number of advertisements on videos
- $x_3$ : Number of advertisements on social media

### Objective Function
The objective is to maximize influence. The influence of each type of advertisement is given as follows:
- Advertisement on a search engine reaches 100,000 users.
- Advertisement on a video reaches 7,000 users.
- Advertisement on social media reaches 800 users.

Therefore, the objective function to maximize is: $100,000x_1 + 7,000x_2 + 800x_3$.

### Constraints
1. **Cost Constraint**: The weekly budget is $850,000. The costs are $50,000 for a search engine advertisement, $5,000 for a video advertisement, and $1,000 for a social media advertisement.
   - $50,000x_1 + 5,000x_2 + 1,000x_3 \leq 850,000$

2. **Video Advertisements Limit**: The company can make at most 4 advertisements on videos.
   - $x_2 \leq 4$

3. **Social Media Advertisements Limit**: At most half of all advertisements must be on social media.
   - $x_3 \leq 0.5(x_1 + x_2 + x_3)$

4. **Search Engines Advertisements Requirement**: At least 10% of advertisements should be on search engines.
   - $x_1 \geq 0.1(x_1 + x_2 + x_3)$

5. **Non-Negativity Constraint**: The number of advertisements cannot be negative.
   - $x_1 \geq 0, x_2 \geq 0, x_3 \geq 0$

## Symbolic Representation in JSON Format
```json
{
    'sym_variables': [('x1', 'search engine advertisements'), ('x2', 'video advertisements'), ('x3', 'social media advertisements')],
    'objective_function': '100000*x1 + 7000*x2 + 800*x3',
    'constraints': [
        '50000*x1 + 5000*x2 + 1000*x3 <= 850000',
        'x2 <= 4',
        'x3 <= 0.5*(x1 + x2 + x3)',
        'x1 >= 0.1*(x1 + x2 + x3)',
        'x1 >= 0',
        'x2 >= 0',
        'x3 >= 0'
    ]
}
```

## Gurobi Code in Python
```python
import gurobipy as gp

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

# Define variables
x1 = m.addVar(name="search_engine_advertisements", vtype=gp.GRB.INTEGER, lb=0)
x2 = m.addVar(name="video_advertisements", vtype=gp.GRB.INTEGER, lb=0)
x3 = m.addVar(name="social_media_advertisements", vtype=gp.GRB.INTEGER, lb=0)

# Objective function: maximize influence
m.setObjective(100000*x1 + 7000*x2 + 800*x3, gp.GRB.MAXIMIZE)

# Constraints
m.addConstr(50000*x1 + 5000*x2 + 1000*x3 <= 850000, name="budget_constraint")
m.addConstr(x2 <= 4, name="video_limit_constraint")
m.addConstr(x3 <= 0.5*(x1 + x2 + x3), name="social_media_limit_constraint")
m.addConstr(x1 >= 0.1*(x1 + x2 + x3), name="search_engine_requirement_constraint")

# Solve the model
m.solve()

# Print the results
if m.status == gp.GRB.OPTIMAL:
    print("Optimal Solution:")
    print(f"Search Engine Advertisements: {x1.varValue}")
    print(f"Video Advertisements: {x2.varValue}")
    print(f"Social Media Advertisements: {x3.varValue}")
    print(f"Max Influence: {m.objVal}")
else:
    print("No optimal solution found.")
```