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: 20140013299Abstract: 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: ApplicationFiled: July 6, 2012Publication date: January 9, 2014Applicant: MICROSOFT CORPORATIONInventors: Lucas Julien Bordeaux, Sumit Gulwani, Youssef Hamadi, Yi Wei
-
Patent number: 8375052Abstract: 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: GrantFiled: October 3, 2007Date of Patent: February 12, 2013Assignee: Microsoft CorporationInventors: Lucas Bordeaux, Youssef Hamadi, Shahram Izadi, Vishwa Vinay
-
Patent number: 8346704Abstract: 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: GrantFiled: May 13, 2009Date of Patent: January 1, 2013Assignee: Microsoft CorporationInventors: Youssef Hamadi, Said Jabbour
-
Patent number: 8180658Abstract: 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: GrantFiled: January 30, 2007Date of Patent: May 15, 2012Assignee: Microsoft CorporationInventors: Youssef Hamadi, Claude-Guy Quimper
-
Patent number: 7975234Abstract: 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: GrantFiled: October 11, 2006Date of Patent: July 5, 2011Assignee: Microsoft CorporationInventors: Youssef Hamadi, Stephanie Ubeda
-
Patent number: 7890439Abstract: 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: GrantFiled: December 15, 2006Date of Patent: February 15, 2011Assignee: Microsoft CorporationInventor: Youssef Hamadi
-
Publication number: 20100293127Abstract: 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: ApplicationFiled: May 13, 2009Publication date: November 18, 2010Applicant: Microsoft CorporationInventors: Youssef Hamadi, Said Jabbour
-
Patent number: 7529429Abstract: 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: GrantFiled: October 24, 2006Date of Patent: May 5, 2009Inventors: Carsten Rother, Lucas Bordeaux, Youssef Hamadi, Andrew Blake
-
Publication number: 20090094240Abstract: 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: ApplicationFiled: October 3, 2007Publication date: April 9, 2009Applicant: Microsoft CorporationInventors: Lucas Bordeaux, Youssef Hamadi, Shahram Izadi, Vishwa Vinay
-
Patent number: 7472094Abstract: 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: GrantFiled: July 28, 2005Date of Patent: December 30, 2008Assignee: Microsoft CorporationInventors: Youssef Hamadi, Georg Ringwelski
-
Publication number: 20080183517Abstract: 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: ApplicationFiled: January 30, 2007Publication date: July 31, 2008Applicant: Microsoft CorporationInventors: Youssef Hamadi, Claude-Guy Quimper
-
Publication number: 20080184250Abstract: 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: ApplicationFiled: January 30, 2007Publication date: July 31, 2008Applicant: Microsoft CorporationInventors: Youssef Hamadi, Claude-Guy Quimper
-
Publication number: 20080183538Abstract: 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: ApplicationFiled: January 30, 2007Publication date: July 31, 2008Applicant: Microsoft CorporationInventors: Youssef Hamadi, Claude-Guy Quimper
-
Publication number: 20080147573Abstract: 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: ApplicationFiled: December 15, 2006Publication date: June 19, 2008Applicant: Microsoft CorporationInventor: Youssef Hamadi
-
Publication number: 20080092086Abstract: 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: ApplicationFiled: October 11, 2006Publication date: April 17, 2008Applicant: Microsoft CorporationInventors: Youssef Hamadi, Stephane Ubeda
-
Publication number: 20080071553Abstract: 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: ApplicationFiled: August 17, 2006Publication date: March 20, 2008Applicant: Microsoft CorporationInventors: Youssef Hamadi, Carsten Rother
-
Patent number: 7222149Abstract: 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: GrantFiled: September 17, 2004Date of Patent: May 22, 2007Assignee: Microsoft CorporationInventors: Youssef Hamadi, Yek Loong Chong, Marc Shapiro
-
Publication number: 20070094174Abstract: 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: ApplicationFiled: July 28, 2005Publication date: April 26, 2007Applicant: Microsoft CorporationInventors: Youssef Hamadi, Georg Ringwelski
-
Publication number: 20070058884Abstract: 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: ApplicationFiled: October 24, 2006Publication date: March 15, 2007Applicant: Microsoft CorporationInventors: Carsten Rother, Lucas Bordeaux, Youssef Hamadi, Andrew Blake
-
Publication number: 20060294073Abstract: 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: ApplicationFiled: June 28, 2005Publication date: December 28, 2006Applicant: Microsoft CorporationInventor: Youssef Hamadi