Giter VIP home page Giter VIP logo

colab2 / midca Goto Github PK

View Code? Open in Web Editor NEW
21.0 8.0 6.0 750.03 MB

The Metacognitive Integrated Dual-Cycle Architecture (MIDCA)

Home Page: http://www.midca-arch.org/

License: MIT License

Python 99.72% C++ 0.28%
computational-metacognition metareasoning artificial-intelligence cognitive-systems goal-reasoning introspection ai cognitive-architecture planning interpretation agents midca

midca's Introduction

MIDCA: The Metacognitive Integrated Dual-Cycle Architecture.

MIDCA Version 1.4: User manual and tutorial for the Metacognitive Integrated Dual-Cycle Architecture (https://tinyurl.com/midcadoc)

  1. (Recommended, but optional) Use a virtualenv before installing MIDCA:

    cd midca/
    python3 -m venv .env
    source .env/bin/activate
    

    Make sure to source .env/bin/activate whenever you open a new terminal to run MIDCA. If you are running MIDCA from PyCharm it should automatically detect the environment and use that version of python.

  2. To install MIDCA, run the setup.py file:

    python setup.py install
    

    If you will be making changes to MIDCA's code, use the develop option, like the following:

    python setup.py develop
    
  3. For a simple interactive version of MIDCA, run

    cd midca/
    python examples/cogsci_demo.py
    
  4. To see how the MIDCA instantiation used in cogsci_demo.py is created and populated, see examples/cogsci_demo.py

  5. For an overview of MIDCA and more details about how it works, see the github wiki (https://github.com/COLAB2/midca/wiki) and/or docs folder.

  6. Questions and comments are welcome, please email [email protected]

midca's People

Contributors

bbengfort avatar dtdannen avatar mbbarnes2012 avatar mcox25 avatar mpaisner avatar sampathgogineni avatar sravya-kondrakunta avatar zohreh-dannenhauer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

midca's Issues

Act doesn't perform correctly when state changes.

I faced a problem when state changes in execution time and Act doesn't perform correctly. The plan is not applicable in the current state because of the new change. The Plan phase generates a new plan and adds to it to the set of plans for that goal. Act checks each plan to see which one is applicable. Although it doesn't pick the right plan. It picks the old plan which is not applicable in the current state, and when it executes the action it says this action is illegal in the state.

Planning failed for Logistics_jshop.py

While I was running Logistics_jshop.py and simple_run_jshop.py, I encountered errors related to planning. I am attaching the console outputs for reference.

Logistics_jshop.py :
error

simple_run_jshop.py:
error1

An error in goal graph-- when there is a goal, but there is no valid plan for the goal I encounter this error

No valid plan found that achieves any current goals.
****** Starting Act Phase ******

MIDCA will not select an action this cycle.
Traceback (most recent call last):
File "C:\Users\Zohreh\git\midca\midca\examples\Logistics_jshop.py", line 63, in
myMidca.run()
File "c:\users\zohreh\git\midca\midca\base.py", line 620, in run
val = self.next_phase()
File "c:\users\zohreh\git\midca\midca\base.py", line 404, in next_phase
val = self.midca.next_phase(verbose)
File "c:\users\zohreh\git\midca\midca\base.py", line 290, in next_phase
retVal = module.run((phaseNum - 1) / len(phases), verbose)
File "c:\users\zohreh\git\midca\midca\modules\act.py", line 157, in run
self.mem.get(self.mem.GOAL_GRAPH).remove(g)
File "c:\users\zohreh\git\midca\midca\goals.py", line 154, in remove
delNode = self._getGoalNode(goal)
File "c:\users\zohreh\git\midca\midca\goals.py", line 291, in _getGoalNode
if self.consistentGoal(goal, next.goal):
File "c:\users\zohreh\git\midca\midca\goals.py", line 105, in consistentGoal
for i in range(len(first.args)):
AttributeError: 'str' object has no attribute 'args'

util.py doesn't handle all operators

midca/domains/blocksworld/util.py: pyhop_tasks_from_goals method doesn't cover all the predicates and operators, the method will break for the "putdown" operator and possibly other operators too. unsure if this happens for other domain's util.py files.
Screen Shot 2020-10-23 at 10 58 34 AM

test_all_examples.py

The file midca/tests/test_all_examples.py throws the following errors on files which should be more specific to the error being related to Running ROS on a machine not connected to Neo.
examples/ObjectDetector.py...............................................................[FAILED during initialization]
examples/Calibrate.py............................................................................[FAILED during initialization]

Update the midca manual link

The midca manual link in the Readme.md file is pointed to a google drive link and the link needs to be updated.

Synchronize modules/ directory naming system to MIDCA's theory

The purpose of this issue is to synchronize naming conventions of files under the modules/ directory to correspond to the names of Phases in the MIDCA theory (of which there are six) - this makes it easy for people to read a research paper on MIDCA and quickly identify where the phases are implemented in the code base.

Most module classes are located in a file named by the phase that module is used in: for example PyHopPlanner module is located in the planning.py file corresponding to the planning phase. Currently there is no interpret.py file, instead modules belonging to Interpret phase are located in three different python files note.py, assess.py, and guide.py. This is confusing for new folks joining the project since note assess guide is not referenced anywhere else. Interpret is a large phase conceptually because discrepancy detection (analogous to Note), explanation (analogous to assess) and guide (analogous to goal formulation) all happen within Interpret.

I propose that we make the modules folder contain six sub folders for each theoretical midca phase, so like:

modules/perceive/
modules/interpret/
modules/evaluate/
modules/intend/
modules/plan/
modules/act/

then when importing files, its easy to see what modules are available for each phase because we import like:

from modules.interpret.goal_formulation import SimpleGoalGen

This would also include changing note.py to discrepancy_detection.py, assess.py to explanation.py, and guide.py to goal_generation.py.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.