def problem_from_var_dict(var_dict: dict) -> dict:
    """
    Initialy used by the SALib framework, we keep the problem dict
    for all methods

    Parameters
    ----------
    var_dict: dict
        var_dict where keys are variable names and values are the names
        of the categories

    Returns
    -------
    problem: dict
        problem formulation of SALib: dict with useful keys: num_vars (number
        of variables), names (variables names) and bounds (bounds of uniform
        distribution of variables)
    """
    problem = {
        "num_vars": len(var_dict.keys()),
        "names": sorted(list(var_dict.keys())),
        "bounds": [[0.0, 1.0]] * len(var_dict.keys()),
    }

    return problem