A company separates iron, lead, and kryptonite from ore by the floatation separation process, which has three steps: oiling, mixing, and separation. These steps must be applied for 3, 4, and 1 hour respectively to produce one unit of iron; 3, 3, and 1 hour respectively to produce one unit of lead; and 1, 1, 4 hours respectively to produce one unit of kryptonite. Because of limited access to equipment, the oiling and separation phases can each be in operation for a maximum of 22 hours per week, and the mixing process can be in operation for a maximum of 23 hours per week. The company makes a profit of $55 per unit of iron, $70 per unit of lead, and $60 per unit of kryptonite. Assuming that the demaind for each metal is unlimited, how many units of each metal should the company produce each week to maximize its profit?

If the number of units of iron, lead, and kryptonite are x,y,z respectively, then we have to maximize

p = 55x+70y+60z

subject to

3x+3y+z <= 22
4x+3y+z <= 22
x+y+4z <= 23

Now use your favorite linear programming method

To solve this problem, we need to use linear programming to find the optimal solution. Linear programming is a mathematical technique used to find the best outcome in a model with linear relationships and constraints.

Let's define our decision variables:

- Let x1 represent the number of units of iron to produce per week.
- Let x2 represent the number of units of lead to produce per week.
- Let x3 represent the number of units of kryptonite to produce per week.

Now we need to define our objective function, which is to maximize the profit:

Maximize: Z = 55x1 + 70x2 + 60x3

Next, we need to define our constraints:

1) Time constraint for oiling and separation:
3x1 + 3x2 + x3 ≤ 22 (hours)

2) Time constraint for mixing:
4x1 + 3x2 + x3 ≤ 23 (hours)

3) Non-negativity constraint:
x1, x2, x3 ≥ 0

Now we can solve this linear programming problem using a method such as the simplex method or graphical method. However, since the problem has multiple variables and constraints, we will not solve it manually. Instead, we can use optimization software or programming libraries such as Python's scipy library (specifically the linprog function) to find the optimal solution.

Here's an example code snippet in Python using the scipy library:

```python
from scipy.optimize import linprog

# Objective function coefficients
c = [-55, -70, -60] # Coefficients are negated since linprog minimizes by default

# Coefficient matrix for constraints
A = [[3, 3, 1], [4, 3, 1]] # LHS coefficients of the constraints
b = [22, 23] # RHS values of the constraints

# Bounds for variables, non-negativity constraint is included here
x_bounds = [(0, None), (0, None), (0, None)]

# Solve the linear programming problem
result = linprog(c, A_ub=A, b_ub=b, bounds=x_bounds)

# Extract the optimal solution
x1, x2, x3 = result.x

# Print the optimal solution
print("Optimal solution:")
print("Number of units of iron:", round(x1))
print("Number of units of lead:", round(x2))
print("Number of units of kryptonite:", round(x3))
```

Running this code will give you the optimal solution, which represents the number of units of each metal the company should produce each week to maximize its profit.

Note that you may need to install the scipy library if you haven't done so already. You can do this using the command `pip install scipy` in your Python environment.