Giter Site home page Giter Site logo

t101_1's Introduction

t101_lab1

О выполнении работы.

Скрипт не обрабатывает кольцевые и ранговые правила(в связи с тем, что я тупой и не до конца понял, что творится в этой жизни).

Запуск проекта

  • Чтобы собрать Docker образ нужно использовать команду(для удобства из текущей директории проекта):
  docker build -t lab1 .

В данном случае создастся образ с именем lab1

  • Для запуска Docker контейнера по существующему образу нужно использовать команду:
  docker run -it --rm lab1

Благодаря параметру --rm контейнер удалится после завершения работы скрипта

Описание алгоритма работы скрипта

  1. Генерируются факты и правила.
  2. Правила приводятся к более удобному виду.

В исходном варианте все правила имеют вид: [ { if:{'operand : [numbers]'},then: number}, ...].
Все факты сортируются в 3 отдельных массива по логическому операнду и каждый массив имеет более удобный вид
[ [ [if], then ], ...]

  1. Факты приводястя к более удобному виду.

Изначально факты расположены в одномерном массиве и для того, чтобы избежать прогона по всему массиву ( O(n) )
и повторения фактов они помещаются в словарь по сигнатуре { number:True }, если числа нет, то метод get() вернёт None.

  1. На переработанных данных запускается скрипт проверки фактов.

При проверке правила or ищется хотя бы одно совпадение условия и факт. В таком случае факт добавляется в БЗ.
При проверке правила and ищется хотя бы одно несовпадение условия и факта. В таком случае факт не добавляется в БЗ.
При проверке праила not ищется хотя бы одно совпадение условия и факта. В таком случае факт не добавляется в БЗ.

  1. Декоративной функцией time() замеряется время работы функции по добавлению правил.

t101_1's People

Contributors

crsnx avatar appr1l avatar

Watchers

 avatar

t101_1's Issues

Что нужно оформить.

  • Красивые коммиты
  • Красивый Readme(Параметры запуска кода, краткое описание работы)
  • DOCKERFILE без грязи, на небольшом образе(slim-buster)
    Код противоречия:
  • ASYNC
  • 2 указателя: куда входит факт в правила( отбор правил), чтобы все не прогонять

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.