Patents by Inventor Youssef Hamadi

Youssef Hamadi 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).

  • Publication number: 20140013299
    Abstract: Generalization and/or specialization of code fragments is described, for example, as part of a tool for software developers. In an embodiment, a developer inserts natural language expressing a programming task into code he or she is developing in an integrated development environment; a program synthesizer obtains relevant (possibly non-compiling) code fragments for the task, merges those together to form a snippet, specializes the snippet for the context of the code and inserts the specialized snippet into the code. For example, a pair of code fragments are obtained from a search engine and are merged by discarding statements which are not common to each of the pair. In examples, pairs of code fragments are selected using search engine ranks, user input, or frequency. In embodiments, placeholders replace variable names in the merged fragments. An example takes a syntax tree of the code being developed and uses that to specialize snippets.
    Type: Application
    Filed: July 6, 2012
    Publication date: January 9, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Lucas Julien Bordeaux, Sumit Gulwani, Youssef Hamadi, Yi Wei
  • Patent number: 8375052
    Abstract: An outgoing message monitor is provided. In an embodiment, outgoing messages are monitored to detect potential errors and alerts may be triggered. Using information about a message such as an email, a first classifier classifies the email into an expected class and a second classifier classifies the email into an actual class. On the basis of a comparison of the expected and actual classes an alert may be triggered. In an embodiment, the second classifier uses information derived from text content of the email which may optionally be pre-processed. The first classifier, for example, uses other information about the email such as its intended recipients, information about the presence of attachments, information about whether the email is part of a thread and other information.
    Type: Grant
    Filed: October 3, 2007
    Date of Patent: February 12, 2013
    Assignee: Microsoft Corporation
    Inventors: Lucas Bordeaux, Youssef Hamadi, Shahram Izadi, Vishwa Vinay
  • Patent number: 8346704
    Abstract: Controlled constraint sharing in parallel problem solvers is described. In embodiments, constraint sharing in a problem solver is controlled by comparing a total number of shared constraints obtained in a time interval to a target, and regulating the subsequent number of shared constraints obtained from other problem solvers accordingly. Embodiments describe how the regulation of the subsequent number of shared constraints can be achieved by controlling the size of constraints shared by other problem solvers. Embodiments describe how an additive increase/multiplicative decrease algorithm can be used to determine the size of constraints to be exchanged. Embodiments also describe how the utility of the shared constraints can be determined, and used to control the size of constraints shared by other problem solvers. In embodiments, the problem solver is a Boolean satisfiability problem solver.
    Type: Grant
    Filed: May 13, 2009
    Date of Patent: January 1, 2013
    Assignee: Microsoft Corporation
    Inventors: Youssef Hamadi, Said Jabbour
  • Patent number: 8180658
    Abstract: It is difficult for managers or other operators to decide how best to modify an available pool of resources used for their workflows. Methods for achieving this by improving the robustness of workflows are described. The more robust a workflow, the better its ability to withstand detrimental changes to its associated pool of resources. It is recognized here that the size of the solution space for the problem of allocating resources to tasks in a workflow provides a useful indicator of robustness of a workflow. In general, the greater the size of the solution space the more robust the workflow. A constraint optimization problem is specified for the problem of how best to modify resource characteristics of a pool of resources in order to maximize a size of a solution space. The solution space is that for the problem of allocating resources from the pool to tasks in a workflow.
    Type: Grant
    Filed: January 30, 2007
    Date of Patent: May 15, 2012
    Assignee: Microsoft Corporation
    Inventors: Youssef Hamadi, Claude-Guy Quimper
  • Patent number: 7975234
    Abstract: A user interface is described which displays a shape and enables a user to manipulate that shape by dividing it into a number of regions. Each region has an associated term which is made up from one or more constraints. A mathematical function, such as an objective function, is generated from the resultant graphical representation of the shape, where the function contains a term for each region and where each term is weighted according to the size of the corresponding region.
    Type: Grant
    Filed: October 11, 2006
    Date of Patent: July 5, 2011
    Assignee: Microsoft Corporation
    Inventors: Youssef Hamadi, Stephanie Ubeda
  • Patent number: 7890439
    Abstract: It is difficult to select parameter values for constraint programming problem solvers which will yield good performance. Automated tuning of such problem solvers on a per problem instance basis may be used and this involves learning a function for predicting the runtime of a problem solver depending on parameter values of the problem solver and features of the problem instance being solved. However, it takes time for such prediction functions to be learnt, either during operation of a problem solver or offline, using specified examples. To address this, information about such a prediction function is shared between two or more problem solvers to improve performance. A sharing system may be used to receive prediction function information and send this to problem solvers.
    Type: Grant
    Filed: December 15, 2006
    Date of Patent: February 15, 2011
    Assignee: Microsoft Corporation
    Inventor: Youssef Hamadi
  • Publication number: 20100293127
    Abstract: Controlled constraint sharing in parallel problem solvers is described. In embodiments, constraint sharing in a problem solver is controlled by comparing a total number of shared constraints obtained in a time interval to a target, and regulating the subsequent number of shared constraints obtained from other problem solvers accordingly. Embodiments describe how the regulation of the subsequent number of shared constraints can be achieved by controlling the size of constraints shared by other problem solvers. Embodiments describe how an additive increase/multiplicative decrease algorithm can be used to determine the size of constraints to be exchanged. Embodiments also describe how the utility of the shared constraints can be determined, and used to control the size of constraints shared by other problem solvers. In embodiments, the problem solver is a Boolean satisfiability problem solver.
    Type: Application
    Filed: May 13, 2009
    Publication date: November 18, 2010
    Applicant: Microsoft Corporation
    Inventors: Youssef Hamadi, Said Jabbour
  • Patent number: 7529429
    Abstract: It is required to provide an automated process for forming a visually appealing digital collage (also referred to as a tapestry or photomontage) from a plurality of input images. Input images and a collage are labeled. Labels in the collage specify which regions of the input images are used to form those collage regions. An energy function is created for the labeling which contains terms that take into account various criteria to produce a collage. For example, those criteria may relate to the amount of information in the images, similarity of the images, entropy in the images or object class information. A multi-stage optimization process is applied to the energy function which is fast and enables large numbers of input images to be used to produce a collage.
    Type: Grant
    Filed: October 24, 2006
    Date of Patent: May 5, 2009
    Inventors: Carsten Rother, Lucas Bordeaux, Youssef Hamadi, Andrew Blake
  • Publication number: 20090094240
    Abstract: An outgoing message monitor is provided. In an embodiment, outgoing messages are monitored to detect potential errors and alerts may be triggered. Using information about a message such as an email, a first classifier classifies the email into an expected class and a second classifier classifies the email into an actual class. On the basis of a comparison of the expected and actual classes an alert may be triggered. In an embodiment, the second classifier uses information derived from text content of the email which may optionally be pre-processed. The first classifier, for example, uses other information about the email such as its intended recipients, information about the presence of attachments, information about whether the email is part of a thread and other information.
    Type: Application
    Filed: October 3, 2007
    Publication date: April 9, 2009
    Applicant: Microsoft Corporation
    Inventors: Lucas Bordeaux, Youssef Hamadi, Shahram Izadi, Vishwa Vinay
  • Patent number: 7472094
    Abstract: A node participating in a network of nodes that solve a distributed constraint problem. The nodes have mutually constrained sub-problems of the constraint problem. The node receives values or decisions from neighbor nodes. Those values or decisions allow the sub-problems of the neighbor nodes to be solved. Some received values or decisions correspond to a first ordering of the nodes, and some received values or decisions correspond to a second ordering of the nodes. Attempts are made to solve the sub-problem of the node as constrained by the values or decisions of the neighbor nodes. Results of the attempts are communicated to neighbor nodes, where for a given value or decision the node to which the corresponding attempt result is communicated depends on which of the orderings the given value or decision corresponds to. An attempt for one context can be affected by attempts in another context.
    Type: Grant
    Filed: July 28, 2005
    Date of Patent: December 30, 2008
    Assignee: Microsoft Corporation
    Inventors: Youssef Hamadi, Georg Ringwelski
  • Publication number: 20080183517
    Abstract: It is difficult for managers or other operators to decide how best to modify an available pool of resources used for their workflows. Methods for achieving this by improving the robustness of workflows are described. The more robust a workflow, the better its ability to withstand detrimental changes to its associated pool of resources. It is recognized here that the size of the solution space for the problem of allocating resources to tasks in a workflow provides a useful indicator of robustness of a workflow. In general, the greater the size of the solution space the more robust the workflow. A constraint optimization problem is specified for the problem of how best to modify resource characteristics of a pool of resources in order to maximize a size of a solution space. The solution space is that for the problem of allocating resources from the pool to tasks in a workflow.
    Type: Application
    Filed: January 30, 2007
    Publication date: July 31, 2008
    Applicant: Microsoft Corporation
    Inventors: Youssef Hamadi, Claude-Guy Quimper
  • Publication number: 20080184250
    Abstract: Processes are often cross-functional and involve the flow of information between several functional areas. For example, an order fulfillment process may require input from sales, logistics and manufacturing. Existing workflow engines, which do not use constraint programming techniques, are able to model such cross-functional processes only where the workflows are precisely and accurately defined. A constraint programming approach to workflow analysis is used here. A synchronization module in a constraint programming workflow engine scheduler receives registrations from listener tasks in a workflow which are dependent on tasks in other workflows. The synchronization module triggers the listener tasks at appropriate times to monitor for information from the dependent tasks. In this way cross-workflow synchronization is achieved by specifying listener tasks and registering these at the synchronization module. Thus it is not essential for the workflows to be precisely defined.
    Type: Application
    Filed: January 30, 2007
    Publication date: July 31, 2008
    Applicant: Microsoft Corporation
    Inventors: Youssef Hamadi, Claude-Guy Quimper
  • Publication number: 20080183538
    Abstract: Previous workflow engines have typically used definitions of workflows with tasks having pre-assigned resources or resources computed by earlier tasks in the workflow. Also, previous workflow engines have typically used if-then rules and conditions to specify and control execution of tasks in the workflow. In contrast, the methods described herein use constraint programming techniques. Information about a workflow is provided, comprising a plurality of tasks, and for at least some of those tasks, resource allocation requirements. Using this workflow information together with policy information and information about resource characteristics, a constraint optimization problem is specified. This problem is solved using a constraint programming solver and the resulting information about resources allocated to tasks is stored. In this way, resources may be allocated to tasks in a dynamic manner, during execution of a workflow if required.
    Type: Application
    Filed: January 30, 2007
    Publication date: July 31, 2008
    Applicant: Microsoft Corporation
    Inventors: Youssef Hamadi, Claude-Guy Quimper
  • Publication number: 20080147573
    Abstract: It is difficult to select parameter values for constraint programming problem solvers which will yield good performance. Automated tuning of such problem solvers on a per problem instance basis may be used and this involves learning a function for predicting the runtime of a problem solver depending on parameter values of the problem solver and features of the problem instance being solved. However, it takes time for such prediction functions to be learnt, either during operation of a problem solver or offline, using specified examples. To address this, information about such a prediction function is shared between two or more problem solvers to improve performance. A sharing system may be used to receive prediction function information and send this to problem solvers.
    Type: Application
    Filed: December 15, 2006
    Publication date: June 19, 2008
    Applicant: Microsoft Corporation
    Inventor: Youssef Hamadi
  • Publication number: 20080092086
    Abstract: A user interface is described which displays a shape and enables a user to manipulate that shape by dividing it into a number of regions. Each region has an associated term which is made up from one or more constraints. A mathematical function, such as an objective function, is generated from the resultant graphical representation of the shape, where the function contains a term for each region and where each term is weighted according to the size of the corresponding region.
    Type: Application
    Filed: October 11, 2006
    Publication date: April 17, 2008
    Applicant: Microsoft Corporation
    Inventors: Youssef Hamadi, Stephane Ubeda
  • Publication number: 20080071553
    Abstract: A method of compiling information relating to an item from an image of that item is described, where the image may be a still image or a moving image (e.g. a video clip). The image data contains embedded data about the item and this embedded data is extracted from the image and used to search for information on the item. The information found in the search can then be compiled and the compiled information may be used to advertise the item, for example, through publication of the information on the internet.
    Type: Application
    Filed: August 17, 2006
    Publication date: March 20, 2008
    Applicant: Microsoft Corporation
    Inventors: Youssef Hamadi, Carsten Rother
  • Patent number: 7222149
    Abstract: A system includes a weighted directional dependency graph defining one or more dependency links in a distributed system having a plurality of nodes. A weight is defined for each of the dependency links. A node ordering module generates a node order based on a cycle-cut set identifying at least one of the dependency links that is part of a cycle in the weighted directional dependency graph to create an output directional dependency graph. A method for ordering a plurality of decision nodes in a distributed system includes generating a weighted directional dependency graph, determining a cycle-cut set identifying one or more dependency links that are part of a cycle in the weighted directional dependency graph, and ordering the plurality of decision nodes based on the cycle-cut set.
    Type: Grant
    Filed: September 17, 2004
    Date of Patent: May 22, 2007
    Assignee: Microsoft Corporation
    Inventors: Youssef Hamadi, Yek Loong Chong, Marc Shapiro
  • Publication number: 20070094174
    Abstract: A node participating in a network of nodes that solve a distributed constraint problem. The nodes have mutually constrained sub-problems of the constraint problem. The node receives values or decisions from neighbor nodes. Those values or decisions allow the sub-problems of the neighbor nodes to be solved. Some received values or decisions correspond to a first ordering of the nodes, and some received values or decisions correspond to a second ordering of the nodes. Attempts are made to solve the sub-problem of the node as constrained by the values or decisions of the neighbor nodes. Results of the attempts are communicated to neighbor nodes, where for a given value or decision the node to which the corresponding attempt result is communicated depends on which of the orderings the given value or decision corresponds to. An attempt for one context can be affected by attempts in another context.
    Type: Application
    Filed: July 28, 2005
    Publication date: April 26, 2007
    Applicant: Microsoft Corporation
    Inventors: Youssef Hamadi, Georg Ringwelski
  • Publication number: 20070058884
    Abstract: It is required to provide an automated process for forming a visually appealing digital collage (also referred to as a tapestry or photomontage) from a plurality of input images. Input images and a collage are labeled. Labels in the collage specify which regions of the input images are used to form those collage regions. An energy function is created for the labeling which contains terms that we design to enable us to take into account various criteria we specify to produce a good collage. For example, those criteria may relate to the amount of information in the images, similarity of the images, entropy in the images or object class information. A multi-stage optimization process is applied to the energy function which is fast and enables large numbers of input images to be used to produce a collage.
    Type: Application
    Filed: October 24, 2006
    Publication date: March 15, 2007
    Applicant: Microsoft Corporation
    Inventors: Carsten Rother, Lucas Bordeaux, Youssef Hamadi, Andrew Blake
  • Publication number: 20060294073
    Abstract: Partition criteria is used to direct or constrain a search process that searches a search space for solution to a problem. The identification of states for further exploration of the search space is directed by the use of reference state and distance constraint information that is part of the partition criteria. Multiple processes use the same or different partition criteria to together search relevant areas of a search space. The operation of multiple processes, including the choice of partition criteria, is coordinated by a coordination or control process. Different search topologies are implemented by selecting various partition criteria.
    Type: Application
    Filed: June 28, 2005
    Publication date: December 28, 2006
    Applicant: Microsoft Corporation
    Inventor: Youssef Hamadi