
    Fh!                     `   S r SSKr " S S5      r\S:X  Ga  \" S5        \" 5       r\" S5        Sr\R                  \5      r\" S	\S
    35        \" S\S    35        \" S\S   S 35        \" S5        Sr\R                  \5      r\" S	\S
    35        \" S\S    35        \" S5        \R                  SS5      r\" S\S    35        \S   S:X  a  \" S\S    35        \" S\
" \R                  5       35        \" S5        \" S5        \" S5        \" S5        \" S5        \" S 5        gg)!zI
Fluid Intelligence - Solve novel problems, adapt strategies dynamically
    Nc                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)FluidIntelligence   c                      / U l         / U l        g N)
strategiesproblem_history)selfs    H/home/james-whalen/eden-agi-project/core/reasoning/fluid_intelligence.py__init__FluidIntelligence.__init__   s    !    c                     UR                  5       nU R                  U5      nU R                  U5      nU R                  XA5      nU R	                  XQ5      nU R
                  R                  UUUUS.5        UUUUSS.$ )z!Solve a problem never seen before)problemtypestrategysolutiong      ?)r   r   strategy_usedr   
confidence)loweridentify_problem_typegenerate_strategiesselect_best_strategyapply_strategyr	   append)r
   problem_descriptionproblem_lowerproblem_typer   best_strategyr   s          r   solve_novel_problem%FluidIntelligence.solve_novel_problem   s    +113 11-@ --l;
 11*R &&}J 	##* % 	%
 	 + * 
 	
r   c                   ^ [        U4S jS 5       5      (       a  g[        U4S jS 5       5      (       a  g[        U4S jS 5       5      (       a  g	[        U4S
 jS 5       5      (       a  g[        U4S jS 5       5      (       a  gg)z%Identify what type of problem this isc              3   ,   >#    U  H	  oT;   v   M     g 7fr    .0wordr   s     r   	<genexpr>:FluidIntelligence.identify_problem_type.<locals>.<genexpr>-   s     X+W4w+W   )optimizemaximizeminimizebestoptimizationc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r$   r%   s     r   r(   r)   /        J-IT-Ir*   )sortorderarrangesortingc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r$   r%   s     r   r(   r)   1   r1   r*   )findsearchlocater8   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r$   r%   s     r   r(   r)   3   s     G-FT-Fr*   )planroutepathplanningc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r$   r%   s     r   r(   r)   5   s     Q-PT-Pr*   )classify
categorizegroupclassificationgeneral)any)r
   r   s    `r   r   'FluidIntelligence.identify_problem_type+   so    X+WXXX!J-IJJJJ-IJJJG-FGGGQ-PQQQ#r   c                     / SQnUS:X  a  UR                  SS/5        O3US:X  a  UR                  SS/5        OUS:X  a  UR                  / S	Q5        US
S $ )z%Generate multiple possible strategies)divide_and_conquergreedy_approachdynamic_programmingbrute_forceheuristic_searchr/   hill_climbinggradient_descentr5   
merge_sort
quick_sortr8   )binary_searchdepth_firstbreadth_firstN   )extend)r
   r   base_strategiess      r   r   %FluidIntelligence.generate_strategies:   sf    
 >)""O5G#HIY&""L,#?@X%""#TUr""r   c                    SUR                  5       ;   d  SUR                  5       ;   a  / SQnU H  nXA;   d  M
  Us  $    SUR                  5       ;   d  SUR                  5       ;   a  SS/nU H  nXA;   d  M
  Us  $    U(       a  US   $ S	$ )
z Select most appropriate strategylargemany)rH   rQ   rJ   quickfastrI   rL   r   general_approach)r   )r
   r   r   	preferredstrats        r   r   &FluidIntelligence.select_best_strategyN   s     gmmo%7==?)BVI"& L # gmmo%7==?)B*,>?I"& L #
 !+z!}B0BBr   c                 *    USUSS  S3SU 3SS/SS	.$ )
z"Apply selected strategy to problemzAnalyze problem: N2   z...zApply zExecute solutionzVerify resultz(Solution generated using fluid reasoning)r   stepsresultr$   )r
   r   r   s      r   r    FluidIntelligence.apply_strategya   s>     !#GCRL>5
#"	 A	
 		
r   c                 *    US   (       a  SSS.$ SSS.$ )z Adapt strategy based on feedbacksuccessstrategy_reinforcedz+10%)
adaptationr   switching_strategytrying_different_approach)ri   alternativer$   )r
   feedbacks     r   adapt_strategy FluidIntelligence.adapt_strategyn   s#    I"7vNN #7Gbccr   c                     U R                    Vs/ s H,  nUR                  5       US   R                  5       ;   d  M*  UPM.     nnU(       a  US   S   nSUUUSS.$ SSS	.$ s  snf )
z*Transfer learned strategies across domainsr   r   rg   g333333?)transferfromtor   r   no_similar_problemsg333333?)rr   r   )r	   r   )r
   from_domain	to_domainpsimilarr   s         r   transfer_knowledge$FluidIntelligence.transfer_knowledgew   s     #22 B2 &&(AiL,>,>,@@ 2 B r{:.H%#$!  2EEBs
   )A A )r	   r   N)__name__
__module____qualname____firstlineno__r   r    r   r   r   r   rn   rz   __static_attributes__r$   r   r   r   r      s.    "
@#(C&
dFr   r   __main__zFLUID INTELLIGENCE TESTu   
🧩 Novel Problem 1:z:Find the best route to visit 10 cities minimizing distancez   Problem type: r   z   Strategy: r   z   Confidence: r   z.0%u   
🧩 Novel Problem 2:z#Sort 1000 items by priority quicklyu7   
🔄 Transfer knowledge from 'routing' to 'logistics':r<   	logisticsz   Transfer: rr   rg   z   Using strategy: r   u   
📊 Problems solved: u   
🌊 Eden now has:z   - Novel problem solvingz   - Dynamic strategy selectionz   - Cross-domain transferz   - Adaptive learningu#   
✅ FLUID INTELLIGENCE OPERATIONAL)__doc__randomr   r|   printfluidr   r    rd   rz   lenr	   r$   r   r   <module>r      s   AF AFF z	
#$E 

#$JG&&w/F	fVn-
./	M&12
34	OF<05
67 

#$3G&&w/F	fVn-
./	M&12
34 

DE%%g{;F	M&,-
./jY&#F:$6#789	$S)>)>%?$@
AB	
 !	
&'	
+,	
&'	
"#	
01G r   