Make an application for facility location otpimization.
To upload files, please first save the app
import streamlit as st
import numpy as np
import pandas as pd
st.title('Facility Location Optimization')
st.write('This application helps you optimize the location of facilities based on given coordinates.')
# Input for number of facilities
#num_facilities = st.number_input('Enter the number of facilities:', min_value=1, max_value=10)
import streamlit as st
import numpy as np
import pandas as pd
st.title('Facility Location Optimization')
st.write('This application helps you optimize the location of facilities based on given coordinates.')
# Input for number of facilities
num_facilities = st.number_input('Enter the number of facilities:', min_value=1, max_value=10)
# Add a button to generate random coordinates
if st.button('Generate Random Coordinates'):
# Generate random coordinates between 0 and 100 for example
coordinates = []
for i in range(num_facilities):
x = np.random.uniform(0, 100) # Random x between 0 and 100
y = np.random.uniform(0, 100) # Random y between 0 and 100
coordinates.append((x, y))
# Display the random coordinates
st.write('Generated Coordinates:')
for i, (x, y) in enumerate(coordinates):
st.write(f'Facility {i+1}: ({x:.2f}, {y:.2f})')
# Calculate optimal location
optimal_x = np.mean([coord[0] for coord in coordinates])
optimal_y = np.mean([coord[1] for coord in coordinates])
st.success(f'Optimal Location is at: ({optimal_x:.2f}, {optimal_y:.2f})')
# Keep the manual input option
st.write('Or enter coordinates manually:')
manual_coordinates = []
for i in range(num_facilities):
st.subheader(f'Facility {i+1} Coordinates')
x = st.number_input(f'X-coordinate for Facility {i+1}', key=f'fac_x_{i}')
y = st.number_input(f'Y-coordinate for Facility {i+1}', key=f'fac_y_{i}')
manual_coordinates.append((x, y))
# Button for calculating optimal location with manual coordinates
if st.button('Calculate Optimal Location (Manual)'):
optimal_x = np.mean([coord[0] for coord in manual_coordinates])
optimal_y = np.mean([coord[1] for coord in manual_coordinates])
st.success(f'Optimal Location is at: ({optimal_x}, {optimal_y})')
Hi! I can help you with any questions about Streamlit and Python. What would you like to know?