nip.parameters.protocol.CommonProtocolParameters#
- class nip.parameters.protocol.CommonProtocolParameters(verifier_first: bool = True, randomize_prover_stance: bool = False, prover_reward: float = 1.0, verifier_reward: float = 1.0, verifier_incorrect_penalty: float = -1.0, verifier_terminated_penalty: float = -1.0, verifier_no_guess_reward: float = 0.0, shared_reward: bool = False, force_guess: Literal['zero', 'one', 'y'] | None = None, zero_knowledge: bool = False)[source]#
Common additional parameters for the interaction protocol.
- Parameters:
verifier_first (bool) – Whether the verifier goes first in the protocol.
randomize_prover_stance (bool) – Whether, for each datapoint, the verdict the prover arguing for is randomized. This is only relevant when there is a single prover, and when using a text-based protocol.
prover_reward (float) – The reward given to the prover when the verifier guesses “accept”.
verifier_reward (float) – The reward given to the verifier when it guesses correctly.
verifier_incorrect_penalty (float) – The penalty given to the verifier when it guesses incorrectly.
verifier_terminated_penalty (float) – The reward given to the verifier if the episode terminates before it guesses.
verifier_no_guess_reward (float) – The reward given to the verifier if it does not make a guess in a round.
shared_reward (bool) – Whether to use a shared reward function, where the prover gets the same reward as the verifier. This overrides
prover_reward
.force_guess (GuessType, optional) – The guess to force the verifier to make. If not provided, the verifier makes a guess using its policy.
zero_knowledge (bool) – Whether to use a zero-knowledge version of the protocol.
Methods Summary
__eq__
(other)Return self==value.
__init__
([verifier_first, ...])__repr__
()Return repr(self).
_get_param_class_from_dict
(param_dict)Try to get the parameter class from a dictionary of serialised parameters.
Construct a set of basic parameters for testing.
from_dict
(params_dict[, ignore_extra_keys])Create a parameters object from a dictionary.
get
(address)Get a value from the parameters object using a dot-separated address.
to_dict
()Convert the parameters object to a dictionary.
Attributes
force_guess
prover_reward
randomize_prover_stance
shared_reward
verifier_first
verifier_incorrect_penalty
verifier_no_guess_reward
verifier_reward
verifier_terminated_penalty
zero_knowledge
Methods
- __eq__(other)#
Return self==value.
- __init__(verifier_first: bool = True, randomize_prover_stance: bool = False, prover_reward: float = 1.0, verifier_reward: float = 1.0, verifier_incorrect_penalty: float = -1.0, verifier_terminated_penalty: float = -1.0, verifier_no_guess_reward: float = 0.0, shared_reward: bool = False, force_guess: Literal['zero', 'one', 'y'] | None = None, zero_knowledge: bool = False) None #
- __repr__()#
Return repr(self).
- classmethod _get_param_class_from_dict(param_dict: dict) type[ParameterValue] | None [source]#
Try to get the parameter class from a dictionary of serialised parameters.
- Parameters:
param_dict (dict) – A dictionary of parameters, which may have come from a
to_dict
method. This dictionary may contain a_type
key, which is used to determine the class of the parameter.- Returns:
param_class (type[ParameterValue] | None) – The class of the parameter, if it can be determined.
- Raises:
ValueError – If the class specified in the dictionary is not a valid parameter class.
- classmethod construct_test_params() BaseHyperParameters [source]#
Construct a set of basic parameters for testing.
- classmethod from_dict(params_dict: dict, ignore_extra_keys: bool = False) BaseHyperParameters [source]#
Create a parameters object from a dictionary.