CHANGES
=======

* trying to get tagged commits to deploy

v2.3.3
------

* new gitignore

2.3.1
-----

* still trying to deploy

2.3.0
-----

* added doc tests to unittests
* added more tests

v2.2
----

* updated secure login

v2.1
----

* added badges and removed problems from the coverages
* updated travis
* updated tox
* refactoring packaging, added testing for travis
* updated uninformed and informed search, so that goal nodes are no longer terminal nodes in the search space, their successors are explored if search is continued
* increased major version number, because of the API change
* upped version number and added classifiers to setup.py
* modified to support pypy3 and python2, apparently autorange is a python3 only function
* Upgraded searches to support bidirectional search. Also, all searches return solution nodes. I've added more tests to give 100% test coverage of the search code (not the problems) and have updated everything else to align with changes
* updated exceptions to NotImplementedError, the correct exception to use. Also, added some additional doctests. Finally, updated PriorityQueues's update\_cost\_limit function, so that it correctly updates. The direction of the inequality and the sign of the cost limit were wrong
* added timefun decorator to utils for benchmarking purposes
* introduced bug when precomputing depth at construction time where the variable and method had the same name
* corrected error in uninformed bidirectional tree search, where the state node rather than the SolutionNode(state, goal) was being returned
* Compute the depth at Node creation time, so it doesn't have to be recursively computed each time node.depth() is called. Also, flushed out the rest of SolutionNode, such as adding \_\_str\_\_, \_\_repr\_\_, \_\_hash\_\_, etc
* added goal to goal test in informed.py
* added goal node and solution node, so that node\_value can take the node type into account when computing the value
* moved to a more general bidirectional search framework that allows forward, backward, and bidirectional search
* updated iterative sampling, so max samples can be float('inf')
* added .cache/ to gitignore
* added weighted\_choice and updated compare\_searches to it computes elapsed time even when search fails
* added iterative sampling and bidirectional search. The later is pretty rough still
* updated optimization to use node\_value instead of cost(), basically the same, but makes it easier for user to overload node evaluation
* cleaned up indenting
* added goal to problem, also added predecessors and state\_goal\_test (for bidirectional search)
* value replaced with cost
* updated version to 1.2.0, removed blist dependency, using insort and python list, created wheel
* updated graph\_partitin example to initialize cost correctly
* updated doct example
* Added branch and bound algorithm to optimization. Updated nodes to have node\_cost instead of path\_cost. Updated optimization algs to use node.cost() instead of problem.node\_value(node), except for branch and bound, which uses node\_value as an optimistic estimate of all nodes reachable from the node
* added branch and bound to the optimization techniques
* updated pip version to 1.0.7
* updated compare to properly handle failed runtime
* added runtime to compare function
* updated default number of max sideways to 0
* updated to 1.0.5, added limit on sideways moves to hill and local beam. Also, added min\_change to annealing
* decreased size of example problems so it can run on readthedocs
* decreased size of example problems so it can run on readthedocs
* decreased size of graph\_partition, for read the docs so it doesn't get killed
* new version 1.0.4
* updated docs
* updated optimization to have cost limit (good if there is a min cost, so you can stop early). Also, updated simulated annealing to automatically initialize parameters
* updated hill climbing and annealing
* fixed typo
* upping pip version
