
    &`i                         d dl Z d dlZd dlZd dlmZmZ d dlm	Z	  G d dej
                  Z e	d           Z G d de          Z G d	 d
e          ZdS )    N)DiscreteTuple)make_multi_agentc                   .    e Zd ZdZddZddddZd ZdS )	RandomEnvaN  A randomly acting environment.

    Can be instantiated with arbitrary action-, observation-, and reward
    spaces. Observations and rewards are generated by simply sampling from the
    observation/reward spaces. The probability of a `terminated=True` after each
    action can be configured, as well as the max episode length.
    Nc           	         |pi }|                     dt          d                    | _        |                     dt          d                    | _        |                     dt          j                            dddt          j                            | _	        |                     d	d
          | _
        | j
        r<| j                                        | _        | j	                                        | _        |                     d          | _        | j        |                     dd          | _        |                     dd           | _        |                     dd
          | _        d| _        d S )Naction_space   observation_spacereward_space            ? )lowhighshapedtypestatic_samplesFp_terminatedp_doneg?max_episode_lencheck_action_boundsr   )getr   r	   r   gymspacesBoxnpfloat32r   r   sampleobservation_samplereward_sampler   r   r   steps)selfconfigs     ~/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/rllib/examples/envs/classes/random_env.py__init__zRandomEnv.__init__   s<   2 #JJ~x{{CC!',?!!M!M"JJJNNt#RrzNJJ
 
 %jj)95AA 	<&*&<&C&C&E&ED#!%!2!9!9!;!;D
 #JJ~66$ &

8S 9 9D
  &zz*;TBB#)::.CU#K#K 


    )seedoptionsc                    d| _         | j        s| j                                        i fS t	          j        | j                  i fS )Nr   )r"   r   r   r   copydeepcopyr    )r#   r(   r)   s      r%   resetzRandomEnv.reset4   sF    
" 	>)0022B66=!8992==r'   c                 >   | j         rB| j                            |          s(t          d                    | j        |                    t          | j        t                    rRt          |          t          | j        j                  k    r(t          d                    | j        |                    | xj	        dz  c_	        d}d}| j
        r| j	        | j
        k    rd}nJ| j        dk    r?t          t          j                            ddg| j        d| j        z
  g                    }| j        s5| j                                        | j                                        ||i fS t)          j        | j                  t)          j        | j                  ||i fS )NzIllegal action for {}: {}   FTg        r   )p)r   r	   contains
ValueErrorformat
isinstancer   lenr   r"   r   r   boolr   randomchoicer   r   r   r   r+   r,   r    r!   )r#   action
terminated	truncateds       r%   stepzRandomEnv.step;   s   # 	D,=,F,Fv,N,N 	+2243DfMM   d'// 	CKK3$D
 D
 5
 5
 +2243DfMM   	

a


	 	DJ$2F$F$FII$$	  5Md&7t?P9P%Q !   J " 	&--//!((**  d566d011 r'   N)__name__
__module____qualname____doc__r&   r-   r<   r   r'   r%   r   r   
   sb            B !$ > > > > >) ) ) ) )r'   r   c                      t          |           S r=   )r   )cs    r%   <lambda>rD   h   s    1 r'   c                         e Zd Zd fd	Z xZS )RandomLargeObsSpaceEnvNc                     |pi }|                     dt          j                            ddd          i           t	                                          |           d S )Nr   r   r   i  r$   updater   r   r   superr&   r#   r$   	__class__s     r%   r&   zRandomLargeObsSpaceEnv.__init__m   sW    2*CJNN4g,N,NOPPP'''''r'   r=   r>   r?   r@   r&   __classcell__rN   s   @r%   rF   rF   l   s=        ( ( ( ( ( ( ( ( ( (r'   rF   c                         e Zd Zd fd	Z xZS )!RandomLargeObsSpaceEnvContActionsNc                     |pi }|                     t          j                            ddd          t          j                            ddd          d           t	                                          |           d S )Nr   r   rH   )   )r   r	   rI   rJ   rM   s     r%   r&   z*RandomLargeObsSpaceEnvContActions.__init__v   sy    2%(Z^^D#w%G%G #
tS$ ? ? 	
 	
 	
 	'''''r'   r=   rO   rQ   s   @r%   rS   rS   u   s=        ( ( ( ( ( ( ( ( ( (r'   rS   )r+   	gymnasiumr   numpyr   gymnasium.spacesr   r   +ray.rllib.examples.envs.classes.multi_agentr   Envr   RandomMultiAgentEnvrF   rS   r   r'   r%   <module>r\      s             , , , , , , , , H H H H H HZ Z Z Z Z Z Z Z| '&'='=>> ( ( ( ( (Y ( ( (	( 	( 	( 	( 	(	 	( 	( 	( 	( 	(r'   