.. glossary::

..
  How to use:
  - All terms should be added under the subsection that matches the first letter of the term.
  - The term itself should have an indent of four spaces.
  - The term definition should have an indent of sic spaces.
  - When a term definition references itself, the term should be wrapped in bars,
  -    For example, the Sphinx term referencing itself in the definition uses |Sphinx|.
  - When a glossary term is used in text, you can link it to its definition with the :term: role.
  -    For example, to link the term Sphinx to its definition, use :term:`Sphinx`.
  - You can link to a term in the glossary while showing different text in the topic
  -    by including the term in angle brackets. For example, to link the text reStructuredText
  -    to the RST term in the glossary, use :term:`reStructuredText<RST>`.
  -
  - A very good example of a .rst glossary can be found here:
  -    https://github.com/Kurento/doc-fiware-readthedocs/blob/master/doc/glossary.rst

============
Glossary
============


***************
Terms
***************


A
===============
.. glossary::
    Algorithm
        In mathematics and computer science, an algorithm is a finite sequence of rigorous instructions, typically used
        to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for
        performing calculations and data processing.

        .. seealso::
            Wikipedia: `Algorithm <https://en.wikipedia.org/wiki/Algorithm>`_

    Artificial Intelligence
        |Artificial Intelligence| (:term:`AI<Artificial Intelligence>`) is intelligence - perceiving, synthesizing, and
        infering information - demonstrated by machines, as opposed to intelligence displayed by animals and humans.
        Example tasks in which this is done include speech recognition, computer vision, translation between (natural)
        languages, as well as other mappings of inputs. Oxford English Dictionary defines artificial intelligence as:
        "the theory and development of computer systems able to perform tasks that normally require human intelligence,
        such as visual perception, speech recognition, decision-making, and translation between languages.

        .. seealso::
            Wikipedia: `Artificial Intelligence <https://en.wikipedia.org/wiki/Artificial_intelligence>`_


B
===============
.. glossary::
    Blue Agent
        Within :term:`Yawning-Titan<Yawning-Titan>`, a |Blue Agent| blue agent represents a friendly :term:`AI<Artificial Intelligence>`
        force that is able to interface with the environment in order to defend against or repel an adversary
        (:term:`Red Agent`). The |Blue Agent| utilises an :term:`algorithm<Algorithm>`
        (e.g. :term:`Proximal Policy Optimization`) to determine the optimum decision for which action(s) to take on the
        environment, given its current state.


C
===============
.. glossary::


D
===============
.. glossary::


E
===============
.. glossary::


F
===============
.. glossary::


G
===============
.. glossary::


H
===============
.. glossary::


I
===============
.. glossary::


J
===============
.. glossary::


K
===============
.. glossary::


L
===============
.. glossary::


M
===============
.. glossary::


N
===============
.. glossary::


O
===============
.. glossary::
    OpenAI
        |OpenAI| is an artificial intelligence (:term:`AI<Artificial Intelligence>`) research laboratory consisting of
        the for-profit corporation |OpenAI| LP and its parent company, the non-profit OpenAI Inc.

        .. seealso::
            Wikipedia: `OpenAI <https://en.wikipedia.org/wiki/OpenAI>`_



P
===============
.. glossary::
    probabilistic
        Based on or adapted to a theory of probability; subject to or involving chance variation.

    Proximal Policy Optimization
        |Proximal Policy Optimization| (:term:`PPO<Proximal Policy Optimization>`) is a family of model-free
        :term:`reinforcement learning<Reinforcement Learning>` :term:`algorithms<Algorithm>` developed at OpenAI in
        2017. :term:`PPO<Proximal Policy Optimization>` algorithms are policy gradient methods, which means that they
        search the space of policies rather than assigning values to state-action pairs.

        .. seealso::
            Wikipedia: `Proximal Policy Optimization <https://en.wikipedia.org/wiki/Proximal_Policy_Optimization>`_

Q
===============
.. glossary::


R
===============
.. glossary::
    Red Agent
        Within :term:`Yawning-Titan<Yawning-Titan>`, a |Red Agent| represents an adversary that is designed to attack and infect one
        or more nodes within the environment. The |Red Agent| employs a probabilistic approach to implement the spread of
        an attack throughout the environment, but its advance can be countered by actions taken by the :term:`Blue Agent`.

    Reinforcement Learning
        Reinforcement learning (RL) is an area of machine learning concerned with how intelligent agents ought to take
        actions in an environment in order to maximize the notion of cumulative reward. Reinforcement learning is one of
        three basic machine learning paradigms, alongside supervised learning and unsupervised learning.

        .. seealso::
            Wikipedia: `Reinforcement Learning <https://en.wikipedia.org/wiki/Reinforcement_learning>`_


S
===============
.. glossary::


T
===============
.. glossary::


U
===============
.. glossary::


V
===============
.. glossary::
    Virtual Environment
        A Python virtual environment is a folder structure that gives you everything you need to run a lightweight
        Python environment. A virtual environment is created on top of an existing Python installation, known as the
        virtual environment’s “base” Python, and may optionally be isolated from the packages in the base environment,
        so only those explicitly installed in the virtual environment are available.

        .. seealso::
            realpython.com: `What Is a Python Virtual Environment? <https://realpython.com/python-virtual-environments-a-primer/#what-is-a-python-virtual-environment>`_
            docs.python.org: `Creation of virtual environments <https://docs.python.org/3/library/venv.html>`_
W
===============
.. glossary::


X
===============
.. glossary::


Y
===============
.. glossary::
    Yawning-Titan
        An abstract, graph based cyber-security simulation environment that supports the training of intelligent agents
        for autonomous cyber operations.

Z
===============
.. glossary::
