from typing import List


def __yager_ordinal_weighted_averaging(alternative_assessment: List[int], weights: List[int]) -> int:
    """
    Computes the Yager's ordinal weighted averaging.

    References:
        Yager, R. R. (1995). An approach to ordinal decision making.
        International Journal of Approximate Reasoning, 12(3), 237–261.
        https://doi.org/https://doi.org/10.1016/0888-613X(94)00035-2

    Returns:
        An integer, representing the value of the Yager's ordinal weighted averaging.
    """
    sorted_assessments = sorted(alternative_assessment)
    sorted_assessments.reverse()

    values = [min(weights[j], sorted_assessments[j]) for j in range(len(alternative_assessment))]

    return max(values)