#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import numpy as np

# -----------------------------------------------------------
# Optimisation d'entrepôts : génération de données aléatoires 
# -----------------------------------------------------------
def data_warehouse():
    # Data
    n = 3 # nombre d'entrepots
    m = 4 # nombre de magasins
    
    np.random.seed(1)  # Permet d'engendrer les mêmes données
    
    c = np.random.uniform(low=10, high=200, size=(n, m)) # couts de transport unitaire entrepots -> magasins
    f = np.random.uniform(low=10, high=200, size=n)      # coût de fonctionnement des entrepots
    d = np.random.uniform(low=30, high=60, size=m)       # quantités demandées par les magasins
    M = 60                                               # quantité maximale délivrée par chaque entrepot
    
    print(f'{n} entrepôts, {m} magasins')
    print(f'Quantités demandées par les {m} magasins :')
    print('d =',d)
    
    # Verification de la pertinence des données
    # On doit avoir sum_{j=1}^m d_j <= nM
    r1 = np.sum(d) 
    r2 = n*M
    if r1 > r2:
        print(f'Attention ! quantité globale demandée ({r1}) > quantité globale disponible ({r2})')
        print('-> pas de solution réalisable possible')

    return n,m,c,f,d,M
#-----------------------------------------------------------

n,m,c,f,d,M = data_warehouse()