Patents by Inventor Lev Nachmanson

Lev Nachmanson has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 9299176
    Abstract: Large graph visualization embodiments are presented which generally render and display the more important elements for a current view. To this end, a measure of importance referred to as a zoom level is assigned to the vertices and rails of a graph. Each rail is a curve segment in the graph that represents an edge or a set of edges passing through it. The rendering and displaying of a graph (or a part thereof) is done quickly, even as a user moves about the graph, and the visualization of the large graph is not so dense and so full of detail that the user becomes disoriented. In general, this is accomplished by specifying a current viewport, or a current zoom level, or both. Furthermore, the visualization is stable in that the layout of vertices and rails will be the same for the same zoom level and viewport.
    Type: Grant
    Filed: November 19, 2013
    Date of Patent: March 29, 2016
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Lev Nachmanson, Bongshin Lee, Nathalie Henry Riche, Xiaoji Chen, Alexander E. Holroyd
  • Publication number: 20150138203
    Abstract: Large graph visualization embodiments are presented which generally render and display the more important elements for a current view. To this end, a measure of importance referred to as a zoom level is assigned to the vertices and rails of a graph. Each rail is a curve segment in the graph that represents an edge or a set of edges passing through it. The rendering and displaying of a graph (or a part thereof) is done quickly, even as a user moves about the graph, and the visualization of the large graph is not so dense and so full of detail that the user becomes disoriented. In general, this is accomplished by specifying a current viewport, or a current zoom level, or both. Furthermore, the visualization is stable in that the layout of vertices and rails will be the same for the same zoom level and viewport.
    Type: Application
    Filed: November 19, 2013
    Publication date: May 21, 2015
    Applicant: MICROSOFT CORPORATION
    Inventors: Lev Nachmanson, Bongshin Lee, Nathalie Henry Riche, Xiaoji Chen, Alexander E. Holroyd
  • Patent number: 8543944
    Abstract: An edge routing system is described herein that uses a spatial decomposition to achieve faster routing, and more quickly generates a sparse visibility graph using a cone spanner. The system provides two approaches that can be used separately or in combination to achieve faster—and hence more scalable and more interactive—edge routing using approximate shortest paths. The first approach uses a spatial decomposition of the nodes in a graph, moving them slightly to obtain strictly disjoint convex hulls around groups of nodes, and then computing visibility graphs over these composite hulls rather than individual nodes. The second approach generates a sparse visibility-graph spanner to accelerate the process of producing the visibility graph. The system allows high quality obstacle avoiding edge routing for large diagrams in interactive diagramming applications where very fast refreshes of routing are used with many nodes moving at the same time.
    Type: Grant
    Filed: June 14, 2010
    Date of Patent: September 24, 2013
    Assignee: Microsoft Corporation
    Inventors: Timothy G. Dwyer, Lev Nachmanson
  • Publication number: 20110307838
    Abstract: An edge routing system is described herein that uses a spatial decomposition to achieve faster routing, and more quickly generates a sparse visibility graph using a cone spanner. The system provides two approaches that can be used separately or in combination to achieve faster—and hence more scalable and more interactive—edge routing using approximate shortest paths. The first approach uses a spatial decomposition of the nodes in a graph, moving them slightly to obtain strictly disjoint convex hulls around groups of nodes, and then computing visibility graphs over these composite hulls rather than individual nodes. The second approach generates a sparse visibility-graph spanner to accelerate the process of producing the visibility graph. The system allows high quality obstacle avoiding edge routing for large diagrams in interactive diagramming applications where very fast refreshes of routing are used with many nodes moving at the same time.
    Type: Application
    Filed: June 14, 2010
    Publication date: December 15, 2011
    Applicant: Microsoft Corporation
    Inventors: Timothy G. Dwyer, Lev Nachmanson
  • Patent number: 7932907
    Abstract: A graph layout technique that creates a layered graph layout with a given aspect ratio. The present layered graph layout technique better utilizes the available space and, at the same time, creates an aesthetically pleasing drawing of a directed graph. In one embodiment it determines the layout of the new graph based on a modified Sugiyama technique combined with a modified Coffman-Graham scheduling algorithm. Given a directed graph and a desired aspect ratio, it uses a binary search and the Coffman-Graham scheduling algorithm to find a layout of the graph that has an aspect ratio that matches the given aspect ratio of the available space.
    Type: Grant
    Filed: May 21, 2007
    Date of Patent: April 26, 2011
    Assignee: Microsoft Corp.
    Inventors: Lev Nachmanson, George Robertson, Bongshin Lee
  • Publication number: 20060242466
    Abstract: Techniques and tools for generating test cases for methods or programs with input preconditions are described. For example, after finding feasible control flow paths for a tested method along with each path's associated input conditions, a new program is created which tests these conditions along with the precondition. By analyzing this new program's control flow graph, a class of test cases is found while avoiding inefficiencies created by doing complete searches of paths through the combined control flow graph of the precondition and the method. Additional efficiencies are introduced by partitioning a control flow graph for the precondition into branched and straight sections.
    Type: Application
    Filed: April 21, 2005
    Publication date: October 26, 2006
    Applicant: Microsoft Corporation
    Inventors: Nikolai Tillmann, Colin Campbell, Wolfgang Grieskamp, Lev Nachmanson, Wolfram Schulte, Margus Veanes
  • Publication number: 20060224924
    Abstract: Techniques and tools for generating finite state machines (“FSMs”) for a software system with asynchronous callbacks are described. For example, method invocations in a model of the software system are partitioned into observable and controlled method invocations. The controlled method invocations are those which can be run from a test harness while the observed method invocations are those which are observed asynchronously as they are invoked in the system. An FSM is created with observation and control nodes such that observable transitions are found from observation nodes and controlled transitions are found from control nodes. If a state of the model contains both controlled and observable invocations, a timeout transition is added to the FSM to give an implementation time to come up with an observed method invocation before continuing to controlled invocations.
    Type: Application
    Filed: March 31, 2005
    Publication date: October 5, 2006
    Applicant: Microsoft Corporation
    Inventors: Wolfgang Grieskamp, Colin Campbell, Lev Nachmanson, Margus Veanes, Michael Barnett, Nikolai Tillmann, Wolfram Schulte
  • Publication number: 20060212759
    Abstract: Techniques and tools for testing multi-threaded or distributed software systems are described. For example, a multi-threaded system is instrumented and executed to produce logs of events that are performed by each of its agents. The agent logs contain a totally ordered series of events per agent, as well as information about accesses to resources shared between the agents. With this information, a partial ordering of the events performed by all the agents is described for the execution. The agent logs are then multiplexed into one or more serialized event orderings, which can then be compared to a specification of the system in a conformance testing engine.
    Type: Application
    Filed: March 18, 2005
    Publication date: September 21, 2006
    Applicant: Microsoft Corporation
    Inventors: Colin Campbell, Lev Nachmanson, Margus Veanes, Michael Barnett, Nikolai Tillmann, Wolfgang Grieskamp, Wolfram Schulte
  • Publication number: 20060179383
    Abstract: State spaces are traversed to produce test cases, or test coverage. Test coverage is a test suite of sequences. Accepting states are defined. Expected costs are assigned to the test graph states. Strategies are created providing transitions to states with lower expected costs. Linear programs and other approximations are discussed for providing expected costs. Strategies are more likely to provide access to an accepting state, based on expected costs. Strategies are used to append transitions to test segments such that the new test segment ends in an accepting state.
    Type: Application
    Filed: January 21, 2005
    Publication date: August 10, 2006
    Applicant: Microsoft Corporation
    Inventors: Andreas Blass, Colin Campbell, Lev Nachmanson, Margus Veanes, Michael Barnett, Nikolai Tillmann, Wolfgang Grieskamp, Wolfram Schulte, Yuri Gurevich
  • Publication number: 20060161404
    Abstract: Exploration algorithms are relevant to the industrial practice of generating test cases from an abstract state machine whose runs define the predicted behavior of the software system under test. Here, a new exploration algorithm allows multiple state groupings to simultaneously guide the search for states that are interesting or relevant for testing. In some cases, the algorithm allows exploration to be optimized from exponential to linear complexity. An extended example is included that illustrates the use of the algorithm.
    Type: Application
    Filed: January 20, 2005
    Publication date: July 20, 2006
    Applicant: Microsoft Corporation
    Inventors: Colin Campbell, Lev Nachmanson, Margus Veanes, Wolfgang Grieskamp, Wolfram Schulte, Nikolai Tillmann
  • Publication number: 20050160404
    Abstract: A computerized method creates test coverage for non-deterministic programs. The method receives a graph of edges and states representing a program under test, and creates a continuous cycle of edges that reaches each edge in the graph at least once. In one example, the method splits the continuous cycle into discrete sequences that end at edges reaching non-deterministic nodes in the graph, and verifies that the executing program conforms to the behavior represented by the discrete sequences. In another example, a method creates probabilistic strategies for reaching one or more vertices in a non-deterministic graph. The strategies provide a graph path with a high probability of reaching a desired vertex.
    Type: Application
    Filed: January 15, 2004
    Publication date: July 21, 2005
    Inventors: Lev Nachmanson, Margus Veanes, Wolfgang Grieskamp, Nikolai Tillmann
  • Publication number: 20050086633
    Abstract: The technologies allow a digital content developer to define, and a user to switch between or select, various versions of digital content for purposes of displaying, rendering, improving, or testing digital content. For example, a source code developer inserts identifiers in source code, and a source code layer viewer displays code segment choices defined by the identifiers. A user (e.g., the developer or others) selects code segments for inclusion in a source code version. The technology is also useful for providing versions of media content such as audio, video, DVD, images, text, etc.
    Type: Application
    Filed: October 15, 2003
    Publication date: April 21, 2005
    Inventors: Lev Nachmanson, Margus Veanes