To solve this optimization problem, we first need to define the decision variables and the objective function. Let's denote:
- $x_1$ as the number of advertisements on search engines,
- $x_2$ as the number of advertisements on videos, and
- $x_3$ as the number of advertisements on social media.

The objective is to maximize the total influence, which can be represented by the function: $100000x_1 + 7000x_2 + 800x_3$.

Given constraints are:
1. Cost constraint: $50000x_1 + 5000x_2 + 1000x_3 \leq 850000$
2. Video advertisement limit: $x_2 \leq 4$
3. Social media advertisement proportion: $x_3 \leq 0.5(x_1 + x_2 + x_3)$
4. Search engine advertisement proportion: $x_1 \geq 0.1(x_1 + x_2 + x_3)$

Now, let's translate these into Gurobi code in Python:

```python
from gurobipy import *

# Create a model
m = Model("Tutoring_Company_Advertisement")

# Define decision variables
x1 = m.addVar(name='search_engine_ads', vtype=GRB.INTEGER, lb=0)
x2 = m.addVar(name='video_ads', vtype=GRB.INTEGER, lb=0)
x3 = m.addVar(name='social_media_ads', vtype=GRB.INTEGER, lb=0)

# Define the objective function
m.setObjective(100000*x1 + 7000*x2 + 800*x3, GRB.MAXIMIZE)

# Add constraints
m.addConstr(50000*x1 + 5000*x2 + 1000*x3 <= 850000, name='cost_constraint')
m.addConstr(x2 <= 4, name='video_ad_limit')
m.addConstr(x3 <= 0.5*(x1 + x2 + x3), name='social_media_proportion')
m.addConstr(x1 >= 0.1*(x1 + x2 + x3), name='search_engine_proportion')

# Optimize the model
m.optimize()

# Print results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Search Engine Ads: {x1.x}")
    print(f"Video Ads: {x2.x}")
    print(f"Social Media Ads: {x3.x}")
    print(f"Total Influence: {m.objVal}")
else:
    print("No optimal solution found")
```