def init_kriginfo(objectives=1):
    """Initialise the Kriging model dictionary structure.
    
    Initialize the values of KrigInfo, the value will be set to default value.
    You can change the value of KrigInfo outside this function.
    
    If objectives is set to 1, a single objective Kriging will be initialised.
    Otherwise, if objectives > 1, a multiobjective Kriging model will be
    initialised.
    
    For multiobjective Kriging, some values are initialised with lists with
    the length of objectives, a Kriging model is built for each objective.

    Default values:
        KrigInfo['X'] = None
        KrigInfo['y'] = [None] * objectives
        KrigInfo['nvar'] = None
        KrigInfo['problem'] = 'branin'
        KrigInfo['nsamp']= None
        KrigInfo['nrestart'] = 5
        KrigInfo['ub']= [None] * objectives
        KrigInfo['lb']= [None] * objectives
        KringInfo'[Theta'] = [None] * objectives
        KringInfo'[U'] = [None] * objectives
        KringInfo'[Psi'] = [None] * objectives
        KringInfo'[BE'] = [None] * objectives
        KringInfo'[y_mean'] = [None] * objectives
        KringInf'[y_std'] = [None] * objectives
        KringInfo'[SigmaSqr'] = [None] * objectives
        KringInfo'[idx'] = [None] * objectives
        KringInfo'[F'] = [None] * objectives
        KringInfo'[wgkf'] = [None] * objectives
        KringInfo'[plscoeff'] = [None] * objectives
        KrigInfo['kernel'] = 'gaussian'
        KrigInfo['nugget'] = -6

    Args:
        objectives (int, optional): Number of objective functions.
            Defaults to 1.

    Returns:
        KrigInfo - A structure containing information of the constructed Kriging of the objectives function.

    Raises:
        TypeError: If objectives is not an integer.
        ValueError: If objectives < 1.
    """
    KrigInfo = dict()
    KrigInfo['X'] = None
    KrigInfo['nvar'] = None
    KrigInfo['problem'] = 'branin'
    KrigInfo['nsamp'] = None
    KrigInfo['nrestart'] = 5
    KrigInfo['kernel'] = 'gaussian'
    KrigInfo['nugget'] = -6
    KrigInfo['standardization'] = True

    if not isinstance(objectives, int):
        raise TypeError('The objectives parameter must be an integer.')

    elif objectives == 1:
        KrigInfo['krignum'] = None
        KrigInfo['multiobj'] = False

    elif objectives > 1:
        KrigInfo['krignum'] = 1
        KrigInfo['multiobj'] = True

    else:
        raise ValueError("The number of objectives must be 1 or greater.")

    multikeys = ['y', 'lb', 'ub', 'Theta', 'U', 'Psi', 'BE', 'y_mean', 'y_std',
                 'SigmaSqr', 'idx', 'F', 'wgkf', 'plscoeff', "NegLnLike"]
    for key in multikeys:
        KrigInfo[key] = [0] * objectives

    return KrigInfo