\doxysection{Agent Class Reference}
\hypertarget{classAgent}{}\label{classAgent}\index{Agent@{Agent}}
Inheritance diagram for Agent\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classAgent}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classAgent_ae5ac83a00d69b213d4623c4ba3bba69a}\label{classAgent_ae5ac83a00d69b213d4623c4ba3bba69a} 
{\bfseries Agent} (const std\+::string \&name)
\item 
\Hypertarget{classAgent_a84b502ddcdf7a80eb61e23b30af523d9}\label{classAgent_a84b502ddcdf7a80eb61e23b30af523d9} 
const std\+::string \& {\bfseries name} () const
\item 
\Hypertarget{classAgent_a2e9c9a278397bfc645ae76754b682fb3}\label{classAgent_a2e9c9a278397bfc645ae76754b682fb3} 
virtual void {\bfseries set\+State\+Representation\+Params} (Py\+Object \texorpdfstring{$\ast$}{*})
\item 
\Hypertarget{classAgent_a7c1e67b5a5f56dcb1a99250261e767cd}\label{classAgent_a7c1e67b5a5f56dcb1a99250261e767cd} 
void {\bfseries set\+Parameters} (Py\+Object \texorpdfstring{$\ast$}{*})
\item 
\Hypertarget{classAgent_a5320b933a23a0de11408489194dd2087}\label{classAgent_a5320b933a23a0de11408489194dd2087} 
virtual void {\bfseries set\+Parameter} (const std\+::string \&var\+Name, int index, Py\+Object \texorpdfstring{$\ast$}{*})
\item 
\Hypertarget{classAgent_ac28ac114e2204881c567a093d4cb670d}\label{classAgent_ac28ac114e2204881c567a093d4cb670d} 
const std\+::map$<$ std\+::string, \mbox{\hyperlink{classParameter}{Parameter}} \texorpdfstring{$\ast$}{*} $>$ \& {\bfseries get\+Parameters} () const
\item 
\Hypertarget{classAgent_aab5ce76ada27c5c562a1e363b83fad5a}\label{classAgent_aab5ce76ada27c5c562a1e363b83fad5a} 
void {\bfseries set\+Python\+Interface} (Py\+Object \texorpdfstring{$\ast$}{*})
\item 
\Hypertarget{classAgent_add4dbc72c5778636724ead7cc87117f0}\label{classAgent_add4dbc72c5778636724ead7cc87117f0} 
void {\bfseries set\+Training\+Mode} (bool on)
\item 
\Hypertarget{classAgent_a7ed8c25207b1747eab8717957554f29e}\label{classAgent_a7ed8c25207b1747eab8717957554f29e} 
virtual void {\bfseries set\+PCB} (const std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classPCBoard}{PCBoard}} $>$ \&)
\item 
\Hypertarget{classAgent_a8463b159d2155ec2374199efd7f3f400}\label{classAgent_a8463b159d2155ec2374199efd7f3f400} 
virtual void {\bfseries set\+Managed\+Connections} (const std\+::set$<$ \mbox{\hyperlink{classConnection}{Connection}} \texorpdfstring{$\ast$}{*} $>$ \&)
\item 
\Hypertarget{classAgent_aa48f4ec4df61de8da9d83bcb57c72fc3}\label{classAgent_aa48f4ec4df61de8da9d83bcb57c72fc3} 
void {\bfseries set\+Managed\+Connections\+To\+Unrouted} ()
\item 
\Hypertarget{classAgent_a53bd0adacaeb9a82c20380455a11ba8b}\label{classAgent_a53bd0adacaeb9a82c20380455a11ba8b} 
void {\bfseries set\+Action\+Space} (const \mbox{\hyperlink{classActionSpace}{Action\+Space}} \&)
\item 
\Hypertarget{classAgent_af0e78287226d3c9cc945e4a673e6e3c1}\label{classAgent_af0e78287226d3c9cc945e4a673e6e3c1} 
void {\bfseries set\+Policy} (\mbox{\hyperlink{classPolicy}{Policy}} \texorpdfstring{$\ast$}{*})
\begin{DoxyCompactList}\small\item\em Ownership of \doxylink{classPolicy}{Policy}, \doxylink{classRewardFunction}{Reward\+Function}, and \doxylink{classStateRepresentation}{State\+Representation} are transferred to the agent. \end{DoxyCompactList}\item 
\Hypertarget{classAgent_abe301fb8e2de1a9efcd143c71d9c01c3}\label{classAgent_abe301fb8e2de1a9efcd143c71d9c01c3} 
void {\bfseries set\+Reward\+Fn} (\mbox{\hyperlink{classRewardFunction}{Reward\+Function}} \texorpdfstring{$\ast$}{*})
\item 
\Hypertarget{classAgent_a059774ce69bbe121b1e91d4e907da701}\label{classAgent_a059774ce69bbe121b1e91d4e907da701} 
void {\bfseries set\+State\+Representation} (\mbox{\hyperlink{classStateRepresentation}{State\+Representation}} \texorpdfstring{$\ast$}{*})
\item 
\Hypertarget{classAgent_ac6bc59ef69003051b574f693029cd779}\label{classAgent_ac6bc59ef69003051b574f693029cd779} 
virtual bool {\bfseries \+\_\+run} ()
\item 
\Hypertarget{classAgent_a547c6ea93a3c64d72995284ec366aaf8}\label{classAgent_a547c6ea93a3c64d72995284ec366aaf8} 
bool {\bfseries run} ()
\item 
\Hypertarget{classAgent_a4a5ff1408e94e6c79f11f4e0c3b16f7f}\label{classAgent_a4a5ff1408e94e6c79f11f4e0c3b16f7f} 
void {\bfseries set\+Run\+Args} (Py\+Object \texorpdfstring{$\ast$}{*})
\item 
\Hypertarget{classAgent_a90979667f72d0aa6c9f73d7ea61bc5c8}\label{classAgent_a90979667f72d0aa6c9f73d7ea61bc5c8} 
void {\bfseries set\+Timeout} (uint64\+\_\+t usec)
\item 
\Hypertarget{classAgent_a4012dec80344bb4aa6ffefaa21d11db1}\label{classAgent_a4012dec80344bb4aa6ffefaa21d11db1} 
void {\bfseries set\+Timeout\+Expired} ()
\item 
\Hypertarget{classAgent_a46f6b71f28767e180a38be3c7cab5a20}\label{classAgent_a46f6b71f28767e180a38be3c7cab5a20} 
void {\bfseries set\+Action\+Limit} (int64\+\_\+t count)
\item 
\Hypertarget{classAgent_a5d8cb4583445b7ee82d49f5b670e2908}\label{classAgent_a5d8cb4583445b7ee82d49f5b670e2908} 
void {\bfseries set\+Clear\+Board\+Before\+Run} (bool)
\item 
\Hypertarget{classAgent_af5e34e26e627c97a03f182605445e3bc}\label{classAgent_af5e34e26e627c97a03f182605445e3bc} 
float {\bfseries get\+Progress} () const
\item 
\Hypertarget{classAgent_a609b83f98ce773a98beedf97db81f6ab}\label{classAgent_a609b83f98ce773a98beedf97db81f6ab} 
virtual Py\+Object \texorpdfstring{$\ast$}{*} {\bfseries step} (Py\+Object \texorpdfstring{$\ast$}{*})
\item 
\Hypertarget{classAgent_aba10843ea119fedc255aa1e12679cb34}\label{classAgent_aba10843ea119fedc255aa1e12679cb34} 
virtual Py\+Object \texorpdfstring{$\ast$}{*} {\bfseries get\+\_\+state} (Py\+Object \texorpdfstring{$\ast$}{*})
\item 
\Hypertarget{classAgent_a17c2f698d2d9b587f80da2b24a6314f9}\label{classAgent_a17c2f698d2d9b587f80da2b24a6314f9} 
virtual Py\+Object \texorpdfstring{$\ast$}{*} {\bfseries reset} ()
\item 
\Hypertarget{classAgent_a77082a528889e7df6c019c38c1623f61}\label{classAgent_a77082a528889e7df6c019c38c1623f61} 
void {\bfseries erase\+Managed\+Connections} ()
\item 
\Hypertarget{classAgent_accf3d7d2c4452d1cff72ed7180a0a3f8}\label{classAgent_accf3d7d2c4452d1cff72ed7180a0a3f8} 
\mbox{\hyperlink{classPCBoard}{PCBoard}} \texorpdfstring{$\ast$}{*} {\bfseries get\+PCB} () const
\begin{DoxyCompactList}\small\item\em These are only valid as long as you have got a hold of the agent. \end{DoxyCompactList}\item 
\Hypertarget{classAgent_a20268b0201e66b060099e639b991bd67}\label{classAgent_a20268b0201e66b060099e639b991bd67} 
\mbox{\hyperlink{classRewardFunction}{Reward\+Function}} \& {\bfseries get\+Reward\+Fn} () const
\item 
\Hypertarget{classAgent_a1c725cfc174b28e8296aabd3bb878f2c}\label{classAgent_a1c725cfc174b28e8296aabd3bb878f2c} 
\mbox{\hyperlink{classPolicy}{Policy}} \texorpdfstring{$\ast$}{*} {\bfseries get\+Policy} () const
\item 
\Hypertarget{classAgent_a7562974b1efbef8c4f6a0da1f3d4b436}\label{classAgent_a7562974b1efbef8c4f6a0da1f3d4b436} 
\mbox{\hyperlink{classStateRepresentation}{State\+Representation}} \texorpdfstring{$\ast$}{*} {\bfseries get\+SR} () const
\item 
\Hypertarget{classAgent_a4b6668f3eed8dbada9c2aad81a606e28}\label{classAgent_a4b6668f3eed8dbada9c2aad81a606e28} 
uint32\+\_\+t {\bfseries get\+Iteration} () const
\item 
\Hypertarget{classAgent_a2e4fbd7662ebb0ae5a2242d2179fdd33}\label{classAgent_a2e4fbd7662ebb0ae5a2242d2179fdd33} 
uint64\+\_\+t {\bfseries num\+Actions} () const
\item 
\Hypertarget{classAgent_a97dcce2144d3ba2dd42ee889b77a7189}\label{classAgent_a97dcce2144d3ba2dd42ee889b77a7189} 
uint64\+\_\+t {\bfseries usecs\+Since\+Start} () const
\item 
\Hypertarget{classAgent_ac7950ad7cb5a949a67b582985b70273b}\label{classAgent_ac7950ad7cb5a949a67b582985b70273b} 
const std\+::vector$<$ \mbox{\hyperlink{classConnection}{Connection}} \texorpdfstring{$\ast$}{*} $>$ \& {\bfseries get\+Connections} () const
\item 
\Hypertarget{classAgent_a8702a43d85dbe8cab3542d696217af76}\label{classAgent_a8702a43d85dbe8cab3542d696217af76} 
const std\+::set$<$ \mbox{\hyperlink{classConnection}{Connection}} \texorpdfstring{$\ast$}{*} $>$ \& {\bfseries get\+Connection\+Set} () const
\item 
\Hypertarget{classAgent_a0602aed97df00c642af20f514cd0999e}\label{classAgent_a0602aed97df00c642af20f514cd0999e} 
\mbox{\hyperlink{classConnection}{Connection}} \texorpdfstring{$\ast$}{*} {\bfseries set\+Connection\+LRU} (Py\+Object \texorpdfstring{$\ast$}{*})
\item 
\Hypertarget{classAgent_a8b7c97d804e89b45d42a74e0fa4e4cd4}\label{classAgent_a8b7c97d804e89b45d42a74e0fa4e4cd4} 
\mbox{\hyperlink{classConnection}{Connection}} \texorpdfstring{$\ast$}{*} {\bfseries get\+Connection\+LRU} () const
\item 
\Hypertarget{classAgent_a596b532505694b27b16cc1c3f7708b31}\label{classAgent_a596b532505694b27b16cc1c3f7708b31} 
\mbox{\hyperlink{structAction_1_1Result}{Action\+::\+Result}} {\bfseries evaluate\+Current\+State} () const
\item 
\Hypertarget{classAgent_a552fc41c0abbf8b705b7a2eccbfee6e9}\label{classAgent_a552fc41c0abbf8b705b7a2eccbfee6e9} 
void {\bfseries start\+Timer} ()
\item 
\Hypertarget{classAgent_a3bfad1d05675dfbb7add15e31be7374d}\label{classAgent_a3bfad1d05675dfbb7add15e31be7374d} 
bool {\bfseries has\+Timer\+Expired} () const
\item 
\Hypertarget{classAgent_a50680a3e09ee15dbd3cd58f010ae703c}\label{classAgent_a50680a3e09ee15dbd3cd58f010ae703c} 
void {\bfseries reset\+Action\+Count} ()
\item 
\Hypertarget{classAgent_a05871c84af09a1f60990b7898939c77e}\label{classAgent_a05871c84af09a1f60990b7898939c77e} 
void {\bfseries reset\+Action\+Limit} ()
\item 
\Hypertarget{classAgent_aa5f97105f4b050877bd8a28ca788bc3f}\label{classAgent_aa5f97105f4b050877bd8a28ca788bc3f} 
void {\bfseries count\+Actions} (int)
\item 
\Hypertarget{classAgent_a19d9dc8934c2612a530ada1f4d0f384c}\label{classAgent_a19d9dc8934c2612a530ada1f4d0f384c} 
bool {\bfseries action\+Limit\+Exceeded} () const
\item 
std\+::vector$<$ float $>$ \mbox{\hyperlink{classAgent_afa9959a7e57b0dd01ac6b92cbe9a31f0}{py\+\_\+V}} (Py\+Object \texorpdfstring{$\ast$}{*}states)
\item 
\Hypertarget{classAgent_a82d075f1a37e980605a28f7534c6bbfa}\label{classAgent_a82d075f1a37e980605a28f7534c6bbfa} 
std\+::vector$<$ float $>$ {\bfseries py\+\_\+Q} (Py\+Object \texorpdfstring{$\ast$}{*}states)
\item 
\Hypertarget{classAgent_af61ccc300e94e230f2df7429575aef08}\label{classAgent_af61ccc300e94e230f2df7429575aef08} 
std\+::vector$<$ float $>$ {\bfseries py\+\_\+P} (Py\+Object \texorpdfstring{$\ast$}{*}states)
\item 
\Hypertarget{classAgent_a6f26d2b2599ec236599f5908a3fb99e2}\label{classAgent_a6f26d2b2599ec236599f5908a3fb99e2} 
std\+::vector$<$ float $>$ {\bfseries py\+\_\+\+P\+\_\+V} (Py\+Object \texorpdfstring{$\ast$}{*}states)
\item 
\Hypertarget{classAgent_a77d1fd8c9e829806a58728cb303fd7f3}\label{classAgent_a77d1fd8c9e829806a58728cb303fd7f3} 
void {\bfseries py\+\_\+event} (Py\+Object \texorpdfstring{$\ast$}{*}event)
\begin{DoxyCompactList}\small\item\em Tell anything else to your Python interface. \end{DoxyCompactList}\item 
\Hypertarget{classAgent_a9bf545db07b44cd965527e8c2f43505f}\label{classAgent_a9bf545db07b44cd965527e8c2f43505f} 
\mbox{\hyperlink{classStepLock}{Step\+Lock}} \& {\bfseries get\+Step\+Lock} ()
\end{DoxyCompactItemize}
\doxysubsubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classAgent_ae08097d33f1fe78cbf453e373724bab0}\label{classAgent_ae08097d33f1fe78cbf453e373724bab0} 
static \mbox{\hyperlink{classAgent}{Agent}} \texorpdfstring{$\ast$}{*} {\bfseries create} (const std\+::string \&type)
\end{DoxyCompactItemize}
\doxysubsubsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classAgent_af1a7d1331cda1242ede778fb8b5d0aa6}\label{classAgent_af1a7d1331cda1242ede778fb8b5d0aa6} 
void {\bfseries init\+Parameters} ()
\end{DoxyCompactItemize}
\doxysubsubsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classAgent_acd82b7481924de6c474e0aa658829d25}\label{classAgent_acd82b7481924de6c474e0aa658829d25} 
std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classPCBoard}{PCBoard}} $>$ {\bfseries m\+PCB}
\item 
\Hypertarget{classAgent_a2d2899695e5559b11cac56af8c8a7f73}\label{classAgent_a2d2899695e5559b11cac56af8c8a7f73} 
std\+::vector$<$ \mbox{\hyperlink{classConnection}{Connection}} \texorpdfstring{$\ast$}{*} $>$ {\bfseries m\+Connections}
\item 
\Hypertarget{classAgent_a6bd6cd72977c5cf19da494f40677ba03}\label{classAgent_a6bd6cd72977c5cf19da494f40677ba03} 
std\+::set$<$ \mbox{\hyperlink{classConnection}{Connection}} \texorpdfstring{$\ast$}{*} $>$ {\bfseries m\+Connection\+Set}
\item 
\Hypertarget{classAgent_a106548857223e178bd2bf8decc762a6e}\label{classAgent_a106548857223e178bd2bf8decc762a6e} 
\mbox{\hyperlink{classConnection}{Connection}} \texorpdfstring{$\ast$}{*} {\bfseries m\+Connection\+LRU} \{0\}
\item 
\Hypertarget{classAgent_abdab11c4702e05f288966fb2ecb3b07d}\label{classAgent_abdab11c4702e05f288966fb2ecb3b07d} 
const \mbox{\hyperlink{classActionSpace}{Action\+Space}} \texorpdfstring{$\ast$}{*} {\bfseries m\+Action\+Space} \{0\}
\item 
\Hypertarget{classAgent_a292ce738e3eb8c54b15bc91d4bacccc0}\label{classAgent_a292ce738e3eb8c54b15bc91d4bacccc0} 
std\+::unique\+\_\+ptr$<$ \mbox{\hyperlink{classPolicy}{Policy}} $>$ {\bfseries m\+Policy}
\item 
\Hypertarget{classAgent_af0098324412ce13b4342b24356de1302}\label{classAgent_af0098324412ce13b4342b24356de1302} 
std\+::unique\+\_\+ptr$<$ \mbox{\hyperlink{classStateRepresentation}{State\+Representation}} $>$ {\bfseries m\+State\+Rep}
\item 
\Hypertarget{classAgent_a4dcabd6407619c1764d4ea8aa7163547}\label{classAgent_a4dcabd6407619c1764d4ea8aa7163547} 
std\+::unique\+\_\+ptr$<$ \mbox{\hyperlink{classRewardFunction}{Reward\+Function}} $>$ {\bfseries m\+Reward\+Fn}
\item 
\Hypertarget{classAgent_a0db0333c20a7109c87d1e1b2cb6ac2a2}\label{classAgent_a0db0333c20a7109c87d1e1b2cb6ac2a2} 
\mbox{\hyperlink{structResultCollection}{Result\+Collection}} {\bfseries m\+Stats}
\item 
\Hypertarget{classAgent_ab2f514ae4ae590c3f96b2881b1193ff3}\label{classAgent_ab2f514ae4ae590c3f96b2881b1193ff3} 
uint32\+\_\+t {\bfseries m\+Iteration} \{0\}
\item 
\Hypertarget{classAgent_ab48c778c748e72d907fc16810967cc90}\label{classAgent_ab48c778c748e72d907fc16810967cc90} 
float {\bfseries m\+Progress} \{-\/1.\+0f\}
\item 
\Hypertarget{classAgent_a32b2f8a1e0045baa2e3a238caf9adbe7}\label{classAgent_a32b2f8a1e0045baa2e3a238caf9adbe7} 
bool {\bfseries m\+Clear\+Board\+Before\+Run} \{false\}
\item 
\Hypertarget{classAgent_a147ffc41d4cbd7edd89425ff6a51e0fb}\label{classAgent_a147ffc41d4cbd7edd89425ff6a51e0fb} 
\mbox{\hyperlink{classSignalContext}{Signal\+Context}} {\bfseries m\+Signals}
\item 
\Hypertarget{classAgent_a673e690973ccef0e2c1e2cf57f0a35e9}\label{classAgent_a673e690973ccef0e2c1e2cf57f0a35e9} 
std\+::map$<$ std\+::string, \mbox{\hyperlink{classParameter}{Parameter}} \texorpdfstring{$\ast$}{*} $>$ {\bfseries m\+Parameters}
\item 
\Hypertarget{classAgent_a24370160e82cf7bf9c0a623af6620a70}\label{classAgent_a24370160e82cf7bf9c0a623af6620a70} 
Py\+Object \texorpdfstring{$\ast$}{*} {\bfseries m\+Python} \{0\}
\item 
\Hypertarget{classAgent_ab9c9ce6641cae7a9093a9f81e45be2b6}\label{classAgent_ab9c9ce6641cae7a9093a9f81e45be2b6} 
Py\+Object \texorpdfstring{$\ast$}{*} {\bfseries m\+Method\+Names\+Py} \mbox{[}5\mbox{]} \{0,0,0,0,0\}
\end{DoxyCompactItemize}


\label{doc-func-members}
\Hypertarget{classAgent_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classAgent_afa9959a7e57b0dd01ac6b92cbe9a31f0}\index{Agent@{Agent}!py\_V@{py\_V}}
\index{py\_V@{py\_V}!Agent@{Agent}}
\doxysubsubsection{\texorpdfstring{py\_V()}{py\_V()}}
{\footnotesize\ttfamily \label{classAgent_afa9959a7e57b0dd01ac6b92cbe9a31f0} 
std\+::vector$<$ float $>$ Agent\+::py\+\_\+V (\begin{DoxyParamCaption}\item[{Py\+Object \texorpdfstring{$\ast$}{*}}]{states}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\doxylink{classPolicy}{Policy} and value functions from Python (e.\+g. neural networks). The arrangement of the return vector is up to you. Arguments are DECREF\textquotesingle{}d. 

The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
/home/chr/devel/\+Ph\+D/\+Environment/pub/\+PCBEnv/pcbenv/cxx/\+RL/Agent.\+hpp\end{DoxyCompactItemize}
