mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-07-06 18:49:26 +08:00
Fix sphinx/build_docs warnings for dynamic_programming (#12484)
* Fix sphinx/build_docs warnings for dynamic_programming * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix * Fix * Fix * Fix * Fix * Fix --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
@ -9,119 +9,102 @@ def viterbi(
|
||||
emission_probabilities: dict,
|
||||
) -> list:
|
||||
"""
|
||||
Viterbi Algorithm, to find the most likely path of
|
||||
states from the start and the expected output.
|
||||
https://en.wikipedia.org/wiki/Viterbi_algorithm
|
||||
sdafads
|
||||
Wikipedia example
|
||||
>>> observations = ["normal", "cold", "dizzy"]
|
||||
>>> states = ["Healthy", "Fever"]
|
||||
>>> start_p = {"Healthy": 0.6, "Fever": 0.4}
|
||||
>>> trans_p = {
|
||||
... "Healthy": {"Healthy": 0.7, "Fever": 0.3},
|
||||
... "Fever": {"Healthy": 0.4, "Fever": 0.6},
|
||||
... }
|
||||
>>> emit_p = {
|
||||
... "Healthy": {"normal": 0.5, "cold": 0.4, "dizzy": 0.1},
|
||||
... "Fever": {"normal": 0.1, "cold": 0.3, "dizzy": 0.6},
|
||||
... }
|
||||
>>> viterbi(observations, states, start_p, trans_p, emit_p)
|
||||
['Healthy', 'Healthy', 'Fever']
|
||||
Viterbi Algorithm, to find the most likely path of
|
||||
states from the start and the expected output.
|
||||
|
||||
>>> viterbi((), states, start_p, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: There's an empty parameter
|
||||
https://en.wikipedia.org/wiki/Viterbi_algorithm
|
||||
|
||||
>>> viterbi(observations, (), start_p, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: There's an empty parameter
|
||||
Wikipedia example
|
||||
|
||||
>>> viterbi(observations, states, {}, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: There's an empty parameter
|
||||
|
||||
>>> viterbi(observations, states, start_p, {}, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: There's an empty parameter
|
||||
|
||||
>>> viterbi(observations, states, start_p, trans_p, {})
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: There's an empty parameter
|
||||
|
||||
>>> viterbi("invalid", states, start_p, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: observations_space must be a list
|
||||
|
||||
>>> viterbi(["valid", 123], states, start_p, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: observations_space must be a list of strings
|
||||
|
||||
>>> viterbi(observations, "invalid", start_p, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: states_space must be a list
|
||||
|
||||
>>> viterbi(observations, ["valid", 123], start_p, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: states_space must be a list of strings
|
||||
|
||||
>>> viterbi(observations, states, "invalid", trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: initial_probabilities must be a dict
|
||||
|
||||
>>> viterbi(observations, states, {2:2}, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: initial_probabilities all keys must be strings
|
||||
|
||||
>>> viterbi(observations, states, {"a":2}, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: initial_probabilities all values must be float
|
||||
|
||||
>>> viterbi(observations, states, start_p, "invalid", emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: transition_probabilities must be a dict
|
||||
|
||||
>>> viterbi(observations, states, start_p, {"a":2}, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: transition_probabilities all values must be dict
|
||||
|
||||
>>> viterbi(observations, states, start_p, {2:{2:2}}, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: transition_probabilities all keys must be strings
|
||||
|
||||
>>> viterbi(observations, states, start_p, {"a":{2:2}}, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: transition_probabilities all keys must be strings
|
||||
|
||||
>>> viterbi(observations, states, start_p, {"a":{"b":2}}, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: transition_probabilities nested dictionary all values must be float
|
||||
|
||||
>>> viterbi(observations, states, start_p, trans_p, "invalid")
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: emission_probabilities must be a dict
|
||||
|
||||
>>> viterbi(observations, states, start_p, trans_p, None)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: There's an empty parameter
|
||||
>>> observations = ["normal", "cold", "dizzy"]
|
||||
>>> states = ["Healthy", "Fever"]
|
||||
>>> start_p = {"Healthy": 0.6, "Fever": 0.4}
|
||||
>>> trans_p = {
|
||||
... "Healthy": {"Healthy": 0.7, "Fever": 0.3},
|
||||
... "Fever": {"Healthy": 0.4, "Fever": 0.6},
|
||||
... }
|
||||
>>> emit_p = {
|
||||
... "Healthy": {"normal": 0.5, "cold": 0.4, "dizzy": 0.1},
|
||||
... "Fever": {"normal": 0.1, "cold": 0.3, "dizzy": 0.6},
|
||||
... }
|
||||
>>> viterbi(observations, states, start_p, trans_p, emit_p)
|
||||
['Healthy', 'Healthy', 'Fever']
|
||||
>>> viterbi((), states, start_p, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: There's an empty parameter
|
||||
>>> viterbi(observations, (), start_p, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: There's an empty parameter
|
||||
>>> viterbi(observations, states, {}, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: There's an empty parameter
|
||||
>>> viterbi(observations, states, start_p, {}, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: There's an empty parameter
|
||||
>>> viterbi(observations, states, start_p, trans_p, {})
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: There's an empty parameter
|
||||
>>> viterbi("invalid", states, start_p, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: observations_space must be a list
|
||||
>>> viterbi(["valid", 123], states, start_p, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: observations_space must be a list of strings
|
||||
>>> viterbi(observations, "invalid", start_p, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: states_space must be a list
|
||||
>>> viterbi(observations, ["valid", 123], start_p, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: states_space must be a list of strings
|
||||
>>> viterbi(observations, states, "invalid", trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: initial_probabilities must be a dict
|
||||
>>> viterbi(observations, states, {2:2}, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: initial_probabilities all keys must be strings
|
||||
>>> viterbi(observations, states, {"a":2}, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: initial_probabilities all values must be float
|
||||
>>> viterbi(observations, states, start_p, "invalid", emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: transition_probabilities must be a dict
|
||||
>>> viterbi(observations, states, start_p, {"a":2}, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: transition_probabilities all values must be dict
|
||||
>>> viterbi(observations, states, start_p, {2:{2:2}}, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: transition_probabilities all keys must be strings
|
||||
>>> viterbi(observations, states, start_p, {"a":{2:2}}, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: transition_probabilities all keys must be strings
|
||||
>>> viterbi(observations, states, start_p, {"a":{"b":2}}, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: transition_probabilities nested dictionary all values must be float
|
||||
>>> viterbi(observations, states, start_p, trans_p, "invalid")
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: emission_probabilities must be a dict
|
||||
>>> viterbi(observations, states, start_p, trans_p, None)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: There's an empty parameter
|
||||
|
||||
"""
|
||||
_validation(
|
||||
@ -213,7 +196,6 @@ def _validation(
|
||||
... "Fever": {"normal": 0.1, "cold": 0.3, "dizzy": 0.6},
|
||||
... }
|
||||
>>> _validation(observations, states, start_p, trans_p, emit_p)
|
||||
|
||||
>>> _validation([], states, start_p, trans_p, emit_p)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
@ -242,7 +224,6 @@ def _validate_not_empty(
|
||||
"""
|
||||
>>> _validate_not_empty(["a"], ["b"], {"c":0.5},
|
||||
... {"d": {"e": 0.6}}, {"f": {"g": 0.7}})
|
||||
|
||||
>>> _validate_not_empty(["a"], ["b"], {"c":0.5}, {}, {"f": {"g": 0.7}})
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
@ -267,12 +248,10 @@ def _validate_not_empty(
|
||||
def _validate_lists(observations_space: Any, states_space: Any) -> None:
|
||||
"""
|
||||
>>> _validate_lists(["a"], ["b"])
|
||||
|
||||
>>> _validate_lists(1234, ["b"])
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: observations_space must be a list
|
||||
|
||||
>>> _validate_lists(["a"], [3])
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
@ -285,7 +264,6 @@ def _validate_lists(observations_space: Any, states_space: Any) -> None:
|
||||
def _validate_list(_object: Any, var_name: str) -> None:
|
||||
"""
|
||||
>>> _validate_list(["a"], "mock_name")
|
||||
|
||||
>>> _validate_list("a", "mock_name")
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
@ -294,7 +272,6 @@ def _validate_list(_object: Any, var_name: str) -> None:
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: mock_name must be a list of strings
|
||||
|
||||
"""
|
||||
if not isinstance(_object, list):
|
||||
msg = f"{var_name} must be a list"
|
||||
@ -313,7 +290,6 @@ def _validate_dicts(
|
||||
) -> None:
|
||||
"""
|
||||
>>> _validate_dicts({"c":0.5}, {"d": {"e": 0.6}}, {"f": {"g": 0.7}})
|
||||
|
||||
>>> _validate_dicts("invalid", {"d": {"e": 0.6}}, {"f": {"g": 0.7}})
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
@ -339,7 +315,6 @@ def _validate_dicts(
|
||||
def _validate_nested_dict(_object: Any, var_name: str) -> None:
|
||||
"""
|
||||
>>> _validate_nested_dict({"a":{"b": 0.5}}, "mock_name")
|
||||
|
||||
>>> _validate_nested_dict("invalid", "mock_name")
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
@ -367,7 +342,6 @@ def _validate_dict(
|
||||
) -> None:
|
||||
"""
|
||||
>>> _validate_dict({"b": 0.5}, "mock_name", float)
|
||||
|
||||
>>> _validate_dict("invalid", "mock_name", float)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
|
Reference in New Issue
Block a user