A method for scheduling actions in a satellite system comprising a plurality of Satellites that are imaging a body, the method comprising: receiving, by a computing device, a set of decision variables describing actions to be taken for components of a satellite with respect to a schedule for the plurality of satellites to image the body while the plurality of satellites are orbiting the body; generating, by the computing device, a set of conflicts for decision variables that cannot be performed at a same time in the schedule, wherein each conflict is associated with a list of decision variables; calculating, by the computing device, a penalty value for each conflict in the set of conflicts that is based on the list of decision variables associated with each conflict, the penalty representing an impact on utility; storing, by the computing device, penalty values for each conflict in a first storage element and the list of decision variables in a second storage element; characterized by adjusting, by the computing device, a decision variable value for one of the set of decision variables to change the schedule; calculating, by the computing device, a utility value using a utility function, the utility value measuring a value of the adjusted decision variable value on the schedule; locating, by the computing device, a conflict that includes the adjusted decision variable in the list of decision variables from the second storage element; calculating, by the computing device, an adjusted penalty value based on the adjusted decision variable value and the penalty value stored in the first storage element for the located conflict; evaluating, by the computing device, the adjusting based on the utility value and the penalty value to determine whether to accept the adjusted decision variable value to change the schedule; and outputting, by the computing device, an adjusted schedule to at least one satellite in the plurality of satellites based on the adjusted decision variable. receiving, by a computing device, a set of decision variables describing actions to be taken for components of a satellite with respect to a schedule for the plurality of satellites to image the body while the plurality of satellites are orbiting the body; generating, by the computing device, a set of conflicts for decision variables that cannot be performed at a same time in the schedule, wherein each conflict is associated with a list of decision variables; calculating, by the computing device, a penalty value for each conflict in the set of conflicts that is based on the list of decision variables associated with each conflict, the penalty representing an impact on utility; storing, by the computing device, penalty values for each conflict in a first storage element and the list of decision variables in a second storage element; characterized by adjusting, by the computing device, a decision variable value for one of the set of decision variables to change the schedule; calculating, by the computing device, a utility value using a utility function, the utility value measuring a value of the adjusted decision variable value on the schedule; locating, by the computing device, a conflict that includes the adjusted decision variable in the list of decision variables from the second storage element; calculating, by the computing device, an adjusted penalty value based on the adjusted decision variable value and the penalty value stored in the first storage element for the located conflict; evaluating, by the computing device, the adjusting based on the utility value and the penalty value to determine whether to accept the adjusted decision variable value to change the schedule; and outputting, by the computing device, an adjusted schedule to at least one satellite in the plurality of satellites based on the adjusted decision variable. <EOS>